Documentação da API

Crie uma chave na página de desenvolvedores. Envie como bearer token. Os exemplos usam as mesmas rotas do arquivo OpenAPI.

Envie um PDF, recolha assinaturas verificadas e baixe o arquivo selado. O carimbo visual em Assinar PDF continua grátis e no navegador.

Envie a chave em Authorization: Bearer gk_live_... Criar chave. JSON OpenAPI

cURL

curl -X POST https://gustkit.com/api/v1/envelopes \
  -H "Authorization: Bearer gk_live_..." \
  -H "Idempotency-Key: envelope-42" \
  -H "Content-Type: application/json" \
  -d '{"pdfBase64":"<base64>","ownerName":"Rui","signers":[{"email":"[email protected]","name":"Ana","role":"client"}],"copies":["[email protected]"],"order":"sequential","fields":[{"signer":0,"page":1,"x":0.55,"y":0.8,"w":0.32,"h":0.08,"kind":"signature"}],"lang":"pt"}'

JavaScript

const res = await fetch("https://gustkit.com/api/v1/envelopes", {
  method: "POST",
  headers: {
    Authorization: "Bearer gk_live_...",
    "Content-Type": "application/json",
    "Idempotency-Key": "envelope-42",
  },
  body: JSON.stringify({
    pdfBase64,
    signers: [{ email: "[email protected]", name: "Ana", role: "client" }],
    copies: ["[email protected]"],
    order: "parallel",
    fields: [{ signer: 0, page: 1, x: 0.55, y: 0.8, w: 0.32, h: 0.08, kind: "signature" }],
    lang: "pt",
  }),
});
const envelope = await res.json();

Python

import requests
res = requests.post(
    "https://gustkit.com/api/v1/envelopes",
    headers={"Authorization": "Bearer gk_live_...", "Idempotency-Key": "envelope-42"},
    json={"pdfBase64": pdf_b64, "signers": [{"email": "[email protected]", "name": "Ana"}], "copies": ["[email protected]"], "order": "parallel", "lang": "pt"},
)
print(res.status_code, res.json())

Erros

Os erros são JSON: error.code e error.message. 401 significa chave ausente ou revogada. 402 significa cota grátis esgotada com a cobrança ligada. 409 é conflito, inclusive chave de idempotência repetida com outro corpo. 429 é o limite por minuto da chave.