Skip to content

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

bash
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

CargofferSage 50Ejemplo
amountImporte base1250.00
client.nameNombre clienteTransportes Garcia SL
client.cifCIF/NIFB12345678
serviceCodeNumero facturaSRV-2026-001

3. Automatizar con webhooks

bash
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

python
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.

Documentación de Cargoffer