WiPay
WAPIsv2.0.0

Changelog

WAPIs version history and release notes

v2.0.0

10 Mar 2026

This release introduces RESTful URL conventions, a second authentication method (WAPI Keys), and two new API modules (User, Withdrawals). Most existing endpoint paths and scope names have changed.

Authentication

New: WAPI Key authentication. Requests can now authenticate with either a Bearer token (existing) or an X-WAPI-Key header. Both methods cannot be used simultaneously. WAPI Keys support CIDR allowlists, expiry, and revocation.

Auth endpoint paths are restructured:

v1.0.5v2.0.0Method
/auth/grant/auth/tokensPOST
/auth/revoke/auth/tokensDELETE
/auth/refresh/auth/tokens/refreshPOST

Token revocation (DELETE /auth/tokens) is not supported for WAPI Key authenticated requests and returns 400 Bad Request.

Scopes

All scope identifiers are renamed. Abbreviated prefixes are expanded to full words, and pluralization is made consistent.

v1.0.5 Scopev2.0.0 Scope
wapi-accounts-allwapi-accounts-all (unchanged)
wapi-accounts-createwapi-accounts-create (unchanged)
wapi-accounts-deletewapi-accounts-delete (unchanged)
wapi-accounts-retrievewapi-accounts-retrieve (unchanged)
wapi-accounts-updatewapi-accounts-update (unchanged)
wapi-trans-allwapi-transactions-all
wapi-trans-get-historyRemoved — use wapi-transactions-retrieve
wapi-trans-get-statusRemoved — use wapi-transactions-retrieve
wapi-trans-refund-requestwapi-transactions-refund-request
wapi-trusted-card-allwapi-trusted-cards-all
wapi-trusted-card-charge-requestwapi-trusted-cards-charge-request
wapi-trusted-card-createwapi-trusted-cards-create
wapi-trusted-card-deletewapi-trusted-cards-delete
wapi-trusted-card-retrievewapi-trusted-cards-retrieve
wapi-trusted-card-verifywapi-trusted-cards-verify

New scopes:

ScopeDescription
wapi-transactions-get-feesQuery transaction fee calculations
wapi-transactions-retrieveRetrieve transaction history and individual transactions
wapi-user-allFull access to User endpoints
wapi-user-createAdd associated Bank accounts and profile picture
wapi-user-deleteRemove associated Bank accounts and profile picture
wapi-user-retrieveRetrieve profile and Bank information
wapi-user-updateUpdate password, phone, Bank accounts, and profile picture
wapi-withdrawals-allFull access to Withdrawal endpoints
wapi-withdrawals-createCreate withdrawals
wapi-withdrawals-deleteCancel pending withdrawals
wapi-withdrawals-retrieveRetrieve withdrawal history and details

Endpoint URL Migration

All endpoints now use RESTful conventions. Action verbs are removed from paths and resource identifiers move to URL path parameters.

Accounts

v1.0.5v2.0.0Change
POST /accounts/createPOST /accountsPath simplified
DELETE /accounts/deleteDELETE /accounts/{account_number}account_number moved from body to URL
GET /accounts/retrieveGET /accounts/{account_number}account_number moved from body to URL
POST /accounts/updatePATCH /accounts/{account_number}Method changed to PATCH; account_number moved to URL

Transactions

v1.0.5v2.0.0Change
GET /transactions/historyGET /transactions/Path simplified
GET /transactions/statusGET /transactions/{transaction_id}Renamed; transaction_id moved from body to URL
POST /transactions/refund_requestPOST /transactions/{transaction_id}/refundtransaction_id moved from body to URL
GET /transactions/feesNew endpoint
GET /transactions/metaNew endpoint

Trusted Cards

The URL prefix is pluralized from /trusted-card to /trusted-cards.

v1.0.5v2.0.0Change
POST /trusted-card/charge_requestPOST /trusted-cards/{uuid}/chargeuuid moved from body to URL
POST /trusted-card/createPOST /trusted-cards/Path simplified
DELETE /trusted-card/deleteDELETE /trusted-cards/{uuid}uuid moved from body to URL
GET /trusted-card/retrieveGET /trusted-cards/{uuid?}uuid is now an optional URL parameter
POST /trusted-card/verifyPOST /trusted-cards/{uuid}/verifyuuid moved from body to URL

New Endpoints on Existing Modules

Transaction Fees — GET /transactions/fees

Calculate transaction fees before initiating a payment.

Parameters: fee_structure (required), currency (required), amount (required).

Returns the fee breakdown for the given amount, currency, and fee structure. Validates the amount against platform minimum and maximum limits.

Scopes: wapi-transactions-all or wapi-transactions-get-fees

Transaction Meta — GET /transactions/meta

Retrieve transaction configuration metadata.

Returns available currencies, environments, fee structures, and per-currency total limits (minimum and maximum amounts).

Scopes: wapi-transactions-all or wapi-transactions-retrieve

Validation Changes

  • Transaction history: page_size now enforces min:1 and max:100. page now enforces min:1.
  • Account passwords: Password complexity checks are now only enforced in production environments.

New Module: User

Manage the authenticated user's own profile, Banking details, and profile picture.

MethodEndpointDescription
GET/user/Retrieve profile (account number, type, balances, Bank status, contact info, verification status)
POST/user/banks/{type}Add an associated local or foreign Bank account
DELETE/user/banks/{type}Remove an associated local or foreign Bank account
GET/user/banks/{type?}Retrieve Bank information (one or both types)
PATCH/user/banks/{type}Update Bank account details
PATCH/user/passwordUpdate password (requires old password, new password, and confirmation)
PATCH/user/phoneUpdate phone number (validated against platform country)
POST/user/pictureUpload a profile picture (max 5 MB; bmp, gif, jpeg, png, svg)
DELETE/user/pictureDelete profile picture
PATCH/user/pictureReplace existing profile picture

The {type} parameter accepts local or foreign.

New Module: Withdrawals

Create, track, and cancel fund withdrawals from a WiPay account.

MethodEndpointAuthDescription
POST/withdrawals/RequiredCreate a withdrawal
DELETE/withdrawals/{transaction_id}RequiredCancel a pending withdrawal
GET/withdrawals/RequiredList withdrawal history (with filtering and pagination)
GET/withdrawals/metaNoneRetrieve withdrawal metadata (Banks, ID types, statuses, withdrawal types)
GET/withdrawals/{transaction_id}RequiredRetrieve a specific withdrawal

Three withdrawal types are supported: normal (withdraw to the authenticated user's own Bank account), sub_banked (withdraw to a specified third-party Bank account), and sub_unbanked (withdraw without a linked Bank transaction).

History supports filters: currency, withdrawal_type, status, amount_min, amount_max, reference, transaction_id, start_date, end_date, with_deleted.

v1.0.5

07 Nov 2024

  • Revised the document and all API endpoints.

v1.0.4

28 Mar 2023

  • Improvements to the Trusted Card API endpoints.
  • General document wording and formatting improvements.

v1.0.3

28 Feb 2023

  • Improvements to the Transaction Status, Create Trusted Card, and Retrieve Trusted Card API endpoints.
  • General document wording and formatting improvements.

v1.0.2

07 Jan 2023

  • Revised the document and all API endpoints.

v1.0.1

24 Dec 2022

  • Added access token scope and JSON request header.

v1.0.0

19 Dec 2022

  • Initial release.