Skip to main content

Sandbox Confirm

Use the sandbox confirm endpoints to close a pending PayIn or PayOut without waiting for a real bank or cash-network webhook. TumiPay updates the transaction, then sends the same merchant webhook it would send in a live flow. Typical cases:
  • Approve a PayIn that is waiting for confirmation (BREB, EFECTY, SPEI, QR, and others)
  • Approve, reject or expire a PayOut that is waiting for the bank
  • Exercise your ipn_url without waiting for an external webhook
These endpoints exist only in staging and UAT. They are not available in production.
Sandbox confirm does not create the transaction. Create it first with PayIn or PayOut, then confirm it once it is pending.

Availability

Base URL (staging): https://api-empresas.staging.topup.com.co/production Base URL (UAT): https://api-empresas.uat.topup.com.co/production.

Endpoints

POST Confirm PayIn

Close a pending PayIn and fire the merchant webhook.

POST Confirm PayOut

Close a pending PayOut and fire the merchant webhook.
Use the PayIn endpoint only on PayIn transactions and the PayOut endpoint only on PayOut transactions. Mixing them returns 422 TYPE_MISMATCH.

Request

Headers

string
required
Basic authentication: Basic base64(username:password)
string
required
Merchant token. The transaction must belong to this merchant.
string
required
application/json

Body

The body is the same for PayIn and PayOut.
string
required
Identifier of the transaction. Accepts the TumiPay ticket, your merchant reference, or an external reference (Bre-B key, cash payment reference, SPEI CLABE, payout tracking id, and similar). See Identifiers.
string
required
Enum name in uppercase, not the portal label. Examples: SPEI, BREB, BANK_TRANSFER. Do not send "Transferencia SPEI".
string
required
Target status: APPROVED, REJECTED, or EXPIRED. Not every method supports every value — see Supported statuses.

Response

Success (200)

Repeating the same final status is idempotent: if the transaction is already in the requested status, the API still returns 200 SUCCESS.

Errors

Identifiers

transaction_id must belong to the merchant authenticated with Authorization + Token-Top. Any of these usually work:

Prerequisites

Not supported by sandbox confirm:
  • CARD — the result is fixed by the test card number.
  • PSE — create the PayIn with bank Banka and complete the normal PSE flow. See Testing.
  • NEQUI_PUSH — sandbox automatically simulates the push through the normal create flow (payment_url). See Colombia PayIn — NEQUI_PUSH.

Supported statuses

PayIn

Unsupported combinations return 422 STATUS_NOT_SUPPORTED.

PayOut

Method notes

Use payment_method: "BREB" or "BREB_QR". Confirm while the PayIn is pending. transaction_id can be the ticket, your reference, or the Bre-B key from payment_information (for example @TUMI... / @TUMIQR...).Supported statuses: APPROVED, REJECTED.
Use payment_method: "EFECTY". Confirm while the PayIn is pending. The cash payment reference from payment_information works as transaction_id.Only APPROVED is supported.
Use payment_method: "QR". Ticket, merchant reference, or external reference are all valid.Supported statuses: APPROVED, REJECTED, EXPIRED.
Use payment_method: "SPEI". Confirm while the PayIn is pending. Ticket, merchant reference, or the CLABE assigned to the transaction work as transaction_id.Only APPROVED is supported.
Use payment_method: "BANK_TRANSFER". The PayOut must already be waiting for the bank — not merely created.APPROVED completes the transfer. REJECTED and EXPIRED reject it (EXPIRED is treated as rejected) and restore sandbox balance.Create the PayOut with a bank from the sandbox catalog (BCP, Interbank, BBVA, Scotiabank, Yape, Plin, and similar). See Peru PayOut.
Use payment_method: "BANK_TRANSFER" with country: "CO". The PayOut must already be waiting for the bank.APPROVED completes the disbursement. REJECTED and EXPIRED reject it and restore sandbox balance.
Use payment_method: "SPEI" with account_type: "CLABE" and a valid test CLABE in both account_number and clabe_number.AHORRO, CORRIENTE, or an invented CLABE (for example 12345678…) usually reject the PayOut at creation, so sandbox confirm cannot run.Confirm only after the PayOut is waiting for the bank. See Mexico PayOut.

Mexico SPEI PayOut — test CLABEs (examples)

The following are example CLABEs for sandbox testing — not an exhaustive list. Use the same value in account_number and clabe_number:

What happens after confirm

Examples

Approve a Mexico SPEI PayIn

Approve a Peru PayOut

Approve a Mexico SPEI PayOut

Reject a Mexico SPEI PayOut

Approve a Colombia BREB PayIn

Quick reference by country

Troubleshooting