Registers a new contact with the given E.164 phone number. The phone is the canonical identifier and comes from the URL — it is not accepted in the body. Any unknown property in the body is rejected with a 400.
customFields are validated against the user's current schema (same rules as PATCH — unknown indexes, type mismatches, etc. yield 33033 InvalidCustomField with a machine-readable details.reason).
If a contact with this phone already exists, the request is rejected with 409 ContactAlreadyExists (33037). To merge into an existing contact, GET /contacts/by-phone/{phoneNumber} then PATCH instead.
Creation does NOT trigger any consent flow — that happens only when the contact is enrolled into a group via POST .../groups/{groupId}.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||