Weav Docsv1

API reference / Withdrawals

List withdrawals

GET/v1/withdrawals

Read your withdrawals. You create withdrawals in the dashboard, because each one needs a fresh code from a person’s authenticator app. You can also turn on automatic withdrawals in the dashboard’s settings: once a day, Weav withdraws your available balance to your payout account.

To find one withdrawal by any of its numbers, pass reference to the list. It matches reference_id, provider_reference_id or channel_reference_id exactly.

Query parameters

  • per_pageinteger
    Items per page, 25 by default; values above 100 become 100.
    At least 1Default: 25
  • cursorstring
    The next_cursor or prev_cursor from the previous page.
    Up to 1024 characters
  • date_fromstring (date)
    Start date (Asia/Manila), inclusive. Send with date_to.
  • date_tostring (date)
    End date (Asia/Manila), inclusive.
  • referencestring
    Exact match on reference_id, provider_reference_id or channel_reference_id.
    Up to 64 characters

Headers

  • AuthorizationstringRequired
    Bearer plus your API key. See Authentication.

Responses

200 OK

A page of withdrawals.

What data holds
  • withdrawalsarray of objects
    15 fields in withdrawals
    • reference_idstring
    • currencystring
      ISO 4217. PHP today; more as they're enabled for your account.
      One of: PHP
    • amountnumber
    • feenumber | null
    • totalnumber | null
      amount plus fee.
    • statusstring
      PENDING, FOR_SETTLEMENT, COMPLETED or FAILED.
      One of: PENDING FOR_SETTLEMENT COMPLETED FAILED
    • railstring | null
      INSTAPAY (real time) for 50,000.00 or less; PESONET (batch, not real time) above that, or when the bank isn't on InstaPay. Null for withdrawals made before rails were recorded.
      One of: INSTAPAY PESONET
    • provider_reference_idstring | null
      The bank partner's transfer reference. Null until known.
    • channel_reference_idstring | null
      The InstaPay or PESONet reference. Null until known.
    • destinationobject
      bank_name, account_name, account_number_last4. Never the full account number.
      3 fields in destination
      • bank_namestring
      • account_namestring
      • account_number_last4string
    • failureobject | null
      code and message when the withdrawal failed. code can be null.
      2 fields in failure
      • codestring | null
      • messagestring
    • requested_atstring (date-time)
    • completed_atstring (date-time) | null
    • failed_atstring (date-time) | null
    • updated_atstring (date-time)
  • paginationobject
    4 fields in pagination
    • per_pageintegerRequired
    • next_cursorstring | nullRequired
    • prev_cursorstring | nullRequired
    • is_last_pagebooleanRequired

401 Unauthorized

Missing, malformed or unknown API key (code 4010000).

403 Forbidden

The key can't make this request (code 4030000): an address outside the key's IP allowlist, a live key before your live mode is on, or an account that isn't active. A live key sent from a browser is refused (code 4030001): keep live keys on your server.

GET

Try it: List withdrawals

Test mode
Authorization
Query Optional
cURL

Uses $WEAV_API_KEY, never your key. Paste it into a terminal, or import it into Postman.

Response

Send the request to see Weav's answer here.

curl -X GET https://api.weavpayments.com/v1/withdrawals \
    -H "Authorization: Bearer $WEAV_API_KEY"
{
    "code": "2000000",
    "success": true,
    "message": "OK",
    "data": {
        "withdrawals": [
            {
                "reference_id": "WD2H6J9K3L7M4N",
                "currency": "PHP",
                "amount": 119000.0,
                "fee": 10.0,
                "total": 119010.0,
                "status": "FOR_SETTLEMENT",
                "rail": "PESONET",
                "provider_reference_id": null,
                "channel_reference_id": null,
                "destination": {
                    "bank_name": "Sample Bank",
                    "account_name": "Sample Store Inc.",
                    "account_number_last4": "4821"
                },
                "failure": null,
                "requested_at": "2026-10-25T14:05:00+08:00",
                "completed_at": null,
                "failed_at": null,
                "updated_at": "2026-10-25T14:30:00+08:00"
            }
        ],
        "pagination": {
            "per_page": 25,
            "next_cursor": "eyJpZCI6MTM0LCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
            "prev_cursor": null,
            "is_last_page": false
        }
    }
}