Saltar al contenido principal

Analizar documento API

Lo que hace este punto final

PDF4me Analizar documento ejecuta su plantilla de análisis guardada contra una PDF y devuelve los campos extraídos como JSON en un solo REST llamar. Enviar el PDF como Base64, el ID de plantilla desde el panel de control y un generado por el cliente ParseIdy recibirá una respuesta estructurada indexada por los nombres que definió en la plantilla. La plantilla contiene la lógica de extracción (Expresión regular para patrones estables, JavaScript Expresión para reglas condicionales), por lo que esta misma llamada extrae facturas, contratos, recibos y cualquier diseño de documento personalizado que haya configurado.

Entradas de blog relacionadas
Aún no hay ninguna entrada de blog sobre esta función; estará disponible próximamente.
Mientras tanto, echa un vistazo al blog de PDF4me para encontrar tutoriales y flujos de trabajo para todas las plataformas.
Visita el blog

Antes de llamar a este punto final: crear una plantilla de análisis en el PDF4me panel. Ver Preparar la información de análisis para el documento Para ver el tutorial completo de configuración, consulte los ejemplos de expresiones regulares (INV-\d{6,10} para números de factura, \d{2}/\d{2}/\d{4} (para fechas), y dos trabajando JavaScript Ejemplos de clasificadores de expresión.

Autenticando su API Pedido

Cada PDF4me REST La llamada debe incluir su API clave en el Authorization Encabezado. Cree o seleccione una clave desde el panel de desarrolladores y manténgala en el servidor. Nunca la exponga en el código del navegador.

Datos importantes que no debes perderte

La carga útil mínima es de tres campos, no de cinco.
Solo docContent, Nombre del documento, y asíncrono son obligatorios. ID de plantilla, Nombre de la plantilla, y ParseId son opcionales y solo son necesarios cuando desea que la respuesta esté indexada por sus campos de captura personalizados. Sin ellos, API aún devuelve campos predeterminados útiles como tipo de documento y Número de páginas.
La respuesta es JSON, no binario
Analizar el documento devuelve aplicación/json con un campo por clave de captura en su plantilla más campos predeterminados. Esto es diferente de los puntos finales de Protect, Compress y Convert, que devuelven binarios sin procesar. PDFs. Analizar documento siempre devuelve JSON porque devuelve datos estructurados, no un archivo.
En producción, utilice TemplateId, no TemplateName.
TemplateId es estable GUID Se asigna desde el panel de control al guardar los cambios. Permanece invariable durante la vida útil de la plantilla. TemplateName funciona como una alternativa de búsqueda, pero deja de funcionar si se cambia el nombre de la plantilla. Copie siempre TemplateId del panel de detalles de la plantilla y fíjelo en su código.

REST API punto final

Método: CORREO
URL: https://api.pdf4me.com/api/v2/ParseDocument

Enviar Tipo de contenido: aplicación/json y un Autorización encabezado con su API llave. Conjunto asíncrono a FALSO para una respuesta síncrona (HTTP 200 con analizado JSON), o verdadero recibir HTTP 202 más un Ubicación encabezado que usted sondea hasta que devuelva 200 con el analizado JSON.

Configuración de la solicitud de Postman

ConfiguraciónValor
MethodPOST
URLhttps://api.pdf4me.com/api/v2/ParseDocument
HeadersContent-Type: application/json
AuthorizationBasic Auth with your API key, or header Authorization: Basic YOUR_API_KEY
Bodyraw 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

Siempre requerido: docContent, Nombre del documento, asíncrono. Condicional (extracción basada en plantillas): ID de plantilla (recomendado) o Nombre de la plantilla más ParseId. Sin estos el API Sigue devolviendo campos predeterminados útiles (documentType, pageCount), pero no valores con claves personalizadas.

ParámetroRequeridoTipoLo que haceEjemplo
docContentYesBase64 StringThe source PDF file encoded as Base64 (no data: prefix). Read the file as bytes and run it through your language's Base64 encoder.JVBERi0xLjQK...
docNameYesStringFilename of the source PDF including .pdf extension. Used for tracking and error messages.invoice.pdf
asyncYesBooleanProcessing 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
TemplateIdConditionalString (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
TemplateNameConditionalStringTemplate 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
ParseIdConditionalString (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

Ejemplos de solicitud

Ejemplo A: Carga útil mínima (sin plantilla)

La llamada más pequeña API Acepta. Devuelve los campos predeterminados (documentType, pageCount), pero no los valores con clave personalizada porque no se hace referencia a ninguna plantilla.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"async": true
}

Ejemplo B: Extracción basada en plantillas (patrón de producción)

Carga útil de producción recomendada. Devuelve un campo por cada clave de captura definida en su plantilla, además de los campos predeterminados.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}

Ejemplo C: Búsqueda de plantilla por nombre

Busque una alternativa cuando no tenga a mano un TemplateId. Evítelo en producción, ya que cambiar el nombre de la plantilla interrumpe esta llamada.

{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateName": "invoice_template",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}

Respuesta exitosa (sincronizar, async: false)

HTTP 200 con el analizado JSONCada clave de captura de su plantilla se convierte en un campo. Campos predeterminados (documentType, pageCount) siempre se devuelven.

{
"parsedData": {
"invoiceNumber": "INV-2024-001",
"invoiceDate": "15/01/2024",
"totalAmount": "$1,250.50",
"customerName": "Acme Corporation"
},
"documentType": "invoice",
"pageCount": 1
}

Respuesta exitosa (asíncrona, async: true)

HTTP 202 con un Location encabezado. Encuesta eso URL con GET (mismo encabezado de autorización) hasta que reciba HTTP 200 con el analizado JSON.

HTTP/1.1 202 Accepted
Location: https://api.pdf4me.com/api/v2/ParseDocumentStatus/<job-id>

Ejemplo 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
}'

Configuración de la plantilla

La plantilla de análisis contiene toda la lógica de extracción. Configúrela una vez en el panel de control y luego llámela mediante TemplateId desde cualquier lugar.

Expresión regularPatrones estables
Números de factura (INV-\d{6,10}), fechas (\d{2}/\d{2}/\d{4}), cantidades ($?\d{1,3}(?:,\d{3})*(?:.\d{2})?), números de identificación fiscal, códigos postales. Se utilizan para aproximadamente el 80% de las claves de producción.
Expresión JavaScriptLógica condicional y clasificadores
Clasificación multimarcador, reglas de reserva, detección de tipo de documento. El texto extraído se pasa como variable. texto; tu función devuelve una cadena. Ver Preparar la información de análisis para el documento para dos ejemplos de clasificadores que funcionan (functionFormatTextDate1 y functionGetInvoiceOrder).

Ejemplos de código

Muestras preconstruidas que cargan un PDF, codifícalo como Base64, POST a /api/v2/ParseDocumenty gestionar la respuesta síncrona/asíncrona.

Ejemplos de integración

Patrones comunes de integración RESTTypical ways developers call Parse Document.
Bandeja de entrada de facturas a la base de datos contable
  1. Un observador elige un nuevo proveedor. PDFs desde una bandeja de entrada de correo electrónico o una carpeta en la nube.
  2. Su servicio lee cada PDF como bytes y lo codifica como Base64.
  3. POST a /api/v2/ParseDocument con el TemplateId de la factura y un ParseId nuevo.
  4. Mapea el devuelto Número de factura, Cantidad total, y fecha de factura directamente en una base de datos INSERT.
Clasificador y extractor de documentos mixtos
  1. A JavaScript La clave de expresión en la plantilla devuelve el tipo de documento (factura, pedido, condiciones).
  2. POST devuelve el tipo junto con los campos extraídos de la expresión regular en uno JSON respuesta.
  3. Tu código crea ramificaciones en función del campo de tipo y dirige los datos estructurados al sistema posterior correcto.
Procesamiento asíncrono por lotes de gran tamaño PDFs
  1. Para archivos de más de unos pocos MB, POST con asíncrono: verdadero.
  2. Lee el Ubicación encabezado de la respuesta 202.
  3. Encuesta la URL con GET cada 10 segundos (el Python La muestra utiliza un máximo de 15 reintentos.
  4. Cuando el estado de respuesta sea 200, analice el JSON cuerpo y continuar el procesamiento posterior.

Preguntas frecuentes

What is the minimum payload required by the Parse Document REST API?+
Three fields: docContent (the PDF as Base64), docName (filename with .pdf), and async (boolean for sync vs polling). TemplateId, TemplateName, and ParseId are optional. Without a template the API returns default information (documentType, pageCount) but no custom-keyed values.
Should I use TemplateId or TemplateName?+
Use TemplateId in production. It is a stable GUID generated by the dashboard at Save Changes and never changes for the life of the template. TemplateName works as a lookup alternative but breaks if you rename the template. Always pin TemplateId in your code.
What is ParseId and where does it come from?+
ParseId is a client-generated GUID you create per call: uuid.uuid4 in Python, Guid.NewGuid in C#, UUID.randomUUID in Java. Pass it in the request body for logging and audit trail correlation. The API does not validate it against a registry, so any valid GUID works.
Is the response JSON or binary?+
JSON. The response body is application/json containing one field per capture key in your template plus default fields such as documentType and pageCount. This is different from Protect, Compress, and Convert endpoints which return raw binary PDFs.
How does async work for large or batch PDFs?+
Set async to true. The API responds with 202 Accepted plus a Location header containing a poll URL. GET that URL with the same Authorization header. While the document is still processing the poll URL returns 202; when finished it returns 200 with the parsed JSON. Use async true for files over a few MB or when processing in batches.
How is this different from regex parsing in Python with pdfplumber?+
Python libraries like pdfplumber, PyMuPDF, and pdfminer give you raw text extraction primitives and you write the matching logic in your application code. PDF4me Parse Document uses templates you configure once in a hosted dashboard, then calls run that template from any language or platform. The matching logic lives in the template, not your code, which keeps it consistent across systems.
Where do I learn the Regex Expression and JavaScript Expression syntax?+
See the full Prepare Parse Info for Document setup guide. It covers Regex patterns for invoice numbers, dates, and amounts, and includes two working JavaScript Expression classifier samples (functionFormatTextDate1 for Terms and Conditions vs Order classification, functionGetInvoiceOrder for invoice vs order detection).
Can I run the same template from Make, Zapier, Power Automate, or n8n?+
Yes. The TemplateId is the same across all platforms. The Make, Zapier, Power Automate, and n8n PDF4me modules call this same endpoint under the hood. Build and test the template once in the dashboard, then reference its TemplateId from any platform.

Acciones relacionadas

La misma tarea en otras plataformas.

Obtén ayuda