Charge Actions
Understand Affirm's charge actions
Overview
After creating a charge
, you can manage it through several key actions to keep your order management system up-to-date. These actions support various workflows such as processing payments, refunds, and cancelations.
Learn more about charge actions via our API Reference
- Includes request/response examples
- JSON-Object definitions
- Required attributes
Read Charge
With the Read Charge
API, you can use the charge_id
to retrieve checkout data and the status of a specific charge. Reading charge information is useful for keeping your order management system in sync with Affirm and ensuring records are up-to-date before taking further actions.
You can read single or multiple charges. Note that if you don't specify a charge_id
, the response includes a list of charges. You can define how the results are paginated using the limit
, before
, and after
query parameters.
// Read a single charge
curl https://sandbox.affirm.com/api/v2/charges/CHARGE_ID
-X GET
-u "public_key:private_key"
// Read multiple charges
curl https://sandbox.affirm.com/api/v2/charges/?limit=5&before=1234-ABCD
-X GET
-u "public_key:private_key"
Void
The Void Charge
API used along with the charge_id
cancels or deletes an authorized charge. It is often used when a customer cancels an order before it’s fulfilled. Voiding an authorized charge will:
- Permanently cancels a loan
- Notifies the user that the transaction was canceled
curl https://sandbox.affirm.com/api/v2/charges/CHARGE_ID/void
-X POST
-u "(public_api_key):(private_api_key)"
Refund
The Refund Charge
API allows you to issue a refund for the original purchase amount or a partial amount, similar to refunding a credit card transaction. Affirm automatically calculates all interest and fees corresponding to the refunded amount. For partial refunds, you can refund any amount as long as there is a positive balance remaining on the loan. Refunds can also be processed directly through the Merchant Portal.
Note: Once a loan has been fully refunded, it cannot be reinstated.
curl https://sandbox.affirm.com/api/v2/charges/CHARGE_ID/refund \
-X POST
-u "(public_api_key):(private_api_key)"
-H "Content-Type: application/json"
-d '{"amount": 50000}'
Update
Use the Update Charge
API to update a charge with new fulfillment or order information, such as shipping_confirmation
, shipping_carrier
, or order_id
. Updated details are reflected in settlement reports, linking Affirm charges to your internal order IDs.
curl https://sandbox.affirm.com/api/v2/charges/CHARGE_ID/update
-X POST
-u "(public_api_key):(private_api_key)"
-H "Content-Type: application/json"
-d '{"order_id": "JLKM4321", "shipping_carrier": "USPS", "shipping_confirmation": "1Z23223", "shipping": {"name":{ "full": "John Doe"},"address": {"line1": "325 Pacific Ave", "state": "CA", "city": "San Francisco", "zipcode": "94111", "country": "USA"}}}'
Updated about 2 months ago