Analisar documento API
O que este endpoint faz
PDF4me Analisar documento executa seu modelo de análise salvo em um PDF e retorna os campos extraídos como JSON em um único REST ligar. Enviar o PDF como Base64, o ID do modelo a partir do painel de controle e gerado pelo cliente ParseIde receba uma resposta estruturada indexada pelos nomes que você definiu no modelo. O modelo contém a lógica de extração (Expressão regular para padrões estáveis, JavaScript Expressão (para regras condicionais), portanto, essa mesma chamada extrai faturas, contratos, recibos e qualquer layout de documento personalizado que você tenha configurado.
Antes de chamar este endpoint: criar um modelo de análise no PDF4me painel. Veja Preparar informações de análise para o documento Para obter o passo a passo completo da configuração, veja os exemplos de expressões regulares (INV-\d{6,10} para números de fatura, \d{2}/\d{2}/\d{4} (para encontros), e dois trabalhando JavaScript Exemplos de classificadores de expressão.
Autenticando seu API Solicitar
Todo PDF4me REST A chamada deve incluir o seu API chave no Authorization Crie ou selecione uma chave no painel do desenvolvedor e mantenha-a no servidor. Nunca a exponha no código do navegador.
Fatos importantes que você não deve perder
conteúdo do documento, nomeDoDocumento, e assíncrono são obrigatórios. ID do modelo, Nome do modelo, e ParseId São opcionais e só são necessárias quando você deseja que a resposta seja indexada pelos seus campos de captura personalizados. Sem elas, API ainda retorna campos padrão úteis, como tipo de documento e contagem de páginas.aplicativo/json Com um campo por chave de captura em seu modelo, além dos campos padrão. Isso é diferente dos endpoints Protect, Compress e Convert, que retornam dados binários brutos. PDFsA análise do documento sempre retorna JSON Porque retorna dados estruturados, não um arquivo.REST API ponto final
Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/ParseDocument
Enviar Tipo de conteúdo: application/json e um Autorização cabeçalho com o seu API chave. Definir assíncrono para falso para uma resposta síncrona (HTTP 200 com analisado JSON), ou verdadeiro para receber HTTP 202 mais um Localização cabeçalho que você consulta até que retorne 200 com o analisado JSON.
Configuração de solicitação do Postman
| Contexto | Valor |
|---|---|
| Method | POST |
| URL | https://api.pdf4me.com/api/v2/ParseDocument |
| Headers | Content-Type: application/json |
| Authorization | Basic Auth with your API key, or header Authorization: Basic YOUR_API_KEY |
| Body | raw JSON with docContent, docName, async (and optional TemplateId, TemplateName, ParseId) |
| Response (sync) | When async is false: HTTP 200 with parsed JSON containing one field per template key plus default fields such as documentType and pageCount. |
| Response (async) | When async is true: HTTP 202 with a Location header. GET that URL until you receive 200 with the parsed JSON. Useful for large PDFs or batch processing. |
Parâmetros
Sempre necessário: conteúdo do documento, nomeDoDocumento, assíncrono. Extração condicional (baseada em modelo): ID do modelo (recomendado) ou Nome do modelo mais ParseIdSem estes, API Ainda retorna campos padrão úteis (documentType, pageCount), mas nenhum valor com chave personalizada.
| Parâmetro | Obrigatório | Tipo | O que faz | Exemplo |
|---|---|---|---|---|
docContent | Yes | Base64 String | The source PDF file encoded as Base64 (no data: prefix). Read the file as bytes and run it through your language's Base64 encoder. | JVBERi0xLjQK... |
docName | Yes | String | Filename of the source PDF including .pdf extension. Used for tracking and error messages. | invoice.pdf |
async | Yes | Boolean | Processing mode. false returns parsed JSON immediately with HTTP 200. true returns HTTP 202 plus a Location header that you poll until it returns 200 with the parsed JSON. Use true for large PDFs or batch processing. | true |
TemplateId | Conditional | String (GUID) | GUID of the saved parse template. Recommended over TemplateName for stable production automation. Get it from the template detail panel after Save Changes in the dashboard. | 12345678-1234-1234-1234-123456789abc |
TemplateName | Conditional | String | Template name as typed in the dashboard. Lookup alternative to TemplateId. Renaming the template breaks calls that reference it by name, so prefer TemplateId in production. | invoice_template |
ParseId | Conditional | String (GUID) | Client-generated GUID per call. Used to correlate the request with the parse output for logging and audit trails. Generate with uuid.uuid4 (Python), Guid.NewGuid (C#), UUID.randomUUID (Java). | 87654321-4321-4321-4321-cba987654321 |
Solicitar exemplos
Exemplo A: Carga útil mínima (sem modelo)
A menor chamada do API Aceita. Retorna os campos padrão (documentType, pageCount), mas não os valores com chave personalizada, pois nenhum modelo é referenciado.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"async": true
}
Exemplo B: Extração baseada em modelo (padrão de produção)
A carga útil de produção recomendada. Retorna um campo por chave de captura definida em seu modelo, além dos campos padrão.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
Exemplo C: Pesquisa de modelo por nome
Use uma alternativa de pesquisa quando não tiver um TemplateId disponível. Evite em produção, pois renomear o modelo interrompe essa chamada.
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateName": "invoice_template",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
Resposta bem-sucedida (sincronização, async: false)
HTTP 200 com o analisado JSONCada chave de captura do seu modelo se torna um campo. Campos padrão (documentType, pageCount) são sempre retornados.
{
"parsedData": {
"invoiceNumber": "INV-2024-001",
"invoiceDate": "15/01/2024",
"totalAmount": "$1,250.50",
"customerName": "Acme Corporation"
},
"documentType": "invoice",
"pageCount": 1
}
Resposta bem-sucedida (assíncrona, async: true)
HTTP 202 com um Location cabeçalho. Pesquisa que URL com GET (mesmo cabeçalho de autorização) até que você receba HTTP 200 com o analisado JSON.
HTTP/1.1 202 Accepted
Location: https://api.pdf4me.com/api/v2/ParseDocumentStatus/<job-id>
exemplo de curl
curl -X POST https://api.pdf4me.com/api/v2/ParseDocument \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}'
Configuração do modelo
O modelo de análise contém toda a lógica de extração. Configure-o uma vez no painel de controle e, em seguida, chame-o por TemplateId De qualquer lugar.
Expressão regularPadrões estáveisINV-\d{6,10}), datas (\d{2}/\d{2}/\d{4}), quantidades ($?\d{1,3}(?:,\d{3})*(?:.\d{2})?), números de identificação fiscal, códigos postais. Usados em cerca de 80% das chaves de produção.Expressão JavaScriptLógica condicional e classificadorestextoSua função retorna uma string. Veja Preparar informações de análise para o documento para duas amostras de classificadores funcionais (functionFormatTextDate1 e functionGetInvoiceOrder).Exemplos de código
Amostras pré-construídas que carregam um PDF, codifique-o como Base64, POST para /api/v2/ParseDocumente lidar com a resposta síncrona/assíncrona.
Exemplos de integração
Padrões comuns de integração RESTTypical ways developers call Parse Document.
- Um observador identifica um novo fornecedor. PDFs de uma caixa de entrada de e-mail ou pasta na nuvem.
- Seu serviço lê cada PDF como bytes e os codifica como Base64.
- POST para
/api/v2/ParseDocumentcom o TemplateId da fatura e um novo ParseId. - Mapeie o resultado retornado
Número da fatura,montante total, edata da faturadiretamente em um banco de dados INSERT.
- A JavaScript A chave de expressão no modelo retorna o tipo de documento (fatura, pedido, condições).
- POST Retorna o tipo juntamente com os campos extraídos pela expressão regular em um único valor. JSON resposta.
- Seu código cria ramificações com base no campo de tipo e encaminha os dados estruturados para o sistema subsequente correto.
- Para arquivos com mais de alguns MB, POST com
assíncrono: verdadeiro. - Leia o
LocalizaçãoCabeçalho da resposta 202. - Faça a pesquisa URL com GET a cada 10 segundos (o Python O exemplo utiliza no máximo 15 tentativas.
- Quando o status da resposta for 200, analise o JSON corpo e continuar o processamento subsequente.