Skip to main content
POST
/
customers
curl --request POST \
  --url https://{publicHost}/customers \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "platformCustomerId": "partner_cust_9f8b2c7d",
  "customerType": "INDIVIDUAL",
  "fullName": "Pat Rivera",
  "birthDate": "1992-05-06",
  "nationality": "PH",
  "kycStatus": "PENDING",
  "address": {
    "line1": "100 Demo Street",
    "line2": "Suite 5A",
    "city": "Manila",
    "state": "NCR",
    "postalCode": "1000",
    "country": "PH"
  }
}
'
{
  "id": "cust_123",
  "platformId": "plat_demo_001",
  "platformCustomerId": "partner_cust_9f8b2c7d",
  "customerType": "INDIVIDUAL",
  "fullName": "Pat Rivera",
  "birthDate": "1992-05-06",
  "nationality": "PH",
  "address": {
    "line1": "100 Demo Street",
    "city": "Manila",
    "state": "NCR",
    "postalCode": "1000",
    "country": "PH"
  },
  "kycStatus": "PENDING",
  "createdAt": "2026-04-05T12:00:00Z",
  "updatedAt": "2026-04-05T12:00:00Z"
}

Authorizations

Authorization
string
header
required

Integration-key Basic Auth (clientId:clientSecret) as documented in docs/public/AUTHENTICATION.md.

Body

application/json

Create a customer record for your authenticated platform. Use fullName as the public name field for both INDIVIDUAL and ENTITY customers.

platformCustomerId
string
required

Stable platform-side customer identifier used to create and later look up this customer.

customerType
enum<string>
required

Customer type for the new customer. Use INDIVIDUAL for a person or ENTITY for a business.

Available options:
INDIVIDUAL,
ENTITY
fullName
string
required

Public customer name. Use the legal person name for INDIVIDUAL or the legal business name for ENTITY.

kycStatus
enum<string>

Optional initial KYC status when your platform already has that state.

Available options:
PENDING,
APPROVED,
REJECTED
birthDate
string<date>

Birth date in YYYY-MM-DD format when collected.

nationality
string

Customer nationality or citizenship code when collected.

address
object

Optional customer address object.

Response

Customer created.

Public customer-create response. POST /customers creates the customer record only and does not issue a PPV/payment address.

id
string
required

Stable customer identifier.

platformId
string
required

Platform identifier that owns this customer.

platformCustomerId
string
required

Platform-provided customer identifier stored for this customer.

customerType
enum<string>
required

Customer type for this customer.

Available options:
INDIVIDUAL,
ENTITY
fullName
string
required

Public customer name stored for the created customer.

birthDate
string<date> | null
required

Customer birth date in YYYY-MM-DD format when available.

nationality
string | null
required

Customer nationality or citizenship code when available.

address
object
required

Customer address when available.

kycStatus
enum<string>
required

Current KYC status for the created customer.

Available options:
PENDING,
APPROVED,
REJECTED
createdAt
string<date-time>
required

Creation timestamp.

updatedAt
string<date-time>
required

Last update timestamp.