Integrações Infiny
API ativa

Developer Docs

Infiny Now

Referência técnica da entrega imediata Infiny, incluindo cotação, solicitação, rotas multiponto, cancelamento, status e localização do motorista.

Produto

Entrega imediata com operação e rastreio em um único fluxo

O Infiny Now recebe a origem, os destinos e os volumes, calcula o valor, disponibiliza a corrida para motoristas elegíveis e devolve o andamento por consulta e webhook.

Disponível

Ciclo completo da entrega

Ativo

Cotação, criação, cancelamento, consulta de status e eventos assíncronos já fazem parte da API.

Disponível

Localização do motorista

Ativo

A posição mais recente fica disponível durante a corrida, com horário, idade do dado, precisão e indicador de atualização antiga.

Disponível

Rotas de até quatro pontos

Ativo

A rota é ofertada e aceita como uma unidade indivisível, com sequência A/B/C/D, distância total e valor fechado.

Matriz de disponibilidade

CapacidadeStatusComportamento
Entrega com um destinoDisponívelUm ponto de coleta e um ponto de entrega por oferta ao motorista.
Vários destinos no mesmo payloadDisponívelA API aceita até três dropoffs sob o mesmo deliveryId e mantém a ordem informada.
Rota atômica A/B/C/DDisponívelAceite único e transacional, sequência bloqueada, valor fechado e exclusividade do motorista.
Retorno à origemDisponívelEntrega ou coleta com retorno ao ponto inicial, quando indicado na operação.

Integração

Autenticação e fluxo recomendado

Todas as chamadas usam o token exclusivo criado no painel de integrações. O mesmo token identifica e isola pedidos, status e localização de cada integrador.

Header obrigatório

http
Authorization: Bearer SEU_TOKEN_INFINY_NOW
Content-Type: application/json

Fluxo ponta a ponta

  1. Configure no painel a URL HTTPS que receberá os eventos e gere o Bearer Token do Infiny Now.
  2. Consulte POST /api/quotation-delivery com os mesmos dados que serão usados na solicitação.
  3. Crie a corrida em POST /api/request-delivery e armazene o deliveryId retornado.
  4. Trate o webhook como canal principal de mudança de status e use a consulta de entrega para reconciliação.
  5. Depois da atribuição do motorista, consulte a localização enquanto a corrida estiver ativa.
  6. Quando necessário, cancele pelo deliveryId e trate retorno à origem ou taxa conforme o estágio operacional.

Contrato de dados

Payload compartilhado por cotação e solicitação

A cotação e a criação recebem a mesma estrutura. Isso evita divergência entre o preço consultado e os dados enviados para a operação.

Campos principais

CampoTipoObrigatórioDescrição
vehicleTypestringSimMOTORCYCLE ou CAR.
pickup.contactsobjectSimNome e telefone do contato no ponto de retirada.
pickup.addressobjectSimEndereço completo e latitude/longitude obrigatórias da origem.
dropoffsarraySimDe um a três destinos. Endereço é obrigatório; coordenadas podem vir no endereço ou em coordinates. A ordem enviada define B, C e D.
dropoffs[].externalIdstringRecomendadoIdentificador único do pedido no integrador para conciliação e auditoria.
dropoffs[].contactsobjectNãoNome e telefone do recebedor.
orderPackagesarrayNãoDescrição, altura, largura, comprimento, peso e quantidade dos volumes.
deliveryModestringNãoModalidade operacional. Use DEFAULT no fluxo padrão, individual ou multiponto.

Exemplo de entrega imediata

json
{
  "vehicleType": "MOTORCYCLE",
  "pickup": {
    "contacts": {
      "name": "Loja Centro",
      "phoneNumber": "11999999999"
    },
    "address": {
      "city": "São Paulo",
      "state": "São Paulo",
      "street": "Avenida Paulista",
      "number": "1000",
      "zipcode": "01310-100",
      "district": "Bela Vista",
      "country": "Brasil",
      "complement": "Loja 12",
      "latitude": -23.561414,
      "longitude": -46.655881
    }
  },
  "dropoffs": [
    {
      "externalId": "PEDIDO-28383873",
      "contacts": {
        "name": "Destinatário",
        "phoneNumber": "11988888888"
      },
      "coordinates": {
        "latitude": -23.572001,
        "longitude": -46.641078
      },
      "address": {
        "city": "São Paulo",
        "state": "São Paulo",
        "street": "Rua Vergueiro",
        "number": "500",
        "zipcode": "01504-000",
        "district": "Liberdade",
        "country": "Brasil",
        "complement": "Apto 42"
      }
    }
  ],
  "orderPackages": [
    {
      "description": "Pacote",
      "height": 16,
      "width": 11,
      "length": 4,
      "weight": 1,
      "quantity": 1
    }
  ],
  "deliveryMode": "DEFAULT"
}

Referência

Endpoints ativos

Os cinco endpoints abaixo estão protegidos pelo mesmo Bearer Token e operam no host de produção https://use.infiny.com.br.

POST

Cotar entrega

Calcula o valor da entrega com base no veículo, origem e destinos sem criar objetos operacionais.

/api/quotation-delivery

Produção
Bearer Token
Sem criação

Parâmetros

CampoTipoObrigatórioDescriçãoExemplo / default
bodyDeliveryRequestSimPayload completo descrito na seção anterior.—

Cotação

bash
curl -X POST "https://use.infiny.com.br/api/quotation-delivery" \
  -H "Authorization: Bearer SEU_TOKEN_INFINY_NOW" \
  -H "Content-Type: application/json" \
  --data @delivery.json

200 OK

json
{
  "shippingValue": 18.33
}

Respostas

StatusQuando aconteceFormato
200Cotação calculada com sucesso.—
400Não foi possível obter preço para os dados enviados.—
401Bearer Token ausente ou inválido.—
422Payload inválido ou campo obrigatório ausente.—

POST

Solicitar entrega

Cria uma rota individual ou multiponto, gera o deliveryId e disponibiliza uma única oferta ao motorista.

/api/request-delivery

Produção
Criação
Prioritária

Parâmetros

CampoTipoObrigatórioDescriçãoExemplo / default
bodyDeliveryRequestSimUse os mesmos dados enviados na cotação.—

Solicitação

bash
curl -X POST "https://use.infiny.com.br/api/request-delivery" \
  -H "Authorization: Bearer SEU_TOKEN_INFINY_NOW" \
  -H "Content-Type: application/json" \
  --data @delivery.json

201 Created

json
{
  "deliveryId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
  "shippingValue": 18.33,
  "status": "PENDING",
  "route": {
    "routeId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
    "status": "AVAILABLE",
    "pointsCount": 2,
    "fixedValue": 18.33,
    "totalDistanceKm": 2.41,
    "vehicleType": "MOTORCYCLE",
    "acceptMode": "WHOLE_ROUTE",
    "immutable": true,
    "points": [
      { "label": "A", "type": "pickup" },
      { "label": "B", "type": "dropoff" }
    ]
  },
  "driver": {
    "name": "",
    "phone": "",
    "coordinates": {
      "latitude": null,
      "longitude": null
    }
  },
  "orders": [
    {
      "status": "PENDING",
      "externalId": "PEDIDO-28383873",
      "point": "B",
      "coordinates": {
        "latitude": -23.572001,
        "longitude": -46.641078
      },
      "address": {
        "city": "São Paulo",
        "state": "São Paulo",
        "street": "Rua Vergueiro",
        "number": "500",
        "zipcode": "01504000",
        "district": "Liberdade",
        "country": "Brasil",
        "complement": "Apto 42"
      }
    }
  ]
}

Respostas

StatusQuando aconteceFormato
201Rota criada, deliveryId emitido e sequência A/B/C/D bloqueada na ordem do payload.—
400Preço indisponível para a solicitação.—
401Bearer Token ausente ou inválido.—
404Ponto de retirada não vinculado à conta da integração.—
422Payload inválido.—

POST

Cancelar entrega

Cancela os objetos ligados ao deliveryId. Depois da coleta, o fluxo pode ser convertido em retorno à origem.

/api/cancel-delivery/{deliveryId}

Produção
Cancelamento
Retorno

Parâmetros

CampoTipoObrigatórioDescriçãoExemplo / default
deliveryIdstringSimIdentificador recebido na criação e enviado na URL.—
reasonstringOpcionalMotivo do cancelamento, limitado a 255 caracteres.—

Cancelamento

bash
curl -X POST "https://use.infiny.com.br/api/cancel-delivery/366d4b54-8793-4f52-9918-4b2124cb56f4" \
  -H "Authorization: Bearer SEU_TOKEN_INFINY_NOW" \
  -H "Content-Type: application/json" \
  -d '{"reason":"CLIENT_NOT_FOUND"}'

200 OK

json
{
  "deliveryId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
  "shippingValue": 18.33,
  "driver": {
    "name": "Nome do motorista",
    "phone": "11999999999",
    "coordinates": {
      "latitude": -23.561414,
      "longitude": -46.655881
    }
  },
  "orders": [
    {
      "status": "FAILED",
      "externalId": "PEDIDO-28383873",
      "coordinates": {
        "latitude": -23.572001,
        "longitude": -46.641078
      },
      "address": {
        "city": "São Paulo",
        "state": "São Paulo",
        "street": "Rua Vergueiro",
        "number": "500",
        "zipcode": "01504000",
        "district": "Liberdade",
        "country": "Brasil",
        "complement": "Apto 42"
      }
    }
  ]
}

Respostas

StatusQuando aconteceFormato
200Cancelamento processado.—
401Bearer Token ausente ou inválido.—
404deliveryId inexistente para este token.—
422Motivo ou deliveryId de corpo inválido.—

GET

Consultar entrega

Retorna valor, motorista e o status de cada objeto vinculado ao deliveryId.

/api/info-delivery/{deliveryId}

Produção
Consulta
Reconciliação

Parâmetros

CampoTipoObrigatórioDescriçãoExemplo / default
deliveryIdstringSimIdentificador recebido na criação e enviado na URL.—

Consulta

bash
curl "https://use.infiny.com.br/api/info-delivery/366d4b54-8793-4f52-9918-4b2124cb56f4" \
  -H "Authorization: Bearer SEU_TOKEN_INFINY_NOW"

200 OK

json
{
  "deliveryId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
  "shippingValue": 18.33,
  "driver": {
    "name": "Nome do motorista",
    "phone": "11999999999",
    "coordinates": {
      "latitude": -23.561414,
      "longitude": -46.655881
    }
  },
  "orders": [
    {
      "status": "ACCEPT",
      "externalId": "PEDIDO-28383873",
      "coordinates": {
        "latitude": -23.572001,
        "longitude": -46.641078
      },
      "address": {
        "city": "São Paulo",
        "state": "São Paulo",
        "street": "Rua Vergueiro",
        "number": "500",
        "zipcode": "01504000",
        "district": "Liberdade",
        "country": "Brasil",
        "complement": "Apto 42"
      }
    }
  ]
}

Respostas

StatusQuando aconteceFormato
200Entrega encontrada.—
401Bearer Token ausente ou inválido.—
404deliveryId inexistente para este token.—

GET

Acompanhar localização do motorista

Entrega a posição mais recente do motorista enquanto a corrida estiver ativa e atribuída a um único motorista.

/api/location-delivery/{deliveryId}

Produção
Rastreio ao vivo
Privacidade

Parâmetros

CampoTipoObrigatórioDescriçãoExemplo / default
deliveryIdstringSimIdentificador recebido na criação e enviado na URL.—

Localização

bash
curl "https://use.infiny.com.br/api/location-delivery/366d4b54-8793-4f52-9918-4b2124cb56f4" \
  -H "Authorization: Bearer SEU_TOKEN_INFINY_NOW"

200 OK com rastreio disponível

json
{
  "deliveryId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
  "status": "ACCEPT",
  "tracking": {
    "available": true,
    "reason": null,
    "updatedAt": "2026-08-10T18:35:24-03:00",
    "ageSeconds": 8,
    "stale": false
  },
  "driver": {
    "name": "Nome do motorista",
    "coordinates": {
      "latitude": -23.561414,
      "longitude": -46.655881,
      "accuracyMeters": 8.4
    }
  },
  "orders": [
    {
      "externalId": "PEDIDO-28383873",
      "status": "ACCEPT"
    }
  ]
}

Respostas

StatusQuando aconteceFormato
200Consulta processada, com tracking disponível ou motivo de indisponibilidade.—
401Bearer Token ausente ou inválido.—
404deliveryId inexistente para este token.—

Eventos

Status e webhook

A URL configurada no painel recebe um evento consolidado da rota com todos os destinos. A consulta por deliveryId deve ser usada para reconciliação e suporte.

Estados enviados

StatusSignificado
PENDINGEntrega criada e aguardando motorista.
ACCEPTMotorista atribuído à entrega.
COLLECTEDObjeto coletado e em deslocamento.
DELIVEREDEntrega concluída.
FAILEDEntrega cancelada, falhou ou entrou em fluxo de devolução.

Webhook de atualização da entrega

O Infiny Now envia POST para a URL cadastrada e autentica a chamada com o mesmo token no formato Authorization: Bearer <TOKEN>.

Campos enviados

CampoTipoObrigatórioDescriçãoExemplo / default
deliveryIdstringSimIdentificador da entrega emitido na criação.—
statusstringSimEstado agregado da rota.—
routeobjectSimMetadados da rota, quantidade e sequência A/B/C/D, distância, valor fechado e modo de aceite integral.—
driverobjectSimNome, telefone e última coordenada disponível do motorista.—
ordersarraySimTodos os destinos da rota, em ordem, com ponto, externalId, status, coordenadas e endereço.—

Evento ACCEPT

json
{
  "deliveryId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
  "status": "ACCEPT",
  "route": {
    "routeId": "366d4b54-8793-4f52-9918-4b2124cb56f4",
    "status": "ACCEPTED",
    "pointsCount": 2,
    "fixedValue": 18.33,
    "totalDistanceKm": 2.41,
    "vehicleType": "MOTORCYCLE",
    "acceptMode": "WHOLE_ROUTE",
    "immutable": true,
    "points": [
      { "label": "A", "type": "pickup" },
      { "label": "B", "type": "dropoff" }
    ]
  },
  "driver": {
    "name": "Nome do motorista",
    "phone": "11999999999",
    "coordinates": {
      "latitude": -23.561414,
      "longitude": -46.655881
    }
  },
  "orders": [
    {
      "status": "ACCEPT",
      "externalId": "PEDIDO-28383873",
      "point": "B",
      "coordinates": {
        "latitude": -23.572001,
        "longitude": -46.641078
      },
      "address": {
        "city": "São Paulo",
        "state": "São Paulo",
        "street": "Rua Vergueiro",
        "number": "500",
        "zipcode": "01504000",
        "district": "Liberdade",
        "country": "Brasil",
        "complement": "Apto 42"
      }
    }
  ]
}

Multiponto

Rotas atômicas de até quatro pontos

Cada solicitação gera uma única rota sem motorista atribuído. A oferta reúne uma coleta A e até três entregas B/C/D, aceitas e executadas como uma unidade.

Sequência apresentada no aplicativo

PontoFunçãoInformação no card
AColetaEndereço da origem, contato e instruções de retirada.
BEntrega 1Primeiro destino e identificador do pedido.
CEntrega 2Segundo destino, quando existir.
DEntrega 3Terceiro destino, quando existir.

Três destinos na ordem B/C/D

json
{
  "dropoffs": [
    {
      "externalId": "PEDIDO-B",
      "coordinates": { "latitude": -23.572001, "longitude": -46.641078 },
      "address": { "city": "São Paulo", "state": "SP", "street": "Rua B", "number": "100", "zipcode": "01504-000", "district": "Liberdade" }
    },
    {
      "externalId": "PEDIDO-C",
      "coordinates": { "latitude": -23.580112, "longitude": -46.632440 },
      "address": { "city": "São Paulo", "state": "SP", "street": "Rua C", "number": "200", "zipcode": "04001-000", "district": "Paraíso" }
    },
    {
      "externalId": "PEDIDO-D",
      "coordinates": { "latitude": -23.589410, "longitude": -46.625701 },
      "address": { "city": "São Paulo", "state": "SP", "street": "Rua D", "number": "300", "zipcode": "04101-000", "district": "Vila Mariana" }
    }
  ]
}

Regras ativas do aceite

  • No máximo quatro pontos de atendimento: uma coleta A e até três entregas B/C/D.
  • O card informa que se trata de uma rota, a quantidade de pontos, a distância total e o valor total fechado.
  • Um único toque aceita todos os pontos dentro de uma transação com bloqueio concorrente.
  • Depois do aceite, a composição e a ordem da rota ficam imutáveis; nenhum novo objeto pode ser adicionado.
  • Enquanto tiver uma rota Infiny Now aberta, o motorista não pode aceitar outra rota nem adicionar entregas avulsas.
  • Falha em um ponto não libera os demais: a rota continua vinculada ao mesmo motorista e segue a política de ocorrência ou retorno.

Suporte

Precisa validar um fluxo específico?

Se você estiver homologando uma integração ou precisar conferir um comportamento da API pública atual, fale com a equipe da Infiny antes de subir volume real.