Send and receive
Stablecoin payment flow
Stablecoins can be sent and received using the Cross River stablecoin payments API. Each transaction is initiated, validated, and reconciled through Cross River regulated infrastructure, ensuring that onchain transfers follow the same operational, compliance, and regulatory frameworks applied to other payment rails.
Outbound payments (send)
Use the POST /v1/payments endpoint to send stablecoins to a verified external blockchain address. For outbound payments, USD is debited from the Cross River account, and the corresponding USDC amount is delivered onchain.
How it works
Step 1: Payment initiation Submit a request to POST /v1/payments specifying the account number, amount, currency (USDC), blockchain (solana), and destination blockchain address.
Step 2: Validation Cross River:
- Validates account permissions
- Verifies available balances
- Confirms that the specified blockchain and asset are supported
- Performs any other necessary compliance and regulatory validations
Step 3: Execution Once validated, the transaction is broadcast to the selected blockchain for settlement.
Step 4: Confirmation After settlement, Cross River records the transaction and issues a webhook notification (Crypto.Payment.Sent) containing the payment ID and blockchain transaction hash.
Step 5: Reconciliation The completed transaction is reflected in account reporting to support operational and accounting traceability.
Inbound payments (receive)
Stablecoins may be received into a Cross River-managed onchain address. Inbound transfers are detected and validated once confirmed onchain, after which USD is credited to the Cross River account.
How it works
Step 1: Address retrieval Use GET /v1/accounts/{accountNumber}/account-addresses to retrieve the receiving blockchain address for the selected network.
Step 2: Sender transfer initiation A sender, which may be Cross River’s customer or the customer’s customer (i.e. the end user), initiates a stablecoin transfer to the retrieved address using a supported blockchain network.
Step 3: Onchain confirmation Cross River detects the transaction and validates that it matches the account and asset configuration, and issues a Crypto.Payment.OnchainPaymentDetected webhook.
Step 4: PII submission and account credit If sender PII is not being reused from a previous transfer, provide the required sender PII using POST /v1/payments/{id}/pii. Once the required PII is submitted and the transfer is validated, the equivalent USD amount is credited to the account and reflected in reporting.
Step 5: Notification A webhook (Crypto.Payment.Received) confirms that the inbound transfer has completed successfully.
Example
A payment of 1,000 USDC is sent to a supplier.
- A call is made to POST /v1/payments, specifying the supplier’s Solana blockchain address.
- Cross River validates and executes the transaction on the Solana network.
- The payment is finalized onchain, subject to network conditions.
- A webhook notification (Crypto.Payment.Sent) is issued containing the payment ID and blockchain transaction hash for reconciliation.