Forms API
The POST /public/forms/{'{key}'} endpoint is the only genuinely open write endpoint — no authentication token required. It handles marketing and partner form intake.
Endpoint
POST https://api.merion.com.au/public/forms/{key}
Replace {key} with one of the supported form keys listed below.
No bearer token is required. Requests should send JSON with
Content-Type: application/json.
Request body
{
"form": "<key>",
"fields": {
"field_name": "value",
...
},
"hp": ""
} form(string, required)- Must match the
{key}in the URL path. Redundant but validated for consistency. fields(object, required)- Key-value map of form field names to values. See per-form schemas below.
hp(string, required)- Honeypot field — must be an empty string. Any non-empty value causes the submission to be silently discarded (bot mitigation). Always send
"hp": "".
Available form keys
contact
General enquiry form (merion.com.au/contact-us/).
name(string, required)- Full name of the enquirer.
email(string, required)- Contact email address.
phone(string, optional)- Contact phone number.
message(string, required)- Enquiry text. Minimum 10 characters.
curl -s -X POST \
-H "Content-Type: application/json" \
-d '{
"form": "contact",
"fields": {
"name": "Jane Smith",
"email": "[email protected]",
"phone": "0400 000 000",
"message": "I would like to enquire about commercial debt recovery services."
},
"hp": ""
}' \
https://api.merion.com.au/public/forms/contact refer-a-debt
Refer an overdue account for recovery.
name(string, required)- Your full name.
email(string, required)- Your email address.
company(string, required)- Your business name.
debtor_name(string, required)- Name of the debtor business or person.
amount(string, required)- Approximate amount owed (AUD).
notes(string, optional)- Any additional context about the debt.
curl -s -X POST \
-H "Content-Type: application/json" \
-d '{
"form": "refer-a-debt",
"fields": {
"name": "Alex Brown",
"email": "[email protected]",
"company": "My Business Pty Ltd",
"debtor_name": "Debtor Co Pty Ltd",
"amount": "12500",
"notes": "Invoice #INV-0042, due 60 days ago."
},
"hp": ""
}' \
https://api.merion.com.au/public/forms/refer-a-debt request-a-quote
Request a commission quote before committing to a referral.
name(string, required)- Your full name.
email(string, required)- Your email address.
company(string, optional)- Your business name.
debt_amount(string, required)- Approximate value of the debt (AUD).
debt_age(string, optional)- How long overdue (e.g., "90 days").
partner-referral
Submit a referral on behalf of a partner account.
partner_name(string, required)- Partner business name.
partner_email(string, required)- Partner contact email.
client_name(string, required)- End client business name.
client_email(string, required)- End client contact email.
debtor_name(string, required)- Debtor business or person name.
amount(string, required)- Approximate amount owed (AUD).
notes(string, optional)- Additional context.
become-a-partner
Apply for the Merion Partner Programme.
name(string, required)- Your full name.
email(string, required)- Your email address.
company(string, required)- Your business name.
role(string, optional)- Your role (e.g., "Accountant", "Bookkeeper").
message(string, optional)- Why you'd like to partner with Merion.
Success response
On success, the API returns 200 OK with:
{
"data": {
"message": "Thank you. We will be in touch shortly.",
"redirect": "https://merion.com.au/thank-you/"
}
} data.message(string)- Human-readable confirmation text. Display this to the user.
data.redirect(string, optional)- If present, redirect the user to this URL after submission. Not all forms include a redirect.
Error response
On failure, the API returns a non-200 status with:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Please check the highlighted fields and try again.",
"details": {
"email": "A valid email address is required.",
"message": "Message must be at least 10 characters."
}
}
} error.code(string)- Machine-readable error code. Common values:
VALIDATION_ERROR,FORM_NOT_FOUND,RATE_LIMITED,SERVER_ERROR. error.message(string)- Human-readable summary. Safe to display to the user.
error.details(object, optional)- Field-level validation errors. Keys are field names; values are error descriptions.
Honeypot & bot mitigation
The hp field is a honeypot — it is a hidden field that legitimate users
never fill in. If the value is non-empty, the submission is silently discarded:
the API returns a 200 OK (to avoid fingerprinting) but nothing is
delivered. Always send "hp": "" from your integration.
Additional server-side checks (rate limiting, IP reputation) may also cause submissions to be silently dropped. If your integration is generating a high volume of submissions, contact Merion to arrange appropriate rate limit allowances.
Content type
Send requests with Content-Type: application/json. The endpoint does not
accept multipart/form-data or application/x-www-form-urlencoded.
Ready to integrate with Merion?
API access is available to approved partners and integrators. Contact us to start the conversation — no commitment required.