1
Create a corridor
Send a A successful request returns Save the
POST /corridors request with the destination currency you want to pay out in. You only need to do this once per currency—reuse the same corridor ID for every subsequent quote and pay.201 Created with the new corridor object:The corridor starts in
PENDING_KYC status. It transitions to ACTIVE only after your organization completes KYC verification in the Meterlane dashboard under Settings → Corridors. You cannot request quotes or initiate payouts until the corridor is ACTIVE.id from this response—you will use it in every subsequent call for this currency.2
Get a quote
Request a live FX quote by calling The response contains everything you need to confirm the payout:
GET /corridors/:id/quote with the amount of USDC you want to send. The amount query parameter is denominated in USDC.3
Initiate the payout
Submit the payout by calling A successful request returns The payment starts as
POST /corridors/:id/pay. You must include an Idempotency-Key header on every pay request. If you retry a failed network call using the same key, the API returns the original cached response instead of creating a duplicate payment.202 Accepted:PENDING. Circle processes the fiat leg asynchronously. When Circle confirms or fails the transfer, it posts a webhook event to Meterlane, which updates the payment status to SETTLED, FAILED, or COMPLIANCE_HOLD. See Webhooks for how to receive those updates.Beneficiary validation rules
Thebeneficiary object is validated on every pay request. Fields that are always required: name, bankName, accountNumber, country, and currency. Three countries have additional account-number format rules enforced at the API level.
Country-specific account number rules
Country-specific account number rules
Digits are extracted from the
accountNumber string before length validation, so hyphens and spaces in the input do not cause false failures. However, it is good practice to send a clean numeric string.