Reverse
POST/v1/transactions/:id/reverse
Issue a scheme-level reversal to cancel the effects of a
transaction whose outcome is uncertain. A new reversal
transaction is created and linked back to the source via
reversed_transaction_id.
Reversals are designed for post-timeout recovery and for cases
where scheme / downstream integrity cannot be trusted. Use void
(for authorizations) or refund (for captures) when the original
transaction's outcome is known.
Required permission: transactions_reverse.
Idempotency field: transaction_id.
Request
Path Parameters
UUID of the transaction to reverse.
- application/json
Body
required
A 36-character UUIDv7 identifier. When used as an idempotency key on write endpoints, the client is responsible for generating a fresh UUID for each logical operation and retaining it across retries.
Possible values: [request_timeout, gateway_timeout, response_error, delivery_error]
Rationale for the reversal. Recorded on the reversal
transaction as reverse_reason for later reconciliation.
Responses
- 200
- 400
- 401
- 403
- 404
- 422
Reversal submitted.
- application/json
- Schema
- Example (from schema)
Schema
initiated: in-flight; no response received yet.approved: scheme / issuer approved.failed: declined by scheme or issuer.timeout: gateway did not receive a response in time.system_error: internal processing error.internet: customer-facing e-commerce transaction (card not present, authenticated by 3DS).merchant: merchant-initiated transaction on a stored agreement (unscheduled, recurring, installment, etc.). Authentication is carried on the linked agreement, not the current transaction.moto: mail-order / telephone-order transaction where card details are collected by the merchant out of band.1.00 SARis sent as1001.00 KWDis sent as10001 JPYis sent as1
A 36-character UUIDv7 identifier. When used as an idempotency key on write endpoints, the client is responsible for generating a fresh UUID for each logical operation and retaining it across retries.
Possible values: [initiated, approved, failed, timeout, system_error]
Possible values: [verify, purchase, authorize, capture, void, refund, extension, reversal]
Possible values: [internet, merchant, moto]
How the transaction was initiated:
Possible values: [request_timeout, gateway_timeout, response_error, delivery_error, null]
Populated on reversal transactions only.
Possible values: [reauthorization, delayed_charges, resubmission, no_show, null]
A 36-character UUIDv7 identifier. When used as an idempotency key on write endpoints, the client is responsible for generating a fresh UUID for each logical operation and retaining it across retries.
Human-readable gateway response message.
Two-digit ISO 8583 response code returned by the issuer. 00
indicates approval; non-00 codes are declines. See the scheme /
issuer response code table for the full list.
On a reversal, the message from the transaction being reversed.
Twelve-digit Retrieval Reference Number (RRN) assigned by the acquirer and forwarded to the issuer. Useful for reconciling an entry on the cardholder's statement. Not unique across schemes.
System Trace Audit Number (STAN). A six-digit acquirer-local counter that is unique per terminal per business day.
Six-character authorization code returned by the issuer on approval.
Possible values: <= 100000000
A non-negative integer representing a monetary value in the smallest
currency unit for the associated currency (minor units).
Examples:
For most order-creating endpoints the minimum is 100
(one full major unit). Endpoints that support zero-value operations
(such as /v1/orders/verify and /v1/orders/:id/extend) allow 0.
Cumulative refunds allocated against this specific transaction.
ISO 8601 UTC timestamp with time zone designator.
{
"id": "0191f5a7-3d99-7f81-b7ec-962a5f5fdd7c",
"status": "initiated",
"type": "verify",
"source_type": "internet",
"reverse_reason": "request_timeout",
"justification": "reauthorization",
"reversed_transaction_id": "0191f5a7-3d99-7f81-b7ec-962a5f5fdd7c",
"message": "string",
"response_code": "00",
"original_message": "string",
"original_response_code": "string",
"retrieval_reference": "433115207925",
"stan": "123456",
"auth_code": "262345",
"issuer_response_code": "string",
"amount": 10000,
"refunded_amount": 0,
"scheme_trace_id": "string",
"terminal_id": "string",
"created_at": "2025-01-15T14:30:00Z"
}
The transaction cannot be reversed (already reversed, not reversible, etc.).
- application/json
- Schema
- Example (from schema)
Schema
{
"message": "This order cannot be captured."
}
Authentication failed.
- application/json
- Schema
- Example (from schema)
Schema
{
"message": "Missing authentication information"
}
The authenticated principal lacks the required permission.
- application/json
- Schema
- Example (from schema)
Schema
{
"message": "Unauthorized"
}
The referenced resource does not exist.
- application/json
- Schema
- Example (from schema)
Schema
{
"message": "The Order you are looking for was not found."
}
Validation error.
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
errors
object
required
property name*
string[]
string
{
"message": "The given data was invalid.",
"errors": {
"amount": [
"The amount field must be at least 100."
],
"source.number": [
"The number must be a valid credit card."
]
}
}