Overview
Thiqwave lets you receive value as fiat deposits or convert incoming fiat directly to stablecoins. Both flows start the same way — a pay-in request. Whether you’re collecting fiat deposits or on-ramping to stablecoins, the process begins with creating a pay-in request. From there, your customers deposit funds, and Thiqwave handles the rest.Receiving Fiat Deposits
Accept incoming fiat payments and hold them as deposits in your Thiqwave account.1
Create a pay-in request
Initiate a new pay-in to receive fiat from your customer.
2
Customer deposits funds
Your customer transfers funds to the bank account details provided in the pay-in response.
3
Funds credited
Once the transfer is confirmed, the funds appear in your Thiqwave balance.
Creating a Pay-In
To create a pay-in request, POST to the/v1/payins endpoint with the customer’s deposit amount and corridor.
Pay-In Response
The API returns a pay-in object with bank details and a unique reference for the deposit:On-Ramping: Fiat to Stablecoin
Convert incoming fiat deposits directly to stablecoins in a single integrated flow.1
Get a quote
Request a conversion quote for your desired stablecoin and network.
2
Create an on-ramp
Initiate the on-ramp request with your quote and destination wallet address.
3
Customer deposits funds
Your customer transfers the fiat amount to the provided bank account.
4
Stablecoins delivered
Once the deposit confirms, stablecoins are automatically transferred to the destination wallet.
Getting a Quote
Start by fetching a quote for your on-ramp. Specify the source fiat currency, destination stablecoin, amount, and blockchain network.Quote Response
The quote returns the exact amount you’ll receive in stablecoins, along with a quote ID valid for a limited time:Creating an On-Ramp
Once you have a valid quote, create an on-ramp request with the destination wallet address and network:On-Ramp Response
The on-ramp object contains the fiat deposit details and stablecoin destination:Payment Methods
Available payment methods depend on your corridor and local regulations. Each corridor supports different deposit methods:Payment method support varies by corridor and may change based on local regulatory requirements. Check the corridor-specific documentation for the most current options.
Tracking Status
Monitor pay-ins and on-ramps throughout their lifecycle using status updates and webhooks.Status Lifecycle
Both pay-ins and on-ramps progress through defined states:Webhook Events
Subscribe to webhooks to receive real-time status notifications:payin.completed— Fiat deposit successfully creditedpayin.failed— Pay-in request failedbridge.completed— On-ramp stablecoins deliveredbridge.failed— On-ramp request failed
Best Practices
Follow these recommendations to ensure smooth payment flows:1
Use webhooks for notifications
Subscribe to webhook events instead of polling the API. This ensures you’re notified immediately when deposits arrive or on-ramps complete.
2
Implement idempotency keys
Include idempotency keys in pay-in and on-ramp requests to prevent duplicate transactions if requests are retried.
3
Validate amounts before submission
Check that the deposit amount meets your minimum requirements and doesn’t exceed any limits before creating a request.
4
Handle quote expiry
For on-ramps, create the on-ramp request promptly after receiving a quote. Quotes expire after 30 minutes.
5
Test in staging first
Always test your integration in the staging environment before going live.
Next Steps
Sending Payments
Send fiat transfers or bridge stablecoins to wallets.
Webhooks
Set up real-time event notifications.
Pay-ins API
Full API reference for pay-in requests.
Bridging API
Full API reference for on-ramp and bridge operations.