Submit the form

posthttps://api.expiryedge.com/v1/submitCollectionRequest
Public - no API key60/minAny method
Request
curl -X POST 'https://api.expiryedge.com/v1/submitCollectionRequest' \
  -H "Content-Type: application/json" \
  -d '{
  "token": "3f9a1c7e5b2d4f6a8c0e1b3d5f7a9c2e4b6d8f0a1c3e5b7d9f2a4c6e8b0d1f3a",
  "responses": {
    "fld_company_name": "Northwind Dental LLC",
    "fld_entity": "LLC"
  },
  "files": [
    {
      "fieldId": "fld_insurance",
      "storagePath": "organizations/org_northwind/collection-submissions/req_9WkT/fld_insurance-6c1e-liability-certificate-2026.pdf",
      "originalFilename": "liability-certificate-2026.pdf"
    }
  ]
}'
Response
{
  "message": "Submission received",
  "submission_id": "sub_Qm3r"
}

Validates every field (required, options, dates, numbers) and re-checks each uploaded file's type and size in storage, then creates the submission and completes the request. After "Request changes" use resubmitCollectionRequestFields instead (this returns 409). The handler does not check the HTTP method.

Headers

  • X-Collection-Passwordstring
    Request password, when the sender set one. Preferred over the password body field / query parameter.

Body parameters

application/json
  • tokenstringrequired
    The token from the request link.
    pattern: ^[a-f0-9]{64}$
  • responsesobjectrequired
    Field id -> answer. Types: text/phone/long_text string, number number, date ISO string, checkbox boolean, dropdown/radio one of options, multi_select array of options, address object {line1, line2, city, state, postal_code, country}.
  • passwordstring
    Request password, when set (or use the X-Collection-Password header).
  • filesarray of objects

Returns

201
Submission received.
  • messagestringrequired
  • submission_idstringrequired

Errors

400
Malformed token (Invalid link) or invalid input.
401
The request has a password and it is missing ({"requiresPassword": true}) or wrong.
403
The sender paused this request.
404
Unknown token (link rotated, deleted or mistyped), or the template no longer exists.
409
A submission already exists for this request.
410
The request was cancelled, already completed (alreadySubmitted: true) or has expired.
429
Password locked out after 5 wrong attempts (15 minutes, per request).
500
Unexpected server error.