Documents and signing

signing.envelopes.importExecuted

Record an agreement signed outside Oatmilk: fileId from signing.files.confirm (or googleDocUrl), title, executedOn, parties, optional endsOn and linked record (for example subjectType contractor). The original is kept unchanged with its hash and the envelope is marked completed as the agreement on file.

POST/api/v1/accounting/signing.envelopes.importExecuted

Permissions

accounting:readaccounting:write

Who can call it

admin, finance

Retries

Idempotency key required

MCP

accounting_signing_envelopes_import_executed

Fields

  • titlestringRequired

    A short title.

    1–200 characters

  • fileIdstring (ID)

    The ID of the related record.

  • googleDocUrlstring (uri)

    at most 2000 characters

  • executedOnstring (date)Required

    A date, as YYYY-MM-DD.

  • endsOnstring (date)

    A date, as YYYY-MM-DD.

  • partiesarray of objectsRequired

    1–10 items

  • subjectTypeenum

    The kind of record this is about, such as entry, invoice or mail.

    contractorpartyinvoice
  • subjectIdstring

    The ID of the record this is about.

    1–200 characters

  • notesstring

    Notes kept with the record.

    at most 4000 characters

  • 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.envelopes.importExecuted \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "Synthetic services agreement",
  "executedOn": "2026-09-01",
  "parties": [
    {
      "name": "Synthetic Ventures Inc."
    }
  ],
  "fileId": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
}'
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.envelopes.importExecuted
curl https://app.getoatmilk.com/api/v1/accounting/signing.envelopes.importExecuted \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "Synthetic services agreement",
  "executedOn": "2026-09-01",
  "parties": [
    {
      "name": "Synthetic Ventures Inc."
    }
  ],
  "fileId": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
}'

More in Documents and signing.