curl --request GET \
--url https://production-api.puppetvendors.com/payouts/transactions \
--header 'x-access-token: <api-key>'import requests
url = "https://production-api.puppetvendors.com/payouts/transactions"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://production-api.puppetvendors.com/payouts/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.puppetvendors.com/payouts/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production-api.puppetvendors.com/payouts/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production-api.puppetvendors.com/payouts/transactions")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.puppetvendors.com/payouts/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"edges": [
{
"node": {
"_id": "<string>",
"transactionId": "8Q4COZI1FA",
"processedAt": "2023-11-07T05:31:56Z",
"payoutMethod": "paypalConnected",
"amount": 123,
"itemCount": 123,
"batches": [
{
"batchId": "<string>",
"vendorId": "<string>",
"vendorName": "<string>",
"amount": 123,
"itemCount": 123,
"status": "pending",
"reason": {},
"gatewayRef": {
"gateway": "stripe",
"refId": "<string>"
},
"markAsPaid": {
"marked": true,
"method": "<string>",
"comments": "<string>"
}
}
]
},
"cursor": "<string>"
}
],
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>",
"totalCount": 123
}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}Payout runs with their batches, shop-wide or for one vendor
Merchant scope only, requires the admin:payouts permission.
One node per payout run (transaction), most recent first, carrying
its transactionId and a batches array (one batch per vendor
paid in the run). Each batch has the same shape as in
GET /payouts/make-payment/, plus itemCount: the mapped
status (fulfilled -> paid, rejected -> failed), the classified
failure reason, a gatewayRef (never the raw gateway payload) and
markAsPaid. Order line items are never returned.
vendorId and status narrow the batches: a run is listed only when
one of its batches matches both, and batches then holds only the
matching ones (the run’s amount and itemCount total those).
search picks whole runs by transactionId or any batchId.
Without vendorId the listing is shop-wide: the merchant surface has
no default vendor scope, unlike the vendor portal’s same-path
endpoint.
curl --request GET \
--url https://production-api.puppetvendors.com/payouts/transactions \
--header 'x-access-token: <api-key>'import requests
url = "https://production-api.puppetvendors.com/payouts/transactions"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://production-api.puppetvendors.com/payouts/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.puppetvendors.com/payouts/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production-api.puppetvendors.com/payouts/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production-api.puppetvendors.com/payouts/transactions")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.puppetvendors.com/payouts/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"edges": [
{
"node": {
"_id": "<string>",
"transactionId": "8Q4COZI1FA",
"processedAt": "2023-11-07T05:31:56Z",
"payoutMethod": "paypalConnected",
"amount": 123,
"itemCount": 123,
"batches": [
{
"batchId": "<string>",
"vendorId": "<string>",
"vendorName": "<string>",
"amount": 123,
"itemCount": 123,
"status": "pending",
"reason": {},
"gatewayRef": {
"gateway": "stripe",
"refId": "<string>"
},
"markAsPaid": {
"marked": true,
"method": "<string>",
"comments": "<string>"
}
}
]
},
"cursor": "<string>"
}
],
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>",
"totalCount": 123
}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}{
"success": false,
"error": {
"message": "Resource not found",
"code": "NOT_FOUND",
"errorId": "err_1783365360839_j281w7b",
"details": {}
}
}Authorizations
JWT minted from a merchant API key (mk_live_…) by POST /authenticate. Send the token value directly, with no "Bearer" prefix. Tokens last 14 days and can be renewed at POST /refresh-token; revoking the key refuses the next request made with any token minted from it.
Query Parameters
Only runs that paid this vendor, with batches narrowed to its batches
Only batches in this mapped status (and the runs that have one)
pending, paid, failed, cancelled Created-at lower bound, YYYY-MM-DD (shop timezone) or ISO
Created-at upper bound, YYYY-MM-DD (shop timezone) or ISO
Substring search on transactionId or batchId
200Number of runs to return (most recent first)
1 <= x <= 100Cursor for forward pagination
Number of runs to return (backward pagination)
1 <= x <= 100Cursor for backward pagination
Was this page helpful?