Get payment methods and rates
Payouts
Get Payment Methods for Corridor
Retrieve available payment methods, fees, and required beneficiary fields for a currency pair/corridor.
GET
Get payment methods and rates
Overview
Returns all available payment methods for a specific currency pair/corridor, including:- Current exchange rate
- Payment methods with fees and settlement times
- Required and optional fields for each method (mostly on
beneficiary; some are top-level onPOST /initiate)
Request
Query Parameters
| Parameter | Required | Type | Description | Example |
|---|---|---|---|---|
sourceCurrency | Yes | string | Source currency (3-letter ISO code) | NGN |
destinationCurrency | Yes | string | Destination currency (3-letter ISO code) | CNY |
destinationCountryCode | Yes | string | ISO country code (3-letter ISO 3166-1 alpha-3) | CHN |
Headers
| Header | Required | Description |
|---|---|---|
x-api-key | Yes | Your API key |
Response
Response Fields
| Field | Type | Description |
|---|---|---|
corridor | object | Currency pair and destination country information |
corridor.sourceCurrency | string | Source currency (3-letter ISO code) |
corridor.destinationCurrency | string | Destination currency (3-letter ISO code) |
corridor.destinationCountryCode | string | Destination country code (3-letter ISO 3166-1 alpha-3) |
rate | object | Current exchange rate for the pair |
rate.code | string | Currency pair code (e.g., “CNY/NGN”) |
rate.rate | number | Current exchange rate (for converting sourceCurrency to destinationCurrency) - This rate is current at the time of this request. When you call POST /initiate, the system will fetch a fresh rate that may differ. Always check the exchangeRate field in the /initiate response to see the rate that was actually applied. |
methods | array | Available payment methods for this corridor |
Method Object Fields
| Field | Type | Description |
|---|---|---|
code | string | Method code (e.g., “ALIPAY”, “SWIFT”, “NIP”) |
name | string | Human-readable method name |
settlement | string | Settlement time (e.g., “Instant”, “2-5 business days”) |
fee | object | Fee information |
fee.amount | number | Fee amount |
fee.currency | string | Fee currency (3-letter ISO code) |
fee.type | string | Fee type: “FIXED”, “PERCENTAGE”, or “TIERED” |
requiredFields | array | Required fields for this method (see note below on where to send each) |
optionalFields | array | Optional fields for this method (beneficiary or top-level initiate) |
Most fields belong in the
beneficiary object on POST /initiate. Exceptions are called out in the field description—for example remitterAddress is a top-level initiate field (not nested under beneficiary). It is optional for all payment methods: provide it when the payer is not the business onboarded on Yala; when omitted, Yala uses the onboarded business address on file.Field Object Structure
| Field | Type | Description |
|---|---|---|
name | string | Field name—use on beneficiary unless the description says top-level initiate |
type | string | Data type: string, email, phone, number, enum |
validation | string (optional) | Additional validation hint (e.g., “email_or_phone”) |
required | boolean | Whether field is required |
description | string | Human-readable description |
enumValues | array (optional) | Allowed values for enum type fields (e.g., ["checking", "savings"] for ACH accountType) |
oneOf array, which means one of the field groups must be provided. For example, WeChat Pay requires either openId OR wechatUserId.
Error Responses
400 Bad Request - Invalid Parameters
400 Bad Request - Corridor Not Enabled
401 Unauthorized
Usage Example
Exchange Rate Behavior
Important: The exchange rate shown in therate.rate field is current at the time of this request.
- Rate is for reference only - The rate displayed here reflects the exchange rate at the moment you call this endpoint
- Rate may change - When you later call
POST /initiate, the system will fetch a fresh rate that may differ from what you see here - Check the actual rate used - The
POST /initiateresponse includes anexchangeRatefield showing the rate that was actually applied to your payout - No rate guarantee - There is no rate locking mechanism. The rate used is whatever is current at initiation time
Notes
- Country Codes: All country codes must be 3-letter ISO 3166-1 alpha-3 format (e.g., “CHN” for China, “NGA” for Nigeria, “USA” for United States)
- Currency Pair: Must be enabled for your business in the Yala dashboard
- Rate: The exchange rate is calculated based on the base currency anchoring logic
- Methods: Available methods depend on the destination country and currency pair
- Fields: Required fields vary by payment method - use this endpoint to discover them dynamically