Documentación de la API DoDocs Matchpoint
Guía completa para integrar la API de procesamiento documental de DoDocs Matchpoint en tus aplicaciones. Extrae datos de facturas, recibos y documentos con simples llamadas a la API REST.
Descripción General de la API
La API de DoDocs Matchpoint proporciona acceso programático a nuestras capacidades de procesamiento documental, permitiéndote extraer datos estructurados de diversos tipos de documentos.
Tipos de Documentos
Procesa facturas, recibos, estados de cuenta bancarios, contratos y más.
Procesamiento en Tiempo Real
Obtén resultados vía webhooks o respuestas síncronas.
Seguro y Fiable
Seguridad de nivel empresarial con SLA de 99.9% de disponibilidad.
URLs Base
| Entorno | URL Base | Propósito |
|---|---|---|
| URL de la API | https://api.dodocs.ai | Entorno de producción en vivo |
| Panel de Control | https://dodocs.ai | Panel web para gestión de claves API |
Primeros Pasos
Paso 1: Crea Tu Cuenta
Regístrate para obtener una cuenta de DoDocs Matchpoint en workspace para comenzar.
Paso 2: Accede a Tu Panel de Control
Después de iniciar sesión, verás tu panel principal donde puedes gestionar documentos y claves API.

El panel de DoDocs Matchpoint mostrando tus documentos procesados
Paso 3: Genera una Clave API
Ve a la sección de Claves API en la barra lateral para crear y administrar tus claves API.

La página de gestión de Claves API
Haz clic en "Crear Clave API" para generar una nueva clave:
Paso 4: Prueba Tu Clave API
Verifica que tu clave API funcione correctamente con esta prueba simple:
curl -X GET https://api.dodocs.ai/api/v1/health \ -H "DoDocs-Matchpoint-API-Key: your_api_key_here"
Respuesta esperada:
{
"status": "healthy",
"timestamp": "2024-01-27T10:30:00Z"
}Autenticación
Todas las solicitudes a la API deben incluir tu clave API en el encabezado DoDocs-Matchpoint-API-Key :
DoDocs-Matchpoint-API-Key: your_api_key_here
Formato de Clave API
- Longitud: Típicamente entre 40 y 50 caracteres
- Distingue mayúsculas y minúsculas: Las claves deben usarse exactamente como se proporcionan
Buenas Prácticas de Seguridad
Haz:
- Guarda las claves API en variables de entorno
- Usa claves distintas para desarrollo y producción
- Rota las claves regularmente (cada 90 días es lo recomendado)
- Usa HTTPS para todas las llamadas a la API
Evita:
- Incluir claves API en el control de versiones
- Incluir claves en código del lado del cliente
- Compartir claves entre aplicaciones
- Usar claves como parámetros en URLs
Realizando Llamadas a la API
Endpoint de Carga de Documentos
/api/v1/uploadCarga documentos para procesarlos usando multipart/form-data.
Parámetros de la Solicitud
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
metadata | Cadena JSON | Sí | MUST be first field in request. DEBE ser el primer campo en la solicitud. Instrucciones de procesamiento y configuración (puede estar vacío: {}) |
file | Archivo | Sí | El archivo del documento a procesar |
Opciones de Metadatos
{
"clientReference": "ORDER-123", // Optional: Your reference ID
"urgent": true, // Optional: Priority processing
"language": "en" // Optional: Document language
}
// Or can be empty:
{}Requisitos del Archivo
| Formato | Extensiones | Tamaño Máximo |
|---|---|---|
| 50 MB | ||
| Images | .jpg, .jpeg, .png, .tiff | 25 MB |
| Word | .doc, .docx | 25 MB |
| Excel | .xls, .xlsx | 25 MB |
| Text | .txt, .csv | 10 MB |
Configuración de Webhooks
Los webhooks te permiten recibir notificaciones en tiempo real cuando se procesan tus documentos.
Configuración de Webhooks
Configura los webhooks a través de la configuración de claves API en tu panel de control.

Interfaz de configuración de webhooks
Eventos de Webhook
document.processed
Se envía cuando el procesamiento del documento se completa exitosamente.
{
"requestId": "75193012-0885-4db7-b5ce-7506e169c80c",
"documentData": "[{\"fileName\":\"Transaction_Summary.xls\",\"documentType\":\"Bank Statement\"}]",
"errors": []
}document.failed
Se envía cuando el procesamiento del documento falla.
{
"requestId": "8b6683c7-e583-4fbc-aa23-5bf1d22d32eb",
"documentData": "[]",
"errors": [
{
"code": "EXTRACTION_FAILED",
"message": "Unable to extract data from document",
"details": "Poor image quality or unsupported format"
}
]
}Encabezados del Webhook
Cada solicitud de webhook incluye estos encabezados:
X-Webhook-Signature: sha256=abc123... X-Webhook-Event: document.processed X-Webhook-ID: unique-webhook-id X-Webhook-Timestamp: 1706354400 Content-Type: application/json
Verificación de Firma
Verifica siempre las firmas de los webhooks para asegurarte de que provienen de DoDocs Matchpoint.
Python
import hmac
import hashlib
def verify_webhook(payload, signature, secret):
expected_signature = hmac.new(
secret.encode('utf-8'),
payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
expected = f"sha256={expected_signature}"
return hmac.compare_digest(signature, expected)Node.js
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
const expected = `sha256=${expectedSignature}`;
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Ejemplos de Código
Python — Cargar Documento
import requests
import json
url = "https://api.dodocs.ai/api/v1/upload"
api_key = "your_api_key_here"
# Prepare metadata (must come first in the request)
metadata = {'clientReference': 'INV-2024-001'}
data = {'metadata': json.dumps(metadata)}
# Prepare the file
files = {
'file': ('invoice.pdf', open('invoice.pdf', 'rb'), 'application/pdf')
}
# Make the request
response = requests.post(
url,
headers={'DoDocs-Matchpoint-API-Key': api_key},
data=data,
files=files
)
print(response.json())Python — Manejar Webhook
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def handle_webhook():
event = request.json
if event['event'] == 'document.processed':
handle_processed(event['data'])
elif event['event'] == 'document.failed':
handle_failed(event['data'])
return '', 200
def handle_processed(data):
print(f"Document processed: {data['extractedData']}")
def handle_failed(data):
print(f"Processing failed: {data['errorMessage']}")
if __name__ == '__main__':
app.run(port=3000)Node.js — Cargar Documento
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const form = new FormData();
// Metadata must come first
form.append('metadata', JSON.stringify({ clientReference: 'INV-2024-001' }));
form.append('file', fs.createReadStream('invoice.pdf'));
axios.post('https://api.dodocs.ai/api/v1/upload', form, {
headers: {
'DoDocs-Matchpoint-API-Key': 'your_api_key_here',
...form.getHeaders()
}
})
.then(response => console.log(response.data))
.catch(error => console.error(error));cURL — Cargar Documento
curl -X POST https://api.dodocs.ai/api/v1/upload \
-H "DoDocs-Matchpoint-API-Key: your_api_key_here" \
-F 'metadata={"clientReference":"INV-2024-001"}' \
-F "[email protected]"cURL — Probar Webhook
# Use webhook.site for testing # 1. Go to https://webhook.site # 2. Copy your unique URL # 3. Configure it in your DoDocs Matchpoint dashboard # Or use ngrok for local testing: npm install -g ngrok ngrok http 3000
Soporte y Recursos
¿Necesitas Soporte Empresarial?
Para soporte empresarial con garantías de SLA, gestión de cuenta dedicada y soporte prioritario:
Contactar Ventas