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
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 -X POST "https://nways.ng/maps/v1/credit/attest/challenge" \
-H "X-NWays-Api-Key: VOTRE_CLE_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()Réponse
Le défi
| Champ | Type | Description |
|---|---|---|
challenge | string | Obligatoire. |
expiresIn | integer | Obligatoire. Secondes. |
{
"challenge": "string",
"expiresIn": 0
}Erreurs
defaultErreur
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
| Champ | Type | Description |
|---|---|---|
platform | string | Obligatoire. Au choix: ios, android. |
challenge | string | Obligatoire. |
keyId | string | Obligatoire. iOS : l’identifiant de clé App Attest (base64). Android : votre propre identifiant aléatoire, celui des données client hachées. |
attestation | string | iOS : l’objet d’attestation, en base64. |
chain | string[] | Android : la chaîne de certificats de la clé, DER en base64, la feuille d’abord. |
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"]}'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()Réponse
La session
| Champ | Type | Description |
|---|---|---|
token | string | Obligatoire. |
expiresAt | string (date-time) | Obligatoire. |
{
"token": "string",
"expiresAt": "2026-10-15T09:00:00+01:00"
}Erreurs
defaultErreur
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
| Champ | Type | Description |
|---|---|---|
challenge | string | Obligatoire. |
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_…"}'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()Réponse
Vérifiée
| Champ | Type | Description |
|---|---|---|
verified | boolean | Obligatoire. |
cidr | string | Obligatoire. |
from | string | Obligatoire. |
{
"verified": true,
"cidr": "string",
"from": "string"
}Erreurs
defaultErreur