# GetCurrencyTypesOfPayment Method
Overview
This method allows Client Applications to obtain a list of payment currencies combined with the associated payment methods available in a given country. This is a critical method for building dynamic payment forms that adapt to the selected destination country.
Use Cases:
- Display available payment methods for a destination country
- Get currency options for a specific corridor
- Validate payment method availability before creating orders
- Build dynamic payment forms with country-specific validations
- Display amount limits per payment method
Performance: Typically responds in 50-150ms (highly cacheable)
Caching Recommendation: Cache this data for 24 hours per country pair and refresh daily.
Request Fields
| Field Name | Type (Length) | Option | Description |
|---|---|---|---|
| AgentID | Integer (9) | R | Your agent ID |
| PartnerID | Integer (9) | R | Your partner ID |
| SenderCountry | Alpha (2) | R | ISO 3166-1 alpha-2 code (e.g., "US") |
| RecipientCountry | Alpha (2) | R | ISO 3166-1 alpha-2 code (e.g., "BR") |
Request Examples
Example 1: Get Payment Methods for US → Brazil
SOAP Request:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthHeader xmlns="http://mts.geobridge.org/">
<UserName>your_username</UserName>
<Password>your_password</Password>
</AuthHeader>
</soap:Header>
<soap:Body>
<GetCurrencyTypesOfPayment xmlns="http://mts.geobridge.org/">
<AgentID>12345</AgentID>
<PartnerID>100</PartnerID>
<SenderCountry>US</SenderCountry>
<RecipientCountry>BR</RecipientCountry>
</GetCurrencyTypesOfPayment>
</soap:Body>
</soap:Envelope>
SOAP Response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetCurrencyTypesOfPaymentResponse xmlns="http://mts.geobridge.org/">
<GetCurrencyTypesOfPaymentResult>
<PaymentMethods>
<PaymentMethod>
<CurrencyOfPaymentText>Brazilian Real</CurrencyOfPaymentText>
<CurrencyOfPayment>BRL</CurrencyOfPayment>
<CurrencyOfPaymentID>1</CurrencyOfPaymentID>
<TypeOfPaymentID>1</TypeOfPaymentID>
<TypeOfPaymentText>Bank Deposit</TypeOfPaymentText>
<MaxAmountSent>10000.00</MaxAmountSent>
<MaxAmountReceived>52500.00</MaxAmountReceived>
<RecipientBankAccoutTypes>checking,savings</RecipientBankAccoutTypes>
<MinimumAccountDigits>4</MinimumAccountDigits>
<MaximumAccountDigits>20</MaximumAccountDigits>
</PaymentMethod>
<PaymentMethod>
<CurrencyOfPaymentText>Brazilian Real</CurrencyOfPaymentText>
<CurrencyOfPayment>BRL</CurrencyOfPayment>
<CurrencyOfPaymentID>1</CurrencyOfPaymentID>
<TypeOfPaymentID>2</TypeOfPaymentID>
<MaxAmountSent>5000.00</MaxAmountSent>
<MaxAmountReceived>26250.00</MaxAmountReceived>
<RecipientBankAccoutTypes></RecipientBankAccoutTypes>
<MinimumAccountDigits>0</MinimumAccountDigits>
<MaximumAccountDigits>0</MaximumAccountDigits>
</PaymentMethod>
</PaymentMethods>
</GetCurrencyTypesOfPaymentResult>
</GetCurrencyTypesOfPaymentResponse>
</soap:Body>
</soap:Envelope>
Explanation:
- Brazil accepts BRL (Brazilian Real) only
- 2 payment methods available:
TypeOfPaymentID Reference
Understanding TypeOfPaymentID is critical for creating orders. This ID determines which payment method will be used and what fields are required.
Brazil (BR)
| TypeOfPaymentID | Payment Method | Description | Required Fields |
|---|---|---|---|
| 31 | TED/DOC/PIX Bank Deposit | Traditional bank transfer or PIX | RecipientBankName, RecipientBankRouting, RecipientBankAccountNo, RecipientBankAccoutType |
| 42 | PIX | Instant payment via PIX key | PixTypeId, PixId (NO bank account fields) |
Important Notes:
- TypeOfPaymentID 31 can be used for TED, DOC, or PIX transfers to bank accounts
- TypeOfPaymentID 42 is exclusively for PIX key transfers (CPF, Phone, Email, Random Key)
- When using PIX (42), you must NOT include bank account fields
Detailed Brazil Payment Methods
| TypeOfPaymentID | Method | Processing Time | Max Amount | Account Format | Notes |
|---|---|---|---|---|---|
| 31 | Bank Deposit (TED/DOC/PIX) | 30-120 minutes | $10,000 | Bank code (3) + Branch (4-5) + Account (8-12) | Traditional bank transfer, requires CPF/CNPJ |
| 42 | PIX (Instant Payment) | 5-30 minutes | $10,000 | PIX key only (CPF/Phone/Email/Random) | Instant, 24/7, no bank account needed |
| 3 | Cash Pickup (Sicoob) | 30-60 minutes | $5,000 | None | Generates OrderClaimCode |
| 311 | Cash Pickup (Lotérica) | 30-60 minutes | $5,000 | None | Generates OrderClaimCode |
Account Types: checking (Conta Corrente), savings (Poupança)
PIX Key Types:
- CPF: 11 digits (e.g., "12345678901")
- PHONE: International format (e.g., "+5511999999999")
- EMAIL: Valid email (e.g., "user@domain.com")
- RANDOMKEY: UUID (e.g., "123e4567-e89b-12d3-a456-426614174000")
Bank Code Examples:
- 001 = Banco do Brasil
- 237 = Bradesco
- 341 = Itaú
- 104 = Caixa Econômica Federal
- 033 = Santander
- 260 = Nubank
- 077 = Banco Inter
Compliance: Serasa validation for CPF/CNPJ required
United States (US)
| TypeOfPaymentID | Payment Method | Description | Processing Time |
|---|---|---|---|
| 449 | ACH Transfer | Automated Clearing House | 1-3 business days |
| 784 | FedWire (Same Day) | Federal Reserve Wire Network | Same business day |
| 783 | FedNow (Instant) | Instant payment service | Real-time (24/7/365) |
Important Notes:
- TypeOfPaymentID values may vary by partner configuration
- Use GetCurrencyTypesOfPayment to confirm your available IDs
- All US methods require: RecipientBankName, RecipientBankRouting (9-digit ABA), RecipientBankAccountNo, RecipientBankAccoutType
Detailed US Payment Methods
| TypeOfPaymentID | Method | Processing Time | Max Amount | Account Format | Notes |
|---|---|---|---|---|---|
| 449 | ACH Transfer | 1-3 business days | $15,000 | ABA routing (9 digits) + Account | Most economical, business days only |
| 784 | FedWire (Same Day) | Same day | $25,000 | ABA routing (9 digits) + Account | Same-day, higher fees, before 5 PM ET |
| 783 | FedNow (Instant) | Instant (seconds) | $25,000 | ABA routing (9 digits) + Account | NEW! 24/7/365, real-time settlement |
\*Note: TypeOfPaymentID values may vary by partner. Use GetCurrencyTypesOfPayment to confirm your available IDs.
Account Types: checking, savings
ABA Routing Number:
- 9 digits (e.g., "021000021" for JPMorgan Chase)
- First 4 digits: Federal Reserve routing symbol
- Next 4 digits: Bank identifier
- Last digit: Check digit
Validation: GIACT real-time bank account validation required
Processing Details:
- ACH: Monday-Friday only, no weekends/holidays
- FedWire: Monday-Friday, cutoff 5:00 PM ET
- FedNow: 24/7/365 including weekends and holidays
Common US Banks:
- 021000021 = JPMorgan Chase
- 026009593 = Bank of America
- 111000025 = Wells Fargo
- 121000248 = Citibank
- 031201360 = PNC Bank
- 044000037 = US Bank
Example Response with Multiple Payment Methods
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetCurrencyTypesOfPaymentResponse xmlns="http://mts.geobridge.org/">
<GetCurrencyTypesOfPaymentResult>
<PaymentMethods>
<!-- TED/DOC/PIX Bank Deposit -->
<PaymentMethod>
<CurrencyOfPaymentText>Brazilian Real</CurrencyOfPaymentText>
<CurrencyOfPayment>BRL</CurrencyOfPayment>
<CurrencyOfPaymentID>1</CurrencyOfPaymentID>
<TypeOfPaymentID>31</TypeOfPaymentID>
<TypeOfPaymentText>Bank Deposit (TED/DOC/PIX)</TypeOfPaymentText>
<MaxAmountSent>10000.00</MaxAmountSent>
<MaxAmountReceived>52500.00</MaxAmountReceived>
<RecipientBankAccoutTypes>checking,savings</RecipientBankAccoutTypes>
<MinimumAccountDigits>4</MinimumAccountDigits>
<MaximumAccountDigits>20</MaximumAccountDigits>
</PaymentMethod>
<!-- PIX via Key -->
<PaymentMethod>
<CurrencyOfPaymentText>Brazilian Real</CurrencyOfPaymentText>
<CurrencyOfPayment>BRL</CurrencyOfPayment>
<CurrencyOfPaymentID>1</CurrencyOfPaymentID>
<TypeOfPaymentID>42</TypeOfPaymentID>
<TypeOfPaymentText>PIX</TypeOfPaymentText>
<MaxAmountSent>10000.00</MaxAmountSent>
<MaxAmountReceived>52500.00</MaxAmountReceived>
<RecipientBankAccoutTypes></RecipientBankAccoutTypes>
<MinimumAccountDigits>0</MinimumAccountDigits>
<MaximumAccountDigits>0</MaximumAccountDigits>
</PaymentMethod>
</PaymentMethods>
</GetCurrencyTypesOfPaymentResult>
</GetCurrencyTypesOfPaymentResponse>
</soap:Body>
</soap:Envelope>
Response Fields Explained
Payment Method Information
| Field | Description | Example |
|---|---|---|
| CurrencyOfPaymentText | Human-readable currency name | "Brazilian Real" |
| CurrencyOfPayment | ISO 4217 currency code | "BRL" |
| CurrencyOfPaymentID | Internal currency ID | 1 |
| TypeOfPaymentID | Payment method ID | 1 (Bank), 2 (Cash) |
| TypeOfPaymentText | Human-readable payment method | "Bank Deposit" |
Amount Limits
| Field | Description | Important Notes |
|---|---|---|
| MaxAmountSent | Maximum USD per transaction | Partner-specific, may vary |
| MaxAmountReceived | Maximum in destination currency | Calculated using current rate |
Note: Minimum amounts are typically $10 USD for all corridors.
Error Response Example
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>No payment methods available</faultstring>
<detail>
<ErrorCode>2050</ErrorCode>
<ErrorMessage>No payment methods available for corridor US → ZW</ErrorMessage>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Integration Best Practices
2. Build Dynamic Payment Method Selector
async function buildPaymentMethodSelector(senderCountry, recipientCountry) {
const methods = await getPaymentMethods(senderCountry, recipientCountry);
// Group by currency (if multiple currencies)
const byCurrency = methods.reduce((acc, method) => {
if (!acc[method.CurrencyOfPayment]) {
acc[method.CurrencyOfPayment] = [];
}
acc[method.CurrencyOfPayment].push(method);
return acc;
}, {});
// Build UI options
const options = [];
for (const [currency, currencyMethods] of Object.entries(byCurrency)) {
currencyMethods.forEach((method) => {
options.push({
value: method.TypeOfPaymentID,
label: `${method.TypeOfPaymentText} (Max: ${method.MaxAmountSent})`,
currency: method.CurrencyOfPayment,
maxAmount: method.MaxAmountSent,
requiresAccount: method.MinimumAccountDigits > 0,
accountTypes:
method.RecipientBankAccoutTypes.split(",").filter(Boolean),
});
});
}
return options;
}
4. Display Payment Method with Limits
function displayPaymentMethodInfo(method) {
const requiresAccount = method.MinimumAccountDigits > 0;
return `
┌─────────────────────────────────────────┐
│ ${method.TypeOfPaymentText}
├─────────────────────────────────────────┤
│ Currency: ${method.CurrencyOfPayment} (${method.CurrencyOfPaymentText})
│ Max Amount: ${method.MaxAmountSent} USD
│
${
requiresAccount
? `│ Bank Account Required:
│ • Account Types: ${method.RecipientBankAccoutTypes}
│ • Length: ${method.MinimumAccountDigits}-${method.MaximumAccountDigits} digits`
: "│ No bank account needed"
}
└─────────────────────────────────────────┘
`;
}
5. Validate Amount Against Payment Method Limits
function validateAmount(amount, paymentMethod) {
// Check minimum (typically $10)
if (amount < 10) {
return {
valid: false,
error: "Minimum amount is $10.00 USD",
};
}
// Check maximum for selected payment method
if (amount > paymentMethod.MaxAmountSent) {
return {
valid: false,
error: `Maximum amount for ${paymentMethod.TypeOfPaymentText} is ${paymentMethod.MaxAmountSent} USD. Please choose a different payment method or reduce the amount.`,
};
}
return { valid: true };
}
Testing
Related Methods
Before calling GetCurrencyTypesOfPayment:
- GetActiveCountries - Get list of supported countries
After getting payment methods:
- GetRatesAndCosts - Calculate costs for selected payment method
- CreateNewOrder - Create order with selected payment method
Support
- remittance@inter.co
- marcos.lanzoni@inter.co