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 TRANSCEND | Dato | SAP Business One | Para qué |
|---|---|---|---|
| IAM | Usuarios, roles, permisos | Usuarios SAP (OUSR) | SSO y control de acceso |
| Pay | Facturas, pagos, planes | Facturas de clientes (OINV) | Contabilizar ingresos recurr. |
| Profiles | Empresas, datos fiscales | Maestro 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.")