Emboss · AsyncAPI Specification
Getemboss Ai Callbacks
Version
View Spec
View on GitHub
PDFFormsDocument ProcessingForm FillingFaxData ExtractionAgent-NativeMCPA2Ax402pay-per-callGovernment FormsCompanyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-19'
method: searched
source: https://getemboss.ai/docs/callbacks
docs: https://getemboss.ai/docs/callbacks
asyncapi_published: false
asyncapi_note: >-
Emboss publishes NO AsyncAPI document: /asyncapi.yaml on getemboss.ai and /asyncapi.json, /asyncapi.yaml on
api.getemboss.ai returned 404 on 2026-09-19, and the account OpenAPI declares no top-level webhooks object and
no operation callbacks. The event surface below is documented in prose only. Nothing was fabricated; this
artifact captures the callback catalogue as published. (The spec does declare two INBOUND webhook receivers —
stripe_webhook_stripe_webhook_post and fax_webhook_webhooks_fax_post — which are Emboss consuming its
vendors' events, not an event surface it offers.)
surface: Outbound HTTPS callbacks fired when an asynchronous job reaches a terminal state
subscription:
mechanism: Per-request — pass callback_url when starting a job (POST /forms, POST /forms/with-context, POST /forms/{form_id}/with-context); no account-level endpoint registration.
url_rules: Must be a public https URL; private, loopback and non-https URLs are rejected with 400.
relationship_to_polling: An alternative, not a replacement — the result stays fetchable from the GET endpoints, so a missed callback is never fatal.
delivery:
method: POST
content_type: application/json
attempts: One POST on terminal state; on a timeout or 5xx Emboss retries "a few times with backoff, then gives up".
guarantee: best-effort
effect_on_job: none — a callback failure never affects the job.
signing:
header: X-Emboss-Signature
scheme: 'sha256=<hex HMAC-SHA256 of the RAW request body, keyed by the account''s callback signing secret>'
verification: Compute over the raw bytes received, compare in constant time, before parsing JSON; re-serialised JSON can change bytes and break the signature.
secret_management: Configured on the Emboss account; if signing is not enabled callbacks arrive without the header — treat a missing signature as a configuration signal, not a valid unsigned request.
timestamp_or_replay_protection: none documented (no timestamp header, no event id beyond job_id/form_id)
events:
- name: job.ready
trigger: A context-fill job (/forms/with-context, /forms/{form_id}/with-context) finished successfully.
payload: {event: job.ready, status: ready, job_id: uuid, session_id: uuid, report: {filled: '[{id, confidence}]', dropped: '[{id, value, reason}]'}}
next: GET /sessions/{session_id}/pdf to fetch the filled PDF.
- name: job.failed
trigger: A context-fill job failed.
payload: {event: job.failed, status: failed, job_id: uuid, error: {code: context_fill_failed, message: string}}
- name: form.ready
trigger: Form creation / field detection (POST /forms) finished.
payload: {event: form.ready, status: ready, form_id: uuid}
next: GET /forms/{form_id}/fillable to download the fillable PDF.
- name: form.failed
trigger: Field detection failed.
payload: {event: form.failed, status: failed, form_id: uuid, error: {code: form_processing_failed, message: string}}
event_count: 4
not_covered: >-
Prepare, commit, batch and fax jobs have no documented callback; they are polled (GET /proposals/{id},
GET /forms/fill-batch/{batch_id}, GET /fax/{job_id}) or, over MCP/A2A, tracked by the tool/task lifecycle.
The pay door returns a status_url and documents no callback.
related_rest:
polling_docs: https://getemboss.ai/docs/tracking-jobs
operations: [create_form_forms_post, create_with_context_forms_with_context_post, fill_existing_with_context_forms__form_id__with_context_post, get_form_forms__form_id__get, get_with_context_forms_with_context__job_id__get]
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/getemboss-ai-callbacks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.