eform.submitted.
Sending needs canWrite: true and enough subscription or wallet balance to send. A read-only credential can list templates and cannot send.
1. List templates
GET /api/v1/eforms/templates returns the templates this practice can send, including industry defaults and the practice’s own.
pageNumberstarts at 1.pageSizedefaults to 50 and caps at 100.- Inactive templates are omitted unless
includeInactive=true. - The id you send is
formTemplateId. On the send call that field is namedtemplateId.
2. Choose the recipient
POST /api/v1/eforms/send has two recipient shapes.
Stored client. Pass entityKey from Sync clients. Name, email, and mobile come from the client. Override any of recipientName, recipientEmail, or recipientMobile for this send only. The stored client is not updated.
Someone not on file. Omit entityKey. recipientName and recipientEmail are required. recipientMobile is optional. The form is not tied to an entity.
3. Read the response before you assume the email went
A successful body includesformKey, accessUrl, emailSent, and sent.
mute: true does not email. The form is still marked sent, and accessUrl is the same client link the email would have used. Put that URL in your own email, SMS, or portal. Do not build a different link.
If sent is false, do not tell the recipient the form is waiting. Open accessUrl (a portal editor URL in that case), fix the problem, and send again from the product or with a new API call.
Insufficient subscription or wallet returns an error and does not leave a half-sent form you should retry blindly. Top up, then send again.
4. Know when it is submitted
Do not poll for completion. Subscribe toeform.submitted with Webhooks. The delivery includes the form name, recipient, and a review link. Verify X-Om-Signature and dedupe on X-Om-Event-Id.
The building-block shape of a sent form is The eForm.
Send eForm reference
Request fields, mute behaviour, and the template list.