curl --request POST \
--url https://sandbox.elementpay.net/api/v1/partner/customers \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"partner_customer_ref": "partner-cust-001",
"type": "individual"
}
'{
"status": "success",
"message": "Customer created",
"data": {
"id": "pcus_a1b2c3d4e5f6",
"partner_customer_ref": "cust-ke-001",
"type": "individual",
"status": "incomplete",
"profile": {
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"date_of_birth": "1990-01-15",
"country_of_residence": "GB",
"phone": "+447700900123",
"gender": "f",
"address": {
"line1": "1 Example Street",
"city": "London",
"country": "GB",
"postal_code": "E1 6AN"
}
},
"documents": [],
"products": {
"deposit_account": {
"status": "none"
}
},
"missing": [
"profile.id_number",
"profile.id_type",
"document.identity",
"document.address"
],
"created_at": "2026-08-01T11:55:00+00:00",
"updated_at": "2026-08-01T11:55:00+00:00",
"submitted_at": null
}
}{
"status": "error",
"message": "Unauthorized",
"data": null
}{
"status": "error",
"message": "Validation error",
"data": {
"field": "country"
}
}Customers
Create a customer vault case
Create an incomplete vault case (status: incomplete). Idempotent on partner_customer_ref.
POST
/
partner
/
customers
curl --request POST \
--url https://sandbox.elementpay.net/api/v1/partner/customers \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"partner_customer_ref": "partner-cust-001",
"type": "individual"
}
'{
"status": "success",
"message": "Customer created",
"data": {
"id": "pcus_a1b2c3d4e5f6",
"partner_customer_ref": "cust-ke-001",
"type": "individual",
"status": "incomplete",
"profile": {
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"date_of_birth": "1990-01-15",
"country_of_residence": "GB",
"phone": "+447700900123",
"gender": "f",
"address": {
"line1": "1 Example Street",
"city": "London",
"country": "GB",
"postal_code": "E1 6AN"
}
},
"documents": [],
"products": {
"deposit_account": {
"status": "none"
}
},
"missing": [
"profile.id_number",
"profile.id_type",
"document.identity",
"document.address"
],
"created_at": "2026-08-01T11:55:00+00:00",
"updated_at": "2026-08-01T11:55:00+00:00",
"submitted_at": null
}
}{
"status": "error",
"message": "Unauthorized",
"data": null
}{
"status": "error",
"message": "Validation error",
"data": {
"field": "country"
}
}Create an incomplete vault case (
status: incomplete). Idempotent on partner_customer_ref.
Try it
Pick Individual or Business in the request body picker — each tab shows the expectedprofile shape. While incomplete, GET /partner/customers/{customer_id} returns missing[] with indexed paths (e.g. profile.officers[0].identity_document.number).
Full walkthrough: Customer KYC quickstart.Authorizations
Partner API key. Sandbox keys start with is_test_; production keys start with is_live_. Keys are not interchangeable across environments. Send on every request. Never expose in browser or mobile clients.
Body
application/json
- Individual
- Business
Create body for Mintlify Try it. Pick Individual or Business — type and profile update together. Live API accepts the same shapes; see GET /partner/customers/requirements for the full package.
Your stable id (unique per tenant).
Example:
"partner-cust-001"
Individual retail KYC package.
Available options:
individual Example:
"individual"
Individual profile. Requires id_number, id_type, address, and documents before submit.
Example:
{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"date_of_birth": "1990-01-15",
"country_of_residence": "GB",
"phone": "+447700900123",
"gender": "f",
"id_number": "A1234567",
"id_type": "passport",
"address": {
"line1": "1 Example Street",
"city": "London",
"country": "GB",
"postal_code": "E1 6AN"
}
}