Changelog

All notable, developer-facing changes to the Esca API are recorded here, most recent first. Dates are in YYYY-MM-DD.

Changes are grouped under the affected area and tagged Added, Changed, Fixed, Deprecated or Removed. Only changes that affect the public API surface (endpoints, request/response fields, behaviour) are listed.


2026-10-22

Webhooks — Wallet events

Added

  • Documented the wallet.credited and wallet.debited event types and payloads, which were already being delivered but missing from the reference.
  • wallet.credited now includes the originating payer on fiat bank deposits: senderName, senderAccountNumber, senderBankCode (with senderBankCodeType — BIC/SORT_CODE/ROUTING_NUMBER/BANK_CODE/BANK_NAME), the paymentReference and the paymentRail (the network the transfer arrived on, normalised across providers to a standard set: FASTER_PAYMENTS, BACS, CHAPS, SWIFT, SEPA, SEPA_INSTANT, FEDWIRE, ACH, TARGET2, UNKNOWN). These fields are omitted for crypto deposits and conversion credits, where no external bank sender exists.

2026-10-15

Payouts — Fiat (POST /v1/payouts/fiat)

Added

  • Non-IBAN destinations — countries that do not use IBAN are now identified by a plain local account number in accountNumber (US, Canada, Australia, New Zealand, India and most of Africa, Asia and Latin America).
  • Canada (countryCode: "CA") — institutionNumber (3 digits) and transitNumber (5 digits).
  • Australia / New Zealand (countryCode: "AU" / "NZ") — bsbNumber, the 6-digit BSB (Bank-State-Branch) number.
  • India (countryCode: "IN") — ifscCode, the 11-character IFSC code.
  • Reference documentation for these routing fields, with example requests for Canada, Australia and India.

Changed

  • accountNumber now means IBAN for IBAN-using countries, plain account number otherwise. For non-IBAN destinations, send the local account number — not an IBAN.

Fixed

  • Bank-detail validation no longer rejects a valid non-IBAN account with a spurious IBAN country code (..) does not match the selected country code error.

These changes are additive — integrations that already send a single accountNumber keep working; the new routing fields are only required for the destinations listed above.


2026-07-22

Rates — OTC (WebSocket) & Conversions

Added

  • OTC Rates feed — a dedicated WebSocket channel for indicative NGN/GHS OTC pricing, documented under Live Rates → OTC Rates.
  • Create OTC Quote (POST /v1/conversions/otc-quote) — request a locked OTC quote for NGN/GHS conversions.

2026-07-21

Payouts & Conversions

Added

  • createdAt and updatedAt timestamps on payout responses (POST /v1/payouts/*, payout status, list payouts) and on the conversion status response.

2026-06-08

Rates — Live Rates (WebSocket)

Added

  • Live Rates streaming — a WebSocket feed (/v1/rates) of indicative bid/ask prices, with connecting, subscribing and error/limit guides.

2026-05-22

Conversions (POST /v1/conversions/convert)

Added

  • accountId (optional) — choose which NGN virtual account to debit when sourceCurrency is NGN. If omitted, the first available NGN account is used; ignored for non-NGN sources.

2026-04-30

Files & Payouts

Added

  • Upload File (POST /v1/files) — upload a document and reference the returned data.id on later requests.
  • Fiat payouts accept paymentPurposeAttachmentId — attach a previously uploaded document (e.g. an invoice) to a payout.

2026-04-26

Conversions, Payouts & Wallet (major release)

Added

  • Conversions — overview, Create Quote, Get Quote, Convert (POST /v1/conversions/convert) and Conversion Status.
  • Payouts — Crypto Payout (POST /v1/payouts/crypto), Fiat Payout (POST /v1/payouts/fiat), Payout Status and List Payouts.
  • Wallet — Balances (GET /v1/wallet/balances) across NGN, USD, EUR, GBP, BTC, USDT and USDC.
  • New webhook event types and payloads for conversions and payouts.

2026-02-10

Webhooks

Added

  • Dedicated webhook event types and payloads for bulk transfers.

2026-02-08

Virtual Accounts

Added

  • Look up a transfer by your own external reference on the transfer-status endpoint; related transfer and bulk-transfer fields documented.

2026-01-25

Virtual Accounts

Added

  • Simulate Deposit — a sandbox endpoint to simulate an inbound deposit to a virtual account.

2026-01-21

Initial release

Added

  • First public API documentation: Introduction, Getting Started, Authentication, Virtual Accounts (create, list, get, banks, verify, transfer fee, transfer, transfer status, bulk transfer + status, transactions), Webhooks, and the Error Handling, Idempotency, Rate Limiting, Code Examples and Support guides.