Odoo ERP
Finalitix usa Odoo como ERP de contabilidad. La integración es indirecta: la API nunca llama a Odoo directamente. En su lugar, publica mensajes en AWS SQS, y un consumidor externo los procesa y ejecuta las operaciones en Odoo.
Arquitectura de integración
Sección titulada «Arquitectura de integración»finalitixspeiapi │ │ SQS.sendMessage(ACC_MOVE_SQS_URL, {...}) │ ▼AWS SQS (cola FIFO) │ │ ▼Consumidor SQS (servicio externo) │ ▼Odoo ERP ├── res.partner (socios/contactos) └── account.move (asientos contables)Operaciones en Odoo
Sección titulada «Operaciones en Odoo»Crear socio (res.partner)
Sección titulada «Crear socio (res.partner)»Se ejecuta cuando STP activa una cuenta de usuario (PUT /stp/v1/account con estado: 'A').
Mensaje SQS:
{ "MessageAttributes": { "method": { "DataType": "String", "StringValue": "create_finalitix_partner" }, "model": { "DataType": "String", "StringValue": "res.partner" }, "accountId": { "DataType": "Number", "StringValue": "42" }, "finalitixUserId": { "DataType": "String", "StringValue": "550e8400-e29b-41d4-a716-446655440000" } }}El consumidor usa accountId y finalitixUserId para obtener los datos del usuario y crear el partner en Odoo.
Crear asiento contable (account.move)
Sección titulada «Crear asiento contable (account.move)»Se ejecuta en cada transacción (cargo o abono) procesada.
Mensaje SQS:
{ "MessageAttributes": { "method": { "DataType": "String", "StringValue": "create_post_move" }, "model": { "DataType": "String", "StringValue": "account.move" } }, "MessageBody": "{\"transaction_id\": 123, \"amount\": 1500.00, \"finalitix_type\": \"cargo\", \"description\": \"Pago de servicios\"}"}| Campo | Descripción |
|---|---|
transaction_id | ID de la transacción en la BD de Finalitix |
amount | Monto en MXN |
finalitix_type | cargo (saliente) o abono (entrante) |
description | Concepto del movimiento |
Cola SQS utilizada
Sección titulada «Cola SQS utilizada»Ambas operaciones usan la misma cola: ACC_MOVE_SQS_URL
El campo method en MessageAttributes determina qué operación ejecutar en Odoo:
method | model | Operación |
|---|---|---|
create_finalitix_partner | res.partner | Crear socio |
create_post_move | account.move | Crear asiento contable |