Skip to content

Changelog ​

Every partner-visible change to the API contract, callback shape, or error codes.

v2.5 — 2026-10-13 ​

  • Optional section shrunk to 3 fields on POST /inbound. The following five are promoted to Required:
    • permanent_address
    • receiver_birthplace
    • sender_msisdn (send "" for cash-counter and web-only channels)
    • sender_middle_name (send "" when the sender has no middle name)
    • receiver_middle_name (send "" when the receiver has no middle name)
  • Remaining optional fields: reason_details, provider_name, callback_url — all three are either internal metadata or a per-request override of a merchant-channel default.
  • Updated the full-compliance curl example to include all newly-required fields.
  • No change to error codes, response shape, callbacks or auth.

v2.4 — 2026-10-13 ​

  • 5 fields promoted to hard-required on POST /inbound (previously documented as optional). Vodacom's M-Pesa IMT transfer step rejects the live payout with INS-10005 when any of these are missing, even though the switch accepts validation. Enforcing them at submission with RMT-1005 avoids a late silent Submitted → Failed transition:
    • sender_city
    • current_address
    • profession
    • document_issue_date
    • document_expiration_date
  • No change to error codes, response shape, callbacks or auth.

v2.3 — 2026-10-07 ​

  • New guide: Sandbox testing covering default test MSISDNs per operator, prefix validation rules, mock callback format (SIMULATED- / SIM- references), the 1 USD per-transaction cap (RMT-9003), the X-Skip-Name-Check header workaround for the M-Pesa pre-validation step, how to top up a sandbox wallet, and the real-switch dry-run option before Go Live.
  • No API contract change. Auth, endpoint URLs, callback contract, required fields unchanged.

v2.2 — 2026-08-14 ​

  • reason_of_transaction enum extended with 12 new values to align with the finer-grained Wakapay purposeOfTransfer set. Full enum now 23 values (was 11).
  • New values: INVESTMENT, CONSTRUCTION, RENT, GENERAL, FUEL, REPAIRS, PERSONAL_CARE, FOOD_AND_GROCERIES, TRANSPORT, SHOPPING, ENTERTAINMENT, DONATIONS.
  • No other API contract change. Auth, endpoint URLs, callback contract, required fields unchanged.

v2.1 — 2026-08-13 ​

  • 8 KYC fields promoted from soft-required to hard-required on /inbound per BCC RTS Art.66 Instr.15 + FATF R.16:
    • sender_birthplace
    • sender_document_type (enum: PASSPORT, NATIONAL_ID, DRIVING_LICENCE, VOTER_CARD, OTHER)
    • reason_of_transaction (enum, then 11 values, extended to 23 in v2.2)
    • source_of_funds (enum, 10 values)
    • receiver_birthdate
    • receiver_document_type
    • receiver_document_number
    • receiver_current_address or receiver_permanent_address (either-or, new code RMT-1018 when both missing)
  • Corrected: sender_birthdate was already required since 2026-07-23; docs finally aligned.
  • Documented as permanent optional with rationale: sender_msisdn, reason_details, sender_middle_name, receiver_middle_name.
  • New error codes: RMT-1015 (invalid sender_document_type), RMT-1016 (invalid reason_of_transaction), RMT-1017 (invalid source_of_funds), RMT-1018 (both receiver_*_address missing).

v2.0 — 2026-06-25 ​

  • Mandatory expected_receiver_name on /inbound (FATF R.16 aggregator KYC).
  • Live name match in the /account-lookup response (name_match block).
  • New endpoint GET /transactions/{reference}/timeline for full per-transaction event audit.
  • Multi-currency sender support — EUR, NGN, GHS, UGX, CAD in addition to USD.
  • New endpoint GET /remittance/rate/live for on-demand FX rates.
  • New error codes RMT-1005 (missing field), RMT-4006 (name mismatch), RMT-9001 (endpoint disabled).
  • /outbound explicitly disabled (RMT-9001) until further notice.
  • Receiver currency on DRC corridor confirmed as USD-only.

v1.0 — 2026-03-26 ​

  • Initial release.
  • Endpoints: /inbound, /balance, /transactions, /transaction/status, /rate, plus HMAC-SHA256 webhook contract.

Documentation is versioned alongside the API. Confidential — for integration partners.