{
  "info": {
    "name": "DocsOCR API (pt-BR)",
    "description": "Extraia os dados de uma certidão de nascimento brasileira com uma requisição.\n\n**Comece em três passos**\n1. Importe o ambiente **DocsOCR (pt-BR)** e selecione-o. Em `apiKey`, coloque a sua chave de API, criada no painel em [Chaves de API](https://app.docsocr.com/api-keys). A chave fica no ambiente, como *secret*, nunca na coleção.\n2. Rode **Comece aqui → 1. Ver os preços**: não precisa de chave.\n3. Rode **Comece aqui → 2. Extrair a certidão de exemplo**: uma certidão fictícia que hospedamos.\n\nCada extração envia um `requestId` novo (`{{$guid}}`). A mesma requisição, com o mesmo `requestId`, arquivo e opções, em até 15 minutos da resposta, recebe a mesma resposta sem nova cobrança.\n\nAs requisições de **Recusas sem custo** não custam nada. As de **Extração** custam créditos quando retornam dados.\n\nDocumentação: https://docs.docsocr.com",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          "let body = {};",
          "try {",
          "  body = pm.response.json();",
          "} catch (error) {",
          "  body = {};",
          "}",
          "if (pm.request.method === 'POST' && pm.response.code === 201 && body.success === true) {",
          "  pm.test(`Extraído pelo motor ${body.engine}, ${body.creditsCharged} crédito(s)`, function () {",
          "    pm.expect(body.data).to.be.an('object');",
          "  });",
          "} else if (pm.request.method === 'POST' && pm.response.code === 201) {",
          "  pm.test(`Não extraído (${body.errorCode}): nada cobrado`, function () {",
          "    pm.expect(body.creditsCharged).to.eql(0);",
          "  });",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.docsocr.com/api/v1"
    },
    {
      "key": "language",
      "value": "pt-BR"
    },
    {
      "key": "sampleImageUrl",
      "value": "https://docsocr.com/samples/certidao-nascimento-exemplo.jpg"
    },
    {
      "key": "smallSampleImageUrl",
      "value": "https://docsocr.com/samples/certidao-nascimento-exemplo-800x640.jpg"
    },
    {
      "key": "imageUrl",
      "value": "https://docsocr.com/samples/certidao-nascimento-exemplo.jpg"
    }
  ],
  "item": [
    {
      "name": "Comece aqui",
      "item": [
        {
          "name": "1. Ver os preços",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"200: os preços\", function () {",
                  "  pm.response.to.have.status(200);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/documents/prices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "prices"
              ]
            },
            "description": "O preço de uma extração, em créditos: nos motores padrão, no motor fast e para o resizeImage. Não precisa de chave. O preço do fast pode mudar: esta requisição o lê na hora."
          },
          "response": []
        },
        {
          "name": "2. Extrair a certidão de exemplo",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"201: a resposta da extração\", function () {",
                  "  pm.response.to.have.status(201);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Envia a certidão de exemplo que hospedamos (dados fictícios). A resposta traz os dados em `data`."
          },
          "response": [
            {
              "name": "201 · Os dados da certidão de exemplo",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"processingTimeMs\": 6120,\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"Certidão de Nascimento\",\n      \"órgão_emissor\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"ANA BEATRIZ DOS SANTOS TESTE\",\n      \"cpf\": \"123.456.789-09\",\n      \"matrícula\": \"123456 01 55 2020 1 00012 123 0001234 56\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"15\",\n        \"mês\": \"03\",\n        \"ano\": \"2020\"\n      },\n      \"hora_nascimento\": \"08:45\",\n      \"naturalidade\": \"RECIFE - PE\",\n      \"sexo\": \"FEMININO\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"HOSPITAL EXEMPLO\",\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\"\n    },\n    \"registro\": {\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\",\n      \"cartório\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\",\n      \"data_registro\": \"20/03/2020\",\n      \"número_dnv\": \"\",\n      \"livro\": \"A-123\",\n      \"folha\": \"045\",\n      \"termo\": \"00012\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"CARLA DOS SANTOS TESTE\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"JOÃO PEREIRA TESTE\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"ANTÔNIO PEREIRA\",\n        \"avó\": \"LÚCIA PEREIRA\"\n      },\n      \"maternos\": {\n        \"avô\": \"JOSÉ DOS SANTOS\",\n        \"avó\": \"MARIA DOS SANTOS\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"PEDRO EXEMPLO\",\n      \"data_emissão\": \"20/03/2020\"\n    }\n  },\n  \"engine\": \"mini\",\n  \"creditsCharged\": 1\n}"
            },
            {
              "name": "201 · Nenhum motor conseguiu responder: nada cobrado",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"processingTimeMs\": 1203,\n  \"error\": \"O serviço de extração está ocupado. Tente novamente em alguns instantes. Nenhum crédito foi cobrado.\",\n  \"errorCode\": \"EXTRACTION_BUSY\",\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"\",\n      \"órgão_emissor\": \"\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"\",\n      \"cpf\": \"\",\n      \"matrícula\": \"\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"\",\n        \"mês\": \"\",\n        \"ano\": \"\"\n      },\n      \"hora_nascimento\": \"\",\n      \"naturalidade\": \"\",\n      \"sexo\": \"\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"\",\n      \"município\": \"\",\n      \"uf\": \"\"\n    },\n    \"registro\": {\n      \"município\": \"\",\n      \"uf\": \"\",\n      \"cartório\": \"\",\n      \"data_registro\": \"\",\n      \"número_dnv\": \"\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      },\n      \"maternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"\",\n      \"data_emissão\": \"\"\n    }\n  },\n  \"creditsCharged\": 0\n}"
            },
            {
              "name": "401 · Sem chave",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"error\": \"Unauthorized\",\n  \"message\": \"API key is required. Provide Authorization: Bearer <your-api-key>\",\n  \"timestamp\": \"2026-10-02T12:00:00.000Z\"\n}"
            },
            {
              "name": "402 · O saldo não paga a requisição",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Payment Required",
              "code": 402,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"statusCode\": 402,\n  \"message\": \"Esta requisição custa 1 crédito, e o saldo disponível é de 0 crédito. Compre créditos ou faça upgrade do plano para continuar.\",\n  \"error\": \"Payment Required\",\n  \"errorCode\": \"NOT_ENOUGH_CREDITS\",\n  \"action\": \"purchase_credits\",\n  \"creditsAvailable\": 0,\n  \"creditsRequired\": 1,\n  \"planCreditsRemaining\": 0,\n  \"purchasedCreditsRemaining\": 0\n}"
            },
            {
              "name": "429 · Requisições demais neste minuto",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"statusCode\": 429,\n  \"message\": \"Organization rate limit exceeded (10 requests per minute). Retry after 6 seconds.\",\n  \"error\": \"Too Many Requests\",\n  \"retryAfter\": 6\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Extração",
      "item": [
        {
          "name": "A partir de uma URL",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"201: a resposta da extração\", function () {",
                  "  pm.response.to.have.status(201);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{imageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Envia a imagem de `imageUrl`: a certidão de exemplo, ou a URL pública e direta da sua imagem. No Collection Runner, cada linha do arquivo de dados traz uma `imageUrl`, e cada uma é uma extração."
          },
          "response": [
            {
              "name": "201 · Os dados da certidão de exemplo",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{imageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"processingTimeMs\": 6120,\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"Certidão de Nascimento\",\n      \"órgão_emissor\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"ANA BEATRIZ DOS SANTOS TESTE\",\n      \"cpf\": \"123.456.789-09\",\n      \"matrícula\": \"123456 01 55 2020 1 00012 123 0001234 56\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"15\",\n        \"mês\": \"03\",\n        \"ano\": \"2020\"\n      },\n      \"hora_nascimento\": \"08:45\",\n      \"naturalidade\": \"RECIFE - PE\",\n      \"sexo\": \"FEMININO\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"HOSPITAL EXEMPLO\",\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\"\n    },\n    \"registro\": {\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\",\n      \"cartório\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\",\n      \"data_registro\": \"20/03/2020\",\n      \"número_dnv\": \"\",\n      \"livro\": \"A-123\",\n      \"folha\": \"045\",\n      \"termo\": \"00012\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"CARLA DOS SANTOS TESTE\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"JOÃO PEREIRA TESTE\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"ANTÔNIO PEREIRA\",\n        \"avó\": \"LÚCIA PEREIRA\"\n      },\n      \"maternos\": {\n        \"avô\": \"JOSÉ DOS SANTOS\",\n        \"avó\": \"MARIA DOS SANTOS\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"PEDRO EXEMPLO\",\n      \"data_emissão\": \"20/03/2020\"\n    }\n  },\n  \"engine\": \"mini\",\n  \"creditsCharged\": 1\n}"
            },
            {
              "name": "422 · O link respondeu 404",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{imageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"processingTimeMs\": 410,\n  \"error\": \"Não conseguimos baixar a imagem de imageUrl: o link respondeu HTTP 404 (arquivo não encontrado). Use um link público e direto para um arquivo PDF, JPG, PNG, WebP ou GIF que abra sem login, ou envie a imagem em imageBase64.\",\n  \"errorCode\": \"IMAGE_DOWNLOAD_FAILED\",\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"\",\n      \"órgão_emissor\": \"\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"\",\n      \"cpf\": \"\",\n      \"matrícula\": \"\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"\",\n        \"mês\": \"\",\n        \"ano\": \"\"\n      },\n      \"hora_nascimento\": \"\",\n      \"naturalidade\": \"\",\n      \"sexo\": \"\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"\",\n      \"município\": \"\",\n      \"uf\": \"\"\n    },\n    \"registro\": {\n      \"município\": \"\",\n      \"uf\": \"\",\n      \"cartório\": \"\",\n      \"data_registro\": \"\",\n      \"número_dnv\": \"\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      },\n      \"maternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"\",\n      \"data_emissão\": \"\"\n    }\n  },\n  \"creditsCharged\": 0\n}"
            }
          ]
        },
        {
          "name": "A partir de um arquivo (base64)",
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.variables.get('imageBase64')) {",
                  "  throw new Error(\"Coloque o conteúdo do arquivo em base64 na variável imageBase64 do ambiente.\");",
                  "}"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"201: a resposta da extração\", function () {",
                  "  pm.response.to.have.status(201);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"base64\",\n  \"imageBase64\": \"{{imageBase64}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Envia o conteúdo de um arquivo em base64, da variável `imageBase64` do ambiente, por exemplo `data:image/jpeg;base64,/9j/4AAQ...`."
          },
          "response": [
            {
              "name": "201 · Os dados da certidão de exemplo",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"base64\",\n  \"imageBase64\": \"{{imageBase64}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"processingTimeMs\": 6120,\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"Certidão de Nascimento\",\n      \"órgão_emissor\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"ANA BEATRIZ DOS SANTOS TESTE\",\n      \"cpf\": \"123.456.789-09\",\n      \"matrícula\": \"123456 01 55 2020 1 00012 123 0001234 56\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"15\",\n        \"mês\": \"03\",\n        \"ano\": \"2020\"\n      },\n      \"hora_nascimento\": \"08:45\",\n      \"naturalidade\": \"RECIFE - PE\",\n      \"sexo\": \"FEMININO\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"HOSPITAL EXEMPLO\",\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\"\n    },\n    \"registro\": {\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\",\n      \"cartório\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\",\n      \"data_registro\": \"20/03/2020\",\n      \"número_dnv\": \"\",\n      \"livro\": \"A-123\",\n      \"folha\": \"045\",\n      \"termo\": \"00012\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"CARLA DOS SANTOS TESTE\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"JOÃO PEREIRA TESTE\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"ANTÔNIO PEREIRA\",\n        \"avó\": \"LÚCIA PEREIRA\"\n      },\n      \"maternos\": {\n        \"avô\": \"JOSÉ DOS SANTOS\",\n        \"avó\": \"MARIA DOS SANTOS\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"PEDRO EXEMPLO\",\n      \"data_emissão\": \"20/03/2020\"\n    }\n  },\n  \"engine\": \"mini\",\n  \"creditsCharged\": 1\n}"
            },
            {
              "name": "422 · Não é uma imagem que lemos",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"base64\",\n  \"imageBase64\": \"{{imageBase64}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"processingTimeMs\": 35,\n  \"error\": \"O arquivo não está em um destes formatos: PDF, JPG, PNG, WebP ou GIF. Converta para um deles e envie de novo.\",\n  \"errorCode\": \"IMAGE_FORMAT_UNSUPPORTED\",\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"\",\n      \"órgão_emissor\": \"\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"\",\n      \"cpf\": \"\",\n      \"matrícula\": \"\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"\",\n        \"mês\": \"\",\n        \"ano\": \"\"\n      },\n      \"hora_nascimento\": \"\",\n      \"naturalidade\": \"\",\n      \"sexo\": \"\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"\",\n      \"município\": \"\",\n      \"uf\": \"\"\n    },\n    \"registro\": {\n      \"município\": \"\",\n      \"uf\": \"\",\n      \"cartório\": \"\",\n      \"data_registro\": \"\",\n      \"número_dnv\": \"\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      },\n      \"maternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"\",\n      \"data_emissão\": \"\"\n    }\n  },\n  \"creditsCharged\": 0\n}"
            }
          ]
        },
        {
          "name": "Redimensionar uma imagem fora do padrão",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"201: a resposta da extração\", function () {",
                  "  pm.response.to.have.status(201);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{smallSampleImageUrl}}\",\n  \"resizeImage\": true,\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Com `resizeImage: true`, uma imagem fora do nosso padrão é redimensionada do nosso lado por 1 crédito a mais, em vez de recusada. Aqui, a amostra de 800×640."
          },
          "response": [
            {
              "name": "201 · A amostra de 800×640, redimensionada",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{smallSampleImageUrl}}\",\n  \"resizeImage\": true,\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"processingTimeMs\": 6120,\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"Certidão de Nascimento\",\n      \"órgão_emissor\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"ANA BEATRIZ DOS SANTOS TESTE\",\n      \"cpf\": \"123.456.789-09\",\n      \"matrícula\": \"123456 01 55 2020 1 00012 123 0001234 56\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"15\",\n        \"mês\": \"03\",\n        \"ano\": \"2020\"\n      },\n      \"hora_nascimento\": \"08:45\",\n      \"naturalidade\": \"RECIFE - PE\",\n      \"sexo\": \"FEMININO\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"HOSPITAL EXEMPLO\",\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\"\n    },\n    \"registro\": {\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\",\n      \"cartório\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\",\n      \"data_registro\": \"20/03/2020\",\n      \"número_dnv\": \"\",\n      \"livro\": \"A-123\",\n      \"folha\": \"045\",\n      \"termo\": \"00012\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"CARLA DOS SANTOS TESTE\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"JOÃO PEREIRA TESTE\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"ANTÔNIO PEREIRA\",\n        \"avó\": \"LÚCIA PEREIRA\"\n      },\n      \"maternos\": {\n        \"avô\": \"JOSÉ DOS SANTOS\",\n        \"avó\": \"MARIA DOS SANTOS\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"PEDRO EXEMPLO\",\n      \"data_emissão\": \"20/03/2020\"\n    }\n  },\n  \"imageResized\": true,\n  \"originalImageSize\": {\n    \"width\": 800,\n    \"height\": 640\n  },\n  \"finalImageSize\": {\n    \"width\": 1344,\n    \"height\": 1075\n  },\n  \"engine\": \"mini\",\n  \"creditsCharged\": 2\n}"
            }
          ]
        },
        {
          "name": "Pedir o motor fast",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"201: a resposta da extração\", function () {",
                  "  pm.response.to.have.status(201);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"engine\": \"fast\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Com `\"engine\": \"fast\"`, o motor fast é tentado primeiro, pelo preço dele, e os motores padrão respondem quando ele não consegue. A resposta diz qual motor respondeu e quanto custou."
          },
          "response": [
            {
              "name": "201 · O fast não conseguiu responder: um motor padrão respondeu",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"engine\": \"fast\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"processingTimeMs\": 6120,\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"Certidão de Nascimento\",\n      \"órgão_emissor\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"ANA BEATRIZ DOS SANTOS TESTE\",\n      \"cpf\": \"123.456.789-09\",\n      \"matrícula\": \"123456 01 55 2020 1 00012 123 0001234 56\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"15\",\n        \"mês\": \"03\",\n        \"ano\": \"2020\"\n      },\n      \"hora_nascimento\": \"08:45\",\n      \"naturalidade\": \"RECIFE - PE\",\n      \"sexo\": \"FEMININO\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"HOSPITAL EXEMPLO\",\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\"\n    },\n    \"registro\": {\n      \"município\": \"RECIFE\",\n      \"uf\": \"PE\",\n      \"cartório\": \"CARTÓRIO DO 1º OFÍCIO DE REGISTRO CIVIL DE RECIFE - PE\",\n      \"data_registro\": \"20/03/2020\",\n      \"número_dnv\": \"\",\n      \"livro\": \"A-123\",\n      \"folha\": \"045\",\n      \"termo\": \"00012\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"CARLA DOS SANTOS TESTE\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"JOÃO PEREIRA TESTE\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"ANTÔNIO PEREIRA\",\n        \"avó\": \"LÚCIA PEREIRA\"\n      },\n      \"maternos\": {\n        \"avô\": \"JOSÉ DOS SANTOS\",\n        \"avó\": \"MARIA DOS SANTOS\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"PEDRO EXEMPLO\",\n      \"data_emissão\": \"20/03/2020\"\n    }\n  },\n  \"engine\": \"mini\",\n  \"creditsCharged\": 1\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Recusas sem custo",
      "item": [
        {
          "name": "Sem chave",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"401: sem chave, sem custo\", function () {",
                  "  pm.response.to.have.status(401);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "A extração sem o header Authorization: a API responde 401 e nada é cobrado."
          },
          "response": [
            {
              "name": "401 · Sem chave",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"error\": \"Unauthorized\",\n  \"message\": \"API key is required. Provide Authorization: Bearer <your-api-key>\",\n  \"timestamp\": \"2026-10-02T12:00:00.000Z\"\n}"
            }
          ]
        },
        {
          "name": "Motor desconhecido",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"400: motor desconhecido, sem custo\", function () {",
                  "  pm.response.to.have.status(400);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"engine\": \"turbo\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Um `engine` que não é `\"fast\"`: a API responde 400 e nada é cobrado."
          },
          "response": [
            {
              "name": "400 · Motor desconhecido",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{sampleImageUrl}}\",\n  \"engine\": \"turbo\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Bad Request",
              "code": 400,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"message\": [\n    \"engine aceita apenas \\\"fast\\\". Deixe o campo de fora para usar os motores padrão.\"\n  ],\n  \"error\": \"Bad Request\",\n  \"statusCode\": 400\n}"
            }
          ]
        },
        {
          "name": "Imagem abaixo do padrão",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"422: IMAGE_RESOLUTION_TOO_LOW, sem custo\", function () {",
                  "  pm.response.to.have.status(422);",
                  "  pm.expect(pm.response.json().errorCode).to.eql(\"IMAGE_RESOLUTION_TOO_LOW\");",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{smallSampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "A amostra de 800×640 sem `resizeImage`: a API recusa com 422 e `IMAGE_RESOLUTION_TOO_LOW`, e nada é cobrado."
          },
          "response": [
            {
              "name": "422 · Abaixo do padrão",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"{{smallSampleImageUrl}}\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"processingTimeMs\": 35,\n  \"error\": \"A imagem tem 800 px no lado maior; nosso padrão é de 1.344 a 2.048 px. Envie uma foto com mais resolução ou use resizeImage: true para ampliá-la (1 crédito a mais).\",\n  \"errorCode\": \"IMAGE_RESOLUTION_TOO_LOW\",\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"\",\n      \"órgão_emissor\": \"\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"\",\n      \"cpf\": \"\",\n      \"matrícula\": \"\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"\",\n        \"mês\": \"\",\n        \"ano\": \"\"\n      },\n      \"hora_nascimento\": \"\",\n      \"naturalidade\": \"\",\n      \"sexo\": \"\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"\",\n      \"município\": \"\",\n      \"uf\": \"\"\n    },\n    \"registro\": {\n      \"município\": \"\",\n      \"uf\": \"\",\n      \"cartório\": \"\",\n      \"data_registro\": \"\",\n      \"número_dnv\": \"\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      },\n      \"maternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"\",\n      \"data_emissão\": \"\"\n    }\n  },\n  \"creditsCharged\": 0\n}"
            }
          ]
        },
        {
          "name": "Link que não abre",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"422: IMAGE_DOWNLOAD_FAILED, sem custo\", function () {",
                  "  pm.response.to.have.status(422);",
                  "  pm.expect(pm.response.json().errorCode).to.eql(\"IMAGE_DOWNLOAD_FAILED\");",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"https://docsocr.com/samples/nao-existe.jpg\",\n  \"requestId\": \"{{$guid}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/documents/birth-certificate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "birth-certificate"
              ]
            },
            "description": "Uma `imageUrl` que responde 404: a API recusa com 422 e `IMAGE_DOWNLOAD_FAILED`, e nada é cobrado."
          },
          "response": [
            {
              "name": "422 · O link respondeu 404",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"imageType\": \"url\",\n  \"imageUrl\": \"https://docsocr.com/samples/nao-existe.jpg\",\n  \"requestId\": \"{{$guid}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{baseUrl}}/documents/birth-certificate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "birth-certificate"
                  ]
                }
              },
              "status": "Unprocessable Entity",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"processingTimeMs\": 410,\n  \"error\": \"Não conseguimos baixar a imagem de imageUrl: o link respondeu HTTP 404 (arquivo não encontrado). Use um link público e direto para um arquivo PDF, JPG, PNG, WebP ou GIF que abra sem login, ou envie a imagem em imageBase64.\",\n  \"errorCode\": \"IMAGE_DOWNLOAD_FAILED\",\n  \"data\": {\n    \"documento\": {\n      \"tipo\": \"\",\n      \"órgão_emissor\": \"\"\n    },\n    \"dados_pessoais\": {\n      \"nome_completo\": \"\",\n      \"cpf\": \"\",\n      \"matrícula\": \"\",\n      \"data_nascimento\": {\n        \"texto_completo\": \"\",\n        \"dia\": \"\",\n        \"mês\": \"\",\n        \"ano\": \"\"\n      },\n      \"hora_nascimento\": \"\",\n      \"naturalidade\": \"\",\n      \"sexo\": \"\"\n    },\n    \"local_nascimento\": {\n      \"estabelecimento\": \"\",\n      \"município\": \"\",\n      \"uf\": \"\"\n    },\n    \"registro\": {\n      \"município\": \"\",\n      \"uf\": \"\",\n      \"cartório\": \"\",\n      \"data_registro\": \"\",\n      \"número_dnv\": \"\"\n    },\n    \"filiação\": {\n      \"genitor_1\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      },\n      \"genitor_2\": {\n        \"nome_completo\": \"\",\n        \"naturalidade\": \"\"\n      }\n    },\n    \"avós\": {\n      \"paternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      },\n      \"maternos\": {\n        \"avô\": \"\",\n        \"avó\": \"\"\n      }\n    },\n    \"gêmeos\": {\n      \"status\": \"Não\",\n      \"informações_adicionais\": \"\"\n    },\n    \"observações\": {\n      \"averbações\": \"\",\n      \"anotações\": \"\"\n    },\n    \"autenticação\": {\n      \"selo_digital\": \"\",\n      \"oficial_registro\": \"\",\n      \"data_emissão\": \"\"\n    }\n  },\n  \"creditsCharged\": 0\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Referência",
      "item": [
        {
          "name": "Tipos de documento",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"200: os tipos de documento\", function () {",
                  "  pm.response.to.have.status(200);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/documents/types",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "documents",
                "types"
              ]
            },
            "description": "Os tipos de documento que a API lê. Precisa de chave."
          },
          "response": [
            {
              "name": "200 · Os tipos de documento",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/documents/types",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "documents",
                    "types"
                  ]
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"types\": [\n    {\n      \"id\": \"birth-certificate\",\n      \"name\": \"Certidão de Nascimento\",\n      \"description\": \"Brazilian birth certificate OCR extraction\",\n      \"icon\": \"📜\",\n      \"enabled\": true,\n      \"endpoint\": \"/documents/birth-certificate\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Status da API",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"200: a API está no ar\", function () {",
                  "  pm.response.to.have.status(200);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept-Language",
                "value": "{{language}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Se a API está no ar. Não precisa de chave."
          },
          "response": [
            {
              "name": "200 · A API no ar",
              "originalRequest": {
                "auth": {
                  "type": "noauth"
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept-Language",
                    "value": "{{language}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/health",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "health"
                  ]
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                }
              ],
              "body": "{\n  \"status\": \"ok\",\n  \"timestamp\": \"2026-10-02T12:00:00.000Z\",\n  \"uptime\": 123.4,\n  \"environment\": \"production\",\n  \"loadTestMode\": false\n}"
            }
          ]
        }
      ]
    }
  ]
}
