Refunds
If the customer decides to return a purchase, you can refund the payment by sending a refund request. You can refund either the total captured amount or a partial amount. Multiple refunds are also supported when the total amount refunded is less or equal to the total captured amount. Refunding a payment requires the request ID from a capture request that is in the SETTLED status.
A successful request is indicated by the REFUNDED status in the status response field. When you receive the REFUNDED status, the refund is complete and you can display a refund confirmation to the customer.
For the refund endpoint, see Affirm API Endpoints.
Endpoint
POST /pts/v2/captures/{id}/refunds
POST /pts/v2/captures/{id}/refunds
Example
{ "paymentInformation": { "paymentType": { "name": "INVOICE", "method": { "name": "AFFIRM" } } }, "processingInformation": { "actionList": "AP_REFUND" }, "orderInformation": { "amountDetails": { "totalAmount": "150.00", "currency": "USD" } }}{ "_links": { "self": { "method": "GET", "href": "/pts/v2/refunds/7297990491716684003954" }, "status": { "method": "POST", "href": "/pts/v2/refresh-payment-status/7297990491716684003954" } }, "clientReferenceInformation": { "code": "1729799049316", "returnReconciliationId": "XFZ402N9WXRR" }, "id": "7297990491716684003954", "orderInformation": { "amountDetails": { "currency": "USD" } }, "processorInformation": { "responseDetails": "00006", "transactionId": "6CKYUNXOI85LBZLK", "responseCode": "00006" }, "reconciliationId": "XFZ3Z2N9GCMZ", "refundAmountDetails": { "refundAmount": "150.00" }, "status": "REFUNDED", "submitTimeUtc": "2024-10-24T19:44:10Z"}| Field | Type | Description |
|---|---|---|
orderInformation.amountDetails.currency | The currency for the order. | |
orderInformation.amountDetails.totalAmount | The total amount for the order. | |
paymentInformation.paymentType.method.name | Set to AFFIRM. | |
paymentInformation.paymentType.name | Set to INVOICE. | |
processingInformation.actionList | Set to AP_REFUND. |
Optional Fields
| Field | Type | Description |
|---|---|---|
orderInformation.billTo.email | The email address of the billing contact. | |
orderInformation.billTo.firstName | The first name of the billing contact. | |
orderInformation.billTo.lastName | The last name of the billing contact. | |
orderInformation.lineItems[].productName | The name of the product. | |
orderInformation.lineItems[].quantity | The quantity of the product. | |
orderInformation.lineItems[].totalAmount | The total amount for the line item. | |
orderInformation.lineItems[].unitPrice | The unit price of the product. |
Response Statuses
responds with one of these statuses in the status response field.
FAILED: The refund request is not successful. Send a new refund request.REFUNDED: The refund is complete and the purchase is refunded. You can display a refund confirmation to the customer.
For REST, also provides a reconciliation ID for tracking and reporting purposes in the reconciliationId response field.
Thanks for your feedback!
Last published: September 29, 2026