convertajá

Documentação da API

Introdução

A API do Convertajá é REST, recebe e devolve JSON (UTF-8) e fica em https://convertaja.com.br/v1. Ela usa o mesmo motor do site: as 53 ferramentas de arquivo (PDF, imagem, áudio, vídeo, notas fiscais, etiquetas) e endpoints de dados brasileiros.

  1. Entre na sua conta e crie uma chave em Minha conta → API.
  2. Envie o arquivo para POST /v1/tools/{id}.
  3. Receba a tarefa (202), consulte GET /v1/jobs/{id} ou use ?wait=true e baixe o resultado.
curl -X POST "https://convertaja.com.br/v1/tools/unir-pdf?wait=true" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -F "files=@arquivo1.pdf" \
  -F "files=@arquivo2.pdf" \
  -F 'options={}'

Autenticação

Envie a chave em todas as chamadas, no cabeçalho Authorization: Bearer cj_live_… (ou X-API-Key: cj_live_…). A chave é mostrada uma única vez quando é criada; guardamos só um hash (SHA-256) e o prefixo. Revogue uma chave vazada na hora em /conta/api.

Toda resposta traz X-Request-Id. Informe esse código ao suporte se precisar de ajuda.

Créditos e preços

O que você fazCréditos
Ferramenta leve (unir, dividir, girar, comprimir, numerar, proteger, imagens, DANFE…) — por arquivo1
Ferramenta pesada (OCR, PDF para Word/Excel, Word para PDF, PDF/A, mala direta…) — por arquivo5
Vídeo (converter, comprimir, vídeo para GIF) — por arquivo10
CNPJ, CEP, boleto, Pix, QR Code, código de barras — por chamada1
Validação de documentos — por chamada (lote: a cada 50 itens)1
Assinatura eletrônica — por envelope enviado (até 10 signatários; rascunho, consulta, lembrete e downloads são grátis)20
Tarefa que termina com erro0 (estorno automático)

Os créditos de uma tarefa são debitados quando ela é aceita (resposta 202) e estornados automaticamente se ela terminar com erro. Chamadas de dados são cobradas só quando respondem com sucesso. Ordem de consumo: franquia mensal do plano (incluindo os créditos do Pro/Empresas) e depois os pacotes avulsos, do que vence primeiro. Sem saldo, a API responde 402 insufficient_credits. O saldo vem em X-Credits-Remaining.

PlanoPreço/mêsCréditos/mêsReq./minArquivoArquivos/tarefaChavesPesadas simultâneas
Sandboxgrátis1001050 MB1023
StartR$ 49,002.00060500 MB5053
GrowthR$ 149,008.0001202 GB2001010
ScaleR$ 449,0030.0003002 GB2002510

Anual = 10× o mensal. Pacotes avulsos: 1.000 por R$ 35,00 · 5.000 por R$ 150,00 · 20.000 por R$ 500,00 (valem 12 meses). Pro inclui 300 créditos/mês e Empresas 1.000. A franquia renova no ciclo do plano da API (a cada 30 dias) ou, no grátis e nos créditos inclusos, no início de cada mês.

Limites

Cada chave tem uma janela deslizante de 60 segundos com o limite do plano. Os cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset (Unix, em segundos) vêm em toda resposta; acima do limite, 429 rate_limited com Retry-After. Ferramentas pesadas e de vídeo têm limite de tarefas simultâneas por conta (429 concurrency_limit).

Tamanho por arquivo e arquivos por tarefa seguem o plano. Corpo JSON com base64: até 60 MB (use multipart ou URL para arquivos maiores). ?wait espera até 60 s. Os arquivos ficam disponíveis por 1 hora e depois são apagados.

Erros

Erros sempre têm o formato abaixo, com status HTTP adequado e code estável:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Créditos insuficientes: esta chamada custa 5 e você tem 2. …",
    "request_id": "req_x1Y2z3"
  }
}
HTTPcodeQuando
400invalid_requestParâmetros ausentes ou inválidos.
400invalid_jsonO corpo não é um JSON válido.
400invalid_optionOpção desconhecida ou com valor inválido para a ferramenta.
400missing_optionFalta uma opção obrigatória.
400missing_filesNenhum arquivo enviado.
400too_few_files / too_many_filesQuantidade de arquivos fora do permitido pela ferramenta ou pelo plano.
400missing_fileFalta o arquivo extra (papel timbrado, logo).
400invalid_webhook_urlwebhook_url não é HTTPS ou aponta para rede interna.
400invalid_cnpj / invalid_cepDocumento com formato ou dígito verificador inválido.
400declaration_requiredDesbloquear PDF exige authorized: true.
401missing_api_keyChave não enviada.
401invalid_api_keyChave inexistente.
401revoked_api_keyChave revogada.
402insufficient_creditsCréditos insuficientes para a chamada.
402esign_quotaCota mensal de documentos para assinatura do plano esgotada (Grátis 3, Pro 30, Empresas 200).
403account_not_eligibleA conta ainda não confirmou a maioridade.
404not_found / tool_not_found / job_not_found / file_not_foundRecurso inexistente, expirado ou de outra conta.
404envelope_not_foundEnvelope inexistente, excluído ou de outra conta.
409job_not_readyA tarefa ainda não terminou.
409invalid_stateAção incompatível com a situação do envelope (ex.: enviar de novo, cancelar um assinado).
409envelope_not_completedOs PDFs final e de relatório só existem depois que todos assinam.
410envelope_goneO arquivo do rascunho não está mais disponível.
413file_too_large / payload_too_largeArquivo acima do limite do plano ou corpo JSON grande demais.
415unsupported_file_type / unsupported_media_typeExtensão não aceita pela ferramenta, ou corpo que não é JSON.
422invalid_boletoDígito verificador do boleto não confere.
422invalid_valueValor impossível de codificar no tipo de código de barras.
422invalid_pdfArquivo que não é PDF, corrompido, protegido por senha ou com mais de 100 páginas.
422forbidden_urlURL de arquivo aponta para rede interna/privada (bloqueado).
429rate_limitedLimite de requisições por minuto do plano.
429concurrency_limitTarefas pesadas simultâneas acima do limite do plano.
429reminder_too_soonLembrete repetido em menos de 30 minutos.
429test_limitChave de teste passou de 20 chamadas no dia.
500internal_errorErro inesperado (tente de novo).
502upstream_unavailableA fonte pública (Receita/CEP) não respondeu; nada é cobrado.

Ferramentas de arquivo

Lista completa com opções (JSON Schema) em GET /v1/tools. Envie os arquivos de três formas:

  • multipart/form-data: campo files (um ou vários), arquivos extras (letterhead, logo) e as opções em options (JSON) ou como campos soltos;
  • JSON com URL: {"files":[{"url":"https://…/a.pdf"}],"options":{…}} — baixamos com limite de tamanho e tempo, só de endereços públicos;
  • JSON com base64: {"files":[{"base64":"JVBERi0…","name":"a.pdf"}]}.
idFerramentaExtensõesCréditos/arquivo
PDF
unir-pdfUnir PDFpdf, jpg, jpeg, png, webp, gif…1
comprimir-pdfComprimir PDFpdf1
comprimir-pdf-tamanhoComprimir PDF para tamanho exatopdf5
dividir-pdfDividir PDFpdf1
extrair-paginasExtrair páginaspdf1
remover-paginasRemover páginaspdf1
girar-pdfGirar PDFpdf1
numerar-paginasNumerar páginaspdf1
marca-daguaMarca d'águapdf1
recortar-pdfRecortar PDFpdf1
proteger-pdfProteger PDFpdf1
desbloquear-pdfDesbloquear PDFpdf1
ocultar-dadosOcultar dadospdf1
anonimizar-documentoAnonimizar documento (LGPD)pdf1
comparar-pdfComparar PDFpdf5
ocr-pdfOCR em PDFpdf5
reparar-pdfReparar PDFpdf1
achatar-pdfAchatar PDFpdf1
extrair-imagensExtrair imagens do PDFpdf1
Converter PDF
word-para-pdfWord para PDFdoc, docx, odt, rtf, txt, pages…5
pdf-para-wordPDF para Wordpdf5
excel-para-pdfExcel para PDFxls, xlsx, ods, csv, numbers5
pdf-para-excelPDF para Excelpdf5
powerpoint-para-pdfPowerPoint para PDFppt, pptx, odp, pps, ppsx, key5
pdf-para-powerpointPDF para PowerPointpdf5
html-para-pdfSite para PDFhtml, htm5
qualquer-para-pdfQualquer arquivo para PDFdoc, docx, odt, rtf, txt, pages…5
pdf-para-textoPDF para textopdf1
pdf-para-pdfaPDF para PDF/Apdf5
eps-para-pdfEPS para PDFeps, ps5
converter-documentoConverter documentodoc, docx, odt, rtf, txt, pages…5
jpg-para-pdfImagens para PDFjpg, jpeg, png, webp, gif, tif…1
Escritório e negócios
papel-timbradoAplicar papel timbradopdf1
xml-nfe-para-pdfXML da NF-e para PDF (DANFE)xml, zip1
nfe-para-excelNotas fiscais (XML) para Excelxml, zip1
mala-direta-wordMala direta com modelo do Worddocx, xlsx, xls, csv, ods5
ofx-para-excelExtrato OFX para Excelofx, qfx, ofc1
Etiquetas e envios
recortar-etiquetaRecortar etiqueta de envio (10×15)pdf1
Imagem
converter-imagemConverter imagemjpg, jpeg, png, webp, gif, tif…1
png-para-jpgPNG para JPGjpg, jpeg, png, webp, gif, tif…1
jpg-para-pngJPG para PNGjpg, jpeg, png, webp, gif, tif…1
imagem-para-webpImagem para WEBPjpg, jpeg, png, webp, gif, tif…1
redimensionar-imagemRedimensionar imagemjpg, jpeg, png, webp, gif, tif…1
marca-dagua-imagemMarca d'água em fotosjpg, jpeg, png, webp, gif, tif…1
imagem-redes-sociaisImagem para redes sociais e marketplacejpg, jpeg, png, webp, gif, tif…1
comprimir-imagemComprimir imagemjpg, jpeg, png, webp, gif, tif…1
Áudio
mp4-para-mp3MP4 para MP3mp3, wav, ogg, oga, m4a, flac…1
converter-audioConverter áudiomp3, wav, ogg, oga, m4a, flac…1
cortar-audioCortar áudiomp3, wav, ogg, oga, m4a, flac…1
Vídeo
converter-videoConverter vídeomp4, mkv, mov, avi, wmv, flv…10
comprimir-videoComprimir vídeomp4, mkv, mov, avi, wmv, flv…10
video-para-gifVídeo para GIFmp4, mkv, mov, avi, wmv, flv…10
cortar-videoCortar vídeomp4, mkv, mov, avi, wmv, flv…1

GET /v1/tools

Listar ferramentas. Todas as ferramentas de arquivo com extensões aceitas, opções em JSON Schema e custo em créditos.

Custo: grátis (não consome créditos)

curl "https://convertaja.com.br/v1/tools" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/tools/{toolId}

Detalhes de uma ferramenta. Uma ferramenta, com o JSON Schema das opções.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
toolIdcaminhoId da ferramenta (ex.: unir-pdf).
curl "https://convertaja.com.br/v1/tools/{toolId}" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/tools/{toolId}

Criar tarefa. Envia os arquivos e cria a tarefa. Responde 202 com a tarefa; use ?wait=true para esperar até 60 s pelo resultado.

Custo: 1, 5 ou 10 por arquivo crédito(s)

ParâmetroOndeDescrição
toolIdcaminhoId da ferramenta.
waitquerytrue (até 60 s) ou número de segundos (1–60).
webhook_urlqueryURL HTTPS que recebe o aviso de conclusão.

Tarefas e downloads

Status: running → done ou error. Exemplo de tarefa concluída:

{
  "id": "V1StGXR8_Z5j",
  "tool": "comprimir-pdf",
  "operation": "pdf-compress",
  "status": "done",
  "progress": 100,
  "message": "Pronto!",
  "created_at": "2026-10-15T13:00:00.000Z",
  "finished_at": "2026-10-15T13:00:02.000Z",
  "expires_at": "2026-10-15T14:00:00.000Z",
  "credits_charged": 1,
  "credits_refunded": 0,
  "test": false,
  "outputs": [
    {
      "index": 0,
      "name": "contrato - comprimido.pdf",
      "size": 182344,
      "url": "https://convertaja.com.br/v1/jobs/V1StGXR8_Z5j/files/0"
    }
  ],
  "download_url": "https://convertaja.com.br/v1/jobs/V1StGXR8_Z5j/download",
  "info": "2,1 MB → 180 KB (-91%)"
}

GET /v1/jobs/{id}

Consultar tarefa. Situação, progresso e arquivos gerados. Só a conta que criou a tarefa consegue consultar.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId da tarefa.
curl "https://convertaja.com.br/v1/jobs/{id}" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/jobs/{id}/files/{index}

Baixar um arquivo. Baixa o arquivo gerado na posição index.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId da tarefa.
indexcaminhoPosição do arquivo (0, 1, …).

GET /v1/jobs/{id}/download

Baixar tudo. Baixa o arquivo gerado ou, se houver vários, um ZIP com todos.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId da tarefa.

Só a conta dona da chave que criou a tarefa consegue consultá-la ou baixar os arquivos (outras contas recebem 404).

Webhooks

Envie webhook_url (HTTPS, endereço público) ao criar a tarefa. Quando ela terminar, fazemos um POST com JSON:

{
  "id": "evt_9f8e7d…",
  "type": "job.completed",
  "created_at": "2026-10-15T13:00:02.000Z",
  "data": {
    "id": "V1StGXR8_Z5j",
    "tool": "comprimir-pdf",
    "operation": "pdf-compress",
    "status": "done",
    "progress": 100,
    "message": "Pronto!",
    "created_at": "2026-10-15T13:00:00.000Z",
    "finished_at": "2026-10-15T13:00:02.000Z",
    "expires_at": "2026-10-15T14:00:00.000Z",
    "credits_charged": 1,
    "credits_refunded": 0,
    "test": false,
    "outputs": [
      {
        "index": 0,
        "name": "contrato - comprimido.pdf",
        "size": 182344,
        "url": "https://convertaja.com.br/v1/jobs/V1StGXR8_Z5j/files/0"
      }
    ],
    "download_url": "https://convertaja.com.br/v1/jobs/V1StGXR8_Z5j/download",
    "info": "2,1 MB → 180 KB (-91%)"
  }
}

Eventos: job.completed e job.failed (tarefas) e esign.envelope.completed, esign.envelope.refused, esign.envelope.expired e esign.envelope.canceled (assinatura eletrônica). Responda com status 2xx em até 10 s. Se falhar, tentamos de novo até 3 vezes no total (esperas de 5 s e 30 s). Cabeçalhos: X-Convertaja-Event, X-Convertaja-Delivery (id do evento, para descartar repetidos), X-Convertaja-Attempt e a assinatura:

X-Convertaja-Signature: t=1760533202,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

v1 é o HMAC-SHA256 (hex) de "{t}.{corpo cru}" com o segredo de webhook da conta (em /conta/api, onde também dá para trocá-lo). Confira a assinatura e rejeite eventos com mais de 5 minutos:

# Use um dos exemplos em Node.js, Python ou PHP.

Assinatura eletrônica

Envie PDFs para outras pessoas assinarem, no mesmo fluxo de /assinatura-eletronica: cada signatário recebe um link pessoal por e-mail, confirma um código de 6 dígitos enviado ao e-mail (e o CPF, se você pedir), desenha ou digita a assinatura e aceita os termos. Quando todos assinam, geramos o PDF final com as assinaturas aplicadas e o relatório de assinaturas (IP/porta, dispositivo, horários, hash SHA-256 do original e do final, QR Code de verificação em /verificar/{id}).

Base legal: assinatura eletrônica nos termos da MP 2.200-2/2001, art. 10, § 2º, e da Lei 14.063/2020. Não é assinatura qualificada com certificado ICP-Brasil.

  • Custo: 20 créditos por envelope enviado (na criação com send: true, o padrão, ou em POST …/send). Rascunhos, consultas, lembretes, cancelamento e downloads são grátis. Se o envio falhar, os créditos voltam na hora; cancelar um envelope já enviado não devolve os créditos. Chaves de teste não consomem créditos, mas os e-mails são enviados de verdade.
  • Cota do plano: além dos créditos, vale a cota mensal de documentos enviados do plano do site (Grátis 3, Pro 30, Empresas 200, compartilhada pela equipe). Acima dela: 402 esign_quota, sem cobrança.
  • Limites: PDF até 20 MB e 100 páginas (sem senha), até 10 signatários e 400 campos, prazo de 1 hora a 90 dias (padrão 30).
  • Situações do envelope: draft → pending → completed, ou refused (alguém recusou), expired (prazo terminou) e canceled. Signatários: waiting (aguardando a vez, em ordem sequencial) → pending (convidado) → signed ou refused, com notified_at, viewed_at, verified_at e signed_at.
  • Campos: coordenadas relativas à página (0 a 1, origem no canto superior esquerdo): {"signer":0,"type":"signature","page":0,"x":0.1,"y":0.75,"w":0.3,"h":0.07}. Tipos: signature, initials, date, name, cpf. Sem campos, as assinaturas vão só no relatório.
  • Guarda: o PDF final e o relatório ficam 90 dias depois da conclusão; rascunhos 30 dias; cancelados, recusados e expirados, 30 dias. Arquivos cifrados (AES-256-GCM).
  • Webhook: envie webhook_url ao criar o envelope. Verificamos a situação a cada 30 segundos e avisamos uma vez quando ele chega a um estado final: esign.envelope.completed, esign.envelope.refused, esign.envelope.expired ou esign.envelope.canceled, com o envelope em data e a mesma assinatura X-Convertaja-Signature das tarefas.
{
  "id": "evt_3c2b1a…",
  "type": "esign.envelope.completed",
  "created_at": "2026-10-15T15:42:10.000Z",
  "data": {
    "id": "K7QD-9WZ2-M4HT-R8PA",
    "object": "envelope",
    "name": "Contrato de prestação de serviços",
    "status": "completed",
    "signed_count": 2,
    "signer_count": 2,
    "completed_at": "2026-10-15T15:42:01.000Z",
    "final_sha256": "9f2c…",
    "verify_url": "https://convertaja.com.br/verificar/K7QD-9WZ2-M4HT-R8PA",
    "signers": [
      {
        "id": 41,
        "name": "Ana Souza",
        "email": "ana@cliente.com.br",
        "role": "sign",
        "status": "signed",
        "signed_at": "2026-10-15T14:10:12.000Z"
      }
    ],
    "files": {
      "final": "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/files/final",
      "audit": "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/files/audit"
    },
    "credits_charged": 20
  }
}

POST /v1/esign/envelopes

Criar envelope. Sobe o PDF, define signatários e campos e (por padrão) envia os convites por e-mail. Envie multipart/form-data com "file" (PDF até 20 MB e 100 páginas) e "data" (JSON com os campos abaixo), ou JSON com "file": { "base64": "…", "name": "…" } ou { "url": "https://…" } mais os mesmos campos. Responde 201 com o envelope. Além dos créditos, vale a cota mensal de documentos do plano do site (Grátis 3, Pro 30, Empresas 200); acima dela, 402 esign_quota.

Custo: 20 quando enviado (rascunho: 0) crédito(s)

Campo (JSON)TipoDescrição
namestringNome do documento (padrão: nome do arquivo).
signers obrigatórioarrayAté 10 pessoas.
fieldsarrayOnde cada pessoa assina (coordenadas relativas, origem no canto superior esquerdo).
messagestringMensagem no convite (até 1.000 caracteres).
expires_atstringPrazo: ISO 8601 ou AAAA-MM-DD (padrão 30 dias, máximo 90).
sequentialbooleanUm de cada vez, na ordem de signers.
sendbooleanEnvia na hora (cobra 20 créditos). false = rascunho grátis.
return_linksbooleanDevolve signers[].sign_url (para enviar o link você mesmo).
webhook_urlstringURL HTTPS que recebe esign.envelope.completed | refused | expired | canceled.
curl -X POST "https://convertaja.com.br/v1/esign/envelopes" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -F "file=@contrato.pdf" \
  -F 'data={"name":"Contrato de prestação de serviços","message":"Olá! Segue o contrato para assinatura.","signers":[{"name":"Ana Souza","email":"ana@cliente.com.br","role":"sign"},{"name":"Bruno Lima","email":"bruno@empresa.com.br","role":"witness"}],"fields":[{"signer":0,"type":"signature","page":0,"x":0.1,"y":0.75,"w":0.3,"h":0.07},{"signer":1,"type":"signature","page":0,"x":0.55,"y":0.75,"w":0.3,"h":0.07}],"webhook_url":"https://seusite.com.br/webhooks/convertaja"}'

GET /v1/esign/envelopes

Listar envelopes. Envelopes da conta (criados pela API ou pelo site), do mais recente para o mais antigo. Pagine com next_cursor (ou offset).

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
limitquery1 a 100 (padrão 20).
cursorquerynext_cursor da página anterior.
offsetqueryAlternativa ao cursor: pula N envelopes.
statusquerydraft, pending, completed, refused, expired ou canceled.
curl "https://convertaja.com.br/v1/esign/envelopes?status=pending&limit=20" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/esign/envelopes/{id}

Consultar envelope. Situação do envelope e de cada signatário (convidado, abriu, confirmou o código, assinou ou recusou, com horários). Com ?events=true, inclui a trilha de auditoria.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
eventsquerytrue para incluir os eventos (IP, porta, dispositivo, horário).
curl "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA?events=true" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/esign/envelopes/{id}/send

Enviar rascunho. Envia um envelope criado com send: false. Cobra 20 créditos (estornados se o envio falhar) e conta na cota mensal do plano.

Custo: 20 crédito(s)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl -X POST "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/send" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/esign/envelopes/{id}/remind

Lembrar quem falta. Reenvia o convite para quem está com a vez e ainda não assinou. No máximo um lembrete a cada 30 minutos por pessoa (429 reminder_too_soon).

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl -X POST "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/remind" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/esign/envelopes/{id}/cancel

Cancelar envelope. Cancela um rascunho ou um envelope aguardando assinaturas e avisa quem estava com a vez. Os créditos do envio não são devolvidos.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl -X POST "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/cancel" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/esign/envelopes/{id}/delete

Excluir envelope. Apaga o envelope, os arquivos e a trilha de auditoria, em qualquer situação. Também aceito como DELETE /v1/esign/envelopes/{id}.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl -X POST "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/delete" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/esign/envelopes/{id}/files/final

Baixar PDF assinado. PDF final com as assinaturas aplicadas e o relatório de assinaturas anexado (application/pdf). Só depois que todos assinam (409 envelope_not_completed antes disso). Fica guardado 90 dias.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/files/final" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -o contrato-assinado.pdf

GET /v1/esign/envelopes/{id}/files/audit

Baixar relatório de assinaturas. Só o relatório de assinaturas (evidências: IP/porta, dispositivo, horários, hash SHA-256 e QR Code de verificação), em PDF.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
idcaminhoId do envelope (XXXX-XXXX-XXXX-XXXX).
curl "https://convertaja.com.br/v1/esign/envelopes/K7QD-9WZ2-M4HT-R8PA/files/audit" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -o relatorio-assinaturas.pdf

Só a conta dona da chave vê e mexe nos seus envelopes (outras contas recebem 404 envelope_not_found). A listagem inclui os envelopes criados pelo site.

Dados (CNPJ, CEP, boleto, Pix, códigos)

GET /v1/cnpj/{cnpj}

Consultar CNPJ. Razão social, situação, endereço, CNAEs e Simples Nacional, da base pública da Receita Federal. Aceita o CNPJ alfanumérico. Sem quadro de sócios (LGPD).

Custo: 1 crédito(s)

ParâmetroOndeDescrição
cnpjcaminhoCNPJ com ou sem pontuação (numérico ou alfanumérico).
curl "https://convertaja.com.br/v1/cnpj/11222333000181" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/cep/{cep}

Consultar CEP. Logradouro, bairro, cidade e UF. Fonte: BrasilAPI, com ViaCEP de reserva.

Custo: 1 crédito(s)

ParâmetroOndeDescrição
cepcaminhoCEP com 8 números.
curl "https://convertaja.com.br/v1/cep/01310100" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

POST /v1/validate

Validar documentos. Confere os dígitos verificadores de CPF, CNPJ (inclusive alfanumérico), CNH, PIS/PASEP, título de eleitor, RENAVAM e CNS. Sem tipo, deduz pelo tamanho.

Custo: 1 (lote: 1 a cada 50) crédito(s)

Campo (JSON)TipoDescrição
typestring
cpf, cnpj, cnh, pis, titulo, renavam, cns
Tipo do documento (opcional).
valuestringUm documento.
valuesarrayLista de documentos (até 1.000).
curl -X POST "https://convertaja.com.br/v1/validate" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"cnpj","value":"12.ABC.345/01DE-35"}'

POST /v1/boleto/parse

Ler boleto. Linha digitável (47 bancário, 48 arrecadação) ou código de barras (44) → confere os DVs, converte e mostra banco, valor e vencimento (com o novo fator de vencimento de 22/02/2025).

Custo: 1 crédito(s)

Campo (JSON)TipoDescrição
code obrigatóriostringLinha digitável ou código de barras, com ou sem pontuação.
curl -X POST "https://convertaja.com.br/v1/boleto/parse" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"23793.38128 86000.782713 36950.000632 1 10000000012345"}'

POST /v1/pix/brcode

Pix copia e cola (BR Code). Gera o BR Code estático (padrão do Banco Central) e o QR Code em SVG e PNG.

Custo: 1 crédito(s)

Campo (JSON)TipoDescrição
key obrigatóriostringChave Pix: CPF, CNPJ, e-mail, telefone +55 ou aleatória.
name obrigatóriostringNome de quem recebe (até 25).
city obrigatóriostringCidade (até 15).
amountnumberValor em reais (opcional).
txidstringIdentificador (até 25 letras/números). Padrão ***.
descriptionstringMensagem (opcional).
curl -X POST "https://convertaja.com.br/v1/pix/brcode" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"123e4567-e12b-12d1-a456-426655440000","name":"Fulano de Tal","city":"BRASILIA"}'

POST /v1/qrcode

Gerar QR Code. QR Code de qualquer texto ou link, em SVG e/ou PNG.

Custo: 1 crédito(s)

Campo (JSON)TipoDescrição
text obrigatóriostringConteúdo (até 2.900 caracteres).
formatstring
svg, png, both
svg (padrão), png ou both.
eccstring
L, M, Q, H
Correção de erros.
module_sizeintegerPixels por módulo (1–40).
marginintegerMargem em módulos (0–20).
colorstring#RRGGBB
backgroundstring#RRGGBB ou transparent
curl -X POST "https://convertaja.com.br/v1/qrcode" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"https://convertaja.com.br","format":"svg"}'

POST /v1/barcode

Gerar código de barras. Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF (boleto), ITF-14, DataMatrix e QR, em SVG e/ou PNG. EAN/UPC sem o último dígito recebem o DV calculado.

Custo: 1 crédito(s)

Campo (JSON)TipoDescrição
type obrigatóriostring
code128, ean13, ean8, upca, code39, itf, itf14, datamatrix, qr
Tipo.
value obrigatóriostringConteúdo.
formatstring
svg, png, both
svg (padrão), png ou both.
module_sizenumberLargura do módulo em px.
heightnumberAltura das barras em px (10–600).
show_textbooleanTexto legível embaixo.
curl -X POST "https://convertaja.com.br/v1/barcode" \
  -H "Authorization: Bearer $CONVERTAJA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"ean13","value":"789123456789","format":"png"}'

Conta e uso

GET /v1/me

Conta, plano e créditos. Mostra a conta dona da chave, o plano, os créditos (franquia, pacotes, saldo) e os limites.

Custo: grátis (não consome créditos)

curl "https://convertaja.com.br/v1/me" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

GET /v1/usage

Uso por dia. Créditos e chamadas por dia e por endpoint. Padrão: últimos 30 dias. Máximo de 366 dias.

Custo: grátis (não consome créditos)

ParâmetroOndeDescrição
fromqueryData inicial AAAA-MM-DD.
toqueryData final AAAA-MM-DD (padrão: hoje).
curl "https://convertaja.com.br/v1/usage" \
  -H "Authorization: Bearer $CONVERTAJA_KEY"

Chaves de teste

Chaves cj_test_… funcionam em todos os endpoints, em qualquer plano, sem consumir créditos, com limite de 20 chamadas por dia por conta (429 test_limit). Os resultados são reais; as respostas trazem X-Convertaja-Mode: test e as tarefas têm "test": true. Use para desenvolver a integração e troque por uma chave cj_live_ em produção.

Segurança e CORS

  • As chaves são secretas e feitas para uso servidor a servidor. A API não envia cabeçalhos CORS, então navegadores bloqueiam chamadas diretas de páginas web — e isso é proposital.
  • Arquivos por URL e webhooks só vão para endereços públicos: redes internas (10.x, 192.168.x, 127.x, 169.254.x, IPv6 local) são bloqueadas no momento da conexão, inclusive depois de redirecionamentos.
  • Arquivos são apagados 1 hora depois da criação da tarefa. Registramos IP, porta, data e hora das chamadas por 6 meses (Marco Civil da Internet, art. 15).

Mudanças

  • 1.1.0 (15/10/2026) — assinatura eletrônica: /v1/esign/envelopes (criar, listar, consultar, enviar, lembrar, cancelar, excluir, baixar PDF final e relatório) e webhooks esign.envelope.*.
  • 1.0.0 (15/10/2026) — lançamento: 53 ferramentas de arquivo, CNPJ (inclusive alfanumérico), CEP, validação, boleto, Pix, QR Code, código de barras, webhooks assinados e OpenAPI 3.1.

Mudanças incompatíveis só em uma nova versão (/v2), com aviso prévio de 6 meses.