CFShopOpen Delivery
Pedidos Open Delivery

Portal Open Delivery CFShop

Use esta documentacao para enviar pedidos de canais externos ao PDV CFShop usando eventos Open Delivery por webhook. O pedido entra no gestor, passa pelo fluxo operacional da loja e fica disponivel para impressao, producao, entrega e fechamento.

Fluxo de integracao

  1. Solicite ao lojista ou ao suporte CFShop as credenciais da loja.
  2. Configure o merchantId, appId, webhookToken e, quando usado, webhookSecret.
  3. Envie eventos CREATED ou PREPARATION_REQUESTED para criar pedidos no PDV.
  4. Use a API2 Completa para consultar pedidos, cardapio, status e filas operacionais.

Para homologacao rapida, o CFShop aceita o objeto order completo dentro do evento. Assim o parceiro nao precisa expor uma API de consulta logo no primeiro teste.

Credenciais

CampoOnde usarObservacao
merchantIdHeader X-App-MerchantId e corpo do eventoIdentifica a loja CFShop.
appIdHeader X-App-IdIdentifica o aplicativo/parceiro.
webhookTokenHeader X-Webhook-TokenValida o recebimento do webhook.
webhookSecretHeader X-App-SignatureOpcional. Assinatura HMAC-SHA256 do corpo JSON.
TOKEN_DA_LOJAHeader Authorization: BearerUsado na API2 Completa para consultas e atualizacoes.

Enviar evento

curl -X POST "https://cfshop.com.br/webhook/opendelivery.php" \
  -H "Content-Type: application/json" \
  -H "X-App-Id: APP_ID_FORNECIDO" \
  -H "X-App-MerchantId: cfshop_store_ID_DA_LOJA" \
  -H "X-Webhook-Token: TOKEN_FORNECIDO" \
  -d @pedido-opendelivery.json

Healthcheck

curl "https://cfshop.com.br/webhook/opendelivery.php"

Payload minimo de pedido

{
    "eventId": "evt-teste-1001",
    "eventType": "CREATED",
    "merchantId": "cfshop_store_ID_DA_LOJA",
    "sourceAppId": "APP_ID_FORNECIDO",
    "orderId": "od-teste-1001",
    "order": {
        "id": "od-teste-1001",
        "displayId": "1001",
        "type": "DELIVERY",
        "createdAt": "2026-07-15T12:00:00-03:00",
        "customer": {
            "name": "Cliente Teste",
            "phone": {
                "number": "5599999999999"
            },
            "documentNumber": "00000000000",
            "email": "[email protected]"
        },
        "delivery": {
            "deliveryAddress": {
                "street": "Rua Teste",
                "number": "123",
                "district": "Centro",
                "city": "Cidade",
                "state": "UF",
                "postalCode": "00000000",
                "complement": "Casa",
                "reference": "Proximo ao mercado"
            }
        },
        "items": [
            {
                "id": "prod-1",
                "externalCode": "1",
                "name": "Produto Teste",
                "quantity": 1,
                "unitPrice": 23,
                "totalPrice": 23,
                "options": []
            }
        ],
        "total": {
            "itemsPrice": 23,
            "discount": 0,
            "orderAmount": 23
        },
        "payments": {
            "methods": [
                {
                    "method": "CASH",
                    "type": "OFFLINE"
                }
            ]
        }
    }
}

Eventos e status

CREATED cria pedido
PREPARATION_REQUESTED cria pedido
CONFIRMED/PREPARING aceita
READY_FOR_PICKUP producao
DISPATCHED/PICKED_UP entrega
DELIVERED/CONCLUDED conclui
CANCELLED cancela

Eventos desconhecidos sao registrados e respondidos com sucesso, sem alterar o pedido local.

API2 de apoio

Apos o pedido entrar, o parceiro pode consultar pedidos, status, produtos, pagamentos e filas operacionais pela API2 Completa.

curl "https://cfshop.com.br/api2-completa/orders?pending_integration=1" \
  -H "Authorization: Bearer TOKEN_DA_LOJA"