POST /users
Register a new user under your partner account.
POST /users
Register a user tied to your internal user reference. Required before creating quotes or orders for that user.
MexicoP2P supports two KYC models: Partner-managed (you attest via kycAttestation) and MexicoP2P-provided (you redirect users to our verification flow). Your model is set when your partner account is created. See KYC: Two models for details.
Request
curl -X POST \
-H "X-API-Key: mp2p_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"partnerUserRef": "user_12345",
"email": "user@example.com"
}' \
https://mexicop2p.org/api/v1/usersRequest body
| Field | Type | Required | Description |
|---|---|---|---|
partnerUserRef | string | Yes | Your internal user ID (max 255 chars) |
email | string | No | User's email address |
kycAttestation | object | No | Only for PARTNER_MANAGED KYC model |
kycAttestation.level | string | — | "BASIC" or "FULL" |
kycAttestation.verifiedAt | string | — | ISO 8601 timestamp |
Response 201
{
"id": "cm3abc123",
"partnerUserRef": "user_12345",
"kycStatus": "NOT_REQUIRED",
"kycTier": "NONE",
"orderCount": 0,
"totalVolumeMxn": 0,
"createdAt": "2025-06-15T12:01:00.000Z"
}Response fields
| Field | Type | Description |
|---|---|---|
id | string | Internal MexicoP2P user ID |
partnerUserRef | string | Your reference ID |
kycStatus | string | NOT_REQUIRED, PENDING, APPROVED, REJECTED |
kycTier | string | NONE, BASIC, FULL |
orderCount | number | Total orders placed |
totalVolumeMxn | number | Lifetime trade volume in MXN |
createdAt | string | Registration timestamp |
Errors
| Code | HTTP | When |
|---|---|---|
VALIDATION_ERROR | 400 | Missing partnerUserRef or invalid format |
DUPLICATE_USER | 409 | User with this ref already exists |
USER_LIMIT_REACHED | 403 | Partner's tier user limit reached |