Read an immutable Adjustment
curl --request GET \
--url https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}"
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.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"type": "adjustment",
"amount": {
"amount": "10.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE",
"sourceRevision": 2,
"effectiveAt": "2026-10-14T12:00:00Z",
"reason": "billing_correction",
"sourceReference": "CREDIT_SOURCE",
"direction": "decrease",
"externalEventId": "EVENT_EXAMPLE",
"acceptedAt": "2026-10-14T12:00:01Z"
}{
"detail": "Request body is not valid JSON.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 400,
"title": "Request body is not valid JSON.",
"type": "https://docs.paypathiq.com/problems/malformed_json"
}{
"detail": "API key is invalid, inactive, revoked, or for another environment.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 401,
"title": "API key is invalid, inactive, revoked, or for another environment.",
"type": "https://docs.paypathiq.com/problems/invalid_api_key"
}{
"detail": "The Client code is unknown, the grant lacks the required scope, or the calling address is outside the grant's IP allowlist.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 403,
"title": "The Client code is unknown, the grant lacks the required scope, or the calling address is outside the grant's IP allowlist.",
"type": "https://docs.paypathiq.com/problems/client_scope_denied"
}{
"detail": "No evidence exists at this authorized resource URL.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 404,
"title": "No evidence exists at this authorized resource URL.",
"type": "https://docs.paypathiq.com/problems/financial_event_not_found"
}{
"detail": "Request body exceeds the 256 KiB resource limit.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 413,
"title": "Request body exceeds the 256 KiB resource limit.",
"type": "https://docs.paypathiq.com/problems/request_too_large"
}{
"detail": "Media type or content encoding is unsupported. Send uncompressed application/json for PUT and POST, and application/merge-patch+json for PATCH.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 415,
"title": "Media type or content encoding is unsupported. Send uncompressed application/json for PUT and POST, and application/merge-patch+json for PATCH.",
"type": "https://docs.paypathiq.com/problems/unsupported_media_type"
}{
"detail": "Route parameters or the representation are invalid. Route parameters are checked before authentication. Field errors carry a code such as invalid_format, unrecognized_keys, custom, sensitive_external_id, or sensitive_source_reference.",
"errors": [
{
"code": "invalid_format",
"detail": "Invalid ISO date",
"pointer": "/dueDate"
}
],
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 422,
"title": "Route parameters or the representation are invalid. Route parameters are checked before authentication. Field errors carry a code such as invalid_format, unrecognized_keys, custom, sensitive_external_id, or sensitive_source_reference.",
"type": "https://docs.paypathiq.com/problems/validation_error"
}{
"detail": "Each API key may send 60 requests per minute and run 1 request at a time. In sandbox, the same limits also apply per Client across all of its keys. Every request, including GET, counts.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 429,
"title": "Each API key may send 60 requests per minute and run 1 request at a time. In sandbox, the same limits also apply per Client across all of its keys. Every request, including GET, counts.",
"type": "https://docs.paypathiq.com/problems/rate_limit_exceeded"
}{
"detail": "An unexpected error prevented a safe commit, and nothing was saved. Retry with backoff.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 503,
"title": "An unexpected error prevented a safe commit, and nothing was saved. Retry with backoff.",
"type": "https://docs.paypathiq.com/problems/projection_unavailable"
}Financial events
Read an immutable Adjustment
Read back a Adjustment you recorded earlier. Requires financial_corrections:read. Returns source-owned evidence, never private staff content.
GET
/
v1
/
clients
/
{clientCode}
/
adjustments
/
{externalEventId}
Read an immutable Adjustment
curl --request GET \
--url https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}"
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.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sandbox.paypathiq.com/v1/clients/{clientCode}/adjustments/{externalEventId}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"type": "adjustment",
"amount": {
"amount": "10.00",
"currency": "EUR"
},
"externalReceivableId": "REC_EXAMPLE",
"sourceRevision": 2,
"effectiveAt": "2026-10-14T12:00:00Z",
"reason": "billing_correction",
"sourceReference": "CREDIT_SOURCE",
"direction": "decrease",
"externalEventId": "EVENT_EXAMPLE",
"acceptedAt": "2026-10-14T12:00:01Z"
}{
"detail": "Request body is not valid JSON.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 400,
"title": "Request body is not valid JSON.",
"type": "https://docs.paypathiq.com/problems/malformed_json"
}{
"detail": "API key is invalid, inactive, revoked, or for another environment.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 401,
"title": "API key is invalid, inactive, revoked, or for another environment.",
"type": "https://docs.paypathiq.com/problems/invalid_api_key"
}{
"detail": "The Client code is unknown, the grant lacks the required scope, or the calling address is outside the grant's IP allowlist.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 403,
"title": "The Client code is unknown, the grant lacks the required scope, or the calling address is outside the grant's IP allowlist.",
"type": "https://docs.paypathiq.com/problems/client_scope_denied"
}{
"detail": "No evidence exists at this authorized resource URL.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 404,
"title": "No evidence exists at this authorized resource URL.",
"type": "https://docs.paypathiq.com/problems/financial_event_not_found"
}{
"detail": "Request body exceeds the 256 KiB resource limit.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 413,
"title": "Request body exceeds the 256 KiB resource limit.",
"type": "https://docs.paypathiq.com/problems/request_too_large"
}{
"detail": "Media type or content encoding is unsupported. Send uncompressed application/json for PUT and POST, and application/merge-patch+json for PATCH.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 415,
"title": "Media type or content encoding is unsupported. Send uncompressed application/json for PUT and POST, and application/merge-patch+json for PATCH.",
"type": "https://docs.paypathiq.com/problems/unsupported_media_type"
}{
"detail": "Route parameters or the representation are invalid. Route parameters are checked before authentication. Field errors carry a code such as invalid_format, unrecognized_keys, custom, sensitive_external_id, or sensitive_source_reference.",
"errors": [
{
"code": "invalid_format",
"detail": "Invalid ISO date",
"pointer": "/dueDate"
}
],
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 422,
"title": "Route parameters or the representation are invalid. Route parameters are checked before authentication. Field errors carry a code such as invalid_format, unrecognized_keys, custom, sensitive_external_id, or sensitive_source_reference.",
"type": "https://docs.paypathiq.com/problems/validation_error"
}{
"detail": "Each API key may send 60 requests per minute and run 1 request at a time. In sandbox, the same limits also apply per Client across all of its keys. Every request, including GET, counts.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 429,
"title": "Each API key may send 60 requests per minute and run 1 request at a time. In sandbox, the same limits also apply per Client across all of its keys. Every request, including GET, counts.",
"type": "https://docs.paypathiq.com/problems/rate_limit_exceeded"
}{
"detail": "An unexpected error prevented a safe commit, and nothing was saved. Retry with backoff.",
"requestId": "29400000-0000-4000-8000-000000000001",
"status": 503,
"title": "An unexpected error prevented a safe commit, and nothing was saved. Retry with backoff.",
"type": "https://docs.paypathiq.com/problems/projection_unavailable"
}Authorizations
Integration-owned environment-specific API key. Never paste a production key into documentation tools.
Path Parameters
Pattern:
^[A-Za-z0-9_-]{1,128}$Pattern:
^[A-Za-z0-9_-]{1,128}$Response
Accepted evidence.
Show child attributes
Show child attributes
Pattern:
^[A-Za-z0-9_-]{1,128}$Required range:
x <= 9007199254740991Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$Available options:
billing_correction, source_adjustment Required string length:
1 - 200Allowed value:
"adjustment"Available options:
increase, decrease Pattern:
^[A-Za-z0-9_-]{1,128}$Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$