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.
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
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.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.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ón | 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
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ámetro | Requerido | Tipo | Lo que hace | Ejemplo |
|---|---|---|---|---|
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 |
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 establesINV-\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 clasificadorestexto; 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.
- Un observador elige un nuevo proveedor. PDFs desde una bandeja de entrada de correo electrónico o una carpeta en la nube.
- Su servicio lee cada PDF como bytes y lo codifica como Base64.
- POST a
/api/v2/ParseDocumentcon el TemplateId de la factura y un ParseId nuevo. - Mapea el devuelto
Número de factura,Cantidad total, yfecha de facturadirectamente en una base de datos INSERT.
- A JavaScript La clave de expresión en la plantilla devuelve el tipo de documento (factura, pedido, condiciones).
- POST devuelve el tipo junto con los campos extraídos de la expresión regular en uno JSON respuesta.
- Tu código crea ramificaciones en función del campo de tipo y dirige los datos estructurados al sistema posterior correcto.
- Para archivos de más de unos pocos MB, POST con
asíncrono: verdadero. - Lee el
Ubicaciónencabezado de la respuesta 202. - Encuesta la URL con GET cada 10 segundos (el Python La muestra utiliza un máximo de 15 reintentos.
- Cuando el estado de respuesta sea 200, analice el JSON cuerpo y continuar el procesamiento posterior.