/api/partner/v1/violationsAdd a mailed ticket
Save a ticket that came by mail; it is attached to the booking and looked up on the agency portal.
For a ticket that came by mail (parking, red-light or speed camera, toll notice) that no scan finds.
It becomes an ordinary violation of the car: attached to the booking that had the car at that moment
and listed by GET /violations like any other.
issuedLocal is the agency's **local** wall clock as printed; we convert it to UTC with the time zone
of issuingState (default: the car's plate state). A date without a time is taken as noon.
When we can read that agency's portal, the ticket is looked up by its number (and PIN) straight away
and then re-checked every few hours until paid; lookup.outcome says what happened. The PIN is
stored encrypted and never returned. You can read a photo first with POST /violations/notice/read.
Authorization
X-Api-Key headerSend your partner key on every request. An owner key acts for its one owner; an integration token also needs the owner's id in the X-Owner-Id header.
Body
application/jsoncarIdstringrequiredOur car id or your external car id.
citationNumberstringrequiredThe number the agency portal asks for.
issuedLocalstringrequiredAgency local time as printed, YYYY-MM-DDTHH:mm or YYYY-MM-DD (taken as noon).
issuingStatestring2-letter state of the issuing agency; default the plate state.
amountnumberrequiredagencystringlocationstringpaymentUrlstring <uri>http/https only.
pinstringPIN or access code printed beside the number. Stored encrypted and never returned.
Response
201 · application/jsonsuccessbooleanrequireddataobjectviolationobjectlookupobjecterrorstringnullableStatus codes
data.violation is the existing one. Nothing was saved.