POST/PATCH /v1/contacts*) is processed asynchronously. The call returns 200 with a PENDING transaction: an acknowledgement, not the finished contact.
GET /v1/contacts/transactions/{transactionId} until status is DONE. A completed batch carries per-contact results:
status is one of CREATED, UPDATED, NO_CHANGE, or FAILED. An unknown transaction id returns NOT_EXIST (still HTTP 200).