N-Ways
Documentação para programadoresLigações de receção

Está a desenvolver com o N-Ways?

Obter uma chave de API

Ligações de receção

A link a shop posts its orders to (WooCommerce's webhooks, Zapier, Make, Wix Automations, a Google Sheet's script): each order becomes a delivery under your automation rules. Post to the link's url (/v1/in/<token>), no key: the token and the signature are the key. Format generic: the body below, signed X-NWays-Signature: sha256=<hex HMAC-SHA256 of the body with the secret> (or Authorization: Bearer <secret> where the sender can't sign). Format woocommerce: WooCommerce's order webhook as it comes (X-WC-Webhook-Signature). The delivery's id is <idPrefix or format>-<order id>; a repeat does nothing new. At most 120 calls a minute per link, 256 KB each. Every call is in the link's log for 30 days.

Nesta página
Nota:

Envie a sua chave com key=A_SUA_CHAVE_API no endereço, ou no cabeçalho X-NWays-Api-Key. Chaves de API

Endereço base: https://nways.ng/maps/v1/fleet

GET https://nways.ng/maps/v1/fleet/inbound

cURL
curl "https://nways.ng/maps/v1/fleet/inbound" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/inbound",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Ligações

CampoTipoDescrição
linksInboundLink[]
links[].idstring
links[].namestring
links[].formatstringUm de: generic, woocommerce.
links[].urlstring
links[].secretstringApenas quando é criado ou renovado.
links[].pickupPlaceIdstring | null
links[].dispatchstring | object | null
links[].idPrefixstring
links[].readyStatusstring
links[].testboolean
links[].activeboolean
links[].createdAtstring (date-time)
links[].updatedAtstring (date-time)
links[].lastAtstring (date-time) | null
links[].countsobjectChamadas registadas (30 dias) por estado.
links[].madeintegerAs entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada.
links[].openintegerO que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então.
formatsobject[]
formats[].idstring
formats[].namestring
formats[].signaturestring
formats[].platformsstring[]
200 OK
{
  "links": [
    {
      "id": "inl_4fQ9xLm2Za",
      "name": "string",
      "format": "generic",
      "url": "https://map.nways.ng/v1/in/in_…",
      "secret": "string",
      "pickupPlaceId": "string",
      "dispatch": "auto",
      "idPrefix": "string",
      "readyStatus": "string",
      "test": true,
      "active": true,
      "createdAt": "2026-10-15T09:00:00+01:00",
      "updatedAt": "2026-10-15T09:00:00+01:00",
      "lastAt": "2026-10-15T09:00:00+01:00",
      "counts": {},
      "made": 0,
      "open": 0
    }
  ],
  "formats": [
    {
      "id": "string",
      "name": "string",
      "signature": "string",
      "platforms": [
        "string"
      ]
    }
  ]
}
  • default Erro

POST https://nways.ng/maps/v1/fleet/inbound

CampoTipoDescrição
namestringObrigatório ao criar. Até 80 caracteres.
formatstringUm de: generic, woocommerce. Predefinição: generic.
pickupPlaceIdstringUm dos seus locais de recolha: a recolha das encomendas.
dispatchstring | objectO envio próprio de uma encomenda: auto, hold ou manual, ou um objeto; o que omitir vem das suas regras de automação.
idPrefixstringOs id de entrega são <idPrefix>-<id da encomenda> (por omissão: o formato).
readyStatusstringWooCommerce: o estado de encomenda que significa pronta para recolha (por ex. ready-for-pickup).
testbooleanAs suas encomendas são entregas de teste, nunca entregues a um estafeta ou motorista.
activebooleanPredefinição: true.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/inbound" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API" \
  -H "Content-Type: application/json" \
  -d '{"name":"My shop","format":"woocommerce","pickupPlaceId":"plc_4fQ9xLm2Za","readyStatus":"ready-for-pickup"}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "name": "My shop",
    "format": "woocommerce",
    "pickupPlaceId": "plc_4fQ9xLm2Za",
    "readyStatus": "ready-for-pickup"
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/inbound",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"name": "My shop", "format": "woocommerce", "pickupPlaceId": "plc_4fQ9xLm2Za", "readyStatus": "ready-for-pickup"},
    timeout=10,
)
data = res.json()

Ligação com secret

CampoTipoDescrição
idstring
namestring
formatstringUm de: generic, woocommerce.
urlstring
secretstringApenas quando é criado ou renovado.
pickupPlaceIdstring | null
dispatchstring | object | null
idPrefixstring
readyStatusstring
testboolean
activeboolean
createdAtstring (date-time)
updatedAtstring (date-time)
lastAtstring (date-time) | null
countsobjectChamadas registadas (30 dias) por estado.
madeintegerAs entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada.
openintegerO que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então.
201 OK
{
  "id": "inl_4fQ9xLm2Za",
  "name": "string",
  "format": "generic",
  "url": "https://map.nways.ng/v1/in/in_…",
  "secret": "string",
  "pickupPlaceId": "string",
  "dispatch": "auto",
  "idPrefix": "string",
  "readyStatus": "string",
  "test": true,
  "active": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "lastAt": "2026-10-15T09:00:00+01:00",
  "counts": {},
  "made": 0,
  "open": 0
}
  • default Erro

GET https://nways.ng/maps/v1/fleet/inbound/{id}

NomeOndeTipoDescrição
idcaminhostringObrigatório.
cURL
curl "https://nways.ng/maps/v1/fleet/inbound/string" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/inbound/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Ligação

CampoTipoDescrição
idstring
namestring
formatstringUm de: generic, woocommerce.
urlstring
secretstringApenas quando é criado ou renovado.
pickupPlaceIdstring | null
dispatchstring | object | null
idPrefixstring
readyStatusstring
testboolean
activeboolean
createdAtstring (date-time)
updatedAtstring (date-time)
lastAtstring (date-time) | null
countsobjectChamadas registadas (30 dias) por estado.
madeintegerAs entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada.
openintegerO que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então.
200 OK
{
  "id": "inl_4fQ9xLm2Za",
  "name": "string",
  "format": "generic",
  "url": "https://map.nways.ng/v1/in/in_…",
  "secret": "string",
  "pickupPlaceId": "string",
  "dispatch": "auto",
  "idPrefix": "string",
  "readyStatus": "string",
  "test": true,
  "active": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "lastAt": "2026-10-15T09:00:00+01:00",
  "counts": {},
  "made": 0,
  "open": 0
}
  • default Erro

PATCH https://nways.ng/maps/v1/fleet/inbound/{id}

NomeOndeTipoDescrição
idcaminhostringObrigatório.
CampoTipoDescrição
namestringObrigatório ao criar. Até 80 caracteres.
formatstringUm de: generic, woocommerce. Predefinição: generic.
pickupPlaceIdstringUm dos seus locais de recolha: a recolha das encomendas.
dispatchstring | objectO envio próprio de uma encomenda: auto, hold ou manual, ou um objeto; o que omitir vem das suas regras de automação.
idPrefixstringOs id de entrega são <idPrefix>-<id da encomenda> (por omissão: o formato).
readyStatusstringWooCommerce: o estado de encomenda que significa pronta para recolha (por ex. ready-for-pickup).
testbooleanAs suas encomendas são entregas de teste, nunca entregues a um estafeta ou motorista.
activebooleanPredefinição: true.
cURL
curl -X PATCH "https://nways.ng/maps/v1/fleet/inbound/string" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","format":"generic","pickupPlaceId":"string","dispatch":"auto","idPrefix":"string","readyStatus":"string","test":true,"active":true}'
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string', {
  method: 'PATCH',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "name": "string",
    "format": "generic",
    "pickupPlaceId": "string",
    "dispatch": "auto",
    "idPrefix": "string",
    "readyStatus": "string",
    "test": true,
    "active": true
  }),
})
const data = await res.json()
Python
import os
import requests

res = requests.patch(
    "https://nways.ng/maps/v1/fleet/inbound/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    json={"name": "string", "format": "generic", "pickupPlaceId": "string", "dispatch": "auto", "idPrefix": "string", "readyStatus": "string", "test": True, "active": True},
    timeout=10,
)
data = res.json()

Ligação

CampoTipoDescrição
idstring
namestring
formatstringUm de: generic, woocommerce.
urlstring
secretstringApenas quando é criado ou renovado.
pickupPlaceIdstring | null
dispatchstring | object | null
idPrefixstring
readyStatusstring
testboolean
activeboolean
createdAtstring (date-time)
updatedAtstring (date-time)
lastAtstring (date-time) | null
countsobjectChamadas registadas (30 dias) por estado.
madeintegerAs entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada.
openintegerO que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então.
200 OK
{
  "id": "inl_4fQ9xLm2Za",
  "name": "string",
  "format": "generic",
  "url": "https://map.nways.ng/v1/in/in_…",
  "secret": "string",
  "pickupPlaceId": "string",
  "dispatch": "auto",
  "idPrefix": "string",
  "readyStatus": "string",
  "test": true,
  "active": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "lastAt": "2026-10-15T09:00:00+01:00",
  "counts": {},
  "made": 0,
  "open": 0
}
  • default Erro

DELETE https://nways.ng/maps/v1/fleet/inbound/{id}

NomeOndeTipoDescrição
idcaminhostringObrigatório.
cURL
curl -X DELETE "https://nways.ng/maps/v1/fleet/inbound/string" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string', {
  method: 'DELETE',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.delete(
    "https://nways.ng/maps/v1/fleet/inbound/string",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Eliminado

Sem conteúdo.

  • default Erro

POST https://nways.ng/maps/v1/fleet/inbound/{id}/rotate

NomeOndeTipoDescrição
idcaminhostringObrigatório.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/inbound/string/rotate" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string/rotate', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/inbound/string/rotate",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Ligação com secret

CampoTipoDescrição
idstring
namestring
formatstringUm de: generic, woocommerce.
urlstring
secretstringApenas quando é criado ou renovado.
pickupPlaceIdstring | null
dispatchstring | object | null
idPrefixstring
readyStatusstring
testboolean
activeboolean
createdAtstring (date-time)
updatedAtstring (date-time)
lastAtstring (date-time) | null
countsobjectChamadas registadas (30 dias) por estado.
madeintegerAs entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada.
openintegerO que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então.
200 OK
{
  "id": "inl_4fQ9xLm2Za",
  "name": "string",
  "format": "generic",
  "url": "https://map.nways.ng/v1/in/in_…",
  "secret": "string",
  "pickupPlaceId": "string",
  "dispatch": "auto",
  "idPrefix": "string",
  "readyStatus": "string",
  "test": true,
  "active": true,
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00",
  "lastAt": "2026-10-15T09:00:00+01:00",
  "counts": {},
  "made": 0,
  "open": 0
}
  • default Erro

O registo da ligação, do mais recente para o mais antigo (30 dias)

GET https://nways.ng/maps/v1/fleet/inbound/{id}/events

Parâmetros

NomeOndeTipoDescrição
idcaminhostringObrigatório.
stateconsultastringUm de: created, updated, duplicate, ignored, needs_address, failed.
limitconsultaintegerPredefinição: 50. ≥ 1, ≤ 200.
pageTokenconsultastring
cURL
curl "https://nways.ng/maps/v1/fleet/inbound/string/events" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string/events', {
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.get(
    "https://nways.ng/maps/v1/fleet/inbound/string/events",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Resposta

Registo

CampoTipoDescrição
eventsInboundEvent[]
events[].idstring
events[].eventstring
events[].orderIdstring
events[].taskIdstringA entrega criada ou alterada ("" se nenhuma).
events[].statestringUm de: created, updated, duplicate, ignored, needs_address, failed.
events[].reasonstring
events[].attemptsinteger
events[].retryableboolean
events[].payloadanyA chamada tal como chegou (null se não foi guardada).
events[].createdAtstring (date-time)
events[].updatedAtstring (date-time)
totalinteger
countsobject
nextPageTokenstring | null
200 OK
{
  "events": [
    {
      "id": "ine_Qa71ZcR0mX",
      "event": "order.created",
      "orderId": "string",
      "taskId": "string",
      "state": "created",
      "reason": "Delivery #1042 made.",
      "attempts": 0,
      "retryable": true,
      "payload": "string",
      "createdAt": "2026-10-15T09:00:00+01:00",
      "updatedAt": "2026-10-15T09:00:00+01:00"
    }
  ],
  "total": 0,
  "counts": {},
  "nextPageToken": "string"
}

Erros

  • default Erro

Voltar a correr uma chamada registada tal como chegou (409 NOT_RETRYABLE se não foi guardada)

POST https://nways.ng/maps/v1/fleet/inbound/{id}/events/{eid}/retry

Parâmetros

NomeOndeTipoDescrição
idcaminhostringObrigatório.
eidcaminhostringObrigatório.
cURL
curl -X POST "https://nways.ng/maps/v1/fleet/inbound/string/events/string/retry" \
  -H "X-NWays-Api-Key: A_SUA_CHAVE_API"
JavaScript
const res = await fetch('https://nways.ng/maps/v1/fleet/inbound/string/events/string/retry', {
  method: 'POST',
  headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY },
})
const data = await res.json()
Python
import os
import requests

res = requests.post(
    "https://nways.ng/maps/v1/fleet/inbound/string/events/string/retry",
    headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
    timeout=10,
)
data = res.json()

Resposta

A entrada com o seu novo resultado

CampoTipoDescrição
idstring
eventstring
orderIdstring
taskIdstringA entrega criada ou alterada ("" se nenhuma).
statestringUm de: created, updated, duplicate, ignored, needs_address, failed.
reasonstring
attemptsinteger
retryableboolean
payloadanyA chamada tal como chegou (null se não foi guardada).
createdAtstring (date-time)
updatedAtstring (date-time)
200 OK
{
  "id": "ine_Qa71ZcR0mX",
  "event": "order.created",
  "orderId": "string",
  "taskId": "string",
  "state": "created",
  "reason": "Delivery #1042 made.",
  "attempts": 0,
  "retryable": true,
  "payload": "string",
  "createdAt": "2026-10-15T09:00:00+01:00",
  "updatedAt": "2026-10-15T09:00:00+01:00"
}

Erros

  • default Erro