Para Desenvolvedores

Documentação da API — ActHub v1

API REST com autenticação JWT, endpoints para sincronização de catálogo, pedidos, estoque, preços e muito mais.

OpenAPI 3.0 Autenticação JWT Bearer REST / JSON

Autenticação

Todas as requisições à API do ActHub exigem autenticação via JWT Bearer Token. Obtenha o token através do endpoint de login e envie-o no header Authorization de cada chamada.

POST /Admin/auth

Autentica o usuário e retorna um token JWT.

Request Body — UserCredentials
{
  "userName": "string",   // obrigatório
  "password": "string"    // obrigatório
}
Exemplo de uso
POST /Admin/auth
Content-Type: application/json

{
  "userName": "seu_usuario",
  "password": "sua_senha"
}

// Response 200 — Token JWT
// Use no header: Authorization: Bearer {token}

Admin

Endpoints administrativos para manutenção, diagnóstico e gerenciamento da fila de sincronização.

GET /Admin/downloaderrors

Faz download dos logs de erros do sistema.

200 — OK

POST /Admin/cleanup

Executa limpeza de dados temporários e cache interno.

200 — OK

POST /Admin/recycle

Recicla (tenta processar novamente) os itens da fila de processamento.

200 — OK

POST /Admin/setup/{target}

Executa o setup inicial para o target especificado.

ParâmetroInTipoObrigatório
targetpathstringSim

200 — OK

GET /Admin/queuestatus

Retorna o status atual da fila de processamento.

ParâmetroInTipoObrigatório
statusqueryQueueStatusNão
entityqueryEntityTypeNão

200 — OK

Client

Endpoint para consultar novos clientes capturados pela plataforma de e-commerce.

GET /Client/new

Retorna a lista de novos clientes registrados.

200 — Array de Client

500 — Internal Server Error

Log

Endpoints para registrar e consultar logs de transação — rastreabilidade completa das operações de sincronização.

POST /Log/new-order

Registra o log de um novo pedido recebido.

Request Body — LogNewOrder
{
  "order": { /* Order object */ },
  "request": "string",
  "response": "string"
}

200 — OK

400 — Bad Request (ProblemDetails)

GET /Log/{type}/{sourceId}

Consulta logs de sincronização por tipo de entidade e ID de origem.

ParâmetroInTipoObrigatório
typepathEntityTypeSim
sourceIdpathstringSim

200 — Array de LogEntry

Map

Gerenciamento do mapeamento de IDs entre ERP (source) e plataforma de e-commerce (target). Cada entidade sincronizada possui um registro de mapeamento.

GET /Map/{type}/{sourceId}

Busca o mapeamento de uma entidade específica pelo tipo e ID de origem.

ParâmetroInTipoObrigatório
typepathEntityTypeSim
sourceIdpathstringSim

200 — Array de MapItem

404 — Not Found

DELETE /Map/{type}/{sourceId}

Remove o mapeamento de uma entidade específica.

ParâmetroInTipoObrigatório
typepathEntityTypeSim
sourceIdpathstringSim

200 — OK

404 — Not Found

GET /Map/{type}

Lista todos os mapeamentos de um tipo de entidade.

ParâmetroInTipoObrigatório
typepathEntityTypeSim

200 — Array de MapItem

POST /Map

Cria um novo registro de mapeamento entre source e target.

Request Body — MapItem
{
  "sourceID": "string",
  "targetID": "string",
  "entity": 0           // EntityType enum
}

200 — OK

400 — Bad Request

Order

Gestão completa do ciclo de vida de pedidos: consulta, processamento, faturamento, expedição e cancelamento.

GET /Order/{targetId}

Consulta um pedido pelo ID do target (e-commerce).

ParâmetroInTipoObrigatório
targetIdpathstringSim

200Order

GET /Order/new

Retorna a lista de pedidos novos (ainda não processados pelo ERP).

200 — Array de Order

GET /Order/pending

Retorna pedidos pendentes de processamento.

200 — Array de Order

POST /Order/invoices

Envia notas fiscais vinculadas a pedidos.

Request Body — Array de Invoice
[
  {
    "targetID": "string",
    "companyCode": "string",
    "orderTargetID": "string",
    "orderSourceID": "string",
    "number": "string",
    "serie": "string",
    "value": 0.0,
    "date": "2026-01-01T00:00:00Z",
    "url": "string",
    "key": "string",
    "items": [
      {
        "targetID": "string",
        "sourceID": "string",
        "price": 0.0,
        "cfop": "string",
        "quantity": 0.0,
        "companyCode": "string"
      }
    ]
  }
]

200 — OK (string)

400 — Bad Request

POST /Order/shipment

Registra informações de expedição/rastreio de um pedido.

Request Body — Shipment
{
  "targetID": "string",
  "companyCode": "string",
  "orderTargetID": "string",
  "orderSourceID": "string",
  "trackingNumber": "string",
  "trackingUrl": "string",
  "courier": "string",
  "date": "2026-01-01T00:00:00Z"
}

200 — OK (string)

400 — Bad Request

POST /Order/start-handling

Sinaliza que o ERP iniciou o tratamento do pedido.

Request Body — StartOrderHandling
{
  "sourceId": "string",
  "targetId": "string",
  "message": "string"
}

200 — OK (string)

400 — Bad Request

POST /Order/cancel

Cancela um pedido na plataforma de e-commerce.

Request Body — CancelOrder
{
  "sourceId": "string",
  "targetId": "string"
}

200 — OK (string)

400 — Bad Request

POST /Order/message

Envia uma mensagem/observação para o pedido no e-commerce.

Request Body — OrderMessage
{
  "sourceId": "string",
  "targetId": "string",
  "message": "string"
}

200 — OK (string)

400 — Bad Request

POST /Order/enqueue

Enfileira um pedido para reprocessamento.

Request Body — EnqueueItem
{
  "sourceID": "string",
  "message": "string"
}

200 — OK (string)

400 — Bad Request

Param

CRUD de parâmetros de configuração da integração. Permite consultar, criar, atualizar e remover configurações.

GET /Param

Lista todos os parâmetros de configuração.

200 — Array de Param

POST /Param

Cria um novo parâmetro de configuração.

Request Body — Param
{
  "id": "string",
  "value": "string",
  "description": "string",
  "type": 1              // ParamType enum
}

200 — OK

PUT /Param

Atualiza um parâmetro de configuração existente.

Request Body — Param
{
  "id": "string",
  "value": "string",
  "description": "string",
  "type": 1
}
GET /Param/{id}

Busca um parâmetro pelo ID.

ParâmetroInTipoObrigatório
idpathstringSim

200Param

404 — Not Found

DELETE /Param/{id}

Remove um parâmetro pelo ID.

ParâmetroInTipoObrigatório
idpathstringSim

404 — Not Found

Sync

Endpoints de sincronização de dados entre ERP e e-commerce. Aqui é onde acontece a mágica: envie marcas, departamentos, categorias, produtos, SKUs, estoque, preços e kits para a plataforma de e-commerce.

Fila de Sincronização

GET /Sync/{queueId}

Consulta o status de um item da fila.

ParâmetroInTipoObrigatório
queueIdpathstringSim

200SchedulerItem

404 — Not Found

POST /Sync/{queueId}

Reprocessa um item da fila.

ParâmetroInTipoObrigatório
queueIdpathstringSim

200 — boolean

DELETE /Sync/{queueId}

Remove um item da fila de sincronização.

ParâmetroInTipoObrigatório
queueIdpathstringSim

200 — OK

404 — Not Found

GET /Sync/executed

Retorna o último item executado na fila.

200SchedulerItem

404 — Not Found

Catálogo

POST /Sync/brand

Sincroniza uma marca. Body: Brand

DELETE /Sync/brand/{sourceId}

Remove uma marca pelo sourceId.

POST /Sync/department

Sincroniza um departamento. Body: Department

DELETE /Sync/department/{sourceId}

Remove um departamento pelo sourceId.

POST /Sync/section

Sincroniza uma seção. Body: Section

DELETE /Sync/section/{sourceId}

Remove uma seção pelo sourceId.

POST /Sync/category

Sincroniza uma categoria. Body: Category

DELETE /Sync/category/{sourceId}

Remove uma categoria pelo sourceId.

POST /Sync/supplier

Sincroniza um fornecedor. Body: Supplier

DELETE /Sync/supplier/{sourceId}

Remove um fornecedor pelo sourceId.

Produtos e SKUs

POST /Sync/product

Sincroniza um produto. Body: Product

DELETE /Sync/product/{sourceId}

Remove um produto pelo sourceId.

POST /Sync/sku

Sincroniza um SKU. Body: SKU

DELETE /Sync/sku/{sourceId}

Remove um SKU pelo sourceId.

POST /Sync/kit

Sincroniza um kit. Body: Kit

Estoque, Preços e Dados de Cliente

POST /Sync/inventory

Sincroniza estoque de um SKU. Body: Inventory

POST /Sync/price

Sincroniza preços de um SKU. Body: Price

POST /Sync/clientinfo

Sincroniza info de cliente B2B. Body: ClientInfo

Schemas

Modelos de dados utilizados nos request/response da API.

Brand

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "title": "string",
  "description": "string",
  "keyWords": "string",
  "active": true
}

Department

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "title": "string",
  "description": "string",
  "keywords": "string",
  "active": true
}

Section

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "title": "string",
  "description": "string",
  "departID": "string",
  "keywords": "string",
  "active": true
}

Category

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "title": "string",
  "description": "string",
  "sectionID": "string",
  "departID": "string",
  "keywords": "string",
  "active": true
}

Supplier

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "title": "string",
  "active": true
}

Product

{
  "sourceID": "string",
  "targetID": "string",
  "company": "string",
  "name": "string",
  "title": "string",
  "description": "string",
  "keyWords": "string",
  "metaTag": "string",
  "shortDescription": "string",
  "departID": "string",
  "sectionID": "string",
  "categoryID": "string",
  "brandID": "string",
  "supplierId": "string",
  "active": true,
  "visible": true,
  "coverImageUrl": "string",
  "attributes": {
    "key": { Attribute }
  }
}

SKU

{
  "sourceID": "string",
  "targetID": "string",
  "name": "string",
  "productSourceId": "string",
  "heightInCm": 0.0,
  "widthInCm": 0.0,
  "lengthInCm": 0.0,
  "grossWeightinGrams": 0.0,
  "liquidWeightinGrams": 0.0,
  "barcode": "string",
  "salesMultiple": 0.0,
  "partNumber": "string",
  "unit": "string",
  "imageUrls": ["string"],
  "active": true,
  "isKit": false,
  "attributes": {
    "key": { Attribute }
  }
}

Inventory

{
  "sourceID": "string",
  "targetID": "string",
  "companyCode": "string",
  "stock": 0.0,
  "unlimited": false,
  "wharehouse": "string",
  "date": "2026-01-01T00:00:00Z"
}

Price

{
  "sourceID": "string",
  "targetID": "string",
  "priceTables": [
    {
      "companyCode": "string",
      "name": "string",
      "price": 0.0,
      "basePrice": 0.0,
      "costPrice": 0.0,
      "tax": 0.0,
      "default": true,
      "offers": [
        {
          "start": "datetime",
          "end": "datetime",
          "minQuantity": 0,
          "price": 0.0,
          "percent": 0.0
        }
      ]
    }
  ]
}

Kit

{
  "sourceID": "string",
  "targetID": "string",
  "components": [
    {
      "sourceID": "string",
      "targetID": "string",
      "quantity": 0,
      "price": 0.0
    }
  ]
}

ClientInfo

{
  "sourceID": "string",
  "targetID": "string",
  "cnpj": "string",
  "email": "string",
  "active": true,
  "priceTable": "string",
  "credit": 0.0,
  "maxDeadLineInDays": 0,
  "confidenceLevel": "string",
  "isNew": false
}

Client

{
  "sourceID": "string",
  "targetID": "string",
  "email": "string",
  "name": "string",
  "companyName": "string",
  "cnpj": "string",
  "cpf": "string",
  "rg": "string",
  "issuerRG": "string",
  "inscEstadual": "string",
  "inscMunicipal": "string",
  "personalPhone": "string",
  "businessPhone": "string",
  "billingAddress": { Address },
  "deliveryAddress": { Address }
}

Order

{
  "sourceID": "string",
  "targetID": "string",
  "status": 1,             // OrderStatus
  "creationDate": "datetime",
  "lastChange": "datetime",
  "total": 0.0,
  "itemsTotal": 0.0,
  "discounts": 0.0,
  "coupon": "string",
  "shippingCost": 0.0,
  "tax": 0.0,
  "authorizedDate": "datetime",
  "items": [{ OrderItem }],
  "shippingAddress": { Address },
  "shipment": { ShipmentInfo },
  "payments": [{ PaymentInfo }],
  "client": { Client },
  "invoiceNumber": "string",
  "invoiceDate": "datetime",
  "seller": "string",
  "channel": "string",
  "sourceSyncMessage": "string"
}

MapItem

{
  "sourceID": "string",
  "targetID": "string",
  "entity": 0,           // EntityType
  "created": "datetime",
  "updated": "datetime"
}

LogEntry

{
  "id": "string",
  "updated": "datetime",
  "type": 0,              // EntityType
  "sourceID": "string",
  "targetID": "string",
  "interactions": [
    {
      "id": "string",
      "logId": "string",
      "executed": "datetime",
      "message": "string",
      "request": "string",
      "response": "string",
      "info": "string"
    }
  ]
}

SchedulerItem

{
  "id": "string",
  "createdAt": "datetime",
  "data": "string",
  "entity": 0,            // EntityType
  "executedAt": "datetime",
  "sourceID": "string",
  "operation": 68,         // QueueOperation
  "status": 0,             // QueueStatus
  "attempts": 0,
  "message": "string",
  "companyCode": "string"
}

Param

{
  "id": "string",
  "value": "string",
  "description": "string",
  "type": 1               // ParamType
}

Enums

Tipos enumerados utilizados pela API.

EntityType

0   — (padrão)
1   — Brand
2   — Department
3   — Section
4   — Category
5   — Supplier
10  — Product
20  — SKU
25  — Kit
30  — Inventory
40  — Price
50  — Order
60  — Invoice
61  — Shipment
70  — Client
80  — ClientInfo
90  — Param

OrderStatus

1  — New
3  — ReadyForHandling
5  — Handling
7  — Invoiced
9  — Shipped
20 — Canceled

QueueStatus

0 — Pending
1 — Processing
2 — Completed
3 — Error
4 — Canceled
5 — Skipped

QueueOperation

68 — Delete (ASCII 'D')
73 — Insert (ASCII 'I')

AddressType

0 — Residential
1 — Commercial
2 — Pickup

CardBrand

0 — Visa
1 — Mastercard
2 — AmericanExpress
3 — Elo
4 — Hipercard
5 — Diners
6 — Other

ParamType

1   — System
10  — Integration
100 — Custom

Suporte Técnico

Tem dúvidas sobre a integração ou precisa de acesso ao ambiente sandbox? Entre em contato com nosso time técnico.