WiPay
WAPIsv2.0.0Withdrawals

Withdrawal History

Retrieve paginated WAPI withdrawal history

Retrieve a paginated list of withdrawal requests for the authenticated account.

Endpoint

GET /withdrawals
AccessRequirement
AuthenticatedYes
Required Scopewapi-withdrawals-retrieve, or wapi-withdrawals-all
Rate Limit15 requests per minute

Request

Headers

HeaderValue
Acceptapplication/json
AuthorizationBearer <access_token>
X-WAPI-Keywapi_live_<kid>_<secret> or wapi_test_<kid>_<secret>

Send exactly one of Authorization or X-WAPI-Key.

Query Parameters

ParameterTypeRequiredDefaultDescription
page_sizeintegerNo15Number of results per page. Maximum 100
pageintegerNo1Page number
amount_minnumericNoMinimum withdrawal amount
amount_maxnumericNoMaximum withdrawal amount
currencystringNoA supported platform currency
referencestring (UUID)NoExact match for the withdrawal reference UUID
status[]integerNoOne or more withdrawal status codes from Withdrawal Meta
transaction_idstringNoPublic transaction ID associated with the withdrawal
with_deletedbooleanNofalseInclude soft-deleted withdrawals
withdrawal_type[]stringNoOne or more API mode values from normal, sub_banked, sub_unbanked
start_datedateNoFilter by creation date on or after this date
end_datedateNoFilter by creation date on or before this date

Responses

200 OK

{
  "message": "OK",
  "data": {
    "data": [
      {
        "amount": "100.00",
        "bank_account_type": null,
        "bank_account": "1234567890",
        "bank_branch": null,
        "bank_name": "First Citizens",
        "created_at": "2025-03-06T13:00:00Z",
        "currency": "USD",
        "deleted_at": null,
        "email": "recipient@example.com",
        "fee_amount": "5.00",
        "id_number": "TB963809",
        "id_type": "passport",
        "name_in_bank": "TEST RECIPIENT",
        "phone": "+18687778899",
        "reference": null,
        "status_description": "Not On ACH File",
        "status": 0,
        "transaction_id": "SB-47-1-W12345-20250306010101",
        "updated_at": "2025-03-06T13:00:00Z",
        "withdrawal_type": "sub_banked"
      }
    ],
    "links": {
      "first": "https://...",
      "last": "https://...",
      "prev": null,
      "next": "https://..."
    },
    "meta": {
      "current_page": 1,
      "from": 1,
      "last_page": 1,
      "path": "https://...",
      "per_page": 15,
      "to": 1,
      "total": 1
    }
  }
}

Withdrawal Object

FieldTypeDescription
amountstringNormalized withdrawal amount
fee_amountstringNormalized withdrawal fee
currencystringWithdrawal currency
withdrawal_typestringAPI mode value: normal, sub_banked, or sub_unbanked
transaction_idstring | nullPublic transaction ID tied to the withdrawal
referencestring | nullUUID reference used by sub_unbanked withdrawals
statusintegerWithdrawal status code
status_descriptionstringHuman-readable description of status
bank_namestring | nullDestination bank
bank_branchstring | nullDestination bank branch
bank_account_typestring | nullchequing or savings when captured
bank_accountstring | nullDestination bank account
name_in_bankstring | nullDestination account holder name
emailstring | nullRecipient email
phonestring | nullRecipient phone
id_typestring | nullID type submitted with the withdrawal
id_numberstring | nullID number submitted with the withdrawal
created_atstring | nullISO 8601 timestamp
updated_atstring | nullISO 8601 timestamp
deleted_atstring | nullSoft-delete timestamp when the withdrawal has been deleted

sub_banked and sub_unbanked should be read as API processing modes for MMA-authorized external-recipient withdrawals, not as definitive real-world labels for the recipient.

400 Bad Request

{
  "message": "The page_size must not be greater than 100."
}

401 Unauthorized

{
  "message": "Unauthorized"
}

403 Forbidden

{
  "message": "Invalid scope(s) provided."
}

Example

curl -X GET "https://ttsb.wipayfinancial.com/wapi/withdrawals?page_size=10&withdrawal_type[]=sub_banked&with_deleted=false" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer <access_token>"