End customers
Generated page, from the OpenAPI specification the gateway serves (
GET /v1/openapi.json). Do not edit it by hand: it is rewritten on every build.
| Method | Path | Description |
|---|---|---|
GET |
/v1/customers |
List your end customers |
POST |
/v1/customers |
Register an end customer |
GET |
/v1/customers/{id} |
Retrieve an end customer |
PATCH |
/v1/customers/{id} |
Update an end customer |
GET /v1/customers
List your end customers
Your own end customers. external_id filters exactly; search matches loosely on name, phone and email. Scope can_read_customers.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
external_id |
query | no | Your own identifier — an exact filter. |
search |
query | no | |
limit |
query | no | 20 by default, 100 at most. |
offset |
query | no |
Responses
200— OK (object)401— API key missing or rejected (Error)403— The key does not carry the required scope (can_read_customers / can_write_customers), or the account is not active (Error)429— The key's request budget is exceeded (Error)
POST /v1/customers
Register an end customer
Registers a person you already know, BEFORE their first payment. Two effects: a player whose age you declare you have verified is never held on a restricted corridor for want of verification, and their risk profile is pre-warmed, which takes that work off the payment path. Answers 200 with already_existed: true when the person was already known: the deduplication key is shared with the payment path, so a “create” often lands on a record your own payments already made. Scope can_write_customers.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
external_id |
string | no | |
name |
string | no | |
phone |
string | no | Phone or email is required: the record is deduplicated on one of the two, and a person with neither could never be matched to their own payments. |
email |
string | no | |
country |
string | no | |
national_id |
object | no | |
national_id.type |
string | no | |
national_id.number |
string | no | |
date_of_birth |
string | no | YYYY-MM-DD. |
age_verified |
boolean | no | You are declaring that you have verified this person is of age. Short form of age_verification_status. |
age_verification_status |
string | no | |
age_verified_at |
string | no | RFC3339. |
age_verification_method |
string | no |
Responses
200— The person was already known; the existing record is returned, filled in where fields were empty (Customer)201— End customer created (Customer)401— API key missing or rejected (Error)403— The key does not carry the required scope (can_read_customers / can_write_customers), or the account is not active (Error)422— Age verification incomplete or outside the vocabulary (Error)429— The key's request budget is exceeded (Error)
GET /v1/customers/{id}
Retrieve an end customer
Scope can_read_customers.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
id |
path | yes | The end customer's identifier. |
Responses
200— OK (Customer)401— API key missing or rejected (Error)403— The key does not carry the required scope (can_read_customers / can_write_customers), or the account is not active (Error)404— No end customer with that identifier (Error)429— The key's request budget is exceeded (Error)
PATCH /v1/customers/{id}
Update an end customer
An omitted field is unchanged. This is how you answer a re-verification request (customer.reverification_requested): send the verification you carried out, and the restriction placed in the meantime is lifted in the same transaction. Scope can_write_customers.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
id |
path | yes | The end customer's identifier. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
external_id |
string | no | |
name |
string | no | |
phone |
string | no | Phone or email is required: the record is deduplicated on one of the two, and a person with neither could never be matched to their own payments. |
email |
string | no | |
country |
string | no | |
national_id |
object | no | |
national_id.type |
string | no | |
national_id.number |
string | no | |
date_of_birth |
string | no | YYYY-MM-DD. |
age_verified |
boolean | no | You are declaring that you have verified this person is of age. Short form of age_verification_status. |
age_verification_status |
string | no | |
age_verified_at |
string | no | RFC3339. |
age_verification_method |
string | no |
Responses
200— Updated (Customer)401— API key missing or rejected (Error)403— The key does not carry the required scope (can_read_customers / can_write_customers), or the account is not active (Error)404— No end customer with that identifier (Error)422— Age verification incomplete or outside the vocabulary (Error)429— The key's request budget is exceeded (Error)
Schemas
The shapes the operations above return.
Error
| Field | Type | Description |
|---|---|---|
error |
object | |
error.code |
string | |
error.message |
string |
Customer
A merchant's end customer — the person who pays. What you record here does two things: your verified players are never held on a restricted corridor for want of age verification, and their risk profile is warmed up before their first payment. No compliance state is ever returned on this resource.
| Field | Type | Description |
|---|---|---|
id |
string | The end customer's identifier. |
external_id |
string | Your own identifier for this person. |
name |
string | |
phone |
string | E.164 or national; normalised server-side. The phone outranks the email as the deduplication key. |
email |
string | |
country |
string | ISO 3166-1 alpha-2. |
national_id |
object | Identity document, as you captured it. |
national_id.type |
string | cni, passport, … |
national_id.number |
string | |
date_of_birth |
string | YYYY-MM-DD. |
age_verification |
object | The state of age verification. It NEVER asserts an age: it records that a verification exists, when, how and by whom. Absent until one has been declared — which is not the same thing as “not verified”. |
age_verification.status |
string | |
age_verification.verified_at |
string | RFC3339. |
age_verification.method |
string | |
age_verification.source |
string | |
created_at |
string |