Create Pay-in
Initiate a deposit to your account. Pay-ins accept fiat transfers (via bank transfer) or stablecoin deposits (on-chain). All pay-ins must reference a valid quote.Endpoint
Request Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Yes | Your API key |
Content-Type | Yes | application/json |
Idempotency-Key | No | Unique identifier for idempotent retries |
Request
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
quote_id | string | No | Quote ID to lock in rates. If omitted, a new quote is created internally. |
source_currency | string | Yes | Fiat currency code (AED, SAR, USD, EUR, GBP). |
destination_currency | string | Yes | Stablecoin (USDT, USDC). |
destination_network | string | Yes | Blockchain network: ethereum, base, polygon, tron, stellar, solana, xrpl, sui, hedera. |
destination_address | string | Yes | Wallet address to receive stablecoins. |
amount | integer | Yes | Amount in smallest fiat unit (e.g., 50000 AED fils). |
metadata | object | No | Key-value pairs for your reference. |
Response
Response Fields
| Field | Type | Description |
|---|---|---|
payin_id | string | Unique pay-in identifier. |
quote_id | string | Associated quote ID. |
status | string | Current status: awaiting_deposit, processing, completed, failed. |
source_currency | string | Source fiat currency. |
destination_currency | string | Destination stablecoin. |
destination_network | string | Destination blockchain. |
destination_address | string | Wallet address for stablecoin delivery. |
source_amount | integer | Amount in smallest fiat unit. |
estimated_stablecoin_amount | string | Expected stablecoin amount in human-readable format. |
payment_instructions | object | Bank transfer details (beneficiary account, name, bank code, country, reference). |
expires_at | string | ISO 8601 timestamp when pay-in window closes. |
created_at | string | ISO 8601 timestamp of creation. |
Pay-in States
| Status | Description |
|---|---|
awaiting_deposit | Waiting for fiat deposit. Use payment_instructions to transfer funds. |
processing | Fiat received and being converted. |
completed | Stablecoins delivered to destination address. |
failed | Transaction failed. Check details for reason. |
Notes
- Pay-in windows typically remain open for 15 minutes. Complete the bank transfer within this timeframe.
- Use the
referencefield frompayment_instructionsin your bank transfer to match deposits. - Monitor pay-in status via the Get Pay-in endpoint or webhooks.