Ingest API (Webhooks)
Endpoints
ingest endpoint post /api/webhook/ingest/{ingest endpoint uuid} send people data into jomablue for ingestion authentication bearer token in authorization header body json payload (see field mapping) rate limits default is 120 requests/minute responses 200 accepted request stored and queued for processing 422 unprocessable entity validation failed 401 unauthorized invalid/expired/missing token 429 too many requests rate limit exceeded ingest test endpoint post /api/webhook/ingest/{ingest endpoint uuid}/test this validates a payload without persisting it use this to check whether a request would be accepted by the configured mapping and validation rules validation ingest endpoints can be configured with schema validation this reduces bad data by rejecting invalid requests early if a request fails to pass validation, a 422 response is provided with some additional messaging { 	"message" "invalid", 	"success" false, 	"error type" "validation error", 	"errors" "the provided payload is not in the correct format for this endpoint" } example request request post /api/webhook/ingest/123e4567 e89b 12d3 a456 426614174000 authorization bearer eyjhbgcioi content type application/json accept application/json body { "contact" { "organisationuid" "0012x000004ebhtaau", "first name" "jane", "last name" "doe", "email" "jane doe\@example com", "mobile" "+61400123456", "company" "acme corp", "job title" "marketing manager", "categories" \[7, 9], "custom fields" { "tshirtsize" "m", "state" "nsw" }, "gala dinner" "paid" } } response { 	"success" true } considerations requests are processed asynchronously 200 accepted means queued, not processed no automatic deduplication; upstream systems should send unique identifiers (organisation uid) if required event ordering is not guaranteed; jobs are processed as picked from the queue people import type is labeled as ingest api in reporting so you can understand which records were ingested via this api