N-Ways
Documentation développeursStartup credit

Startup credit

Clés de crédit du Programme Startups (https://nways.ng/fr/developers/startup-credit) : l’attestation d’application des clés de crédit mobiles, et la vérification d’une adresse de sortie de serveur. Gratuit, limité par clé et par adresse.

Sur cette page
Remarque :

Envoyez votre clé avec key=VOTRE_CLE_API dans l’adresse, ou dans l’en-tête X-NWays-Api-Key. Clés d’API

Adresse de base : https://nways.ng/maps/v1

Un défi pour une attestation d’application (clé de crédit mobile)

POST https://nways.ng/maps/v1/credit/attest/challenge

Un défi à usage unique, valable 5 minutes, pour la clé donnée. L’application atteste sur SHA-256("nways-credit|" + défi + "|" + keyId). Les SDK iOS et Android de N-Ways l’appellent pour vous (NWaysCredit.start()). Gratuit.

cURL
curl -X POST "https://nways.ng/maps/v1/credit/attest/challenge" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API"
JavaScript
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()
Python
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()

Réponse

Le défi

ChampTypeDescription
challengestringObligatoire.
expiresInintegerObligatoire. Secondes.
200 OK
{
  "challenge": "string",
  "expiresIn": 0
}

Erreurs

  • default Erreur

Prouver que l’application est l’application vérifiée de la startup (une session de 30 jours)

POST https://nways.ng/maps/v1/credit/attest

iOS : une attestation App Attest ; Android : la chaîne de certificats d’une clé Android Keystore matérielle créée avec le défi. Le jeton de la réponse va dans X-NWays-Attestation à chaque appel de la clé de crédit mobile. Raisons : NOT_MOBILE_KEY, PLATFORM_MISMATCH, PRODUCT_UNVERIFIED, ATTESTATION_FAILED. Gratuit.

Corps de la requête

ChampTypeDescription
platformstringObligatoire. Au choix: ios, android.
challengestringObligatoire.
keyIdstringObligatoire. iOS : l’identifiant de clé App Attest (base64). Android : votre propre identifiant aléatoire, celui des données client hachées.
attestationstringiOS : l’objet d’attestation, en base64.
chainstring[]Android : la chaîne de certificats de la clé, DER en base64, la feuille d’abord.
cURL
curl -X POST "https://nways.ng/maps/v1/credit/attest" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"platform":"ios","challenge":"string","keyId":"string","attestation":"string","chain":["string"]}'
JavaScript
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()
Python
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()

Réponse

La session

ChampTypeDescription
tokenstringObligatoire.
expiresAtstring (date-time)Obligatoire.
200 OK
{
  "token": "string",
  "expiresAt": "2026-10-15T09:00:00+01:00"
}

Erreurs

  • default Erreur

Vérifier une adresse de sortie de serveur (clé de crédit serveur, envoyé depuis celle-ci)

POST https://nways.ng/maps/v1/credit/verify-ip

Envoyé depuis le serveur dont l’adresse ou la plage a été enregistrée sur startup.nways.ng, avec une clé de crédit serveur et le défi affiché lors de l’ajout (valable 48 heures, une fois). Raisons : NOT_SERVER_KEY, CHALLENGE_UNKNOWN, CHALLENGE_EXPIRED, IP_MISMATCH. Gratuit.

Corps de la requête

ChampTypeDescription
challengestringObligatoire.
cURL
curl -X POST "https://nways.ng/maps/v1/credit/verify-ip" \
  -H "X-NWays-Api-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"challenge":"nwip_…"}'
JavaScript
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()
Python
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()

Réponse

Vérifiée

ChampTypeDescription
verifiedbooleanObligatoire.
cidrstringObligatoire.
fromstringObligatoire.
200 OK
{
  "verified": true,
  "cidr": "string",
  "from": "string"
}

Erreurs

  • default Erreur