Improved

Stablecoin API v1.0.4 β€” Release Notes

πŸš€ Stablecoin API Update v1.0.4 is now live! πŸŽ‰

This release adds πŸ‡°πŸ‡ͺ KES (Kenyan Shilling) support alongside πŸ‡¬πŸ‡­ GHS (Ghanaian Cedi), restructures the USD remote bank account schema into explicit per-rail variants for clearer integration, and documents additional recipient fields.

✨ What's New

  • πŸ‡°πŸ‡ͺ KES (Kenyan Shilling) now supported across the API (mobile wallet & bank account payouts)
  • πŸ‡¬πŸ‡­ GHS (Ghanaian Cedi) documented alongside KES β€” same rail model (note: GHS uses beneficiary_phone_number, KES uses recipient_phone_number)
  • πŸ‡ΊπŸ‡Έ USD remote bank account schema split into four explicit per-rail variants (ACH, Domestic Wire, Int'l Wire by Account Number, Int'l Wire by IBAN)
  • πŸ†• New documented USD fields: account_type, recipient_relationship, bank_name
  • ⛓️ Supported chains endpoint now sourced from the Web3 Engine (source of truth)

πŸ‡°πŸ‡ͺ KES (Kenyan Shilling)

KES is now available across the API. It appears in supported-currency enums and adds a new account_details variant with two payout rails.

Rails

Railis_mobile_walletRequired fields
Mobile wallettrue (default)currency + recipient_phone_number
Bank accountfalsecurrency + is_mobile_wallet + account_number + swift_code

For third-party recipients, provide third_party_details (recipient_first_name + recipient_last_name).

Example β€” mobile wallet

{
  "account_details": {
    "currency": "KES",
    "is_mobile_wallet": true,
    "recipient_phone_number": "0712345678"
  }
}

Example β€” bank account

{
  "account_details": {
    "currency": "KES",
    "is_mobile_wallet": false,
    "account_number": "1234567890",
    "swift_code": "KCBLKENXXXX"
  }
}

πŸ‡¬πŸ‡­ GHS (Ghanaian Cedi)

GHS uses the same mobile-wallet / bank-account rail model as KES and is already supported. It's included here for reference alongside KES. ⚠️ Note the field-name difference: GHS uses beneficiary_phone_number for the mobile-wallet rail, whereas KES uses recipient_phone_number.

Rails

Railis_mobile_walletRequired fields
Mobile wallettrue (default)currency + beneficiary_phone_number
Bank accountfalsecurrency + is_mobile_wallet + account_number + swift_code

For third-party recipients, provide third_party_details.

Example β€” mobile wallet

{
  "account_details": {
    "currency": "GHS",
    "is_mobile_wallet": true,
    "beneficiary_phone_number": "0241234567"
  }
}

Example β€” bank account

{
  "account_details": {
    "currency": "GHS",
    "is_mobile_wallet": false,
    "account_number": "1234567890123",
    "swift_code": "GHCBGHACXXX"
  }
}

πŸ‡ΊπŸ‡Έ USD Remote Bank Account Schema β€” Per-Rail Variants

The single USD variant (with a combined transfer_method enum) has been split into four explicit oneOf variants, one per rail. Each variant carries only the transfer_method value it supports and its own required-field list β€” making it clearer which fields are needed for each rail. No request contract change: the same payloads that worked before continue to work.

Variants

Varianttransfer_methodRequired fields
πŸ‡ΊπŸ‡Έ USD β€” ACHACHaccount_number + routing_number
πŸ‡ΊπŸ‡Έ USD β€” Domestic WireWIREaccount_number + routing_number
πŸ‡ΊπŸ‡Έ USD β€” International Wire (Account Number)INT_WIREswift_code + account_number
πŸ‡ΊπŸ‡Έ USD β€” International Wire (IBAN)INT_WIREswift_code + iban

Behaviour notes

  • ACH / Domestic Wire β€” account_number is 8–12 digits; routing_number is a 9-digit ABA. Domestic WIRE with THIRD_PARTY requires the full US address (recipient_state and recipient_postal_code required).
  • International Wire β€” swift_code (BIC) is required; provide exactly one of account_number (up to 17 chars) or iban. routing_number is not used. For THIRD_PARTY, recipient_state and recipient_postal_code are optional.
  • See Create remote bank account for the full schemas.

πŸ†• Additional USD Recipient Fields

The following optional fields are now documented on the USD variants:

  • account_type β€” checking or savings
  • recipient_relationship β€” the recipient's relationship to the sender (e.g. First Party, Employee, Vendor or Supplier, Customer, Family, Other)
  • bank_name β€” the name of the recipient's bank

⛓️ Supported Chains

The supported chains metadata is now sourced from the Web3 Engine, which is the source of truth for supported chains. Chain values are de-duplicated and translated to the existing (legacy) chain names, so responses remain compatible.

πŸ™Œ Let us know if you need help integrating these updates!