List withdrawals

Credentials

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.

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.

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 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

{
  "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

curl -X POST 'https://sandbox.payme.io/api/get-withdrawals' \
  -H 'Content-Type: application/json' \
  -H 'PayMe-Partner-Key: <PayMe-Partner-Key>' \
  -H 'PayMe-Merchant-Key: <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

const response = await fetch("https://sandbox.payme.io/api/get-withdrawals", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "PayMe-Partner-Key": "<PayMe-Partner-Key>",
    "PayMe-Merchant-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

import requests

response = requests.post(
    "https://sandbox.payme.io/api/get-withdrawals",
    headers={
        "PayMe-Partner-Key": "<PayMe-Partner-Key>",
        "PayMe-Merchant-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

$body = <<<'BODY'
{
  "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"
}
BODY;

$ch = curl_init('https://sandbox.payme.io/api/get-withdrawals');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'PayMe-Partner-Key: <PayMe-Partner-Key>',
        'PayMe-Merchant-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.
{
  "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. (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.
{
  "status_code": 1,
  "status_error_details": "Required parameter is missing",
  "status_additional_info": "payme_client_key",
  "status_error_code": 1
}