Reverse a Sale or Refund
Cancel a transaction before funds are exchanged.
Transactions can be reversed in full or partially reversed.
An attempt to restore Payer's spending limit is always made.
If no amount is included in the request body, the full value of the transaction will be reversed.
In timeout scenarios, where the integrator does not recieve a response at all, the reference field can be used in place of the id in the URL
Availability of partial reversals depends on your live configuration.
Authorization
bearerAuth Access token from POST /accesstoken, sent as Authorization: Bearer <token>.
In: header
Path Parameters
Header Parameters
Integrator generated value submitted in the request header that is checked to ensure the same value has not been seen in the last 24 hours. It is used to ensure idempotency is maintained with this action.
1 <= length <= 50The version of the API to execute the request.
1 <= length <= 50"2021-03-22"Request Body
application/json
A meaningful label that better identifies the account.
1 <= length <= 50An optional field that can be sent to indicate the amount to be reversed if you are setup for partial reversals. If no amount is provided, the entire transaction will be reversed.
1 <= length <= 50Used to record the reason for a reversal.
1 <= length <= 50Value in
- "CUSTOMER_CANCELLATION"
- "TERMINAL_ERROR"
- "TIMEOUT"
- "CHIP_CARD_DECLINE"
- "MACFAILURE"
- "RESPONSE_RECEIVED_LATE"
- "SUSPECTED_FRAUD"
- "ARPC_CRYPTOGRAM_FAILURE"
- "IN_STOCK"
- "FALSE_POSITIVE"
- "OTHER"
- "NOT_GIVEN"
- "SYSTEM_ERROR"
- "OUT_OF_STOCK"
- "FRAUD"
- "DUPLICATE"
- "MISTAKE"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/transactions/TRN_uzFr7t4VOqxdLDI44hHmXIjHtOOE8d/reversal" \ -H "X-GP-Version: 2021-03-22" \ -H "Content-Type: application/json" \ -d '{ "amount": "11099" }'{ "id": "TRN_uzFr7t4VOqxdLDI44hHmXIjHtOOE8d", "time_created": "2026-05-03T21:23:39.718Z", "time_last_updated": "2026-05-03T21:23:39.718Z", "type": "SALE", "status": "CAPTURED", "amount": "11099", "currency": "USD", "country": "US", "reference": "becf9f3e-4d33-459c-8ed2-0c4affc9555e", "batch_id": "BAT_234234234", "payment_method": { "result": "string", "message": "string", "card": { "authcode": "string", "brand_reference": "string" }, "bnpl": { "provider": "KLARNA", "result": "201 CREATED" } }, "device": { "host_response_code": "string", "brand_sequence_number": "string" }, "action": { "id": "ACT_uzFr7t4VOqxdLDI44hHmXIjHtOOE8d", "type": "AUTHORIZE", "time_created": "2026-05-03T21:23:39.718Z", "result_code": "SUCCESS", "app_id": "uzFr7t4VOqxdLDI44hHmXIjHtOOE8d", "app_name": "my_lovely_app" }}Refund a Sale POST
Create a Refund transaction from a previous Sale. The payment method associated with the original Sale is used to refund the Payer. If the amount is not specified in the refund request, the full amount of the Sale will be refunded. Availability of this feature in production depends on your allowed live configuration. Please contact Global Payments before coding this feature to confirm it will be available to you when you go live.
Capture a Sale POST
Capture a Sale transaction that has a status of PREAUTHORIZED to receive funds for that transaction. The transaction can be captured for a different amount than what was authorized but if no amount specified the full amount will be captured. Also it can be captured in multiple segments to facilitate split shipment. (Availability of multiple captures in production depends on your live configuration.)