Skip to main content

Overview

Thiqwave lets you send value as fiat payouts or convert stablecoins to fiat for bank delivery. Both flows are quote-driven.

Sending Fiat Payouts

Convert stablecoins to fiat and send directly to recipient bank accounts. The process follows a quote-then-execute pattern.
1

Get a Quote

First, request a payout quote to determine exchange rates and fees.
2

Create the Payout

Execute the payout using the quote ID and recipient details.
3

Track Status

Monitor the payout lifecycle via API or webhooks.

Quote Request

Request a quote to lock in exchange rates and fees for a stablecoin-to-fiat payout:
curl -X POST https://api.thiqwave.com/v1/quotes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_currency": "USDC",
    "destination_currency": "AED",
    "amount": "500.00",
    "corridor": "uae",
    "recipient_type": "bank_account"
  }'

Create the Payout

Once you have the quote ID, create the payout with recipient bank details:
curl -X POST https://api.thiqwave.com/v1/payouts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_id": "quote_1234567890",
    "recipient": {
      "name": "Ahmed Al-Mansouri",
      "account_number": "1234567890",
      "bank_code": "ADCBAEAAXXX",
      "country": "AE"
    }
  }'

Payout Response

The payout creation response includes all transaction details:
{
  "id": "payout_1a2b3c4d5e6f",
  "status": "pending",
  "quote_id": "quote_1234567890",
  "source": {
    "amount": "500.00",
    "currency": "USDC"
  },
  "destination": {
    "amount": 183750,
    "currency": "AED"
  },
  "recipient": {
    "name": "Ahmed Al-Mansouri",
    "account_number": "1234567890",
    "bank_code": "ADCBAEAAXXX",
    "country": "AE"
  },
  "created_at": "2026-04-10T14:30:00Z"
}

Off-Ramping: Stablecoin to Fiat

Convert stablecoins on-chain to fiat in the recipient’s bank account. This flow handles blockchain settlement and fiat delivery.
1

Get an Off-Ramp Quote

Request a quote for stablecoin-to-fiat conversion and the deposit address where stablecoins will be received.
2

Send Stablecoins

Transfer stablecoins from your wallet to the provided deposit address.
3

Fiat Settlement

Stablecoins are converted and fiat is delivered to the recipient’s bank account.

Quote Request

Request an off-ramp quote to get the deposit address and settlement details:
curl -X POST https://api.thiqwave.com/v1/quotes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_currency": "USDC",
    "destination_currency": "AED",
    "amount": "1000.00",
    "source_network": "polygon",
    "corridor": "uae",
    "recipient_type": "bank_account"
  }'

Create the Off-Ramp

Create the off-ramp transaction with the quote and recipient details:
curl -X POST https://api.thiqwave.com/v1/bridging/offramp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_id": "quote_9876543210",
    "recipient": {
      "name": "Layla Hassan",
      "account_number": "0987654321",
      "bank_code": "NBAKAEAD",
      "country": "AE"
    },
    "source_network": "polygon"
  }'

Off-Ramp Response

The off-ramp creation response includes the blockchain deposit address:
{
  "id": "bridge_a1b2c3d4e5f6",
  "type": "offramp",
  "status": "pending",
  "source": {
    "amount": "1000.00",
    "currency": "USDC",
    "network": "polygon"
  },
  "destination": {
    "amount": 367500,
    "currency": "AED"
  },
  "deposit_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "blockchain": "polygon",
  "recipient": {
    "name": "Layla Hassan",
    "account_number": "0987654321",
    "bank_code": "NBAKAEAD",
    "country": "AE"
  },
  "created_at": "2026-04-10T14:45:00Z"
}
Send exactly the stablecoin amount shown in the quote to the deposit_address. Any excess or shortfall may delay settlement.

Payout Methods

Thiqwave supports multiple payout channels depending on the corridor and destination bank capabilities. Available methods are determined by your recipient’s location and banking infrastructure.
CorridorPrimary Methods
UAESame-day bank transfers, instant payment networks
Saudi ArabiaNext-business-day settlements, regional instant systems
EgyptBank transfers, mobile money integration
KuwaitInter-bank transfers, same-day settlement options
Other MENA regionsRegional clearing systems, bank-to-bank transfers
The optimal method is selected automatically based on the destination bank and currency pair.

Tracking Status

Monitor your payouts and off-ramps through their lifecycle. Each transaction moves through defined states.

Status Lifecycle

StatusDescription
pendingTransaction initiated, awaiting processing
processingActively being processed by the network
completedSuccessfully settled to recipient
failedTransaction failed; funds returned or require action

Webhook Events

Subscribe to events to track transaction progression:
  • payout.completed — Fiat payout successfully delivered to bank account
  • payout.failed — Payout failed; check error details for resolution
  • bridge.completed — Off-ramp completed; fiat delivered after stablecoin receipt
  • bridge.failed — Off-ramp failed; stablecoins returned to deposit address
Webhook payloads include full transaction details and status updates. See Webhooks for implementation details.

Best Practices

Follow these guidelines for reliable payment operations:
1

Always quote before executing

Get a quote to lock in rates and fees before initiating a transaction. Quotes expire after 3 minutes.
2

Implement idempotency

Use idempotency keys to safely retry failed requests without creating duplicate transactions.
3

Verify recipient details

Double-check bank account numbers, SWIFT codes, and account holder names to prevent failed deliveries.
4

Handle quote expiry

Quotations are valid for 3 minutes. Re-request if your payout is delayed beyond this window.
5

Use webhooks for updates

Implement webhook listeners to track transaction status in real-time rather than polling.
6

Test in staging first

Validate your integration in our staging environment before processing live transactions.

Next Steps

Explore related functionality and deepen your integration:

Receiving Payments

Accept deposits and inbound transfers into your account.

Webhooks

Set up real-time notifications for transaction events.

Payouts API

Complete API reference for payout endpoints.

Bridging API

Complete API reference for off-ramp endpoints.