I’ve implemented cross-border payment automation on SAP 1809 cash management API and encountered this exact error pattern. The solution requires configuration across three interconnected areas:
1. ISO Currency Code Maintenance:
The currencies must be properly maintained with international payment attributes. Transaction OY03 (currency codes) - verify EUR, GBP, JPY have:
- ISO Code field populated (EUR, GBP, JPY)
- Decimal places set correctly (2 for EUR/GBP, 0 for JPY)
- ‘Valid for International Payments’ checkbox enabled
Then in transaction OB22 (exchange rate types), ensure you have active exchange rates defined for USD→EUR, USD→GBP, USD→JPY with rate type ‘M’ (bank buying rate) which the API uses for validation.
2. API Payload Validation:
The cash management API in 1809 requires specific currency-related fields for cross-border transactions. Your payload structure should include currency at multiple levels:
{
"paymentMethod": "WIRE_INTL",
"sourceCurrency": "USD",
"targetCurrency": "EUR",
"amount": 10000.00,
"bankAccount": "INT_BANK_EUR",
"exchangeRateType": "M",
"paymentFormat": "SWIFT_MT103"
}
Note the separate sourceCurrency and targetCurrency fields. Many implementations only include currency field, which the API interprets as domestic payment.
3. Payment Gateway Mapping:
This is the most commonly overlooked configuration. Navigate to SPRO: Financial Accounting → Bank Accounting → Business Transactions → Payment Transactions → Payment Medium → Payment Medium Workbench.
For each payment format (SWIFT_MT103, SEPA_CT, etc.):
- Define allowed currency pairs in table T042Z_C (payment method/currency assignment)
- Configure currency conversion rules in payment format tree (transaction OBPM4)
- Map source/target currency fields to payment file positions
Specific steps for SWIFT payments:
- Transaction OBPM1 - Select your payment format
- Navigate to ‘Currency Specifications’ node
- Add entries for each currency: EUR, GBP, JPY
- Set ‘Settlement Currency’ flag for each
- Define SWIFT BIC routing rules per currency in table SWIFT_ROUTING_CURR
Bank Account Configuration:
Transaction FI12 (house banks) - for your international bank account:
- General Data tab: Set ‘Currency Type’ to ‘Multi-currency account’
- Control Data tab: Add EUR, GBP, JPY to ‘Allowed Currencies’ table
- SWIFT Data tab: Verify BIC code is valid and supports multi-currency
Payment Method Assignment:
Transaction FBZP (payment program configuration):
- Company Code → Payment Methods in Country → Select WIRE_INTL
- In ‘Currencies Allowed’ section, explicitly add EUR, GBP, JPY
- Set ‘Foreign Currency Allowed’ checkbox
- Link to the multi-currency bank account created above
API-Specific Configuration:
The REST API has additional validation rules. In transaction /IWFND/MAINT_SERVICE, locate the cash management service and check:
- Service implementation class includes currency validation logic
- Authorization object F_BKPF_BUK includes activity 01 for currencies EUR, GBP, JPY
- No currency restrictions in the API service definition
Testing Sequence:
- Verify currency maintenance: Transaction OY03 → check all three currencies
- Test exchange rate lookup: Transaction OB08 → enter USD/EUR, USD/GBP, USD/JPY
- Validate bank account: Transaction FI12 → verify multi-currency setup
- Test payment method: Transaction F110 → manual payment run with EUR vendor
- Test API call: POST with proper payload structure including sourceCurrency/targetCurrency
If errors persist after configuration, check transaction SLG1 (application log) for detailed currency validation failures. Search for log object ‘FIPAYMENT’ and look for currency-related rejection reasons. The API often masks the real error - the application log shows whether it’s a currency maintenance issue, bank account restriction, or payment gateway mapping problem.
The key insight: SAP 1809 cash management API validates currencies at three distinct checkpoints (ISO maintenance, payment method assignment, gateway mapping). All three must be configured correctly for cross-border payments to succeed.