Skip to content

TRANSCEND IAM + Pay + Profiles con SAP Business One

Lo que conecta

TRANSCEND Platform proporciona IAM (autenticación y usuarios), Pay (facturación y suscripciones) y Profiles (perfiles de empresa). Estos datos se integran con SAP Business One mediante la Service Layer API para centralizar la gestión de clientes, usuarios y contabilidad.

Datos que fluyen

Módulo TRANSCENDDatoSAP Business OnePara qué
IAMUsuarios, roles, permisosUsuarios SAP (OUSR)SSO y control de acceso
PayFacturas, pagos, planesFacturas de clientes (OINV)Contabilizar ingresos recurr.
ProfilesEmpresas, datos fiscalesMaestro de clientes (OCRD)CRM y datos maestros

Autenticación IAM

bash
# Login en TRANSCEND IAM
curl -X POST "https://back.transcend.cargoffer.com/iam/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email": "api@tuempresa.com", "password": "tu_password"}'

# Ver perfil del usuario autenticado
curl -X GET "https://back.transcend.cargoffer.com/iam/api/auth/me" \
  -H "Authorization: Bearer *** de la empresa
curl -X GET "https://back.transcend.cargoffer.com/iam/api/company/me" \
  -H "Authorization: Bearer ***

Sincronizar perfiles de empresa (Profiles -> SAP)

python
import requests

TOKEN = "tu_token_transcend"
SAP_URL = "https://tu-sap:50000/b1s/v1"

def sincronizar_perfil_a_sap(company_id):
    """Crea o actualiza un cliente en SAP desde un perfil de TRANSCEND."""
    # Obtener perfil
    perfil = requests.get(
        f"https://back.transcend.cargoffer.com/profiles/api/companies/{company_id}",
        headers={"Authorization": f"Bearer {TOKEN}"}
    ).json()

    # Mapear a SAP Business Partner
    payload = {
        "CardCode": perfil.get("taxId", perfil["id"]),
        "CardName": perfil.get("legalName", perfil.get("displayName", "")),
        "CardType": "C",
        "FiscalTaxID": perfil.get("taxId", ""),
        "EmailAddress": perfil.get("email", ""),
        "Phone1": perfil.get("phone", ""),
        "Address": perfil.get("address", ""),
        "City": perfil.get("city", ""),
        "Country": perfil.get("country", "ES"),
        "Cellular": perfil.get("mobile", "")
    }

    # Crear en SAP Service Layer
    resp = requests.post(
        f"{SAP_URL}/BusinessPartners",
        json=payload,
        headers={"Cookie": "B1SESSION=..."}
    )
    return resp.json()

Sincronizar facturas de Pay a SAP

python
def sincronizar_facturas_pay():
    """Registra facturas de TRANSCEND Pay en SAP como asientos."""
    facturas = requests.get(
        "https://back.transcend.cargoffer.com/pay/api/invoices",
        headers={"Authorization": f"Bearer {TOKEN}"}
    ).json()

    for f in facturas:
        sap_payload = {
            "CardCode": f.get("companyTaxId", ""),
            "DocDate": f.get("date", "")[:10],
            "DocDueDate": f.get("dueDate", "")[:10],
            "JournalMemo": f"TRANSCEND Pay - {f.get('description', 'Suscripción')}",
            "DocumentLines": [{
                "ItemCode": "TRANSCEND-SUB",
                "Quantity": 1,
                "UnitPrice": f.get("total", 0)
            }]
        }

        requests.post(
            f"{SAP_URL}/Invoices",
            json=sap_payload,
            headers={"Cookie": "B1SESSION=..."}
        )

Automatización

python
def integracion_completa():
    sincronizar_perfil_a_sap("company_123")
    sincronizar_facturas_pay()
    print("Integración TRANSCEND -> SAP completada.")

Documentación relacionada

Documentación de Cargoffer