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
- As suas ligações de receção (sem segredos) e os formatos que uma ligação aceita
- Criar uma ligação de receção (o segredo aparece agora, uma só vez)
- Uma ligação de receção
- Alterar uma ligação (pickupPlaceId "" e dispatch null apagam-nos)
- Apagar uma ligação e o seu registo (o endereço para de imediato)
- Um novo endereço e um novo segredo (mostrados uma vez); os antigos param de imediato
- O registo da ligação, do mais recente para o mais antigo (30 dias)
- Voltar a correr uma chamada registada tal como chegou (409 NOT_RETRYABLE se não foi guardada)
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
As suas ligações de receção (sem segredos) e os formatos que uma ligação aceita
GET https://nways.ng/maps/v1/fleet/inbound
curl "https://nways.ng/maps/v1/fleet/inbound" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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()Resposta
Ligações
| Campo | Tipo | Descrição |
|---|---|---|
links | InboundLink[] | |
links[].id | string | |
links[].name | string | |
links[].format | string | Um de: generic, woocommerce. |
links[].url | string | |
links[].secret | string | Apenas quando é criado ou renovado. |
links[].pickupPlaceId | string | null | |
links[].dispatch | string | object | null | |
links[].idPrefix | string | |
links[].readyStatus | string | |
links[].test | boolean | |
links[].active | boolean | |
links[].createdAt | string (date-time) | |
links[].updatedAt | string (date-time) | |
links[].lastAt | string (date-time) | null | |
links[].counts | object | Chamadas registadas (30 dias) por estado. |
links[].made | integer | As entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada. |
links[].open | integer | O que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então. |
formats | object[] | |
formats[].id | string | |
formats[].name | string | |
formats[].signature | string | |
formats[].platforms | string[] |
{
"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"
]
}
]
}Erros
defaultErro
Criar uma ligação de receção (o segredo aparece agora, uma só vez)
POST https://nways.ng/maps/v1/fleet/inbound
Corpo do pedido
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Obrigatório ao criar. Até 80 caracteres. |
format | string | Um de: generic, woocommerce. Predefinição: generic. |
pickupPlaceId | string | Um dos seus locais de recolha: a recolha das encomendas. |
dispatch | string | object | O envio próprio de uma encomenda: auto, hold ou manual, ou um objeto; o que omitir vem das suas regras de automação. |
idPrefix | string | Os id de entrega são <idPrefix>-<id da encomenda> (por omissão: o formato). |
readyStatus | string | WooCommerce: o estado de encomenda que significa pronta para recolha (por ex. ready-for-pickup). |
test | boolean | As suas encomendas são entregas de teste, nunca entregues a um estafeta ou motorista. |
active | boolean | Predefinição: true. |
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"}'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()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()Resposta
Ligação com secret
| Campo | Tipo | Descrição |
|---|---|---|
id | string | |
name | string | |
format | string | Um de: generic, woocommerce. |
url | string | |
secret | string | Apenas quando é criado ou renovado. |
pickupPlaceId | string | null | |
dispatch | string | object | null | |
idPrefix | string | |
readyStatus | string | |
test | boolean | |
active | boolean | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
lastAt | string (date-time) | null | |
counts | object | Chamadas registadas (30 dias) por estado. |
made | integer | As entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada. |
open | integer | O que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então. |
{
"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
}Erros
defaultErro
Uma ligação de receção
GET https://nways.ng/maps/v1/fleet/inbound/{id}
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
curl "https://nways.ng/maps/v1/fleet/inbound/string" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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()Resposta
Ligação
| Campo | Tipo | Descrição |
|---|---|---|
id | string | |
name | string | |
format | string | Um de: generic, woocommerce. |
url | string | |
secret | string | Apenas quando é criado ou renovado. |
pickupPlaceId | string | null | |
dispatch | string | object | null | |
idPrefix | string | |
readyStatus | string | |
test | boolean | |
active | boolean | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
lastAt | string (date-time) | null | |
counts | object | Chamadas registadas (30 dias) por estado. |
made | integer | As entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada. |
open | integer | O que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então. |
{
"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
}Erros
defaultErro
Alterar uma ligação (pickupPlaceId "" e dispatch null apagam-nos)
PATCH https://nways.ng/maps/v1/fleet/inbound/{id}
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
Corpo do pedido
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Obrigatório ao criar. Até 80 caracteres. |
format | string | Um de: generic, woocommerce. Predefinição: generic. |
pickupPlaceId | string | Um dos seus locais de recolha: a recolha das encomendas. |
dispatch | string | object | O envio próprio de uma encomenda: auto, hold ou manual, ou um objeto; o que omitir vem das suas regras de automação. |
idPrefix | string | Os id de entrega são <idPrefix>-<id da encomenda> (por omissão: o formato). |
readyStatus | string | WooCommerce: o estado de encomenda que significa pronta para recolha (por ex. ready-for-pickup). |
test | boolean | As suas encomendas são entregas de teste, nunca entregues a um estafeta ou motorista. |
active | boolean | Predefinição: true. |
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}'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()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()Resposta
Ligação
| Campo | Tipo | Descrição |
|---|---|---|
id | string | |
name | string | |
format | string | Um de: generic, woocommerce. |
url | string | |
secret | string | Apenas quando é criado ou renovado. |
pickupPlaceId | string | null | |
dispatch | string | object | null | |
idPrefix | string | |
readyStatus | string | |
test | boolean | |
active | boolean | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
lastAt | string (date-time) | null | |
counts | object | Chamadas registadas (30 dias) por estado. |
made | integer | As entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada. |
open | integer | O que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então. |
{
"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
}Erros
defaultErro
Apagar uma ligação e o seu registo (o endereço para de imediato)
DELETE https://nways.ng/maps/v1/fleet/inbound/{id}
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
curl -X DELETE "https://nways.ng/maps/v1/fleet/inbound/string" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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()Resposta
Eliminado
Sem conteúdo.
Erros
defaultErro
Um novo endereço e um novo segredo (mostrados uma vez); os antigos param de imediato
POST https://nways.ng/maps/v1/fleet/inbound/{id}/rotate
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
curl -X POST "https://nways.ng/maps/v1/fleet/inbound/string/rotate" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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()Resposta
Ligação com secret
| Campo | Tipo | Descrição |
|---|---|---|
id | string | |
name | string | |
format | string | Um de: generic, woocommerce. |
url | string | |
secret | string | Apenas quando é criado ou renovado. |
pickupPlaceId | string | null | |
dispatch | string | object | null | |
idPrefix | string | |
readyStatus | string | |
test | boolean | |
active | boolean | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
lastAt | string (date-time) | null | |
counts | object | Chamadas registadas (30 dias) por estado. |
made | integer | As entregas criadas pelas suas chamadas (30 dias), incluindo as em espera pela morada. |
open | integer | O que ainda precisa de si: entregas ainda em espera pela morada e chamadas falhadas sem nada recebido dessa encomenda desde então. |
{
"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
}Erros
defaultErro
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
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
state | consulta | string | Um de: created, updated, duplicate, ignored, needs_address, failed. |
limit | consulta | integer | Predefinição: 50. ≥ 1, ≤ 200. |
pageToken | consulta | string |
curl "https://nways.ng/maps/v1/fleet/inbound/string/events" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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
| Campo | Tipo | Descrição |
|---|---|---|
events | InboundEvent[] | |
events[].id | string | |
events[].event | string | |
events[].orderId | string | |
events[].taskId | string | A entrega criada ou alterada ("" se nenhuma). |
events[].state | string | Um de: created, updated, duplicate, ignored, needs_address, failed. |
events[].reason | string | |
events[].attempts | integer | |
events[].retryable | boolean | |
events[].payload | any | A chamada tal como chegou (null se não foi guardada). |
events[].createdAt | string (date-time) | |
events[].updatedAt | string (date-time) | |
total | integer | |
counts | object | |
nextPageToken | string | null |
{
"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
defaultErro
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
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
id | caminho | string | Obrigatório. |
eid | caminho | string | Obrigatório. |
curl -X POST "https://nways.ng/maps/v1/fleet/inbound/string/events/string/retry" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"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()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
| Campo | Tipo | Descrição |
|---|---|---|
id | string | |
event | string | |
orderId | string | |
taskId | string | A entrega criada ou alterada ("" se nenhuma). |
state | string | Um de: created, updated, duplicate, ignored, needs_address, failed. |
reason | string | |
attempts | integer | |
retryable | boolean | |
payload | any | A chamada tal como chegou (null se não foi guardada). |
createdAt | string (date-time) | |
updatedAt | string (date-time) |
{
"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
defaultErro