Integraciones

Conexiones con otros sistemas, como Bsale, y la sincronización de sus datos.

Crear una conexión

POSThttps://api.drometra.com/v1/integrations/connections

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Respuesta · 201

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X POST "https://api.drometra.com/v1/integrations/connections" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{}'
respuesta · 201
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "name": "…",
  "environment": "sandbox",
  "providerKind": "sandbox-v1",
  "instanceKey": "…",
  "capabilities": [
    "catalog.import"
  ],
  "active": true,
  "version": 1,
  "createdAt": "2026-10-21T14:02:31Z",
  "updatedAt": "2026-10-21T14:02:31Z",
  "needsReconnect": true
}

Listar conexiones

GEThttps://api.drometra.com/v1/integrations/connections

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Respuesta · 200

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X GET "https://api.drometra.com/v1/integrations/connections" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Accept: application/json"
respuesta · 200
[
  {
    "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
    "name": "…",
    "environment": "sandbox",
    "providerKind": "sandbox-v1",
    "instanceKey": "…",
    "capabilities": [
      "catalog.import"
    ],
    "active": true,
    "version": 1,
    "createdAt": "2026-10-21T14:02:31Z",
    "updatedAt": "2026-10-21T14:02:31Z",
    "needsReconnect": true
  }
]

Cambiar una conexión

PATCHhttps://api.drometra.com/v1/integrations/connections/{id}

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Cuerpo

versionobligatoriointeger
activeobligatorioboolean

Respuesta · 200

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X PATCH "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 0,
    "active": true
  }'
respuesta · 200
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "name": "…",
  "environment": "sandbox",
  "providerKind": "sandbox-v1",
  "instanceKey": "…",
  "capabilities": [
    "catalog.import"
  ],
  "active": true,
  "version": 1,
  "createdAt": "2026-10-21T14:02:31Z",
  "updatedAt": "2026-10-21T14:02:31Z",
  "needsReconnect": true
}

Ver las opciones de emisión de Bsale

GEThttps://api.drometra.com/v1/integrations/connections/{id}/bsale/issue-options

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Respuesta · 200

  • array de objectsiempre
  • array de objectsiempre
  • array de objectsiempre
  • object o nullsiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X GET "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/bsale/issue-options" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Accept: application/json"
respuesta · 200
{
  "offices": [
    {
      "id": "…",
      "name": "…"
    }
  ],
  "taxes": [
    {
      "id": "…",
      "name": "…",
      "percentage": 0,
      "code": "…"
    }
  ],
  "documentTypes": [
    {
      "id": "…",
      "name": "…",
      "codeSii": "…"
    }
  ],
  "current": {
    "officeId": "…",
    "vatTaxId": "…",
    "documentTypeIds": {
      "receipt": "…",
      "invoice": "…",
      "creditNote": "…"
    },
    "dispatchStock": true
  }
}

Guardar cómo se emite en Bsale

PUThttps://api.drometra.com/v1/integrations/connections/{id}/bsale/issue-settings

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Cuerpo

versionobligatoriointeger
officeIdobligatoriostring
vatTaxIdobligatoriostring
documentTypeIdsobligatorioobject
dispatchStockboolean

Respuesta · 200

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X PUT "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/bsale/issue-settings" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 0,
    "officeId": "…",
    "vatTaxId": "…",
    "documentTypeIds": {}
  }'
respuesta · 200
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "name": "…",
  "environment": "sandbox",
  "providerKind": "sandbox-v1",
  "instanceKey": "…",
  "capabilities": [
    "catalog.import"
  ],
  "active": true,
  "version": 1,
  "createdAt": "2026-10-21T14:02:31Z",
  "updatedAt": "2026-10-21T14:02:31Z",
  "needsReconnect": true
}

Desconectar una integración

POSThttps://api.drometra.com/v1/integrations/connections/{id}/disconnect

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Cuerpo

versionobligatoriointeger

Respuesta · 200

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X POST "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/disconnect" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 0
  }'
respuesta · 200
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "name": "…",
  "environment": "sandbox",
  "providerKind": "sandbox-v1",
  "instanceKey": "…",
  "capabilities": [
    "catalog.import"
  ],
  "active": true,
  "version": 1,
  "createdAt": "2026-10-21T14:02:31Z",
  "updatedAt": "2026-10-21T14:02:31Z",
  "needsReconnect": true
}

Empezar la autorización de Bsale

POSThttps://api.drometra.com/v1/integrations/bsale/authorizations

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Cuerpo

clientCodeobligatoriostring
nameobligatoriostring

Respuesta · 201

  • idstring · uuidsiempre
  • clientCodestringsiempre
  • namestringsiempre
  • expiresAtstring · date-timesiempre
  • bindingSecretstringsiempre
  • authorizeUrlstring · urisiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X POST "https://api.drometra.com/v1/integrations/bsale/authorizations" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "clientCode": "…",
    "name": "…"
  }'
respuesta · 201
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "clientCode": "…",
  "name": "…",
  "expiresAt": "2026-10-21T14:02:31Z",
  "bindingSecret": "…",
  "authorizeUrl": "https://empresa.cl/webhooks/drometra"
}

Completar la autorización de Bsale

POSThttps://api.drometra.com/v1/integrations/bsale/authorizations/{id}/complete

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Cuerpo

codeobligatoriostring
bindingSecretobligatoriostring

Respuesta · 201

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • namestringsiempre
  • environmentenum: sandbox | productionsiempre
  • providerKindenum: sandbox-v1 | bsale-chile-v1siempre
  • instanceKeystring o nullsiempre
  • capabilitiesarray de enum: catalog.import | stock.import | crm.customers.import | invoices.issue | invoices.query_by_correlation | invoices.idempotent_issuesiempre
  • activebooleansiempre
  • versionintegersiempre
  • createdAtstring · date-timesiempre
  • updatedAtstring · date-timesiempre
  • needsReconnectboolean

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X POST "https://api.drometra.com/v1/integrations/bsale/authorizations/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/complete" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "…",
    "bindingSecret": "…"
  }'
respuesta · 201
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "name": "…",
  "environment": "sandbox",
  "providerKind": "sandbox-v1",
  "instanceKey": "…",
  "capabilities": [
    "catalog.import"
  ],
  "active": true,
  "version": 1,
  "createdAt": "2026-10-21T14:02:31Z",
  "updatedAt": "2026-10-21T14:02:31Z",
  "needsReconnect": true
}

Guardar el mapeo de un flujo de datos

PUThttps://api.drometra.com/v1/integrations/connections/{id}/mappings/{stream}

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
streamobligatorioenum: catalog | stock | customers

Cuerpo

domainobligatorioenum: catalog | stock | customers
versionobligatoriointeger
profileobligatorioenum: sandbox-v1 | bsale-chile-v1
rulesobligatorioobject

Respuesta · 200

  • idstring · uuidsiempre
  • tenantIdstring · uuidsiempre
  • connectionIdstring · uuidsiempre
  • domainenum: catalog | stock | customerssiempre
  • versionintegersiempre
  • profileenum: sandbox-v1 | bsale-chile-v1siempre
  • rulesobjectsiempre
  • activebooleansiempre
  • createdAtstring · date-timesiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X PUT "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/mappings/<stream>" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "…",
    "version": 0,
    "profile": "…",
    "rules": {}
  }'
respuesta · 200
{
  "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "tenantId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "connectionId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "domain": "catalog",
  "version": 1,
  "profile": "sandbox-v1",
  "rules": {},
  "active": true,
  "createdAt": "2026-10-21T14:02:31Z"
}

Importar un flujo de datos

POSThttps://api.drometra.com/v1/integrations/connections/{id}/imports/{stream}

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
streamobligatorioenum: catalog | stock | customers

Respuesta · 200

  • attemptIdstring · uuidsiempre
  • connectionIdstring · uuidsiempre
  • streamenum: catalog | stock | customerssiempre
  • previousCursorstring o nullsiempre
  • nextCursorstring o nullsiempre
  • insertedintegersiempre
  • updatedintegersiempre
  • duplicatesintegersiempre
  • conflictsintegersiempre
  • completedAtstring · date-timesiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X POST "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/imports/<stream>" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Accept: application/json"
respuesta · 200
{
  "attemptId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "connectionId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
  "stream": "catalog",
  "previousCursor": "…",
  "nextCursor": "…",
  "inserted": 0,
  "updated": 0,
  "duplicates": 0,
  "conflicts": 0,
  "completedAt": "2026-10-21T14:02:31Z"
}

Leer los registros sincronizados

GEThttps://api.drometra.com/v1/integrations/canonical/{stream}

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

streamobligatorioenum: catalog | stock | customers

Parámetros de consulta

afterstring · uuid
limitinteger
connectionIdstring · uuid
qstring

Respuesta · 200

  • array de object o object o object o object o object o objectsiempre
  • nextCursorstring · uuid o nullsiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X GET "https://api.drometra.com/v1/integrations/canonical/<stream>" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Accept: application/json"
respuesta · 200
{
  "items": [
    {
      "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "connectionId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "externalId": "…",
      "observationVersion": 1,
      "mappingVersion": 1,
      "origin": "sandbox-v1",
      "causationId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "importedAt": "2026-10-21T14:02:31Z",
      "sku": "…",
      "name": "…",
      "unit": "…",
      "parentExternalId": "…",
      "barCode": "…",
      "active": true,
      "externalVersion": "…",
      "versionKind": "provider_monotonic"
    }
  ],
  "nextCursor": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
}

Listar conflictos de sincronización

GEThttps://api.drometra.com/v1/integrations/connections/{id}/conflicts

Pide el token de acceso de una persona de tu empresa.

Cabeceras

x-tenant-idobligatoriostring · uuid
El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.

Parámetros de ruta

idobligatoriostring · uuid
ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d

Parámetros de consulta

afterstring · uuid
limitinteger

Respuesta · 200

  • array de objectsiempre
  • nextCursorstring · uuid o nullsiempre

Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.

petición
curl -X GET "https://api.drometra.com/v1/integrations/connections/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/conflicts" \
  -H "Authorization: Bearer $DROMETRA_TOKEN" \
  -H "x-tenant-id: $DROMETRA_TENANT" \
  -H "Accept: application/json"
respuesta · 200
{
  "items": [
    {
      "id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "connectionId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "stream": "catalog",
      "externalId": "…",
      "currentVersion": "…",
      "incomingVersion": "…",
      "currentVersionKind": "provider_monotonic",
      "incomingVersionKind": "provider_monotonic",
      "currentSha256": "…",
      "incomingSha256": "…",
      "kind": "same_version_different_payload",
      "origin": "sandbox-v1",
      "causationId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
      "createdAt": "2026-10-21T14:02:31Z"
    }
  ],
  "nextCursor": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
}