📦 Para Integradores

Documentação do Aiqbridge

Receba pedidos do Aiqfome usando sua integração existente do iFood ou OpenDelivery. Troque apenas a URL base - zero reescrita de código.

Introdução

O Aiqbridge permite que você receba pedidos do Aiqfome usando exatamente o mesmo código que você já usa para iFood ou OpenDelivery. Não precisa reescrever nada.

💡
Como funciona: Você apenas troca a URL base da sua integração atual. Nós simulamos perfeitamente as APIs do iFood/OpenDelivery, mas buscamos os dados do Aiqfome.

Autenticação

Use JWT Bearer tokens para autenticar suas requisições. Faça login com suas credenciais do Aiqfome (ID Magalu) para obter o token.

POST /auth/login
Authorization: Bearer {seu_jwt_token}
Content-Type: application/json
cURL
curl -X GET https://api.aiqbridge.com.br/ifood/order/v1.0/events:polling \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Adaptador iFood

100% compatível com iFood Merchant API v1.0. Substitua https://merchant-api.ifood.com.br por https://api.aiqbridge.com.br.

GET /ifood/order/v1.0/events:polling

Busca novos eventos de pedidos via polling. Eventos não confirmados com ACK serão retornados novamente.
Dica: Configure webhooks para receber eventos automaticamente sem precisar fazer polling.

Nome Tipo Obrigatório Descrição
limit integer Opcional Número máximo de eventos (padrão: 50, máx: 100)
x-polling-merchants string Header Lista de merchant IDs separados por vírgula
JSON
{
  "events": [
    {
      "id": "evt_123456",
      "code": "PLACED",
      "correlationId": "ORD-789456",
      "createdAt": "2025-01-22T10:30:00Z"
    },
    {
      "id": "evt_123457",
      "code": "CONFIRMED",
      "correlationId": "ORD-789457",
      "createdAt": "2025-01-22T10:31:00Z"
    }
  ]
}
200 Eventos retornados com sucesso
204 Nenhum evento novo disponível
401 Token inválido ou expirado
POST /ifood/order/v1.0/events/acknowledgment

Confirma o recebimento de eventos. Eventos confirmados não serão retornados novamente no polling.

JSON
{
  "eventIds": [
    "evt_123456",
    "evt_123457"
  ]
}
JSON
{
  "message": "Events acknowledged"
}
GET /ifood/order/v1.0/orders/{orderId}

Obtém detalhes completos de um pedido específico.

JSON
{
  "id": "ORD-789456",
  "displayId": "789456",
  "status": "PLACED",
  "createdAt": "2025-01-22T10:30:00Z",
  "customer": {
    "id": "CUST-123",
    "name": "João Silva",
    "phone": "+55 11 98765-4321",
    "documentNumber": "***.***.***-**"
  },
  "items": [
    {
      "id": "ITEM-001",
      "name": "X-Burger",
      "quantity": 2,
      "unitPrice": 2500,
      "totalPrice": 5000,
      "options": []
    }
  ],
  "total": {
    "subTotal": 5000,
    "deliveryFee": 700,
    "totalPrice": 5700
  },
  "delivery": {
    "mode": "DELIVERY",
    "deliveryAddress": {
      "streetName": "Rua Example",
      "streetNumber": "123",
      "neighborhood": "Centro",
      "city": "São Paulo",
      "postalCode": "01234-567"
    }
  },
  "payments": [
    {
      "method": "CREDIT",
      "value": 5700,
      "prepaid": true
    }
  ]
}
POST /ifood/order/v1.0/orders/{orderId}/confirm
Endpoint Descrição Status Resultante
/confirm Confirma o pedido CONFIRMED
/startPreparation Inicia preparo PREPARATION_STARTED
/readyToPickup Pedido pronto READY_TO_PICKUP
/dispatch Saiu para entrega DISPATCHED
/cancel Cancela pedido CANCELLED
JSON
{
  "orderId": "ORD-789456",
  "status": "CONFIRMED",
  "updatedAt": "2025-01-22T10:35:00Z"
}
POST /ifood/order/v1.0/webhook/config

Configurar webhook para receber eventos automaticamente. Alternativa ao polling - ao invés de consultar periodicamente, receba eventos em tempo real.

JSON
{
  "webhook_url": "https://seu-servidor.com/webhook/ifood",
  "event_types": ["ORDER_CREATED", "ORDER_CONFIRMED"],
  "timeout_seconds": 30,
  "max_retries": 3
}
JSON
{
  "merchant_id": "MERCHANT_001",
  "webhook_url": "https://seu-servidor.com/webhook/ifood",
  "secret_key": "whsec_abc123xyz789...",
  "is_active": true
}

Adaptador OpenDelivery

100% compatível com OpenDelivery API v1. Mesma API, mas agora recebendo pedidos do Aiqfome.

GET /od/v1/events:polling

Busca novos eventos via polling no padrão OpenDelivery. Funciona igual ao iFood.
Dica: Configure webhooks para evitar polling constante.

JSON
{
  "events": [
    {
      "eventId": "evt_98765",
      "eventType": "ORDER_PLACED",
      "orderId": "ORD-456789",
      "timestamp": "2025-01-22T10:30:00Z",
      "merchantId": "MERCH-001"
    }
  ]
}
POST /od/v1/events/ack

Confirma o recebimento de eventos. Mesmo usando webhooks, você precisa confirmar para evitar reenvios.

JSON
{
  "eventIds": [
    "evt_98765",
    "evt_98766"
  ]
}

Eventos confirmados com sucesso.

GET /od/v1/orders/{orderId}

Retorna detalhes do pedido no formato OpenDelivery.

JSON
{
  "order": {
    "orderId": "ORD-456789",
    "status": "PENDING",
    "merchant": {
      "id": "MERCH-001",
      "name": "Loja Example"
    },
    "customer": {
      "name": "Maria Santos",
      "phone": "11987654321",
      "address": {
        "street": "Av. Principal",
        "number": "456",
        "district": "Centro",
        "city": "São Paulo",
        "state": "SP",
        "zip": "01234567"
      }
    },
    "items": [
      {
        "id": "ITEM-001",
        "name": "Pizza Grande",
        "quantity": 1,
        "price": 4500,
        "total": 4500
      }
    ],
    "payment": {
      "method": "ONLINE",
      "total": 5200,
      "isPrepaid": true
    }
  }
}
POST /od/v1/webhook/config

Configurar webhook para receber eventos automaticamente. Alternativa ao polling - receba eventos em tempo real.

JSON
{
  "webhook_url": "https://seu-servidor.com/webhook/od",
  "event_types": ["ORDER_PLACED", "ORDER_CONFIRMED"],
  "timeout_seconds": 30,
  "max_retries": 3
}

Como Funcionam os Webhooks

Webhooks são uma alternativa ao polling. Em vez de consultar periodicamente, você recebe os eventos em tempo real no seu servidor.

💡
Por que usar Webhooks?
• Elimina necessidade de polling constante
• Recebe eventos instantaneamente
• Reduz uso de recursos e larg. de banda
• Ambos adaptadores (iFood e OD) suportam!
⚠️
Importante: Mesmo usando webhooks, você ainda precisa confirmar o recebimento dos eventos com ACK para evitar reenvios.
POST /webhook/config
JSON
{
  "webhook_url": "https://seu-servidor.com/webhook",
  "event_types": ["ORDER_CREATED", "ORDER_CONFIRMED"],
  "timeout_seconds": 30,
  "max_retries": 3
}
JSON
{
  "merchantId": "MERCH-001",
  "eventType": "ORDER_CREATED",
  "timestamp": "2025-01-22T10:30:00Z",
  "data": {
    "id": "ORD-789456",
    "orderId": "ORD-789456",
    "status": "PLACED",
    "createdAt": "2025-01-22T10:30:00Z",
    "orderSnapshot": {
      // Detalhes completos do pedido
    }
  }
}

Headers:
X-Webhook-Signature: sha256=abc123...
X-Event-Type: ORDER_CREATED
X-Merchant-Id: MERCH-001