Refund a Payment
Initiates a refund against a completed payment, identified by its transactionId in the path. Omit refundValue for a full refund; supply it (amount in minor units) for a partial refund. When provided, the currency must match the original payment.
CrissCross executes refunds in one of two ways depending on what the originating provider supports: a provider refund through the provider’s native refund API, or a payout refund that returns the funds via a payout to the original destination. The latter is used when the originating provider does not expose a refund API — common for mobile money, and applicable to bank methods when full account details are held. Both paths are tracked against the original payment so the refundable balance is enforced uniformly. See the Refunds guide for details.
Eligibility (ownership, refundable state, refund window, and cumulative amount ≤ original) is validated when the refund is initiated. Call Get Payment Refundability beforehand to check whether a payment can be refunded and for how much.
Refunds are processed asynchronously. The response is a refund transaction in a non-terminal state; track completion by polling Retrieve Payment Status with the returned refund transactionId, or by subscribing to the refund.completed, refund.failed, refund.errored, and refund.cancelled webhook events.
Path parameters
Request
Optional free-form reason for the refund, recorded for reporting and dispute defense.
Response
Refund accepted and created as an asynchronous refund transaction. Poll the returned transactionId for completion.
Human-readable status message.
Detail for the transaction’s current state. When the transaction status is AUTH_REQUIRED,
authMethodType says how the payer completes authentication, and a matching detail object
(redirect, fields, ussd, bankTransfer) carries the specifics. Error states instead
carry code, message, and the raw connectorFailureCode/connectorFailureMessage.
Name of the payment processor (if assigned).
Processor reference (if available).
The payment method used, e.g. card or mobilemoney.
Additional identifiers, usually sessionId and payerId.
Amount the customer paid in the collection currency. Present only on transactions converted by Adaptive Currency Conversion — per-session rate or rate lock.
Spot mid-market rate at the time the FX quote was committed for this attempt (decimal string, 8 decimal places). Present only on FX-converted transactions.
Mid rate + markup — the rate this attempt was actually converted at (decimal string, 8 decimal places). Present only on FX-converted transactions.
Markup applied to this attempt in basis points (100 bps = 1%). Present only on FX-converted transactions.
Conversion fee, denominated in the collection currency. Present only on FX-converted transactions.