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.
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.
Authorization: Bearer {seu_jwt_token}
Content-Type: application/json
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.
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 |
{
"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"
}
]
}
Confirma o recebimento de eventos. Eventos confirmados não serão retornados novamente no polling.
{
"eventIds": [
"evt_123456",
"evt_123457"
]
}
{
"message": "Events acknowledged"
}
Obtém detalhes completos de um pedido específico.
{
"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
}
]
}
| 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 |
{
"orderId": "ORD-789456",
"status": "CONFIRMED",
"updatedAt": "2025-01-22T10:35:00Z"
}
Configurar webhook para receber eventos automaticamente. Alternativa ao polling - ao invés de consultar periodicamente, receba eventos em tempo real.
{
"webhook_url": "https://seu-servidor.com/webhook/ifood",
"event_types": ["ORDER_CREATED", "ORDER_CONFIRMED"],
"timeout_seconds": 30,
"max_retries": 3
}
{
"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.
Busca novos eventos via polling no padrão OpenDelivery. Funciona igual ao iFood.
Dica: Configure webhooks para evitar polling constante.
{
"events": [
{
"eventId": "evt_98765",
"eventType": "ORDER_PLACED",
"orderId": "ORD-456789",
"timestamp": "2025-01-22T10:30:00Z",
"merchantId": "MERCH-001"
}
]
}
Confirma o recebimento de eventos. Mesmo usando webhooks, você precisa confirmar para evitar reenvios.
{
"eventIds": [
"evt_98765",
"evt_98766"
]
}
Eventos confirmados com sucesso.
Retorna detalhes do pedido no formato OpenDelivery.
{
"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
}
}
}
Configurar webhook para receber eventos automaticamente. Alternativa ao polling - receba eventos em tempo real.
{
"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.
• Elimina necessidade de polling constante
• Recebe eventos instantaneamente
• Reduz uso de recursos e larg. de banda
• Ambos adaptadores (iFood e OD) suportam!
{
"webhook_url": "https://seu-servidor.com/webhook",
"event_types": ["ORDER_CREATED", "ORDER_CONFIRMED"],
"timeout_seconds": 30,
"max_retries": 3
}
{
"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