Actions

Understand Affirm's Transactions API actions.

Read, Void, Refund, and Update a transaction


Overview

After creating a transaction, you can manage it through various states and integrate each of the actions into your order management system, which is where you fulfill orders and/or process payments, refunds, and cancelations.


Read

With the Read Transaction API, you can use the id returned from the transaction object to retrieve all checkout data and the transaction status of a specific transaction. Reading transaction information is useful for:

  • Updating your records or order management system with the current state of a transaction before performing any actions on it.
  • Keeping your system in sync with Affirm if your staff manually manage loans in the merchant dashboard.

You can read one or more transactions. When you don't specify an id, the response includes a list of transactions. You can define how the results are paginated using the limit, before, and after query parameters.

// Read a single transaction
curl https://sandbox.affirm.com/api/v1/transactions/id
     -X GET
     -u "public_key:private_key"
 
// Read multiple transactions
curl https://sandbox.affirm.com/api/v1/transactions/?limit=5&before=1234-ABCD
     -X GET
     -u "public_key:private_key"

Void

When you void an authorized transaction, we:

  • Permanently cancel the loan.
  • Notify the user that the transaction was canceled.

To cancel or delete an authorized transaction, use the id associated with the transaction to void it. For example, this can occur when a user decides to cancel their order before it's fulfilled. Note that we can only void uncaptured loans.

curl https://sandbox.affirm.com/api/v1/transactions/id/void
     -X POST
     -u "(public_api_key):(private_api_key)"

Refund

You can refund a transaction based on the original purchase, similar to refunding a credit card transaction. Affirm automatically calculates all interest and fees corresponding to the refunded amount.

You can also refund part of a transaction by specifying a specific amount. For partial refunds, you can apply any amount of refunds as long as there is a positive balance on the loan.

When a loan is fully refunded, it can’t be reinstated. You can refund the customer using the Refund Transaction request or the Merchant Dashboard.

curl https://sandbox.affirm.com/api/v1/transactions/id/refund
     -X POST
     -u "(public_api_key):(private_api_key)"
     -H "Content-Type: application/json"
     -d '{"amount": 20000}'

Update

You can use the Update Transaction request to update a transaction with new fulfillment or order information, such as shipping_confirmation, shipping_carrier, or order_id. Settlement reports associate your internal order IDs with specific Affirm transactions.

curl https://sandbox.affirm.com/api/v1/transactions/id/update
     -X POST
     -u "(public_api_key):(private_api_key)"
     -H "Content-Type: application/json"
     -d '{"order_id": "order_125", "shipping_carrier": "USPS", "shipping_confirmation": "C12345678901234", "shipping": {"name":{ "full": "John Doe"},"address": {"line1": "123 Example Street", "state": "CA", "city": "San Francisco", "zipcode": "94107", "country": "USA"}}}'