Documents and signing

signing.templates.create

Create a custom agreement template from Markdown (body with {{field.key}} merge fields and an optional {{signatures}} block), fields, signerRoles, and letterhead. Set duplicateOf to copy an existing or starter template. It is published and ready to send unless publish is false, which keeps it a draft until signing.templates.publish. Requires an idempotency key.

POST/api/v1/accounting/signing.templates.create

Permissions

accounting:readaccounting:write

Who can call it

admin, finance

Retries

Idempotency key required

MCP

accounting_signing_templates_create

Fields

  • titlestringRequired

    A short title.

    1–200 characters

  • descriptionstring

    A short description.

    at most 1000 characters · Default ""

  • kindenum

    Which kind of record or job this is.

    ndacontractor_agreementsignature_requestletterheadcustom

    Default "custom"

  • bodystring

    1–200000 characters

  • editorJsonmap or null
  • fieldsarray of objects

    at most 100 items

  • signerRolesarray of objects

    at most 10 items

  • letterheadboolean
  • logoAssetIdstring (ID) or null
  • duplicateOfstring (ID)
  • publishboolean
  • idempotencyKeystringRequired

    Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.

    8–200 characters

Example

curl https://app.getoatmilk.com/api/v1/accounting/signing.templates.create \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "Synthetic services agreement",
  "body": "Synthetic example from the docs"
}'
Response
{
  "data": { … }
}

Try it

Try it

Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.

POST/api/v1/accounting/signing.templates.create
curl https://app.getoatmilk.com/api/v1/accounting/signing.templates.create \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "Synthetic services agreement",
  "body": "Synthetic example from the docs"
}'

More in Documents and signing.