List Business Batch Payouts ( STABLE )
curl --request GET \
--url https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}', 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://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "",
"data": {
"batch_payouts": [
{
"uuid": "9bd53fe1-ac74-4e81-b6f2-be88b7c86a68",
"amount": 4400,
"trace_id": "ach_11kt6v9715jp67t",
"payout_status": "PAYOUT_COMPLETE",
"ach_return_code": null,
"failure_reason": null,
"created_at": "2025-02-17 11:15:15",
"updated_at": "2025-02-18 17:15:15"
}
],
"pagination": {
"current_page": 1,
"total_pages": 2,
"total_items": 12,
"per_page": 10
}
},
"errors": null,
"error_code": null
}{
"status": false,
"message": "Invalid Parameters Received: startDate, endDate",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "Invalid Token",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "Business not found.",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "The given data was invalid.",
"data": null,
"errors": {
"start_date": [
"The start date does not match the format Y-m-d.",
"The start date must be a date before or equal to end date."
],
"end_date": [
"The end date does not match the format Y-m-d.",
"The end date must be a date after or equal to start date."
],
"sort_order": [
"The selected sort order is invalid."
],
"per_page": [
"The per page must be an integer.",
"The per page must be at least 1.",
"The per page may not be greater than 100."
],
"page": [
"The page must be an integer.",
"The page must be at least 1."
]
},
"error_code": null
}Payouts
List Business Batch Payouts ( STABLE )
This API retrieves all business batch payouts associated with the business user UUID. The response provides comprehensive details about each payout, including the total amount and detailed information for each payout.
GET
/
3p
/
api
/
v2
/
batch-payouts
/
business
/
{business_user_uuid}
List Business Batch Payouts ( STABLE )
curl --request GET \
--url https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}', 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://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.grailpay.com/3p/api/v2/batch-payouts/business/{business_user_uuid}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": true,
"message": "",
"data": {
"batch_payouts": [
{
"uuid": "9bd53fe1-ac74-4e81-b6f2-be88b7c86a68",
"amount": 4400,
"trace_id": "ach_11kt6v9715jp67t",
"payout_status": "PAYOUT_COMPLETE",
"ach_return_code": null,
"failure_reason": null,
"created_at": "2025-02-17 11:15:15",
"updated_at": "2025-02-18 17:15:15"
}
],
"pagination": {
"current_page": 1,
"total_pages": 2,
"total_items": 12,
"per_page": 10
}
},
"errors": null,
"error_code": null
}{
"status": false,
"message": "Invalid Parameters Received: startDate, endDate",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "Invalid Token",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "Business not found.",
"data": null,
"errors": null,
"error_code": null
}{
"status": false,
"message": "The given data was invalid.",
"data": null,
"errors": {
"start_date": [
"The start date does not match the format Y-m-d.",
"The start date must be a date before or equal to end date."
],
"end_date": [
"The end date does not match the format Y-m-d.",
"The end date must be a date after or equal to start date."
],
"sort_order": [
"The selected sort order is invalid."
],
"per_page": [
"The per page must be an integer.",
"The per page must be at least 1.",
"The per page may not be greater than 100."
],
"page": [
"The page must be an integer.",
"The page must be at least 1."
]
},
"error_code": null
}Authorizations
Token-based authentication using Authorization: Bearer <YOUR_API_KEY> provided by the GrailPay Support Team.
Path Parameters
UUID of the business user
Query Parameters
Filter by start date (YYYY-MM-DD)
Filter by end date (YYYY-MM-DD)
Sort order ('oldest' or 'newest')
Available options:
oldest, newest Page number for pagination
Example:
1
Number of records per page
Example:
10
⌘I
