Integrar Cargoffer con Sage 50 / ContaPlus
Búsqueda objetivo: "cómo integrar bolsa de carga con sage 50", "api transporte contasol"
¿Por qué integrar?
Sage 50 (antes ContaPlus) es el ERP más usado por PYMEs de transporte en España. Integrarlo con Cargoffer permite:
- Facturación automática desde contratos de transporte firmados
- Conciliación de pagos recibidos vía Stripe
- Exportación de gastos por ruta (peajes, combustible)
- Sincronización bidireccional de clientes y proveedores
Flujo de integración
- Obtienes contratos firmados via
GET /api/auction/contract/{serviceCode} - Extraes importe, cliente, fecha
- Generas factura en Sage 50 mediante su API
- Marcas como facturado en Cargoffer con
POST /api/payment/invoice
Webhook para automatización
Registra un webhook para recibir contratos firmados en tiempo real:
bash
curl -X POST "https://api.pro.cargoffer.com/api/webhook" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://tu-sistema.com/webhook/sage", "events": ["contract.signed", "payment.received"]}'Cuando se firme un contrato, recibirás automáticamente los datos para generar la factura en Sage.
Obtener contratos firmados para facturar
bash
curl -X GET "https://api.pro.cargoffer.com/api/auction/contract/{serviceCode}" \
-H "Authorization: Bearer <token>"
# Listar contratos pendientes
curl -X GET "https://api.pro.cargoffer.com/api/auction/contract/pending" \
-H "Authorization: Bearer <token>"Crear factura desde contrato
bash
curl -X POST "https://api.pro.cargoffer.com/api/payment/invoice" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"contractId": "SRV-001", "amount": 1250.00, "clientCif": "B12345678", "concept": "Transporte Madrid-Barcelona"}'Código Python
python
import requests
TOKEN = "tu_token_aqui"
def facturar_contratos_pendientes():
"""Factura automáticamente contratos firmados"""
headers = {"Authorization": f"Bearer {TOKEN}"}
# 1. Obtener contratos pendientes
contracts = requests.get(
"https://api.pro.cargoffer.com/api/auction/contract/pending",
headers=headers
).json()
# 2. Facturar cada uno
for c in contracts:
invoice = {
"contractId": c["serviceCode"],
"amount": c["amount"],
"clientCif": c["client"]["cif"],
"concept": f"Transporte {c['serviceCode']}"
}
r = requests.post(
"https://api.pro.cargoffer.com/api/payment/invoice",
headers=headers, json=invoice
)
print(f"Facturado: {c['serviceCode']} - {r.status_code}")