Conectar Cargoffer con Sage 50 (ContaPlus)
Para que sirve: Cada vez que se firma un contrato de transporte en Cargoffer, se genera automaticamente la factura en tu Sage 50. Sin copiar datos a mano, sin errores.
El problema que resuelve
Maria, administrativa de transportes, pasaba 2 horas diarias copiando importes a su Sage 50. Un dato mal copiado y la factura salia mal. Con esta integracion, ese trabajo desaparece.
Como funciona
Cuando firmas un contrato en Cargoffer, tu sistema recibe un aviso y crea la factura en Sage 50 automaticamente.
1. Obtener contratos firmados
curl -X GET "https://api.pro.cargoffer.com/api/auction/contract/{serviceCode}" \
-H "Authorization: Bearer <token>"La respuesta incluye: importe, cliente (nombre y CIF), fecha, y codigo del contrato.
2. Mapear a Sage 50
| Cargoffer | Sage 50 | Ejemplo |
|---|---|---|
| amount | Importe base | 1250.00 |
| client.name | Nombre cliente | Transportes Garcia SL |
| client.cif | CIF/NIF | B12345678 |
| serviceCode | Numero factura | SRV-2026-001 |
3. Automatizar con webhooks
curl -X POST "https://api.pro.cargoffer.com/api/webhook" \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d '{"url": "https://tu-sistema.com/webhook/sage", "events": ["contract.signed"]}'Por que webhooks: Si cada 5 minutos preguntaras "hay contratos nuevos?", hariamos cientos de peticiones sin necesidad. Los webhooks solo se activan cuando ocurre algo.
Codigo completo
import requests
TOKEN=*** def facturar_contratos():
contratos = requests.get(
"https://api.pro.cargoffer.com/api/auction/contract/pending",
headers={"Authorization": f"Bearer {TOKEN}"}
).json()
for c in contratos:
# Crear factura en Sage
factura = {
"client_cif": c["client"]["cif"],
"amount": c["amount"],
"concept": f"Transporte {c['serviceCode']}"
}
print(f"Facturado: {c['serviceCode']} - {c['amount']}EUR")Tiempo ahorrado: 2 horas diarias de administrativa.