Assinafy

Assinafy provides a free electronic signature platform for Brazilian users, allowing online signing of documents with legal validity under ICP‑Brasil standards. The service offers a public, fully documented API for developers to integrate signature workflows into their applications, supports unlimited users per document, customizable branding, and a range of plans for businesses such as software houses, law firms, accountants, SaaS platforms, marketplaces, fintechs, and more.

Assinafy publishes 14 API contracts indexed on the APIs.io network, including Accounts API, Assignments API, Authentication API, and 11 more. Tagged areas include E-Signature, Document Management, Brazil, and Free.

The Assinafy catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 1 Spectral governance ruleset.

Assinafy’s developer surface includes CLI, authentication, documentation, API reference, getting-started guide, support, engineering blog, and 27 more developer resources.

64.1/100 strong Agent 47/100 agent ready Heartbeat 100/100 alive Full breakdown ↓
scored 2026-11-02 · rubric v0.26.0 · Show this score on your site →
AccessFreemiumSelf serve⚡ Free to try
1 published contract 1 Agent Skills
E-SignatureDocument ManagementBrazilFree

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-11-02 · rubric v0.26.0
Regulatory Posture applies to this provider. Its tags matched the Horizontal (data, software, accessibility, platform) regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero: never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and several others — scorable at all.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site. Kin Score badge preview for Assinafy It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/assinafy-com-br/"><img src="https://apis.io/badge/assinafy-com-br/card.svg" alt="Assinafy on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
  • MCP Server +12 pts — deployment.mode + probe verdict on the mcp/ manifest, not the pointer; an unprobed slug falls back to authorship
  • Idempotency +9 pts — OpenAPI mutating operations declare an idempotency key — a header, a request-body property, or a named de-duplication token whose own description says so (verified); else common[].type matches /idempoten/i (documented)
  • A2A Agent Card +8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
  • Registration Without a Human +6 pts — a `registration_endpoint` in the served RFC 8414 / OIDC discovery document
  • Documented Reversibility +6 pts — a reversal operation in the contract, graded up when a window is documented too
  • Agentic Commerce Well-Known Document +5 pts — a parsing /.well-known/ucp.json or acp.json declaring a version and at least one service — `self` when its endpoints are on the provider's own domain, `platform` when they are on a vendor's
2 more unmet checks in the Agent Readiness table above.
Kin Score — facets with the most composite points still available (weight × headroom):
Each check links to what satisfies it. Publish the artifact, or tell us where it already lives, and the score moves on the next scoring run.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from the provider profile at artifacts.apis.io/assinafy-com-br/apis.yml: open an issue on github.com/api-evangelist/assinafy-com-br to ask a question or point us at an artifact you publish. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

Standards implemented 3

Standards this provider implements or carries. De facto ones are profiled and measured by the API Commons; formal ones come from the standards directory and are linked by the provider's own tags. The evidence column says how each claim was established — not that it was made.

measured — observed by APIs.io (verified)
measured — observed by APIs.io (published)
measured — observed by APIs.io (declared)

APIs 14

Individual APIs this provider publishes, each with its own machine-readable definition.

Assinafy Accounts API

Workspace accounts: profile, logo and theme.

Assinafy Assignments API

Request signatures on a document and estimate their cost.

Assinafy Authentication API

Authentication can be done in three ways: - API key in the `X-Api-Key` header: `X-Api-Key: {api-key}` - Access token in the `Authorization` header: `Authorization: Bearer {acces...

Assinafy Contracts API

Contract terms tracked on documents: counterparty, value, dates and renewal terms. A contract always belongs to a document of the workspace, and tracking it never changes how th...

Assinafy Documents API

Create, list, download, tag and delete documents.

Assinafy Fields API

Reusable field definitions used on templates and assignments.

Assinafy OAuth API

The token, revocation and userinfo endpoints an OAuth application calls, and this API's protected-resource metadata. New to OAuth with Assinafy? Read **OAuth Integration Guide**...

Assinafy Signers API

Manage the signing parties of a workspace.

Assinafy Signing API

Signer-facing endpoints: view, sign and decline documents using a signer access code.

Assinafy Tags API

Workspace-scoped labels attachable to documents and templates.

Assinafy Templates API

Reusable document templates, their roles, fields and tags.

Assinafy Users API

User account endpoints.

Assinafy Webhook Payloads API

This section documents the HTTP request your endpoint receives whenever a subscribed event is triggered, and the shape of the JSON body sent for each event type. ### Delivery co...

Assinafy Webhooks API

Outbound webhook endpoints and delivery history. An account can register **1 webhook endpoint**, or **up to 3** on paid plans. Each endpoint has its own URL, event list and sign...

Scroll for all 14

Agent Skills 1

Packaged agent skills for driving this provider's APIs from an AI assistant.

accounts

AGENT SKILL

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Assinafy Com Br Rate Limits

1 limits

RATE LIMITS

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Assinafy Com Br Context

47 classes · 211 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Assinafy API Rules

65 rules · 49 errors 12 warnings 4 info

SPECTRAL

OpenAPI Overlays 1

Overlays applied on top of this provider's contracts. Each card says who wrote it: a document the provider publishes, or one API Evangelist derived or generated.

Assinafy Com Br Openapi Overlay

0 actions · update

UNRECORDED

JSON Schema 6

Standalone JSON Schema definitions for this provider's data models.

DocumentContractAmendment

15 properties

JSON SCHEMA

DocumentContractInput

16 properties

JSON SCHEMA

DocumentContract

20 properties

JSON SCHEMA

Document

19 properties

JSON SCHEMA

SignerIdentityReview

17 properties

JSON SCHEMA

WebhookDispatch

17 properties

JSON SCHEMA

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Assinafy Com Br Authentication

apiKey/http/oauth2 · 4 schemes

SECURITY

Assinafy Com Br Domain Security

TLSv1.3 · DMARC

SECURITY

Scopes 1

OAuth scopes governing access to this provider's APIs.

Assinafy Com Br Scopes

10 scopes · authorizationCode

10 scopes

SCOPES

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Assinafy Com Br Agentic Access

118 operations · 67 acting · 5 human-in-the-loop

118 operations · 67 acting

AGENTIC

Resources

Get Started 3

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 8

Pagination, idempotency, versioning, errors, and events

Scroll for all 8

Build 4

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 4

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Other 2

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: assinafy-com-br
name: Assinafy
description: Assinafy provides a free electronic signature platform for Brazilian users, allowing online signing of documents
  with legal validity under ICP‑Brasil standards. The service offers a public, fully documented API for developers to integrate
  signature workflows into their applications, supports unlimited users per document, customizable branding, and a range of
  plans for businesses such as software houses, law firms, accountants, SaaS platforms, marketplaces, fintechs, and more.
url: https://artifacts.apis.io/assinafy-com-br/apis.yml
x-type: company
x-source: harvest:mcp-registry
x-tier: profiled
x-tier-reason: enrichment pass 2026-11-01 (modular-v1; was harvest)
accessModel:
  pricing: freemium
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  gated: none
  gated_source:
  - onboarding
  label: Freemium · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  - rate-limits
  - security
  generated: '2026-11-02'
  method: derived
specificationVersion: '0.20'
created: '2026-11-01'
modified: '2026-11-02'
tags:
- E-Signature
- Document Management
- Brazil
- Free
tags_raw:
- ElectronicSignature
- DocumentManagement
- API
- Brazil
- Free
image: https://www.assinafy.com.br/images/favicon-assetfy/favicon-32x32.png
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
- FN: APIs.json
  email: info@apis.io
common:
- type: AgenticAccess
  url: agentic-access/assinafy-com-br-agentic-access.yml
- type: RateLimits
  url: rate-limits/assinafy-com-br-rate-limits.yml
- type: Plans
  url: plans/assinafy-com-br-plans-pricing.yml
- type: Spectral
  url: rules/assinafy-com-br-rules.yml
- type: JSONLD
  url: json-ld/assinafy-com-br-context.jsonld
- type: Vocabulary
  url: vocabulary/assinafy-com-br-vocabulary.yml
- type: AgentSkill
  url: skills/_index.yml
- type: Webhooks
  url: asyncapi/assinafy-com-br-webhooks.yml
- type: DataModel
  url: data-model/assinafy-com-br-data-model.yml
- type: CLI
  url: cli/assinafy-com-br-cli.yml
- type: Conventions
  url: conventions/assinafy-com-br-conventions.yml
- type: ErrorCatalog
  url: errors/assinafy-com-br-problem-types.yml
- type: Conformance
  url: conformance/assinafy-com-br-conformance.yml
- type: LLMsTxt
  url: llms/assinafy-com-br-llms.txt
- type: WellKnown
  url: well-known/assinafy-com-br-well-known.yml
- type: Hosts
  url: hosts/assinafy-com-br-hosts.yml
- type: Vendors
  url: vendors/assinafy-com-br-vendors.yml
- type: SDKs
  url: packages/assinafy-com-br-packages.yml
- type: Packages
  url: packages/assinafy-com-br-packages.yml
- type: GitHubOrganization
  url: https://github.com/assinafy
- type: OAuthScopes
  url: scopes/assinafy-com-br-scopes.yml
- type: Authentication
  url: authentication/assinafy-com-br-authentication.yml
- type: DomainSecurity
  url: security/assinafy-com-br-domain-security.yml
- type: Website
  url: https://assinafy.com.br/
- type: DeveloperPortal
  url: https://www.assinafy.com.br/
- type: Documentation
  url: https://www.assinafy.com.br/api
- type: APIReference
  url: https://www.assinafy.com.br/api
- type: GettingStarted
  url: https://www.assinafy.com.br/cadastro
- type: Support
  url: https://www.assinafy.com.br/contato
- type: Blog
  url: https://www.assinafy.com.br/blog
- type: Pricing
  url: https://www.assinafy.com.br/planos
- type: TermsOfService
  url: https://www.assinafy.com.br/termos-de-uso
- type: PrivacyPolicy
  url: https://www.assinafy.com.br/politica-de-privacidade
- type: SignUp
  url: https://www.assinafy.com.br/cadastro
apis:
- aid: assinafy-com-br:assinafy-com-br-accounts-api
  name: Assinafy Accounts API
  description: 'Workspace accounts: profile, logo and theme.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Account
  tags_raw:
  - Accounts
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-accounts-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-assignments-api
  name: Assinafy Assignments API
  description: Request signatures on a document and estimate their cost.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Assignments
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-assignments-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-authentication-api
  name: Assinafy Authentication API
  description: 'Authentication can be done in three ways:


    - API key in the `X-Api-Key` header: `X-Api-Key: {api-key}`

    - Access token in the `Authorization` header: `Authorization: Bearer {access-token}`

    - Access token as a URL parameter: `?access-token={access-token}`


    The **recommended** method is an API key, which you create from the settings page in the Assinafy app. An access token
    is obtained through login with email and password; it is a JWT that usually expires in one hour.


    Building an application that **other people** connect to their own workspace? Don''t ask for their API key: use OAuth,
    which gives your app a token limited to what the user approved. See **OAuth Integration Guide**.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Authentication
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-authentication-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-contracts-api
  name: Assinafy Contracts API
  description: 'Contract terms tracked on documents: counterparty, value, dates and renewal terms. A contract always belongs
    to a document of the workspace, and tracking it never changes how that document is uploaded, sent or signed.


    ### How the flow works


    1. **Have the document first.** Upload it with `POST /v1/accounts/{accountId}/documents`, or pick one already in the workspace,
    and keep its `id`. No call creates a document and its contract terms together.

    2. **Set its terms.** `PUT /v1/accounts/{accountId}/documents/{documentId}/contract` with the terms. Any time: right after
    the upload, while the document is out for signature, or long after it was signed. A contract that ended before it was
    tracked is registered as it ended (`expired` with a past `end_date`, or `terminated`). A cancelled, declined or expired
    document takes no new terms. If this call fails, the document stays uploaded and the terms can be sent again.

    3. **Record a change with a signed instrument** (optional). Upload the amendment, renewal or termination document, then
    `PUT` its own `.../contract` with `parent_document_id` (the contract''s document), `relation_type` and the terms it changes.
    The change applies to the contract once that document is signed (at once if it already is), and `document_contract_amended`
    is recorded.

    4. **Let the hourly run keep it current.** Every active contract is walked by the Brasília calendar day: the renewal notice
    when the notice period starts, warnings 45 and 30 days before the end date, and, the day after it, the next term for an
    auto-renew contract or `expired` for the others. Each records its `document_contract_*` event and e-mails the contract''s
    owner. The same run hands the contracts of an owner who left the workspace, however they left, to the first owner still
    an active member.

    5. **Or change it directly.** `PUT` edits the terms, `POST .../renew` starts the next term and `POST .../terminate` closes
    the contract.

    6. **Read it.** `GET /v1/accounts/{accountId}/contracts` lists the workspace''s contracts; `GET .../documents/{documentId}/contract`
    reads one with its amendments; `GET /v1/documents/{documentId}` says whether a document has one (`has_contract`). Every
    change is an event on the document''s activities and a webhook.


    ### Who can write


    Writes need a plan with contract tracking; reads do not. Any active member of the workspace, owner or organizer, may set
    terms, link amendments, renew and terminate; an OAuth app needs `documents:write` to write and `documents:read` to read.


    ### Errors and conflicts


    A refused write lists every problem in `errors`, each with its `field` and a stable `code`; the codes and the rules behind
    them are in the `400` response. A write that sends the `updated_at` it read is refused with `409` if the contract changed
    meanwhile.


    ### When the plan lapses


    While the workspace''s plan lacks contract tracking (its subscription expired or was cancelled; a payment past due inside
    the grace period keeps it), the hourly run leaves its contracts as they are and signed amendments wait. The first run
    after the plan returns catches up: a contract past its end date moves to the term running that day, on its own renewal
    cycle, or expires; waiting amendments apply in signing order; alerts whose window passed meanwhile are not sent.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Contracts
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-contracts-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-documents-api
  name: Assinafy Documents API
  description: Create, list, download, tag and delete documents.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Documents
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-documents-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-fields-api
  name: Assinafy Fields API
  description: Reusable field definitions used on templates and assignments.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Fields
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-fields-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-oauth-api
  name: Assinafy OAuth API
  description: 'The token, revocation and userinfo endpoints an OAuth application calls, and this API''s protected-resource
    metadata. New to OAuth with Assinafy? Read **OAuth Integration Guide** first. The authorization server''s own metadata
    is served at `https://auth.assinafy.com.br/.well-known/oauth-authorization-server`, not on this API: read endpoint URLs
    from it instead of hardcoding them.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - OAuth
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-oauth-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-signers-api
  name: Assinafy Signers API
  description: Manage the signing parties of a workspace.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Signers
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-signers-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-signing-api
  name: Assinafy Signing API
  description: 'Signer-facing endpoints: view, sign and decline documents using a signer access code.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Signing
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-signing-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-tags-api
  name: Assinafy Tags API
  description: Workspace-scoped labels attachable to documents and templates.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Tags
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-tags-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-templates-api
  name: Assinafy Templates API
  description: Reusable document templates, their roles, fields and tags.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Templates
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-templates-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-users-api
  name: Assinafy Users API
  description: User account endpoints.
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - User
  tags_raw:
  - Users
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-users-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-webhook-payloads-api
  name: Assinafy Webhook Payloads API
  description: "This section documents the HTTP request your endpoint receives whenever a subscribed event is triggered, and\
    \ the shape of the JSON body sent for each event type.\n\n### Delivery contract\n\nWhen an event occurs, we send an HTTP\
    \ `POST` request to every active webhook endpoint subscribed to that event. Each endpoint is delivered to independently:\
    \ a slow or failing endpoint does not delay the others, and each has its own failure count.\n\n| Property | Value |\n\
    |----------|-------|\n| Method | `POST` |\n| Content-Type | `application/json` |\n| Connection header | `close` |\n| `webhook-id`\
    \ header | Message ID, identical on every attempt of the same event to the same endpoint. Use it to deduplicate. |\n|\
    \ `webhook-timestamp` header | Unix timestamp (seconds) of the attempt. |\n| `webhook-signature` header | Only when signing\
    \ is enabled on the endpoint. See **Verifying signatures**. |\n| Success criteria | Any `2xx` response |\n| `User-Agent`\
    \ header | `Assinafy-Webhooks/1.0` |\n| Attempts | Up to 6 per event, about 10 minutes apart. A connection error, a timeout,\
    \ a `408`, a `429` or a `5xx` is retried; any other status is final. |\n| Pause | After 10 failed deliveries in a row\
    \ the endpoint is paused (`is_held` on the endpoint): nothing is sent to it, and we probe it with the oldest event it\
    \ missed after 3 minutes, then 15, then 60, then every 6 hours. The probe that gets through lifts the pause and the events\
    \ it missed are delivered oldest first. Editing the endpoint's URL, or sending `is_active: true`, lifts the pause too.\
    \ |\n| Retry endpoint | **Retry webhook delivery** sends one delivery now, even while the endpoint is paused; a delivery\
    \ that gets through lifts the pause. |\n| Response capture | We store the first 2000 characters of your response body\
    \ for debugging (see **List webhook deliveries**). Delivery entries are kept for 7 days. |\n\nYour endpoint must respond\
    \ within a reasonable time and return a `2xx` status. Non-`2xx` responses, connection errors and timeouts are all failed\
    \ deliveries and count toward the pause; each delivery entry says whether another attempt follows (`will_retry`).\n\n\
    ### Verifying signatures\n\nEnable signing on an endpoint (`signing_enabled: true`) and every delivery carries a signature\
    \ that proves it came from us and was not altered or replayed. Signatures follow the [Standard Webhooks](https://www.standardwebhooks.com)\
    \ specification, so any Standard Webhooks library can verify them; the secret is returned once, as `secret`, in the **Create\
    \ webhook endpoint** response, and can be read again with **Get webhook endpoint signing secret**. OAuth applications\
    \ cannot call that endpoint: store the secret from the create response, and if it is lost, get a new one with **Rotate\
    \ webhook endpoint signing secret**. Turning signing on with **Update webhook endpoint** also returns the new secret once.\n\
    \nTo verify by hand:\n\n1. Take the **raw** request body, exactly as received (do not re-serialize the parsed JSON).\n\
    2. Build the signed content `{webhook-id}.{webhook-timestamp}.{body}`.\n3. Base64-decode the part of the secret after\
    \ the `whsec_` prefix and compute the HMAC-SHA256 of the signed content with it. Base64-encode the result.\n4. `webhook-signature`\
    \ holds one or more space-separated `v1,<signature>` entries; accept the request if any of them equals your value (use\
    \ a constant-time comparison).\n5. Reject requests whose `webhook-timestamp` is more than a few minutes away from your\
    \ clock, to prevent replays.\n\n```php\n$secret = base64_decode(substr($endpointSecret, strlen('whsec_')));\n$signedContent\
    \ = $headers['webhook-id'] . '.' . $headers['webhook-timestamp'] . '.' . $rawBody;\n$expected = 'v1,' . base64_encode(hash_hmac('sha256',\
    \ $signedContent, $secret, true));\n\n$valid = false;\nforeach (explode(' ', $headers['webhook-signature']) as $signature)\
    \ {\n    $valid = $valid || hash_equals($expected, $signature);\n}\n$fresh = abs(time() - (int) $headers['webhook-timestamp'])\
    \ <= 300;\n```\n\nRotating the secret (**Rotate webhook endpoint signing secret**) takes effect immediately: deliveries\
    \ sent after the rotation are signed only with the new secret.\n\n### Common envelope\n\nEvery webhook body shares the\
    \ same top-level structure:\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `id` | integer | Internal\
    \ activity ID that produced this event. To deduplicate retries, prefer the `webhook-id` header, which also tells deliveries\
    \ of the same event to different endpoints apart. |\n| `event` | string | Event type identifier. See the catalog below\
    \ and the **List webhook event types** endpoint. |\n| `message` | string \\\\| null | Human-readable message describing\
    \ the event. May contain token placeholders. Can be `null`. |\n| `payload` | object \\\\| null | Event-specific parameters.\
    \ Keys vary per event — see the catalog. Can be `null`. |\n| `origin` | object \\\\| null | Where the action was triggered\
    \ from, when available: `{ ip, user-agent }`. |\n| `created_at` | integer | Unix timestamp (seconds) when the event was\
    \ recorded. |\n| `subject` | object | The entity that performed the action. Polymorphic — see below. |\n| `object` | object\
    \ | The entity the action was performed on. Polymorphic — see below. |\n| `account_id` | string | The ID of the account\
    \ that owns this event. Always present. |\n\n### About `subject` and `object`\n\nBoth are **polymorphic**: their shape\
    \ depends on which entity they represent. We always add a `type` property with the entity class name, one of `User`, `Signer`,\
    \ `Account`, `Document`, or `Template`. The remaining properties match the same fields the REST API returns for that resource.\
    \ The `object` is serialized with its extra relationships expanded (e.g. a `Document` includes `assignment` and `pages`);\
    \ the `subject` carries its base fields only. Whenever `subject` or `object` is an `Account`, the `integration` property\
    \ (which includes dispatch history) is removed before sending.\n\nFor `document_ready`, `document_processing_failed` and\
    \ `template_processing_failed`, the `subject` is the `Account` itself — these events are emitted by the system when processing\
    \ finishes, not by a particular user.\n\n### Event catalog\n\nEach event also has its own entry under **Webhooks** with\
    \ a complete example body.\n\n| Event | Subject | Object | `payload` keys | Description |\n|-------|---------|--------|----------------|-------------|\n\
    | `document_uploaded` | User | Document | — | The user uploaded a new document. |\n| `document_metadata_ready` | User\
    \ | Document | — | The document was normalized to PDF and its pages are available. |\n| `document_prepared` | User | Document\
    \ | — | The user prepared a document (fields assigned to signers). |\n| `assignment_created` | User | Document | `user_name`,\
    \ `user_email`, `user_telephone` | The user created an assignment for the document. Includes a snapshot of the creator\
    \ profile. |\n| `document_ready` | Account | Document | — | The document was certificated after every signer signed (and,\
    \ when a signer's identity was under review, after the account approved it). |\n| `document_processing_failed` | Account\
    \ | Document | `error_message` | The document could not be processed. |\n| `signature_requested` | User | Document | `signer_full_name`,\
    \ `signer_email`, `signer_whatsapp_phone_number`, `notification_method` | The user requested a signer to sign the document.\
    \ |\n| `signer_created` | User | Signer | `signer_full_name` | The user created a new signer. |\n| `signer_email_verified`\
    \ | Signer | Document | `signer_full_name`, `signer_email` | The signer's email was verified through a code linked to\
    \ the document. |\n| `signer_whatsapp_verified` | Signer | Document | `signer_full_name`, `signer_whatsapp_phone_number`\
    \ | The signer's WhatsApp number was verified through a code linked to the document. |\n| `signer_data_confirmed` | Signer\
    \ | Document | `signer_full_name`, `signer_email`, `signer_whatsapp_phone_number`, `verification_method` | The signer\
    \ confirmed their data before signing. |\n| `signer_viewed_document` | Signer | Document | `signer_full_name` | The signer\
    \ opened the document for the first time. |\n| `signer_identity_verified` | Signer | Document | `signer_full_name`, `evidence`\
    \ (when available) | The signer passed identity-document verification, directly or after the account's review. |\n| `signer_identity_verification_failed`\
    \ | Signer | Document | `signer_full_name`, `reason` | The identity-document verification ended without approval. |\n\
    | `signer_identity_review_required` | Signer | Document | `signer_full_name`, `reason_codes` | The verification awaits\
    \ the account's review. The signer can still sign; the document is certificated only after the account approves (status\
    \ `pending_identity_review` once every signer has signed). |\n| `signer_identity_review_approved` | Signer | Document\
    \ | `signer_full_name`, `reviewer_id`, `reviewer_name`, `reason_codes` | A user of the account approved the signer's identity\
    \ after review. |\n| `signer_identity_review_rejected` | Signer | Document | `signer_full_name`, `reviewer_id`, `reviewer_name`,\
    \ `note` | A user of the account rejected the signer's identity after review. The document is cancelled; `user_rejected_document`\
    \ follows. |\n| `signer_signed_document` | Signer | Document | `signer_full_name` | The signer signed the document. |\n\
    | `signer_rejected_document` | Signer | Document | `signer_full_name` | The signer refused to sign the document. |\n|\
    \ `user_rejected_document` | User | Document | `user_name` | The document was cancelled by a user of the account. |\n\
    | `template_created` | User | Template | — | The user created a new template. |\n| `template_processed` | User | Template\
    \ | — | A template's metadata was processed and is ready for use. |\n| `template_processing_failed` | Account | Template\
    \ | `error_message` | A template could not be processed. |\n\n`assignment_created` and `document_metadata_ready` have\
    \ no guaranteed ordering: under the virtual pre-metadata flow, `assignment_created` may fire before `document_metadata_ready`.\
    \ Treat any unknown field as a forward-compatible addition."
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Webhook Payloads
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-webhook-payloads-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
- aid: assinafy-com-br:assinafy-com-br-webhooks-api
  name: Assinafy Webhooks API
  description: 'Outbound webhook endpoints and delivery history.


    An account can register **1 webhook endpoint**, or **up to 3** on paid plans. Each endpoint has its own URL, event list
    and signing setting, and every active endpoint subscribed to an event receives it. Manage them with the **webhook endpoint**
    operations; the older `/webhooks/subscriptions` operations still work and act on the account''s oldest endpoint.'
  humanURL: https://www.assinafy.com.br/api
  baseURL: https://api.assinafy.com.br
  tags:
  - Webhook
  tags_raw:
  - Webhooks
  properties:
  - type: OpenAPI
    url: openapi/assinafy-com-br-webhooks-api-openapi.yml
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-input-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-amendment-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-signer-identity-review-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-document-contract-schema.json
  - type: JSONSchema
    url: json-schema/assinafy-com-br-webhook-dispatch-schema.json
x-enrichment:
  date: '2026-11-01'
  status: enriched
  artifacts_added: 37
  pass: modular-v1
  engine: identity=oss,contract=oss,surfaces=oss,docs=oss,regulatory=oss

Assinafy API — frequently asked questions

Does Assinafy have an API?

Yes. APIs.io lists 14 APIs from Assinafy, including Assinafy Accounts API, Assinafy Assignments API and Assinafy Authentication API, and 11 more.

Is there an OpenAPI specification for the Assinafy API?

Yes. APIs.io indexes 14 OpenAPI specifications for Assinafy, each linked for download from this page.

How do I authenticate with the Assinafy API?

Assinafy documents its authentication (apiKey/http/oauth2 · 4 schemes). The details are profiled on APIs.io as Assinafy Com Br Authentication.

How much does the Assinafy API cost?

APIs.io lists 4 pricing plans for Assinafy, with each plan's price, limits and inclusions under Pricing Plans on this page.

Is the Assinafy API ready for AI agents?

Assinafy has a Kin Score of 64.1 out of 100 (strong) and an Agent Readiness score of 46.5 (agent-ready), scored by API Evangelist on 2026-11-02.

Work with this as data

Every provider 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 providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/assinafy-com-br"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/assinafy-com-br/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/assinafy-com-br/evidence"

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.