POST /invoices/{invoice-id}/record_payment
Records an offline payment for an invoice.
Use this API to record payments that you receive outside Chargebee, such as bank transfers or checks, so that you can reconcile them against invoices.
Prerequisites & Constraints
- The invoice
statusmust bepayment_due,posted, ornot_paid.
Impacts
Invoice
- The
amount_dueon the invoice decreases bytransaction[amount]when thetransaction[status]issuccess. - The invoice
statuschanges topaidif theamount_dueon the invoice becomes zero because of this payment. Otherwise, thestatusremains unchanged.
Customer
If the recorded payment exceeds the invoice's amount_due, the excess is added to the customer's excess_payments balance.
Implementation Notes
Before calling this API, ensure the following:
- The invoice
statusmust bepayment_due,posted, ornot_paid.
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
invoice-id |
String | Yes |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
chargebee-request-origin-device |
String | No |
The device from which the customer has made the request |
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/x-www-form-urlencoded" |
chargebee-event-webhook |
String | No |
skip only webhooks Valid values:
|
chargebee-business-entity-id |
String | No |
If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation. |
chargebee-event-actions |
String | No |
skip all actions to be done on the events Valid values:
|
chargebee-request-origin-user |
String | No |
The email address of your customer/user. Use this when the email address has only ASCII characters. |
chargebee-request-origin-ip |
String | No |
The IP address of the customer where the request originated |
chargebee-request-origin-user-encoded |
String | No |
The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored. |
chargebee-event-email |
String | No |
skip only emails Valid values:
|
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
comment |
String | No |
Remarks, if any, on the payment. |
transaction |
Object | No |
Parameters for transaction |
transaction.id_at_gateway |
String | No |
The id with which this transaction is referred in gateway. |
transaction.reference_number |
String | No |
The reference number for this transaction. e.g check number in case of 'check' payments. |
transaction.custom_payment_method_id |
String | No |
A unique identifier for the custom payment method of this transaction. Prerequisite
|
transaction.amount |
Integer | No |
The payment transaction amount. Default value
|
transaction.error_code |
String | No |
Error code for the transaction failure. This is typically set by the payment gateway when a transaction fails. Prerequisite
|
transaction.status |
String | No |
The status of this transaction. * failure -Transaction failed. Pass the The transaction was successful. Impacts
Transaction is being processed by the gateway. This typically happens for direct debit transactions
or, in case of cards, refund transactions. Such transactions can take 2-7 days to complete, depending on the gateway and payment method.
The Transaction failed because of Gateway not accepting the connection.
The The transaction got voided or authorization expired at gateway.
The Indicates that a previously successful payment transaction has failed due to a late failure notification from the payment gateway. Common reasons include insufficient funds or a closed bank account.
Pass the When connection with the Gateway gets terminated abruptly. For Learn more
about The Valid values:
|
transaction.payment_method |
String | Yes |
The payment method of this transaction * cash -Cash * alipay -Alipay * sofort -Sofort * direct_debit -Direct Debit * electronic_payment_standard -Electronic Payment Standard * online_banking_poland -Online Banking Poland * netbanking_emandates -netbanking_emandates * klarna_pay_now -Klarna Pay Now * payconiq_by_bancontact -Payconiq by Bancontact * pay_by_bank -Pay By Bank * kbc_payment_button -KBC Payment Button * paypal_express_checkout -Paypal Express Checkout * automated_bank_transfer -Automated Bank Transfer * venmo -Venmo * bancontact -Bancontact * custom -Custom payment method. Prerequisite
IDEAL * check -Check * upi -upi * sepa_instant_transfer -Sepa Instant Transfer * sepa_credit -SEPA Credit * ach_credit -ACH Credit * faster_payments -Faster Payments * trustly -Trustly * bank_transfer -Bank Transfer * chargeback -Only applicable for a transaction of Unionpay * apple_pay -Apple Pay * dotpay -Dotpay * amazon_payments -Amazon Payments * wechat_pay -WeChat Pay * google_pay -Google Pay * card -Card * other -Payment Methods other than the above types * boleto -boleto * giropay -giropay * pay_to -PayTo * stablecoin -Stablecoin * pix -Pix Valid values:
|
transaction.date |
Integer | No |
Indicates when this transaction occurred. |
transaction.error_text |
String | No |
Error message for transaction failure. This is typically set by the payment gateway when a transaction fails. Prerequisite
|
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.