POST /invoices/{invoice-id}/apply_payments
Applies payment to a single invoice. You can either specify individual payment transactions as parameters, or Chargebee applies any available excess payments for that customer. If you specify individual transactions then any un-applied amount in those transactions will be used.
Prerequisites & Constraints
- The invoice's
statusmust bepayment_due,posted, ornot_paid. - The customer must have excess payments available.
Impacts
Invoice
Invoice's amount_due is updated to reflect the applied payment. If no amount remains, the invoice status becomes paid.
Transactions
When a payment is applied to an invoice, the amount_unused field of the associated transaction(s) is reduced accordingly.
Accounting Integrations
Synchronization to the accounting system will not proceed if the linked transaction contains a surplus balance.
Implementation Notes
Before calling this API, ensure the following:
- The
invoicestatus isnot_paid,payment_due, orposted. - Customer has excess_payments .
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 |
An internal comment to be added for this operation, to the invoice. This comment is displayed on the Chargebee UI. It is not displayed on any customer-facing Hosted Page or any document such as the Invoice PDF. |
transactions |
Object | No |
Parameters for transactions |
transactions.id[] |
Array | No |
Uniquely identifies the transaction. Excess payments available with the customer will be applied against this invoice if this parameter is not passed. |
transactions.amount[] |
Array | No |
Specifies the amount from the transaction to apply as a payment towards the invoice. The amount applied is the smallest of the following values: the amount you specify for this parameter, |
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.