Onboard a Provider
Register a therapist and their practice before submitting sessions.
POST /api/v1/partner/providersRegister a therapist before submitting sessions on their behalf. This creates the practice and provider records we need to submit claims under their NPI.
Idempotent on NPI — if the provider already exists, we return the existing record with "status": "already_exists".
Request
const response = await fetch("https://api.usetaiga.com/api/v1/partner/providers", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
provider: {
firstName: "Jane",
lastName: "Smith",
npi: "1234567890",
taxonomyCode: "103T00000X",
specialty: "Clinical Psychologist",
credentials: "PhD",
},
practice: {
name: "Smith Therapy Associates",
taxId: "123456789",
address: {
street: "100 Main Street, Suite 200",
city: "New York",
state: "NY",
zip: "10001",
},
phone: "2125551234",
contactName: "Jane Smith",
},
}),
});
const data = await response.json();import requests
response = requests.post(
"https://api.usetaiga.com/api/v1/partner/providers",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"provider": {
"firstName": "Jane",
"lastName": "Smith",
"npi": "1234567890",
"taxonomyCode": "103T00000X",
"specialty": "Clinical Psychologist",
"credentials": "PhD",
},
"practice": {
"name": "Smith Therapy Associates",
"taxId": "123456789",
"address": {
"street": "100 Main Street, Suite 200",
"city": "New York",
"state": "NY",
"zip": "10001",
},
"phone": "2125551234",
"contactName": "Jane Smith",
},
},
)
data = response.json()curl -X POST https://api.usetaiga.com/api/v1/partner/providers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": {
"firstName": "Jane",
"lastName": "Smith",
"npi": "1234567890",
"taxonomyCode": "103T00000X",
"specialty": "Clinical Psychologist",
"credentials": "PhD"
},
"practice": {
"name": "Smith Therapy Associates",
"taxId": "123456789",
"address": {
"street": "100 Main Street, Suite 200",
"city": "New York",
"state": "NY",
"zip": "10001"
},
"phone": "2125551234",
"contactName": "Jane Smith"
}
}'Required fields
| Field | Description |
|---|---|
provider.firstName | Provider's first name |
provider.lastName | Provider's last name |
provider.npi | 10-digit NPI number |
practice.name | Legal practice name |
practice.taxId | 9-digit EIN (no dashes) |
practice.address | Object with street, city, state, zip |
Optional fields
| Field | Description | Default |
|---|---|---|
provider.taxonomyCode | Provider taxonomy code | Inferred from specialty |
provider.specialty | Specialty description | — |
provider.credentials | Credentials (PhD, PsyD, LCSW, etc.) | — |
practice.phone | Practice phone (10 digits, no formatting) | — |
practice.contactName | Billing contact name | — |
Taxonomy codes
Common taxonomy codes for behavioral health providers:
| Code | Description |
|---|---|
103T00000X | Psychologist |
103TA0400X | Psychologist, Addiction |
103TC0700X | Psychologist, Clinical |
1041C0700X | Social Worker, Clinical |
101YM0800X | Counselor, Mental Health |
101YP2500X | Counselor, Professional |
106H00000X | Marriage & Family Therapist |
If you provide specialty but not taxonomyCode, we infer the taxonomy code automatically.
Response
201 Created
{
"providerId": "uuid",
"practiceId": "uuid",
"providerNpi": "1234567890",
"practiceName": "Smith Therapy Associates",
"status": "created"
}If the provider already exists, the response has the same shape with "status": "already_exists".
Errors
| Status | Cause |
|---|---|
400 | Missing or invalid required fields (e.g. NPI not 10 digits, missing practice address) |
401 | Invalid or missing API key |