Transactions

Understanding Transactions

UnblockPay's API enables seamless conversion between fiat currencies and stablecoins. Every transaction involves a sender and a receiver — which can be either a fiat source (bank account) or a crypto source (blockchain wallet).

The following transaction types are supported:

Fiat to Stablecoin (Pay-in) Stablecoin to Fiat (Payout) Stablecoin to Stablecoin (Wallet Transfer) Fiat to Fiat

For payment methods where UnblockPay cannot pull funds directly (such as wire transfers or crypto transfers), we provide sender_deposit_instructions with deposit addresses where the customer — or you acting on their behalf — initiates the transfer. Once the deposit is received, funds move to the specified receiver automatically, with no additional API calls required.

We support multiple stablecoins and fiat payment rails.


Transaction statuses

A payout transaction can be in one of the following status:

Status

Description

awaiting_deposit

UnblockPay is waiting to receive funds from the customer before processing the transfer. This state occurs only when awaiting customer deposits (such as crypto deposits).

processing

This indicates that UnblockPay has received your funds and is processing the payout to your customer.

completed

The payout has been completed successfully. The funds have been delivered to the specified destination.

failed

UnblockPay attempted the payment but received a failure notification. The funds have been returned to UnblockPay and will be refunded to the sender.

refunded

The funds have been returned to the original sender's account.

cancelled

The payout has been cancelled. Payouts can only be cancelled when in the awaiting_deposit state.

error

There was a problem preventing UnblockPay from processing this transfer. Manual intervention may be required to resolve the issue. Please contact our support team if you haven't already been contacted about this transfer.

Please note that a payout will always progress from awaiting_depositprocessingcompleted . It can never go backwards.

A transaction can only be set to cancelled status from awaiting_deposit status by making a request to our PUT /transactions/{id} endpoint.


Sandbox mock IDs

To see a payout status in the sandbox environment, we have mocked payouts transactions to facilitate. You can easily test these scenarios by hitting our GET v1/transactions/{id} endpoint with the following IDs:

Status

Mocked transaction ID

awaiting_deposit

00000000-0000-0000-0000-000000000000

processing

11111111-1111-1111-1111-111111111111

completed

22222222-2222-2222-2222-222222222222

failed

33333333-3333-3333-3333-333333333333

refunded

44444444-4444-4444-4444-444444444444

cancelled

55555555-5555-5555-5555-555555555555

error

66666666-6666-6666-6666-666666666666


Transactions API endpoints

Here are the endpoints you'll need to list or get details a transaction:

  • GET v1/transactions/{id} — Get details and current status of a specific transaction

  • GET v1/transactions — List all transactions

  • PUT v1/transactions/{id} — Cancel a transaction (only available for awaiting_deposit status)

For the full schema and request/response details, see the API Reference.