Extracción de facturas
Extraiga la información del proveedor, las líneas de detalle, los totales y las fechas de las facturas. Parse gestiona una gran variedad de formatos de factura, incluidos PDFs, imágenes escaneadas y documentos de varias páginas.
Esquema de la factura
Defina un esquema que capture los campos más relevantes de una factura:
{
"name": "invoice",
"description": "Extract data from invoices",
"fields": [
{ "name": "vendor_name", "type": "string", "description": "Company name of the vendor" },
{ "name": "vendor_address", "type": "string", "description": "Address of the vendor" },
{ "name": "invoice_number", "type": "string", "description": "Invoice reference number" },
{ "name": "date", "type": "date", "description": "Invoice issue date" },
{ "name": "due_date", "type": "date", "description": "Payment due date" },
{ "name": "line_items", "type": "array", "description": "List of billed items", "items": {
"type": "object",
"fields": [
{ "name": "description", "type": "string" },
{ "name": "quantity", "type": "number" },
{ "name": "unit_price", "type": "number" },
{ "name": "amount", "type": "number" }
]
}},
{ "name": "subtotal", "type": "number", "description": "Subtotal before tax" },
{ "name": "tax", "type": "number", "description": "Tax amount" },
{ "name": "total", "type": "number", "description": "Total amount due" },
{ "name": "currency", "type": "string", "description": "Currency code (e.g. USD, EUR)" }
]
}Ejemplos de código
cURL
curl -X POST https://api-parse.conversiontools.io/v1/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@invoice.pdf" \
-F "schema_id=YOUR_INVOICE_SCHEMA_ID"Python
import requests
API_KEY = "YOUR_API_KEY"
headers = {"Authorization": f"Bearer {API_KEY}"}
with open("invoice.pdf", "rb") as f:
response = requests.post(
"https://api-parse.conversiontools.io/v1/extract",
headers=headers,
files={"file": f},
data={"schema_id": "YOUR_INVOICE_SCHEMA_ID"},
)
data = response.json()
print(f"Vendor: {data['data']['vendor_name']}")
print(f"Total: {data['data']['currency']} {data['data']['total']}")
for item in data["data"]["line_items"]:
print(f" - {item['description']}: {item['amount']}")Node.js
const fs = require("fs");
const API_KEY = "YOUR_API_KEY";
const headers = { Authorization: `Bearer ${API_KEY}` };
const form = new FormData();
form.append("file", fs.createReadStream("invoice.pdf"));
form.append("schema_id", "YOUR_INVOICE_SCHEMA_ID");
const response = await fetch("https://api-parse.conversiontools.io/v1/extract", {
method: "POST",
headers,
body: form,
});
const data = await response.json();
console.log(`Vendor: ${data.data.vendor_name}`);
console.log(`Total: ${data.data.currency} ${data.data.total}`);
data.data.line_items.forEach((item) => {
console.log(` - ${item.description}: ${item.amount}`);
});Salida de ejemplo
{
"success": true,
"id": "ext_inv_001",
"data": {
"vendor_name": "TechSupply Inc.",
"vendor_address": "123 Business Ave, Suite 400, San Francisco, CA 94105",
"invoice_number": "INV-2024-0847",
"date": "2024-01-15",
"due_date": "2024-02-14",
"line_items": [
{
"description": "Cloud Hosting - Standard Plan",
"quantity": 1,
"unit_price": 299.00,
"amount": 299.00
},
{
"description": "SSL Certificate - Wildcard",
"quantity": 2,
"unit_price": 49.99,
"amount": 99.98
},
{
"description": "Technical Support - Premium",
"quantity": 1,
"unit_price": 150.00,
"amount": 150.00
}
],
"subtotal": 548.98,
"tax": 49.41,
"total": 598.39,
"currency": "USD"
},
"pages_used": 1
}Exportación a CSV o Excel
¿Prefiere una hoja de cálculo? Exporte cualquier extracción completada como CSV o Excel. Las líneas de detalle se convierten en filas con la cabecera de la factura repetida en cada una, listas para sus herramientas de contabilidad. Las exportaciones son gratuitas.
# Start the export, then download when ready
curl -X POST https://api-parse.conversiontools.io/v1/extractions/ext_inv_001/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "xlsx"}'
curl -L -o invoice.xlsx \
"https://api-parse.conversiontools.io/v1/extractions/ext_inv_001/export?format=xlsx" \
-H "Authorization: Bearer YOUR_API_KEY"Consejos para la extracción de facturas
- Se admiten facturas de varias páginas - todas las páginas se procesan y los datos se combinan de forma automática
- La moneda se detecta de forma automática; añada un campo currency a su esquema para capturarla de forma explícita
- Use el tipo array para las líneas de detalle y gestione facturas con un número variable de elementos
- En las facturas escaneadas, asegúrese de que la imagen tenga al menos 150 DPI para obtener los mejores resultados