Clés de crédit du Programme Startups
Le crédit du Programme Startups paie uniquement les appels de vos propres produits, faits avec des clés de crédit qui prouvent leur origine. Tout le reste est facturé normalement.
Sur cette page
Pour les entreprises du Programme Startups N-Ways. Le crédit est réservé à vos propres produits. Le revendre, partager des clés ou servir de proxy à N-Ways pour d’autres entreprises viole l’accord sur le crédit Startups : le crédit prend fin immédiatement et l’entreprise et ses fondateurs peuvent être exclus.
Comment le crédit paie
Un appel est payé par votre crédit Startups uniquement si toutes ces conditions sont remplies. Sinon, il est facturé comme une utilisation payante normale sur le crédit propre de votre organisation, et refusé avec 402 STARTUP_CREDIT_NOT_ELIGIBLE s’il n’y en a pas.
- Un fondateur a vérifié au moins un produit et accepté l’accord sur startup.nways.ng.
- L’appel utilise une clé de crédit : une clé API de votre entreprise liée à l’un de vos produits vérifiés, ou à vos serveurs.
- L’appel prouve son origine (ci-dessous).
- Le crédit n’est pas suspendu et les plafonds ne sont pas atteints.
Chaque réponse à une entreprise qui a du crédit Startups indique ce qui s’est passé dans X-NWays-Credit : startup quand le crédit a payé, ou paid; why=<code> quand il n’a pas pu.
Vérifier vos produits
| Produit | Preuve | Vérification |
|---|---|---|
| Site web | Un enregistrement DNS TXT _nways-verify.example.com contenant nways-verify=<jeton>. Les sous-domaines sont couverts. | Automatique, puis chaque jour. Après trois échecs de suite, la preuve est perdue. |
| Application iOS | Bundle ID, Team ID Apple et lien App Store. Le site du développeur sur la fiche publique est l’un de vos domaines vérifiés, ou le jeton figure dans sa description. | Automatique ; une application pas encore publique est vérifiée à la main par N-Ways. |
| Application Android | Nom du package, SHA-256 du certificat de signature et lien Google Play. La fiche publique renvoie à l’un de vos domaines vérifiés, ou montre le jeton dans sa description. | Automatique ; sinon à la main par N-Ways. |
Après acceptation, vous pouvez ajouter ou remplacer 2 produits sur toute période de 12 mois. Chacun est vérifié à nouveau.
Clés navigateur
Liez une clé restreinte aux sites web à un site vérifié. Ses appels utilisent le crédit quand l’Origin (ou le Referer) de la page est ce domaine ou l’un de ses sous-domaines. Rien d’autre à envoyer : les navigateurs ajoutent l’en-tête.
Clés mobiles et attestation d’application
Liez une clé restreinte aux applications iOS ou Android à votre application vérifiée. Ses appels utilisent le crédit quand ils portent X-NWays-Attestation, une session que l’application obtient en prouvant qu’elle est votre véritable application sur un vrai appareil. Les SDK N-Ways le font en un appel, et la session dure 30 jours :
NWaysMaps.configure(apiKey: "VOTRE_CLE_DE_CREDIT_IOS")
Task { try? await NWaysCredit.start() } // App Attest ; puis envoyé sur chaque requête N-WaysNWaysMaps.init(this, "VOTRE_CLE_DE_CREDIT_ANDROID")
thread { runCatching { NWaysCredit.start(this) } } // attestation matérielle de clé (Android 7+)Sans le SDK, faites vous-même les mêmes appels :
POST /maps/v1/credit/attest/challengeavec la clé : un défi valable 5 minutes.- iOS :
DCAppAttestService.attestKeyavecclientDataHash = SHA-256("nways-credit|" + défi + "|" + keyId). Android : générez une clé Android Keystore avecsetAttestationChallengeréglé sur ce SHA-256 (votre proprekeyIdaléatoire). POST /maps/v1/credit/attestavec{"platform", "challenge", "keyId", "attestation"}(iOS, en base64) ou{"platform", "challenge", "keyId", "chain"}(Android : la chaîne de certificats, DER en base64, la feuille d’abord). La réponse est{"token", "expiresAt"}: envoyez le jeton dansX-NWays-Attestation.
N-Ways vérifie les attestations iOS avec la racine App Attest d’Apple, votre Team ID et votre bundle ID, et les attestations Android avec les racines d’attestation matérielle de Google, votre package et votre certificat de signature. Rien n’est demandé à vos comptes Apple ou Google. Les émulateurs, simulateurs et appareils rootés sans attestation matérielle ne peuvent pas attester : leurs appels sont facturés normalement.
Clés serveur
La plupart des produits appellent N-Ways depuis leurs propres serveurs. Liez une clé restreinte aux adresses IP (ou sans restriction) à vos serveurs, puis enregistrez leurs adresses publiques de sortie sur startup.nways.ng : jusqu’à 5 adresses ou plages, IPv4 au plus large /28 et IPv6 /56, et jusqu’à 4 changements en 30 jours.
Chaque nouvelle adresse est vérifiée par un appel fait depuis celle-ci, avec une clé de crédit serveur et le défi affiché lors de l’ajout (valable 48 heures) :
curl -X POST https://api.nways.ng/maps/v1/credit/verify-ip \
-H "X-NWays-Api-Key: VOTRE_CLE_DE_CREDIT_SERVEUR" \
-H "Content-Type: application/json" \
-d '{"challenge": "nwip_…"}'Chaque appel serveur qui doit utiliser le crédit indique l’utilisateur final concerné :
GET /maps/v1/places/search?query=pharmacie HTTP/1.1 Host: api.nways.ng X-NWays-Api-Key: VOTRE_CLE_DE_CREDIT_SERVEUR X-NWays-End-User: u_7f3a9c2d41e8
X-NWays-End-Userest un identifiant opaque de votre propre système : une empreinte salée ou un identifiant aléatoire, de 8 à 128 lettres, chiffres et. _ : = -. Il est le même pour un utilisateur et différent pour des utilisateurs différents.- N’y mettez jamais de données personnelles : ni nom, ni adresse e-mail, ni numéro de téléphone, ni numéro d’identité ou de compte. Les adresses e-mail et numéros de téléphone sont refusés.
X-NWays-End-User-Country(facultatif) est le pays de l’utilisateur, en deux lettres.- Les appels depuis une adresse non enregistrée, ou sans l’en-tête, sont facturés normalement.
Plafonds
- L’utilisation mensuelle du crédit : 100 000 ₦ au départ, par mois calendaire (heure de Lagos).
- L’utilisation quotidienne par produit (et pour vos serveurs ensemble) : 10 000 ₦.
- Matrices d’itinéraires et optimisation de tournées : chacune jusqu’à 10 % du plafond mensuel par mois.
Au-delà d’un plafond, les appels sont facturés normalement jusqu’à sa remise à zéro. Vos plafonds et votre consommation sont sur startup.nways.ng.
Surveillance
N-Ways surveille l’utilisation du crédit : pics par rapport à votre propre consommation, sites qui ne sont pas les vôtres sur les clés navigateur, attestations échouées, trafic très supérieur à ce que votre candidature déclarait, trafic d’une régularité de machine, quelques « utilisateurs finaux » aux volumes énormes, plusieurs applications derrière une clé serveur, utilisateurs finaux hors de votre pays, et appels depuis des adresses non enregistrées. Quand cela ressemble à du partage ou de la revente, le crédit est suspendu automatiquement (les appels sont facturés normalement) et vos contacts de facturation sont prévenus ; N-Ways l’examine ensuite.
Erreurs et codes why
why | Signification | Que faire |
|---|---|---|
key_not_bound | La clé n’est pas une clé de crédit. | Liez-la sur startup.nways.ng. |
credit_not_active | L’accord n’est pas encore accepté, ou le crédit a pris fin. | Acceptez-le sur startup.nways.ng. |
credit_frozen | Le crédit est suspendu en attente d’examen. | Répondez à l’e-mail de N-Ways. |
origin_not_verified | La page n’est pas sur un domaine vérifié. | Vérifiez le domaine, ou appelez depuis celui-ci. |
attestation_missing, attestation_invalid | Pas de X-NWays-Attestation valide. | Rappelez NWaysCredit.start(). |
app_not_verified | Une autre application que celle liée à la clé. | Utilisez la clé de crédit de l’application. |
ip_not_registered | L’adresse du serveur n’est ni enregistrée ni vérifiée. | Enregistrez-la et vérifiez-la. |
end_user_missing, end_user_invalid | Pas de X-NWays-End-User opaque. | Envoyez l’identifiant opaque de votre utilisateur. |
key_restriction_changed | La restriction de la clé ne correspond plus à sa liaison. | Rétablissez-la, ou liez de nouveau la clé. |
monthly_cap, daily_cap, sku_cap | Un plafond est atteint. | Attendez sa remise à zéro, ou utilisez du crédit payant. |
Sans crédit payant, ces appels répondent 402 STARTUP_CREDIT_NOT_ELIGIBLE avec le code dans metadata.why. Voir Erreurs.