API reference / Support

post/v1/contact

Send a message from the contact form

Operation
sendContactMessage
Authentication
API key

Delivers to the support address. Answers `{ok: true}` for a message that was sent **and** for one discarded by the honeypot, deliberately: telling the two apart is how a bot learns which field to skip.

Request

Body

namestringrequired
emailstringrequired
order_refstring
messagestringrequired
companystring

Responses

200Accepted or discarded — indistinguishable, by design.
okbooleanrequired

one of:

400The request body or query failed validation.
errorobjectrequired
401No key, an unknown key, a revoked key, or a key whose tenant is not active. All four return an identical body on purpose: distinguishing them would let a caller discover which partners we have.
errorobjectrequired
403The key is valid but does not hold the scope this route requires.
errorobjectrequired
404Not found, or not yours. A resource belonging to another tenant answers 404 rather than 403, because 403 would confirm the record exists.
errorobjectrequired
502The message could not be delivered. The visitor is told so plainly.

Example

curl
curl -X POST https://api.haavisa.com/v1/contact \
  -H "Authorization: Bearer $HAAVISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "<name>",
    "email": "<email>",
    "message": "<message>"
  }'

More in Support

Something unclear? The eligibility guide explains the model behind the answers; the errors guide covers the envelope.