Skip to main content

When it fires

The refund_in event fires when a cash-out transaction you sent is returned by the counterparty. The corresponding balance is credited back to your account. Common scenarios:
  • Beneficiary manually rejected the transfer
  • CLABE existed but the account was closed after initial confirmation
  • Refund requested by the beneficiary within the SPEI deadline

Payload

{
  "event": "refund_in",
  "deliveryId": "5b9c2d8e-4f12-4a18-bb29-88a3b4c5d6f7",
  "createdAt": "2026-05-14T09:15:00.000Z",
  "transaction": {
    "id": 67890,
    "externalId": "payout-001-refund",
    "paymentMethod": "SPEI",
    "direction": "in",
    "type": "refund_in",
    "status": "CONFIRMED",
    "provider": "smartfastpay",
    "amountCentavos": 50000,
    "clabe": "012180001234567890",
    "createdAt": "2026-05-14T09:14:50.000Z",
    "confirmedAt": "2026-05-14T09:15:00.000Z"
  },
  "originalTransactionId": 56789
}
The originalTransactionId field points to the id of the original cash-out that was refunded. Use it to correlate.

Expected Response

HTTP 200 OK within 10 seconds.
if (event.event === 'refund_in') {
  // Balance credit already happened automatically
  await markPayoutAsRefunded({
    originalId: event.originalTransactionId,
    refundId: event.transaction.id,
    amount: event.transaction.amountCentavos,
  });
}
See the implementation guide for HMAC validation.