Startup credit
Chaves de crédito do Programa de Startups (https://nways.ng/pt/developers/startup-credit): a atestação da app das chaves de crédito móveis, e a verificação de um endereço de saída de servidor. Gratuito, limitado por chave e por endereço.
Nesta página
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
Um desafio para uma atestação da app (chave de crédito móvel)
POST https://nways.ng/maps/v1/credit/attest/challenge
Um desafio de uso único, válido 5 minutos, para a chave indicada. A app atesta sobre SHA-256("nways-credit|" + desafio + "|" + keyId). Os SDK iOS e Android da N-Ways chamam-no por si (NWaysCredit.start()). Gratuito.
curl -X POST "https://nways.ng/maps/v1/credit/attest/challenge" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API"const res = await fetch('https://nways.ng/maps/v1/credit/attest/challenge', {
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/credit/attest/challenge",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
timeout=10,
)
data = res.json()Resposta
O desafio
| Campo | Tipo | Descrição |
|---|---|---|
challenge | string | Obrigatório. |
expiresIn | integer | Obrigatório. Segundos. |
{
"challenge": "string",
"expiresIn": 0
}Erros
defaultErro
Provar que a app é a app verificada da startup (uma sessão de 30 dias)
POST https://nways.ng/maps/v1/credit/attest
iOS: uma atestação App Attest; Android: a cadeia de certificados de uma chave Android Keystore por hardware criada com o desafio. O token da resposta vai em X-NWays-Attestation em cada chamada da chave de crédito móvel. Motivos: NOT_MOBILE_KEY, PLATFORM_MISMATCH, PRODUCT_UNVERIFIED, ATTESTATION_FAILED. Gratuito.
Corpo do pedido
| Campo | Tipo | Descrição |
|---|---|---|
platform | string | Obrigatório. Um de: ios, android. |
challenge | string | Obrigatório. |
keyId | string | Obrigatório. iOS: o id da chave App Attest (base64). Android: o seu próprio id aleatório, o dos dados de cliente com hash. |
attestation | string | iOS: o objeto de atestação, em base64. |
chain | string[] | Android: a cadeia de certificados da chave, DER em base64, a folha primeiro. |
curl -X POST "https://nways.ng/maps/v1/credit/attest" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API" \
-H "Content-Type: application/json" \
-d '{"platform":"ios","challenge":"string","keyId":"string","attestation":"string","chain":["string"]}'const res = await fetch('https://nways.ng/maps/v1/credit/attest', {
method: 'POST',
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
"platform": "ios",
"challenge": "string",
"keyId": "string",
"attestation": "string",
"chain": [
"string"
]
}),
})
const data = await res.json()import os
import requests
res = requests.post(
"https://nways.ng/maps/v1/credit/attest",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
json={"platform": "ios", "challenge": "string", "keyId": "string", "attestation": "string", "chain": ["string"]},
timeout=10,
)
data = res.json()Resposta
A sessão
| Campo | Tipo | Descrição |
|---|---|---|
token | string | Obrigatório. |
expiresAt | string (date-time) | Obrigatório. |
{
"token": "string",
"expiresAt": "2026-10-15T09:00:00+01:00"
}Erros
defaultErro
Verificar um endereço de saída de servidor (chave de crédito de servidor, enviado a partir dele)
POST https://nways.ng/maps/v1/credit/verify-ip
Enviado a partir do servidor cujo endereço ou intervalo foi registado em startup.nways.ng, com uma chave de crédito de servidor e o desafio mostrado quando foi acrescentado (válido 48 horas, uma vez). Motivos: NOT_SERVER_KEY, CHALLENGE_UNKNOWN, CHALLENGE_EXPIRED, IP_MISMATCH. Gratuito.
Corpo do pedido
| Campo | Tipo | Descrição |
|---|---|---|
challenge | string | Obrigatório. |
curl -X POST "https://nways.ng/maps/v1/credit/verify-ip" \
-H "X-NWays-Api-Key: A_SUA_CHAVE_API" \
-H "Content-Type: application/json" \
-d '{"challenge":"nwip_…"}'const res = await fetch('https://nways.ng/maps/v1/credit/verify-ip', {
method: 'POST',
headers: { 'X-NWays-Api-Key': process.env.NWAYS_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
"challenge": "nwip_…"
}),
})
const data = await res.json()import os
import requests
res = requests.post(
"https://nways.ng/maps/v1/credit/verify-ip",
headers={"X-NWays-Api-Key": os.environ["NWAYS_API_KEY"]},
json={"challenge": "nwip_…"},
timeout=10,
)
data = res.json()Resposta
Verificado
| Campo | Tipo | Descrição |
|---|---|---|
verified | boolean | Obrigatório. |
cidr | string | Obrigatório. |
from | string | Obrigatório. |
{
"verified": true,
"cidr": "string",
"from": "string"
}Erros
defaultErro