curl --request GET \
--url https://api.yapily.com/transactions/categorisation/{categorisationId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.yapily.com/transactions/categorisation/{categorisationId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.yapily.com/transactions/categorisation/{categorisationId}', 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.yapily.com/transactions/categorisation/{categorisationId}",
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: Basic <encoded-value>"
],
]);
$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.yapily.com/transactions/categorisation/{categorisationId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.yapily.com/transactions/categorisation/{categorisationId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yapily.com/transactions/categorisation/{categorisationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"meta": {
"tracingId": "string",
"count": 1,
"pageCount": 1
},
"data": {
"transactions": [
{
"enrichment": {
"transactionHash": {
"hash": "6f465bde795b33e497d36333c9a32877.1"
},
"categorisation": {
"categories": [
"refund"
]
},
"merchant": {
"id": "dd0f0493-da4c-1334-50cb-b22ad7327b39",
"name": "Uber",
"logo": "https://example.org/logo.png"
}
},
"recurrence": "one-off",
"paymentProcessor": "PayPal",
"location": "1725 Third Street, San Francisco 94158, United States",
"merchant": {
"merchantCategoryCode": "4121",
"name": "Uber"
},
"id": "236d3792-7014-8f74-53a3-2d600d07840e",
"date": "2026-01-20T09:13:02.752Z",
"bookingDateTime": "2026-01-20T09:13:02.752Z",
"description": "...",
"transactionAmount": {
"amount": 23.87,
"currency": "GBP"
},
"amount": 23.87,
"currency": "GBP",
"status": "BOOKED",
"reference": "...",
"proprietaryBankTransactionCode": {
"code": "REFUND",
"issuer": "bank_id"
},
"isoBankTransactionCode": {
"domainCode": {
"code": "PMNT",
"name": "Payments"
},
"familyCode": {
"code": "RCDT",
"name": "Received Credit Transfers"
},
"subFamilyCode": {
"code": "DMCT",
"name": "Domestic Credit Transfer"
}
}
}
]
},
"links": {
"first": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=aaa",
"prev": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=bbb",
"self": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=ccc",
"next": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=ddd",
"last": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=zzz"
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 400,
"status": "BAD_REQUEST",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "BAD_REQUEST",
"code": 10600,
"message": "The server could not understand the request due to invalid syntax"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 401,
"status": "UNAUTHORIZED",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "CREDENTIALS",
"code": 10700,
"message": "Authorization header invalid or credentials not authenticated"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 404,
"status": "NOT FOUND",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "INVALID_REQUEST",
"code": 10800,
"message": "Resource not found"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 500,
"status": "INTERNAL SERVER ERROR",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "INTERNAL_SERVER_ERROR",
"code": 11000,
"message": "Unexpected server error"
}
]
}
}Get Enrichment Results
Retrieve categorised transactions by Categorisation ID.
Please use webhooks to be notified when your transactions have been categorised and are ready for retrieval.
Note that when using the Transactions and Categorisation endpoint this endpoint may also return any data specified by the Get Account Transactions endpoint; this endpoint’s docs mentions a non-exhaustive subset of such data.
curl --request GET \
--url https://api.yapily.com/transactions/categorisation/{categorisationId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.yapily.com/transactions/categorisation/{categorisationId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.yapily.com/transactions/categorisation/{categorisationId}', 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.yapily.com/transactions/categorisation/{categorisationId}",
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: Basic <encoded-value>"
],
]);
$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.yapily.com/transactions/categorisation/{categorisationId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.yapily.com/transactions/categorisation/{categorisationId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yapily.com/transactions/categorisation/{categorisationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"meta": {
"tracingId": "string",
"count": 1,
"pageCount": 1
},
"data": {
"transactions": [
{
"enrichment": {
"transactionHash": {
"hash": "6f465bde795b33e497d36333c9a32877.1"
},
"categorisation": {
"categories": [
"refund"
]
},
"merchant": {
"id": "dd0f0493-da4c-1334-50cb-b22ad7327b39",
"name": "Uber",
"logo": "https://example.org/logo.png"
}
},
"recurrence": "one-off",
"paymentProcessor": "PayPal",
"location": "1725 Third Street, San Francisco 94158, United States",
"merchant": {
"merchantCategoryCode": "4121",
"name": "Uber"
},
"id": "236d3792-7014-8f74-53a3-2d600d07840e",
"date": "2026-01-20T09:13:02.752Z",
"bookingDateTime": "2026-01-20T09:13:02.752Z",
"description": "...",
"transactionAmount": {
"amount": 23.87,
"currency": "GBP"
},
"amount": 23.87,
"currency": "GBP",
"status": "BOOKED",
"reference": "...",
"proprietaryBankTransactionCode": {
"code": "REFUND",
"issuer": "bank_id"
},
"isoBankTransactionCode": {
"domainCode": {
"code": "PMNT",
"name": "Payments"
},
"familyCode": {
"code": "RCDT",
"name": "Received Credit Transfers"
},
"subFamilyCode": {
"code": "DMCT",
"name": "Domestic Credit Transfer"
}
}
}
]
},
"links": {
"first": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=aaa",
"prev": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=bbb",
"self": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=ccc",
"next": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=ddd",
"last": "https://api.yapily.com/accounts/700004000000000000000002/transactions?cursor=zzz"
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 400,
"status": "BAD_REQUEST",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "BAD_REQUEST",
"code": 10600,
"message": "The server could not understand the request due to invalid syntax"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 401,
"status": "UNAUTHORIZED",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "CREDENTIALS",
"code": 10700,
"message": "Authorization header invalid or credentials not authenticated"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 404,
"status": "NOT FOUND",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "INVALID_REQUEST",
"code": 10800,
"message": "Resource not found"
}
]
}
}{
"error": {
"tracingId": "0c2d0973bdd24224a65e5d0f7d1b6154",
"code": 500,
"status": "INTERNAL SERVER ERROR",
"supportUrl": "https://support.yapily.com/",
"source": "YAPILY",
"issues": [
{
"type": "INTERNAL_SERVER_ERROR",
"code": 11000,
"message": "Unexpected server error"
}
]
}
}Authorizations
Use HTTP Basic Authentication with your Application ID as username and Application Secret as password. Manage credentials in the Yapily Console. See Authentication for details.
Headers
The sub-application ID to which event type is being subscribed to
Path Parameters
Unique identifier for transaction categorisation request
Query Parameters
Optional. The maximum number of transaction records to be returned. Must be between 100 and 1000. If not specified will default to 100.
100 <= x <= 1000Optional. The page number to be returned. If not specified will default to 1.
x >= 1Was this page helpful?