Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.paycrest.io/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks through creating a payment order using the Sender API, the recommended path for all new integrations. You’ll have a working offramp in under 10 minutes. You do not need to call the public rates API first—POST /v2/sender/orders resolves an acceptable rate unless you pass a locked rate on create (see the Sender API integration guide).

Prerequisites

  • A Paycrest Sender account (sign up at app.paycrest.io)
  • KYB verification completed (typically 1–3 business days)
  • Your API Key from the dashboard

Optional: Prefetch a quote for the UI

If you want to show an exchange rate in checkout before create, call the public GET /v2/rates/{network}/{from}/{amount}/{to} endpoint (no API key). For when to pass rate on create and full examples, see Optional: prefetch quotes and account names. Endpoint reference: Get Token Rate (v2).

Step 1: Create a Payment Order

Use POST /v2/sender/orders. Set source.type and destination.type to choose the direction.
curl -X POST "https://api.paycrest.io/v2/sender/orders" \
  -H "API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "100",
    "source": {
      "type": "crypto",
      "currency": "USDT",
      "network": "base",
      "refundAddress": "0xYourWalletAddress"
    },
    "destination": {
      "type": "fiat",
      "currency": "NGN",
      "recipient": {
        "institution": "GTBINGLA",
        "accountIdentifier": "1234567890",
        "accountName": "John Doe",
        "memo": "Payment"
      }
    },
    "reference": "my-order-001"
  }'

Step 2: Complete the Payment

The response includes a providerAccount that tells you (or your user) where to send funds.

Offramp

Send tokens to providerAccount.receiveAddress before validUntil. The total to send is amount + senderFee + transactionFee (all returned in the response).

Onramp

Show providerAccount details to the user. They transfer exactly amountToTransfer in currency to accountIdentifier before validUntil.

Step 3: Track Order Status

Poll GET /v2/sender/orders/:id or listen for webhooks configured in your dashboard.
curl "https://api.paycrest.io/v2/sender/orders/ORDER_ID" \
  -H "API-Key: YOUR_API_KEY"

Order Statuses

  • initiated — order created, awaiting deposit
  • deposited — deposit confirmed (offramp)
  • pending — assigned to provider
  • fulfilling — fiat/crypto disbursement in progress
  • validated — payout confirmed by provider
  • settling — onchain release in progress
  • settled — order complete
  • expired — no deposit received before deadline
  • refunding — refund in progress
  • refunded — deposit returned to sender

Timing

  • Typical completion: under 30 seconds for the majority of orders
  • expired: receive address or virtual account never funded
  • refunded: deposit received but order couldn’t complete
  • Minimum order: $0.50 on any supported chain

Next Steps

Full Integration Guide

Webhooks, signature verification, token transfers, v1 legacy API, and more

API Reference

Interactive endpoint docs with full request/response schemas

Supported Stablecoins

Tokens, networks, contract addresses, and decimals

Supported Currencies

Active fiat corridors and delivery channels