Skip to main content
This guide walks through creating a payment order using the Sender API, the recommended path for all new integrations. You’ll have a working off-ramp 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.

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.

Order Statuses

  • initiated — order created, awaiting deposit
  • deposited — deposit confirmed (off-ramp)
  • 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 most chains; on-ramps to Tron have a higher minimum, stated in the error if an order is below it

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