# List withdrawals Building with an AI agent? Start at https://docs.payme.io/agents.md - Sandbox: `POST https://sandbox.payme.io/api/get-withdrawals` - Production: `POST https://live.payme.io/api/get-withdrawals` ## Credentials - Header `PayMe-Partner-Key` (optional): Partner key, instead of `payme_client_key` in the body. Partners only. - Header `PayMe-Merchant-Key` (optional): A seller's own MPL, instead of `seller_payme_id` in the body. - Request body field `payme_client_key` (optional): Partner key. Partners only. Can also be sent in the `PayMe-Partner-Key` header. Without `seller_payme_id`, the query covers all your sellers. - Request body field `seller_payme_id` (optional): The seller's MPL. A partner can send one MPL or an array of up to 100 MPLs of its own sellers to narrow the query. A seller sends its own MPL, here or in the `PayMe-Merchant-Key` header, and gets only its own data. Returns past withdrawals (payouts to the seller's bank account) for one seller or all your sellers. Canceled withdrawals are not returned. Use `withdrawal_payme_code` to match a withdrawal to the `withdrawal_id` from withdraw-balance and to the `tran_payme_code` of the `withdrawal-complete` callback. To match a withdrawal to its sales, see [Reconcile sales and withdrawals](/accepting-payments/reporting/reconcile-sales-and-withdrawals). A partner sends `payme_client_key` (or the `PayMe-Partner-Key` header) and, optionally, `seller_payme_id`: one MPL or an array of up to 100 MPLs of its own sellers. Without it, the query covers all your sellers. A seller sends its own MPL as `seller_payme_id` in the body, or in the `PayMe-Merchant-Key` header, and gets only its own data. When you send exactly one `seller_payme_id`, the response also returns it at the top level, with `seller_id`. An inactive seller then returns error `163`, and a seller that isn't yours returns error `20`. Filters are exact matches, except `withdrawal_created_min` / `withdrawal_created_max`. Most filters take a single value or an array of up to 100 values. Dates are `yyyy-mm-dd hh:mm:ss`, Asia/Jerusalem time. Results come in pages of up to 500 items (default 500). A call without `page` and `page_size` returns only the first 500. Paging, sorting and filter rules are on [Query APIs](/payments/query-apis). ## Parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `PayMe-Partner-Key` | header | string | no | Partner key, instead of `payme_client_key` in the body. Partners only. | | `PayMe-Merchant-Key` | header | string | no | A seller's own MPL, instead of `seller_payme_id` in the body. | ## Request body Content type: `application/json` Every field is optional. Send at least your credentials. | Field | Type | Required | Description | | --- | --- | --- | --- | | `payme_client_key` | string | no | Partner key. Partners only. Can also be sent in the `PayMe-Partner-Key` header. Without `seller_payme_id`, the query covers all your sellers. | | `seller_payme_id` | string | no | The seller's MPL. A partner can send one MPL or an array of up to 100 MPLs of its own sellers to narrow the query. A seller sends its own MPL, here or in the `PayMe-Merchant-Key` header, and gets only its own data. | | `withdrawal_payme_code` | integer | no | PayMe's withdrawal code (the `withdrawal_id` from withdraw-balance). | | `withdrawal_created` | string | no | Exact creation date and time, `yyyy-mm-dd hh:mm:ss`. | | `withdrawal_created_min` | string | no | Created at or after this time, `yyyy-mm-dd hh:mm:ss`. | | `withdrawal_created_max` | string | no | Created at or before this time, `yyyy-mm-dd hh:mm:ss`. | | `withdrawal_total` | integer | no | Exact amount, in minor units (`5075` = 50.75). | | `withdrawal_currency` | string | no | Withdrawal currency, 3-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code. | | `page` | integer | no | Page number, `1`–`1000`. Default `1`. Out of range returns error `52`. | | `page_size` | integer | no | Items per page, `1`–`500`. Default `500`. Out of range returns error `27`. | | `items_order_by_column` | string | no | Field to sort by, for example `withdrawal_created`. Without it, the order isn't guaranteed and `items_order_by_direction` is ignored. | | `items_order_by_direction` | string | no | `asc` (default) or `desc`, in upper or lower case. Used only with `items_order_by_column`. Any other value returns error `28`. | ### Request example ```json { "payme_client_key": "XXXXXXXX", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "withdrawal_created_min": "2026-10-01 00:00:00", "items_order_by_column": "withdrawal_created", "items_order_by_direction": "desc" } ``` ## Code samples ### curl ```bash curl -X POST 'https://sandbox.payme.io/api/get-withdrawals' \ -H 'Content-Type: application/json' \ -H 'PayMe-Partner-Key: ' \ -H 'PayMe-Merchant-Key: ' \ --data-raw '{ "payme_client_key": "XXXXXXXX", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "withdrawal_created_min": "2026-10-01 00:00:00", "items_order_by_column": "withdrawal_created", "items_order_by_direction": "desc" }' ``` ### Node.js ```javascript const response = await fetch("https://sandbox.payme.io/api/get-withdrawals", { method: "POST", headers: { "Content-Type": "application/json", "PayMe-Partner-Key": "", "PayMe-Merchant-Key": "", }, body: JSON.stringify({ "payme_client_key": "XXXXXXXX", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "withdrawal_created_min": "2026-10-01 00:00:00", "items_order_by_column": "withdrawal_created", "items_order_by_direction": "desc" }), }); console.log(await response.text()); ``` ### Python ```python import requests response = requests.post( "https://sandbox.payme.io/api/get-withdrawals", headers={ "PayMe-Partner-Key": "", "PayMe-Merchant-Key": "", }, json={ "payme_client_key": "XXXXXXXX", "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "withdrawal_created_min": "2026-10-01 00:00:00", "items_order_by_column": "withdrawal_created", "items_order_by_direction": "desc", }, ) print(response.text) ``` ### PHP ```php 'POST', CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'PayMe-Partner-Key: ', 'PayMe-Merchant-Key: ', ], CURLOPT_POSTFIELDS => $body, ]); $response = curl_exec($ch); curl_close($ch); echo $response; ``` ## Responses ### 200 — OK (success) | Field | Type | Description | | --- | --- | --- | | `status_code` | integer | `0` on success. | | `seller_payme_id` | string | The seller, when exactly one `seller_payme_id` was sent; otherwise `null`. | | `seller_id` | string | Your own ID for that seller, or `null`. | | `items_count` | integer | Number of items on this page. There is no total count. | | `items` | array | The withdrawals. | | `items[].seller_payme_id` | string | The seller's MPL. | | `items[].withdrawal_payme_code` | integer | PayMe's withdrawal code. | | `items[].withdrawal_created` | string | When the withdrawal was created, `yyyy-mm-dd hh:mm:ss`, Asia/Jerusalem. | | `items[].withdrawal_currency` | string | Currency, 3-letter ISO 4217 code. | | `items[].withdrawal_total` | integer | Amount paid out, in minor units. | | `items[].withdrawal_source` | integer | Who pays it out: `1` PayMe; another value is a card company that pays the seller directly. | | `items[].withdrawal_card_brand` | integer | Card brand the withdrawal covers, when a card company pays the seller directly. | | `items[].withdrawal_is_reconciled` | boolean | `true` when PayMe has matched the payout with its records. | | `items[].withdrawal_description` | string | Always empty. Kept for older integrations. | ```json { "status_code": 0, "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "seller_id": "store-1001", "items_count": 1, "items": [ { "seller_payme_id": "MPLDEMO-MPLDEMO-MPLDEMO-1234567", "withdrawal_payme_code": 10001, "withdrawal_created": "2026-10-15 15:15:15", "withdrawal_currency": "ILS", "withdrawal_total": 600000, "withdrawal_source": 1, "withdrawal_card_brand": 1, "withdrawal_is_reconciled": true, "withdrawal_description": "" } ] } ``` ### 500 — Error. Most errors return HTTP 500. Paging errors (`52`, `27`) return HTTP 400. The body is the same. See [Errors](/payments/getting-started/errors). (error) | Field | Type | Description | | --- | --- | --- | | `status_code` | integer | `1` on failure. | | `status_error_code` | integer | PayMe error code. | | `status_error_details` | string | Error message. | | `status_additional_info` | string | The field the error refers to, when there is one. | ```json { "status_code": 1, "status_error_details": "Required parameter is missing", "status_additional_info": "payme_client_key", "status_error_code": 1 } ```