{"openapi":"3.0.3","info":{"title":"AtoSign Public API","version":"1.0.0","description":"REST API for the AtoSign electronic signature platform.\n\nEmbed legally-binding signature flows into your own product: create documents, add signers, send invitations, fetch status, and react to webhook events.\n\n**Auth:** `Authorization: Bearer sk_live_...` or `X-API-Key`.\n**Rate limits:** Pro 100 req/min, Enterprise 1000 req/min.","contact":{"name":"AtoSign Support","email":"ola@atosign.com","url":"https://app.atosign.com.br/api-docs"}},"servers":[{"url":"https://app.atosign.com.br/api/v1","description":"Production"},{"url":"https://app.atosign.com.br/api/v1/public","description":"Public REST API (API-key auth)"}],"tags":[{"name":"Documents","description":"Create, send, cancel, retrieve electronic documents."},{"name":"Signers","description":"Manage signatories on a document."},{"name":"Templates","description":"Reusable HTML templates to generate documents at scale."},{"name":"Contacts","description":"Address book of recipients (signers, observers)."},{"name":"Webhooks","description":"HTTP callbacks for document lifecycle events."}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key (sk_live_... or sk_test_...)"},"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}},"parameters":{"DocumentId":{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}},"schemas":{"Document":{"type":"object","properties":{"id":{"type":"integer"},"codigo":{"type":"string","example":"ATO-2026-000123"},"titulo":{"type":"string"},"descricao":{"type":"string"},"status":{"type":"string","enum":["rascunho","enviado","parcialmente_assinado","assinado","expirado","cancelado"]},"hash_original":{"type":"string","description":"SHA-256 of the original PDF"},"hash_final":{"type":"string","description":"SHA-256 of the signed PDF"},"criado_em":{"type":"string","format":"date-time"},"enviado_em":{"type":"string","format":"date-time","nullable":true},"assinado_em":{"type":"string","format":"date-time","nullable":true}}},"Signer":{"type":"object","properties":{"id":{"type":"integer"},"nome":{"type":"string"},"email":{"type":"string","format":"email"},"cpf":{"type":"string"},"whatsapp":{"type":"string"},"ordem":{"type":"integer"},"status":{"type":"string","enum":["pendente","identificado","verificado","assinado","recusado"]},"token_unico":{"type":"string","description":"Per-signer URL token"},"assinado_em":{"type":"string","format":"date-time","nullable":true}}},"Template":{"type":"object","properties":{"id":{"type":"integer"},"nome":{"type":"string"},"descricao":{"type":"string"},"html_corpo":{"type":"string"},"variaveis":{"type":"array","items":{"type":"string"}},"criado_em":{"type":"string","format":"date-time"}}},"Contact":{"type":"object","required":["nome","email"],"properties":{"id":{"type":"integer","readOnly":true},"nome":{"type":"string"},"email":{"type":"string","format":"email"},"cpf":{"type":"string"},"whatsapp":{"type":"string"},"empresa":{"type":"string"},"cargo":{"type":"string"}}},"Webhook":{"type":"object","properties":{"id":{"type":"integer"},"url":{"type":"string","format":"uri"},"tipo":{"type":"string","enum":["custom","slack","teams","discord"]},"eventos":{"type":"array","items":{"type":"string"}},"ativo":{"type":"integer","enum":[0,1]},"secret":{"type":"string","description":"HMAC-SHA256 secret (shared with your endpoint)"},"criado_em":{"type":"string","format":"date-time"}}},"Error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}}}}},"paths":{"/documentos":{"get":{"tags":["Documents"],"summary":"List documents","description":"Returns a paginated list of documents in your workspace.","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["rascunho","enviado","parcialmente_assinado","assinado","expirado","cancelado"]}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","default":1,"minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK"}}},"post":{"tags":["Documents"],"summary":"Create a document (multipart upload)","description":"Upload one or more PDF files (`pdf` or `arquivos[]`) plus metadata. Documents start as `rascunho` (draft).","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["titulo"],"properties":{"titulo":{"type":"string","maxLength":200},"descricao":{"type":"string"},"prazo":{"type":"string","format":"date"},"pdf":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"Created"},"402":{"description":"Monthly quota exceeded — upgrade your plan"},"422":{"description":"Validation error"}}}},"/documentos/{id}":{"parameters":[{"$ref":"#/components/parameters/DocumentId"}],"get":{"tags":["Documents"],"summary":"Get document detail","responses":{"200":{"description":"OK"}}},"put":{"tags":["Documents"],"summary":"Update draft metadata","responses":{"200":{"description":"OK"}}},"delete":{"tags":["Documents"],"summary":"Soft-delete draft","responses":{"204":{"description":"Deleted"}}}},"/documentos/{id}/enviar":{"parameters":[{"$ref":"#/components/parameters/DocumentId"}],"post":{"tags":["Documents"],"summary":"Send document for signature","description":"Triggers email notifications to all signers of the first ordering tier.","responses":{"200":{"description":"Sent"}}}},"/documentos/{id}/cancelar":{"parameters":[{"$ref":"#/components/parameters/DocumentId"}],"post":{"tags":["Documents"],"summary":"Cancel document","responses":{"200":{"description":"Cancelled"}}}},"/documentos/{id}/signatarios":{"parameters":[{"$ref":"#/components/parameters/DocumentId"}],"get":{"tags":["Signers"],"summary":"List signers","responses":{"200":{"description":"OK"}}},"post":{"tags":["Signers"],"summary":"Add signers in bulk","responses":{"201":{"description":"Created"}}}},"/templates":{"get":{"tags":["Templates"],"summary":"List templates","responses":{"200":{"description":"OK"}}}},"/templates/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"get":{"tags":["Templates"],"summary":"Get template detail","responses":{"200":{"description":"OK"}}},"post":{"tags":["Templates"],"summary":"Create a document from this template","responses":{"201":{"description":"Created"}}}},"/contatos":{"get":{"tags":["Contacts"],"summary":"List contacts","responses":{"200":{"description":"OK"}}},"post":{"tags":["Contacts"],"summary":"Create contact","responses":{"201":{"description":"Created"}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"List registered webhooks","responses":{"200":{"description":"OK"}}},"post":{"tags":["Webhooks"],"summary":"Register webhook","responses":{"201":{"description":"Created"}}}}}}