Overview
The Add Contact webhook allows partners to create a new contact record in PitchCRM. At least one of email or phoneNo must be provided — requests missing both will return a 400 error.
Endpoint
POST https://partner.api.v3.pitchcrm.com/v3/partner/webhook/contact/add
Request Body
{
"email": "testuser@example.com",
"firstName": "Test",
"lastName": "User",
"phoneNo": "+1234567890",
"addrOne": "2nd Floor",
"addrTwo": "123 Main St",
"city": "Test City",
"country": "US",
"state": "CA",
"zipCode": "12345",
"gender": "male",
"dateOfBirth": "1990-01-01",
"emailOptStatus": 0,
"smsOptStatus": 0,
"tag": ["test_tag_123", "test_tag_456"]
}
Field Reference
| Field | Type | Required | Description |
|---|
email | String | Conditional | Contact email address. Required if phoneNo is not provided. |
phoneNo | String | Conditional | Contact phone number. Required if email is not provided. |
firstName | String | Optional | Contact first name |
lastName | String | Optional | Contact last name |
addrOne | String | Optional | Address line 1 |
addrTwo | String | Optional | Address line 2 |
city | String | Optional | City |
country | String | Optional | Country code (e.g. US, UK, CA, AU, NZ, IN) |
state | String | Optional | State or province code |
zipCode | String | Optional | ZIP or postal code |
gender | String | Optional | male, female, or other |
dateOfBirth | Date | Optional | Format: YYYY-MM-DD |
emailOptStatus | Integer | Optional | 0 = Opt-out, 1 = Opt-in |
smsOptStatus | Integer | Optional | 0 = Opt-out, 1 = Opt-in |
tag | Array | Optional | List of tag name strings |
playerType | Array | Optional | List of player type name strings |
email and phoneNo are both listed as Optional but at least one must be included in every request.
Success Response
Status: 200 OK
{
"status": "success",
"contactId": "1234567890"
}
Error Responses
| HTTP Code | Error Message | Description |
|---|
400 | Either email or phoneNo is required | Both email and phoneNo are missing |
401 | Invalid API credentials | x-api-key or x-api-secret is incorrect |
403 | Unauthorized account access | x-account-id mismatch |
429 | Rate limit exceeded. Try again later. | More than 100 requests per minute |
500 | Internal server error | Unexpected server-side issue |