Contact) represents the debtor: the person or entity you charge. It centralizes their data (name, email, phones) so you can reuse it in future charges without repeating the information.
When to create it explicitly: when you want to maintain a debtor roster or reuse the same one across multiple charges. If you only charge once, creating it inline when creating the debt is enough.
Natural key: externalClientId
The externalClientId is the contact’s natural key and is unique per organization. It is the value you use to reference the debtor in debts and subscriptions. The contactId (with the con_ prefix) is the identifier that TapiPay assigns.
Create a contact
externalClientId, name, and email are required.
Creating a contact with an
externalClientId that already exists returns 409 RESOURCE_CONFLICT.Phones
Each phone has a requirednumber and type, and optional primary and description. The type must be one of:
MAIN, MOBILE, WORK, RELATIVE, OTHER.
A type outside that list returns 400 INVALID_REQUEST.
Use the contact in a charge
In a debt or subscription, you identify the debtor in one of these two ways (exactly one):By reference
You send the
externalClientId of an existing contact. If it does not exist, it returns 422 BUSINESS_RULE_VIOLATION.Inline
You send
contactData with the complete data. If the externalClientId does not exist, it is created; if it already exists, it is updated.createdInline is true if the contact was created in that request, and false if it already existed (was reused or updated).
Update
PATCH /contacts/{id} updates name, email, or phones (at least one). The externalClientId is not modifiable. When you update phones, the list you send completely replaces the previous one.
The contact has no
metadata or delete operation (DELETE) in v1. Manage its lifecycle with PATCH.Endpoints
Try it in the API Reference
Explore each endpoint with its interactive playground.

