A missing contact returns 400, while a missing list or email returns 404. Handle both. Don’t assume a single not-found code across resources.
Errors inside a 200
Two cases return 200 and still carry an error signal. Check the body, not just the status:
- Bulk member add with unknown ids: the valid ids are added, and the response’s
errors[] array carries CONTACTS_NOT_FOUND for the ids that were skipped.
- Unknown transaction id:
GET /v1/contacts/transactions/{transactionId} returns 200 with status: NOT_EXIST instead of an HTTP error.