v1
latestOpenAPI 3.0.02026-07-244352379.2 KBUpdate a Payment
⚠️ Update Payment Requests Server-Side
To keep your app secure, requests to update a Payment should only be generated on the server-side.
A PATCH request to /payments/{payment_ref}/ updates an existing Forage Payment.
On success, the API responds with the updated Payment object.
The status property of the Payment determines what data can be updated. If the status is processing, cancelled, or succeeded, then only the following Payment fields can be modified:
- metadata
- external_order_id
During these statuses, Forage ignores attempts to update other Payment fields.
📘 Required For Server-Side Capture
You need to use this endpoint if you're building an integration that defers payment capture to the server.
Headers
An OAuth 2.0 authentication token that validates the request. Send a POST to the /o/token/ endpoint to generate an authentication token. Pass the token in this header after the word Bearer and a whitespace, for example Bearer <api_key>.
A unique merchant ID that Forage provides during onboarding, as in 123ab45c67. The Merchant ID can be found in the Forage sandbox or production dashboard.
An alphanumeric key that clients can use to identify repeated requests that are dropped in transit. Generate a distinct key for every unique request and only re-use keys for retries.
Request body
Example request
{
"tpp_lookup_id": "pi_1DpdZq2eZvKYlo2CAYyzTr8j_secret_lxr4crBJP4txbrg7sqit0XQQO",
"external_location_id": "6e3b2ff7-51c8-4c64-befa-2eac90f7c3e9"
}Response
OK - Success
Example response
{
"amount": 25.99,
"funding_type": "ebt_snap",
"payment_method": "ac47392bb1",
"delivery_address": {
"city": "San Francisco",
"country": "US",
"line1": "1856 Market St.",
"zipcode": "94106",
"state": "CA"
},
"is_delivery": true,
"description": "An EBT Payment",
"metadata": {},
"platform_fee": 0.05,
"platform_fixed_settlement": 5.11,
"merchant_fixed_settlement": 5.95,
"customer_id": "cus_1234567890",
"external_order_id": "1f2ee410-5b47-4130-aec2-40f5eb2108f5",
"merchant_destination_account": "1bdefaa456",
"pos_terminal": {
"provider_terminal_id": "tbd123"
},
"external_location_id": "6e3b2ff7-51c8-4c64-befa-2eac90f7c3e9",
"ref": "cc3175bfea",
"merchant": "9000055",
"status": "requires_confirmation",
"created": "2021-06-16T00:11:50.000000Z-07:00",
"updated": "2021-06-16T00:11:50.000000Z-07:00",
"expires_at": "2021-06-16T00:41:50.000000Z-07:00",
"success_date": "2021-06-16T00:11:50.000000Z-07:00",
"refunds": [
"ac47392bb1"
],
"receipt": {
"ref_number": "cc3175bfea",
"is_voided": true,
"snap_amount": "25.99",
"ebt_cash_amount": "10.99",
"other_amount": "5.99",
"sales_tax_applied": "5.16",
"balance": {
"snap": "72.94",
"non_snap": "32.16",
"updated": "2021-06-16T00:11:50.000000Z-07:00"
},
"last_4": "3456",
"message": "Approved",
"transaction_type": "Payment",
"created": "2021-06-16T00:11:50.000000Z-07:00"
},
"last_processing_error": null,
"previous_errors": []
}