curl --request GET \
--url https://payouts.api.trykarat.com/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://payouts.api.trykarat.com/payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://payouts.api.trykarat.com/payments', 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://payouts.api.trykarat.com/payments",
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://payouts.api.trykarat.com/payments"
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://payouts.api.trykarat.com/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://payouts.api.trykarat.com/payments")
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{
"data": [
{
"isReimbursement": true,
"sourceAccount": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"mask": "<string>",
"type": "<string>",
"status": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"description": "<string>",
"referenceId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"statusUpdates": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "processing",
"reason": "<string>",
"date": "2023-11-07T05:31:56Z"
}
],
"recipient": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"email": "jsmith@example.com",
"autoAcceptPayouts": true
},
"payoutLink": "<string>",
"feeBreakdown": {
"payoutIntentId": "0fc50d45-faa8-4d09-aa2a-a9ceb282d7ae",
"status": "RESOLVED",
"currency": "USD",
"totalFeeCents": 250,
"payerFeeCents": 0,
"recipientFeeCents": 250,
"paidBy": "RECIPIENT",
"rail": "ACH",
"feePercentageOfPaymentAmount": 1.25
}
}
],
"meta": {
"total": 123,
"limit": 123,
"offset": 123
}
}{
"error": {
"message": "amount: amount must be positive"
}
}{
"error": {
"message": "Invalid api key"
}
}List payments
Returns a paginated list of payment intents for your organization. Supports filtering by recipient, batch, reference, source account, and the stored reimbursement classification. Omit isReimbursement to return both reimbursements and non-reimbursements. Each payment includes a sourceAccount object identifying the Karat checking account selected to fund it, or null when the payment cannot be attributed to an account.
curl --request GET \
--url https://payouts.api.trykarat.com/payments \
--header 'Authorization: Bearer <token>'import requests
url = "https://payouts.api.trykarat.com/payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://payouts.api.trykarat.com/payments', 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://payouts.api.trykarat.com/payments",
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://payouts.api.trykarat.com/payments"
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://payouts.api.trykarat.com/payments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://payouts.api.trykarat.com/payments")
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{
"data": [
{
"isReimbursement": true,
"sourceAccount": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"mask": "<string>",
"type": "<string>",
"status": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": 123,
"description": "<string>",
"referenceId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"statusUpdates": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "processing",
"reason": "<string>",
"date": "2023-11-07T05:31:56Z"
}
],
"recipient": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"email": "jsmith@example.com",
"autoAcceptPayouts": true
},
"payoutLink": "<string>",
"feeBreakdown": {
"payoutIntentId": "0fc50d45-faa8-4d09-aa2a-a9ceb282d7ae",
"status": "RESOLVED",
"currency": "USD",
"totalFeeCents": 250,
"payerFeeCents": 0,
"recipientFeeCents": 250,
"paidBy": "RECIPIENT",
"rail": "ACH",
"feePercentageOfPaymentAmount": 1.25
}
}
],
"meta": {
"total": 123,
"limit": 123,
"offset": 123
}
}{
"error": {
"message": "amount: amount must be positive"
}
}{
"error": {
"message": "Invalid api key"
}
}Authorizations
Pass your API key as a bearer token: Authorization: Bearer <API_KEY>.
Query Parameters
Maximum number of results to return (max 100, default 100).
1 <= x <= 100Number of results to skip for pagination (default 0).
x >= 0Filter payments by recipient ID.
Filter payments by the batch they were created in.
Filter payments by your own reference ID.
Filter by the exact stored reimbursement classification. Use the literal true for reimbursements or false for non-reimbursements; any other value returns 400. Omit this parameter to return both. The classification affects tax reporting only and does not change payout processing, status, or fees.
Filter payments by the exact recorded source account ID. Use an account ID returned by GET /accounts. Payments without a recorded source account are excluded.