Payout Intel API
Authentication
Bearer
For accessing the API a valid token must be passed in all the queries in the 'Authorization' header. A valid token is obtained from POST /api/v1/authorize with the client_id and client_secret of an API key generated in Admin section of your account. The token is valid for the number of seconds returned in valid_for (6000); after that, request a new one.
The following syntax must be used in the 'Authorization' header :
Bearer <<token>>
So Authorization header can be like:
Authorization: Bearer SFMyNTY.EXAMPLE-TOKEN.dGhpcy1pcy1hLWZha2Utc2lnbmF0dXJlLWV4YW1wbGU
Errors
Errors are returned as JSON. Send Accept: application/json with every request.
401 - invalid client_id / client_secret in POST /api/v1/authorize
{
"errors": "Bad credentials. Check your credentials or contact support."
}
401 - missing or invalid token
{
"errors": "Unauthorized access. Check your token."
}
401 - expired token
{
"errors": "Unauthorized access. Token is expired."
}
429 - after 5 failed POST /api/v1/authorize attempts for the same client_id within 5 minutes; retry after the number of seconds in the Retry-After header
{
"errors": "Too many failed authentication attempts for this client. Try again in a few minutes."
}
Exchanges the client_id and client_secret of your API key for a Bearer token. Send the token in the Authorization: Bearer <token> header of all other requests. The token is valid for valid_for seconds.
After 5 failed attempts for the same client_id within 5 minutes, the endpoint responds with 429 and a Retry-After: 300 header.
Request body
8b0f3c52-6d1e-4a7b-9c2d-5e4f3a2b1c0dexample-client-secret-not-realResponse 200
Authorization header · e.g. SFMyNTY.EXAMPLE-TOKEN.dGhpcy1pcy1hLWZha2Utc2lnbmF0dXJlLWV4YW1wbGU6000Other responses
client_id or client_secret is missing)client_idcurl -X POST 'https://sandbox.payout.one/api/v1/authorize' \
-H "Content-Type: application/json" \
-d '{
"client_id": "8b0f3c52-6d1e-4a7b-9c2d-5e4f3a2b1c0d",
"client_secret": "example-client-secret-not-real"
}'const res = await fetch("https://sandbox.payout.one/api/v1/authorize", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
"client_id": "8b0f3c52-6d1e-4a7b-9c2d-5e4f3a2b1c0d",
"client_secret": "example-client-secret-not-real"
}),
});
const data = await res.json();import os, requests
res = requests.post(
"https://sandbox.payout.one/api/v1/authorize",
json={
"client_id": "8b0f3c52-6d1e-4a7b-9c2d-5e4f3a2b1c0d",
"client_secret": "example-client-secret-not-real",
},
)
data = res.json()<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sandbox.payout.one/api/v1/authorize");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"client_id" => "8b0f3c52-6d1e-4a7b-9c2d-5e4f3a2b1c0d",
"client_secret" => "example-client-secret-not-real"
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);{
"token": "SFMyNTY.EXAMPLE-TOKEN.dGhpcy1pcy1hLWZha2Utc2lnbmF0dXJlLWV4YW1wbGU",
"valid_for": 6000
}This request returns limit in given currency in specified country.
If no limit is known for the given check_type in the country, a message is returned instead of the limit. Returns 400 if invalid currency or country is given.
| Name | Type | Description |
|---|---|---|
currency |
string | ISO 3 currency code (default EUR) |
country |
string | ISO 2 country code (default SK) |
check_type |
string | Check type can be <"AML4", "AML5"> (default AML4) |
Parameters
EUR · e.g. PLNSK · e.g. SKAML4 · e.g. AML5Response 200
4284.784SKPLNAML5No known AML5 limit in ADOther responses
curl -X GET 'https://sandbox.payout.one/api/v1/intel/limits' \
-H "Authorization: Bearer $TOKEN"const res = await fetch("https://sandbox.payout.one/api/v1/intel/limits", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.PAYOUT_TOKEN}`,
},
});
const data = await res.json();import os, requests
res = requests.get(
"https://sandbox.payout.one/api/v1/intel/limits",
headers={"Authorization": f"Bearer {os.environ['PAYOUT_TOKEN']}"},
)
data = res.json()<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sandbox.payout.one/api/v1/intel/limits");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . getenv("PAYOUT_TOKEN")]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);{
"check_type": "AML5",
"country": "SK",
"currency": "PLN",
"limit": 4284.784
}ID Validation states
- valid - ID is valid for existing person
- not_valid - ID is not valid
- unknown - it was not possible to validate ID
AML Check states
- found - exact one result
- found_many - more results
- not_found - zero results
Request body
JurajNovak1980-05-14AB1234Response 200
5a395a80-5e9a-4691-9674-28d0c91755b9https://sandbox.payout.one/intelboard/requests/5a395a80-5e9a-4691-9674-28d0c91755b9valid, not_valid, unknown · e.g. validfound, found_many, not_found · e.g. not_foundOther responses
curl -X POST 'https://sandbox.payout.one/api/v1/intel' \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Juraj",
"surname": "Novak",
"birthdate": "1980-05-14",
"id": "AB1234"
}'const res = await fetch("https://sandbox.payout.one/api/v1/intel", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PAYOUT_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Juraj",
"surname": "Novak",
"birthdate": "1980-05-14",
"id": "AB1234"
}),
});
const data = await res.json();import os, requests
res = requests.post(
"https://sandbox.payout.one/api/v1/intel",
headers={"Authorization": f"Bearer {os.environ['PAYOUT_TOKEN']}"},
json={
"name": "Juraj",
"surname": "Novak",
"birthdate": "1980-05-14",
"id": "AB1234",
},
)
data = res.json()<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sandbox.payout.one/api/v1/intel");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"name" => "Juraj",
"surname" => "Novak",
"birthdate" => "1980-05-14",
"id" => "AB1234"
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . getenv("PAYOUT_TOKEN"), "Content-Type: application/json"]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);{
"id": "5a395a80-5e9a-4691-9674-28d0c91755b9",
"url": "https://sandbox.payout.one/intelboard/requests/5a395a80-5e9a-4691-9674-28d0c91755b9",
"valid_id": "valid",
"aml": "not_found"
}- Need help? Contact support.
- Questions? Contact sales.
- Service status? status.payout.one.
- LLM? Read llms.txt.