Cet appel transmet un code OTP au contributeur tiers émetteur de l’instrument de paiement, pour qu’il le valide. Si le code est correct, l’usager est autorisé à poursuivre son parcours.Il complète le cycle ouvert par POST /check-existence : lorsque cet appel signale qu’un instrument n’est pas encore connu de GIMpay, un OTP part vers le numéro rattaché au compte. C’est ce code que vous validez ici, avant de procéder à l’enrôlement.
Les cinq champs sont tous obligatoires. Ils désignent le compte chez le contributeur tiers, pas encore une entité GIMpay. Puisqu’à ce stade l’instrument n’est justement pas enrôlé :
Champ
Rôle
codeOtp
Le code saisi par l’usager
identifiantCompte
L’identifiant du compte chez le contributeur (code client, MSISDN…)
indicatif
Indicatif international sans le symbole +
numero
Numéro local du téléphone
refContributeurEmetteur
Le contributeur qui a émis l’OTP
indicatif et numero doivent reprendre exactement les valeurs envoyées à POST /check-existence. Le contributeur associe l’OTP à ce couple : une divergence, même de formatage, peut faire échouer la validation.
Un 400 ne distingue pas code faux et donnée mal formée
La spécification décrit le 400 comme « une donnée fournie est incorrecte ou invalide ». Ce qui couvre aussi bien un code OTP erroné qu’un indicatif mal formaté. Inspectez le champ message de la réponse pour orienter le message affiché à l’usager.
Un 200 signifie que le code est valide. Le corps utile est un booléen dans body, à l’intérieur de l’enveloppe commune { message, status, body, timestamp }.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"GIMpay Developer Portal","colors":{"primary":"#193888","light":"#2a4ba0","dark":"#FDB945"},"logo":{"light":"https://mintcdn.com/it-centrex/3G5oZrpbQ56uhToT/logo/light.svg?fit=max\u0026auto=format\u0026n=3G5oZrpbQ56uhToT\u0026q=85\u0026s=ee0a0205c202cca8db065b655ccaad3d","dark":"https://mintcdn.com/it-centrex/3G5oZrpbQ56uhToT/logo/dark.svg?fit=max\u0026auto=format\u0026n=3G5oZrpbQ56uhToT\u0026q=85\u0026s=9e6dc7ed9f6eefd4afe851e57d1beb77"},"favicon":"https://mintcdn.com/it-centrex/6H68zUfpvKMDnikQ/Favicon-GIM-UEMOA.jpg?fit=max\u0026auto=format\u0026n=6H68zUfpvKMDnikQ\u0026q=85\u0026s=2b1bc2752ab8d6e793ad6a2c40eeae6d","navbar":{"links":[{"href":"mailto:support@it-centrex.com","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/gimuemoa","facebook":"https://facebook.com/Gimuemoafrique","linkedin":"https://www.linkedin.com/company/gim-uemoa-officiel","youtube":"https://www.youtube.com/@GIMUEMOAOFFICIEL"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"it-centrex","hasAudioNarration":false,"actualSubdomain":"it-centrex","customDomains":["sandbox.it-centrex.com"],"gitSource":{"type":"github","owner":"gigiyoyo","repo":"docs","deployBranch":"main","isPrivate":true,"contentDirectory":"","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21f72e74bd683e723c538a","collectionId":"c2795217-3586-461f-a13f-6928241bcadf","schemaVersion":"v2"},"entitlements":{},"buildId":"6ae4bb37d035c52eb989b9a7","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API reference","count":66},{"language":"default","tag":"Instruments de paiement","count":13},{"language":"default","tag":"SDKs","count":10},{"language":"default","tag":"Consentement général et spécifique","count":10},{"language":"default","tag":"Documents d'identité","count":7},{"language":"default","tag":"Documentation","count":5},{"language":"default","tag":"Usagers","count":5},{"language":"default","tag":"Flutter","count":5},{"language":"default","tag":"Java","count":5},{"language":"default","tag":"Mini Market Places","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"endpoints/otp/verify","slug":"/endpoints/otp/verify","pageMetadata":{"title":"Vérifier un code OTP","sidebarTitle":"Vérifier un OTP","description":"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d'un enrôlement.","openapi":"openapi.json POST /api/v1/otp/confirm","href":"/endpoints/otp/verify"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d’un enrôlement.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Heading,Note,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Cet appel transmet un code OTP `,_jsx(_components.strong,{children:`au contributeur tiers émetteur`}),` de l’instrument de paiement, pour qu’il le valide. Si le code est correct, l’usager est autorisé à poursuivre son parcours.`]}),`\n`,_jsxs(_components.p,{children:[`Il complète le cycle ouvert par `,_jsx(_components.a,{href:`/endpoints/wallets/check-existence`,children:_jsx(_components.code,{children:`POST /check-existence`})}),` : lorsque cet appel signale qu’un instrument n’est pas encore connu de GIMpay, un OTP part vers le numéro rattaché au compte. C’est ce code que vous validez ici, avant de procéder à l’enrôlement.`]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`Distinguez bien les deux endpoints OTP :`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Endpoint`}),_jsx(_components.th,{children:`Usage`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/endpoints/otp/generate`,children:_jsx(_components.code,{children:`POST /otp/debit`})})}),_jsxs(_components.td,{children:[`Sécuriser une `,_jsx(_components.strong,{children:`opération de débit`}),` — le code part ensuite dans `,_jsx(_components.code,{children:`authData`})]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`POST /otp/confirm`}),` `,_jsx(_components.em,{children:`(cette page)`})]}),_jsxs(_components.td,{children:[`Valider un code auprès d’un `,_jsx(_components.strong,{children:`contributeur tiers`}),`, lors d’un enrôlement`]})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`identifier-le-compte`,children:`Identifier le compte`}),`\n`,_jsxs(_components.p,{children:[`Les cinq champs sont `,_jsx(_components.strong,{children:`tous obligatoires`}),`. Ils désignent le compte chez le contributeur tiers, pas encore une entité GIMpay. Puisqu’à ce stade l’instrument n’est justement pas enrôlé :`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Champ`}),_jsx(_components.th,{children:`Rôle`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`codeOtp`})}),_jsx(_components.td,{children:`Le code saisi par l’usager`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`identifiantCompte`})}),_jsx(_components.td,{children:`L’identifiant du compte chez le contributeur (code client, MSISDN…)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`indicatif`})}),_jsxs(_components.td,{children:[`Indicatif international `,_jsx(_components.strong,{children:`sans`}),` le symbole `,_jsx(_components.code,{children:`+`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`numero`})}),_jsx(_components.td,{children:`Numéro local du téléphone`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`refContributeurEmetteur`})}),_jsx(_components.td,{children:`Le contributeur qui a émis l’OTP`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`indicatif`}),` et `,_jsx(_components.code,{children:`numero`}),` doivent reprendre `,_jsx(_components.strong,{children:`exactement`}),` les valeurs envoyées à `,_jsx(_components.a,{href:`/endpoints/wallets/check-existence`,children:_jsx(_components.code,{children:`POST /check-existence`})}),`. Le contributeur associe l’OTP à ce couple : une divergence, même de formatage, peut faire échouer la validation.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`points-de-vigilance`,children:`Points de vigilance`}),`\n`,_jsx(AccordionGroup,{children:_jsx(Accordion,{title:`Un 400 ne distingue pas code faux et donnée mal formée`,icon:`circle-exclamation`,id:`un-400-ne-distingue-pas-code-faux-et-donnee-mal-formee`,children:_jsxs(_components.p,{children:[`La spécification décrit le `,_jsx(_components.code,{children:`400`}),` comme « une donnée fournie est incorrecte ou invalide ». Ce qui couvre aussi bien un code OTP erroné qu’un `,_jsx(_components.code,{children:`indicatif`}),` mal formaté. Inspectez le champ `,_jsx(_components.code,{children:`message`}),` de la réponse pour orienter le message affiché à l’usager.`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`réponses`,children:`Réponses`}),`\n`,_jsxs(_components.p,{children:[`Un `,_jsx(_components.code,{children:`200`}),` signifie que le code est valide. Le corps utile est un booléen dans `,_jsx(_components.code,{children:`body`}),`, à l’intérieur de l’enveloppe commune `,_jsx(_components.code,{children:`{ message, status, body, timestamp }`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`et-ensuite-`,children:`Et ensuite ?`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Enrôler l'usager`,icon:`user-plus`,href:`/endpoints/users/enroll`,children:_jsx(_components.p,{children:`Une fois l’OTP validé, créez l’usager et son premier instrument.`})}),_jsx(Card,{title:`Vérifier l'existence`,icon:`magnifying-glass`,href:`/endpoints/wallets/check-existence`,children:_jsx(_components.p,{children:`L’étape qui déclenche l’envoi de cet OTP.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Vérifier un code OTP","sidebarTitle":"Vérifier un OTP","description":"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d'un enrôlement.","openapi":"openapi.json POST /api/v1/otp/confirm","href":"/endpoints/otp/verify"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Identifier le compte","slug":"identifier-le-compte","depth":2,"children":[]},{"title":"Points de vigilance","slug":"points-de-vigilance","depth":2,"children":[]},{"title":"Réponses","slug":"réponses","depth":2,"children":[]},{"title":"Et ensuite ?","slug":"et-ensuite-","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["OTP"],"summary":"Transmettre un OTP pour confirmation","operationId":"confirmOtp","requestBody":"ae4463b4-3841-49c2-bec7-8918c3ce1469","responses":{"200":"d2843267-37c1-43ac-bfd8-9c407f4c883a","401":"689e9e1e-46a2-4e30-b6d5-aede03f822ad","404":"f0c0f23c-bb85-4048-b539-6ac2762a3b7e","500":"2272009c-31a9-4f41-b1a9-ce3aab736a98"},"parameters":[],"method":"post","type":"path","servers":["7ff24519-fcff-4044-8c77-eed05be30857"],"security":["e839d11c-96c0-429f-9296-92c56dbf64ac"],"path":"/api/v1/otp/confirm","baseUrlOptions":["https://egimgarsud.gimpayapp.com"],"title":"Transmettre un OTP pour confirmation","description":"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d'un enrôlement.","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["refContributeurEmetteur","identifiantCompte","codeOtp","numero","indicatif"],"properties":{"refContributeurEmetteur":{"type":"string","description":"La référence du contributeur émetteur de l'instrument de paiement à enrôler","isRequired":true,"uniqueKey":"refContributeurEmetteur","typeLabel":"string"},"identifiantCompte":{"type":"string","description":"Identifiant du compte chez le contributeur tiers.","isRequired":true,"uniqueKey":"identifiantCompte","typeLabel":"string"},"codeOtp":{"type":"string","example":"123456","description":"Code OTP saisi par l'usager.","isRequired":true,"uniqueKey":"codeOtp","typeLabel":"string"},"numero":{"type":"string","minLength":8,"maxLength":10,"description":"Numéro local du téléphone.","isRequired":true,"uniqueKey":"numero","typeLabel":"string"},"indicatif":{"type":"string","minLength":1,"maxLength":3,"description":"Indicatif international pays, sans le symbole +.","isRequired":true,"uniqueKey":"indicatif","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"refContributeurEmetteur":"\u003cstring>","identifiantCompte":"\u003cstring>","codeOtp":"123456","numero":"\u003cstring>","indicatif":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d2843267-37c1-43ac-bfd8-9c407f4c883a":{"description":"Succès. Le `body` de l'enveloppe est un booléen.","content":{"application/json":{"schema":{"type":"object","description":"Enveloppe standard de toutes les réponses (sauf auth).","properties":{"message":{"type":"string","description":"Message technique décrivant le résultat de l'appel.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","description":"Code de statut HTTP de la réponse.","uniqueKey":"status","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","description":"Horodatage de la réponse.","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"body":{"type":"boolean","uniqueKey":"body","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":123,"timestamp":"2023-11-07T05:31:56Z","body":true}}},"exampleType":"generated"}},"exampleType":"generated"},"689e9e1e-46a2-4e30-b6d5-aede03f822ad":{"description":"Non autorisé — jeton manquant, invalide ou expiré.","content":{"application/json":{"schema":{"type":"object","description":"Enveloppe standard de toutes les réponses (sauf auth).","properties":{"message":{"type":"string","description":"Message technique décrivant le résultat de l'appel.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","description":"Code de statut HTTP de la réponse.","uniqueKey":"status","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","description":"Horodatage de la réponse.","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"body":{"oneOf":[{},{"type":"null","uniqueKey":"body.oneOf.1","typeLabel":"null"}],"uniqueKey":"body","typeLabel":"null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":123,"timestamp":"2023-11-07T05:31:56Z","body":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"f0c0f23c-bb85-4048-b539-6ac2762a3b7e":{"description":"Ressource introuvable.","content":{"application/json":{"schema":{"type":"object","description":"Enveloppe standard de toutes les réponses (sauf auth).","properties":{"message":{"type":"string","description":"Message technique décrivant le résultat de l'appel.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","description":"Code de statut HTTP de la réponse.","uniqueKey":"status","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","description":"Horodatage de la réponse.","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"body":{"oneOf":[{},{"type":"null","uniqueKey":"body.oneOf.1","typeLabel":"null"}],"uniqueKey":"body","typeLabel":"null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":123,"timestamp":"2023-11-07T05:31:56Z","body":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2272009c-31a9-4f41-b1a9-ce3aab736a98":{"description":"Erreur interne du serveur.","content":{"application/json":{"schema":{"type":"object","description":"Enveloppe standard de toutes les réponses (sauf auth).","properties":{"message":{"type":"string","description":"Message technique décrivant le résultat de l'appel.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","description":"Code de statut HTTP de la réponse.","uniqueKey":"status","typeLabel":"integer"},"timestamp":{"type":"string","format":"date-time","description":"Horodatage de la réponse.","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"body":{"oneOf":[{},{"type":"null","uniqueKey":"body.oneOf.1","typeLabel":"null"}],"uniqueKey":"body","typeLabel":"null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":123,"timestamp":"2023-11-07T05:31:56Z","body":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e839d11c-96c0-429f-9296-92c56dbf64ac":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Jeton émis par `POST /api/v1/auth/token`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"7ff24519-fcff-4044-8c77-eed05be30857":{"url":"https://egimgarsud.gimpayapp.com","variables":{"environnement":{"default":"egimgarsud","description":"Sous-domaine de l'environnement (sandbox ou production)."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Jeton émis par `POST /api/v1/auth/token`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Jeton émis par `POST /api/v1/auth/token`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"it-centrex","siteName":"GIMpay Developer Portal","title":"Vérifier un code OTP - GIMpay Developer Portal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T15:43:59.283Z","originalFileLocation":"endpoints/otp/verify.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d\u0026#x27;un enrôlement.\">\u003cmeta data-mint-head name=\"application-name\" content=\"GIMpay Developer Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Vérifier un code OTP - GIMpay Developer Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d\u0026#x27;un enrôlement.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"GIMpay Developer Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://sandbox.it-centrex.com/endpoints/otp/verify\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://it-centrex.mintlify.app/_mintlify/api/og/v2?division=OTP\u0026amp;title=V%C3%A9rifier+un+code+OTP\u0026amp;description=Transmettre+un+code+OTP+%C3%A0+un+contributeur+tiers+pour+validation%2C+dans+le+cadre+d%27un+enr%C3%B4lement.\u0026amp;theme=2affe9d4e5c11f6689587c09\u0026amp;signature=10dbbfc2c66a0c7c4620f6173b06223565b6fe50d009bfa722ce26ecc3e51c53\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Vérifier un code OTP - GIMpay Developer Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d\u0026#x27;un enrôlement.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://it-centrex.mintlify.app/_mintlify/api/og/v2?division=OTP\u0026amp;title=V%C3%A9rifier+un+code+OTP\u0026amp;description=Transmettre+un+code+OTP+%C3%A0+un+contributeur+tiers+pour+validation%2C+dans+le+cadre+d%27un+enr%C3%B4lement.\u0026amp;theme=2affe9d4e5c11f6689587c09\u0026amp;signature=10dbbfc2c66a0c7c4620f6173b06223565b6fe50d009bfa722ce26ecc3e51c53\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/it-centrex/qnm1Jv3_vsA1G5U7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"GIMpay Developer Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#193888\">\u003clink data-mint-head rel=\"canonical\" href=\"https://sandbox.it-centrex.com/endpoints/otp/verify\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/endpoints/otp/verify.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://sandbox.it-centrex.com/#organization\",\"name\":\"GIMpay Developer Portal\",\"url\":\"https://sandbox.it-centrex.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/it-centrex/3G5oZrpbQ56uhToT/logo/light.svg?fit=max\u0026auto=format\u0026n=3G5oZrpbQ56uhToT\u0026q=85\u0026s=ee0a0205c202cca8db065b655ccaad3d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://sandbox.it-centrex.com#website\",\"name\":\"GIMpay Developer Portal\",\"url\":\"https://sandbox.it-centrex.com\",\"publisher\":{\"@id\":\"https://sandbox.it-centrex.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://sandbox.it-centrex.com/endpoints/otp/verify#webpage\",\"url\":\"https://sandbox.it-centrex.com/endpoints/otp/verify\",\"name\":\"Vérifier un code OTP\",\"description\":\"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d'un enrôlement.\",\"dateModified\":\"2026-10-30T15:43:59.283Z\",\"isPartOf\":{\"@id\":\"https://sandbox.it-centrex.com#website\"},\"breadcrumb\":{\"@id\":\"https://sandbox.it-centrex.com/endpoints/otp/verify#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://sandbox.it-centrex.com/endpoints/otp/verify#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OTP\",\"item\":\"https://sandbox.it-centrex.com/endpoints/otp/generate\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vérifier un code OTP\",\"item\":\"https://sandbox.it-centrex.com/endpoints/otp/verify\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://sandbox.it-centrex.com/endpoints/otp/verify#apireference\",\"headline\":\"Vérifier un code OTP\",\"name\":\"Vérifier un code OTP\",\"description\":\"Transmettre un code OTP à un contributeur tiers pour validation, dans le cadre d'un enrôlement.\",\"url\":\"https://sandbox.it-centrex.com/endpoints/otp/verify\",\"mainEntityOfPage\":{\"@id\":\"https://sandbox.it-centrex.com/endpoints/otp/verify#webpage\"},\"dateModified\":\"2026-10-30T15:43:59.283Z\",\"publisher\":{\"@id\":\"https://sandbox.it-centrex.com/#organization\"},\"isPartOf\":{\"@id\":\"https://sandbox.it-centrex.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"GIMpay Developer Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"GIMpay Developer Portal","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Documentation","icon":"book-open-cover","pages":[{"title":"Documentation","href":"/api-reference/introduction"}]},{"tab":"API reference","icon":"code","groups":[{"group":"Authentification","pages":[{"title":"S'authentifier et obtenir un jeton d'accès","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/auth/token","href":"/api-reference/authentification/sauthentifier-et-obtenir-un-jeton-daccès"}]},{"group":"Usagers","pages":[{"title":"Enrôler un usager","sidebarTitle":"Enrôler un usager","openapi":"openapi.json POST /api/v1/users","href":"/endpoints/users/enroll"},{"title":"Récupérer le détail d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}","href":"/api-reference/usagers/récupérer-le-détail-dun-usager"},{"title":"Vérifier les droits d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/authorization","href":"/api-reference/usagers/vérifier-les-droits-dun-usager"},{"title":"Collecter les instruments de paiement d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/wallets","href":"/api-reference/usagers/collecter-les-instruments-de-paiement-dun-usager"},{"title":"Collecter les opérations d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/operations","href":"/api-reference/usagers/collecter-les-opérations-dun-usager"}]},{"group":"Bénéficiaires","pages":[{"title":"Ajouter un bénéficiaire aux favoris","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/users/{referenceUsager}/beneficiaries","href":"/api-reference/bénéficiaires/ajouter-un-bénéficiaire-aux-favoris"},{"title":"Collecter les bénéficiaires favoris d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/beneficiaries","href":"/api-reference/bénéficiaires/collecter-les-bénéficiaires-favoris-dun-usager"},{"title":"Récupérer un bénéficiaire favori","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/beneficiaries/{referenceBeneficiary}","href":"/api-reference/bénéficiaires/récupérer-un-bénéficiaire-favori"},{"title":"Retirer un bénéficiaire des favoris","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/users/{referenceUsager}/beneficiaries/{referenceBeneficiary}","href":"/api-reference/bénéficiaires/retirer-un-bénéficiaire-des-favoris"}]},{"group":"MMP favorites","pages":[{"title":"Ajouter une mini-place de marché aux favoris","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/users/{referenceUsager}/mmps/{referenceMmp}","href":"/api-reference/mmp-favorites/ajouter-une-mini-place-de-marché-aux-favoris"},{"title":"Collecter les mini-places de marché favorites d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/mmps","href":"/api-reference/mmp-favorites/collecter-les-mini-places-de-marché-favorites-dun-usager"},{"title":"Retirer une mini-place de marché des favoris","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/users/{referenceUsager}/mmps/{referenceMmp}","href":"/api-reference/mmp-favorites/retirer-une-mini-place-de-marché-des-favoris"}]},{"group":"Instruments de paiement","pages":[{"title":"Collecter les types d'instruments de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/type","href":"/api-reference/wallets/collecter-les-types-dinstruments-de-paiement"},{"title":"Collecter les cartes rattachées à un numéro de téléphone","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets","href":"/api-reference/wallets/collecter-les-cartes-rattachées-à-un-numéro-de-téléphone"},{"title":"Enrôler un compte bancaire","sidebarTitle":"Enrôler un compte bancaire","openapi":"openapi.json POST /api/v1/wallets/bank-account","href":"/endpoints/wallets/enroll-bank-account"},{"title":"Enrôler une carte bancaire","sidebarTitle":"Enrôler une carte","openapi":"openapi.json POST /api/v1/wallets/card","href":"/endpoints/wallets/enroll-card"},{"title":"Enrôler un mobile wallet","sidebarTitle":"Enrôler un mobile wallet","openapi":"openapi.json POST /api/v1/wallets/mobile-wallet","href":"/endpoints/wallets/enroll-mobile-wallet"},{"title":"Récupérer le détail complet d'un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/{referenceWallet}","href":"/api-reference/wallets/récupérer-le-détail-complet-dun-instrument-de-paiement"},{"title":"Récupérer le solde d'un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/{referenceWallet}/balance","href":"/api-reference/wallets/récupérer-le-solde-dun-instrument-de-paiement"},{"title":"Vérifier les droits d'un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/{referenceWallet}/authorization","href":"/api-reference/wallets/vérifier-les-droits-dun-instrument-de-paiement"},{"title":"Verrouiller un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/wallets/{referenceWallet}/lock","href":"/api-reference/wallets/verrouiller-un-instrument-de-paiement"},{"title":"Déverrouiller un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/wallets/{referenceWallet}/unlock","href":"/api-reference/wallets/déverrouiller-un-instrument-de-paiement"},{"title":"Désenrôler un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/wallets/{referenceWallet}/unenroll","href":"/api-reference/wallets/désenrôler-un-instrument-de-paiement"},{"title":"Collecter les opérations liées à un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/{referenceWallet}/operations","href":"/api-reference/wallets/collecter-les-opérations-liées-à-un-instrument-de-paiement"},{"title":"Collecter les mouvements d'un instrument de paiement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/wallets/{referenceWallet}/movements","href":"/api-reference/wallets/collecter-les-mouvements-dun-instrument-de-paiement"}]},{"group":"Vérification d'existence","pages":[{"title":"Vérifier l'existence d'un instrument de paiement","sidebarTitle":"Vérifier l'existence","openapi":"openapi.json POST /api/v1/check-existence","href":"/endpoints/wallets/check-existence"}]},{"group":"Opérations","pages":[{"title":"Exécuter une opération","sidebarTitle":"Exécuter une opération","openapi":"openapi.json POST /api/v1/operations","href":"/endpoints/operations/execute"},{"title":"Annuler une opération","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/operations/{referenceOperation}/cancel","href":"/api-reference/opérations/annuler-une-opération"}]},{"group":"OTP","pages":[{"title":"Générer un code OTP","sidebarTitle":"Générer un OTP","description":"Envoyer un code à usage unique au numéro rattaché à un instrument de paiement, pour sécuriser une opération de débit.","openapi":"openapi.json POST /api/v1/otp/debit","href":"/endpoints/otp/generate"},{"title":"Vérifier un code OTP","sidebarTitle":"Vérifier un OTP","openapi":"openapi.json POST /api/v1/otp/confirm","href":"/endpoints/otp/verify"}]},{"group":"Frais","pages":[{"title":"Calculer les frais d'un service","sidebarTitle":"Calculer les frais","description":"Simuler les frais applicables à une opération sur un service donné, avant de l'exécuter.","openapi":"openapi.json GET /api/v1/services/{referenceService}/fees","href":"/endpoints/services/fees"}]},{"group":"Terminaux","pages":[{"title":"Enregistrer un terminal pour un usager","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/terminals","href":"/api-reference/terminaux/enregistrer-un-terminal-pour-un-usager"},{"title":"Collecter les terminaux d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/terminals","href":"/api-reference/terminaux/collecter-les-terminaux-dun-usager"},{"title":"Vérifier les droits d'un terminal","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/terminals/{serialNumber}/authorization","href":"/api-reference/terminaux/vérifier-les-droits-dun-terminal"}]},{"group":"Pays","pages":[{"title":"Collecter les pays supportés","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/countries","href":"/api-reference/pays/collecter-les-pays-supportés"},{"title":"Récupérer un pays par son code ISO","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/countries/{codeIso}","href":"/api-reference/pays/récupérer-un-pays-par-son-code-iso"}]},{"group":"Contributeurs","pages":[{"title":"Collecter les contributeurs par type d'instrument et pays","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributors","href":"/api-reference/contributeurs/collecter-les-contributeurs-par-type-dinstrument-et-pays"},{"title":"Collecter la mini-place de marché transparente d'un contributeur (contrat v2)","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v2/contributors/{referenceContributor}/transparent-mmp","href":"/api-reference/contributeurs/collecter-la-mini-place-de-marché-transparente-dun-contributeur-contrat-v2"},{"title":"Récupérer les détails d'un instrument de paiement chez un contributeur","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributors/{referenceContributor}/wallets/{identifiant}","href":"/api-reference/contributeurs/récupérer-les-détails-dun-instrument-de-paiement-chez-un-contributeur"},{"title":"Collecter les contributeurs par type de service et promoteur","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributors/{referenceContributor}/serviceTypes/{referenceServiceType}/contributors","href":"/api-reference/contributeurs/collecter-les-contributeurs-par-type-de-service-et-promoteur"}]},{"group":"Mini Market Places","pages":[{"title":"Collecter les mini-places de marché d'un pays","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/countries/{codeIso}/mmps","href":"/api-reference/pays/collecter-les-mini-places-de-marché-dun-pays"},{"title":"Collecter les contributeurs d'une MMP dans un pays","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/countries/{codeIso}/mmps/{referenceMmp}/contributors","href":"/api-reference/pays/collecter-les-contributeurs-dune-mmp-dans-un-pays"},{"title":"Collecter les services d'une mini-place de marché","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/mmps/{referenceMmp}/services","href":"/api-reference/mini-places-de-marché/collecter-les-services-dune-mini-place-de-marché"},{"title":"Collecter les services d'un contributeur dans une mini-place de marché","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/mmps/{referenceMmp}/contributors/{referenceContributor}/services","href":"/api-reference/mini-places-de-marché/collecter-les-services-dun-contributeur-dans-une-mini-place-de-marché"},{"title":"Récupérer le service d'une MMP pour un type de service, un promoteur et un bénéficiaire","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/mmps/{referenceMmp}/serviceTypes/{referenceServiceType}/services","href":"/api-reference/mini-places-de-marché/récupérer-le-service-dune-mmp-pour-un-type-de-service-un-promoteur-et-un-bénéficiaire"}]},{"group":"Documents d'identité","pages":[{"title":"Collecter les types de documents d'identité d'un pays","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/documents/type","href":"/api-reference/documents/collecter-les-types-de-documents-didentité-dun-pays"},{"title":"Créer un document d'identité pour un usager","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/users/{referenceUsager}/documents","href":"/api-reference/documents/créer-un-document-didentité-pour-un-usager"},{"title":"Collecter tous les documents d'identité d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{referenceUsager}/documents","href":"/api-reference/documents/collecter-tous-les-documents-didentité-dun-usager"},{"title":"Récupérer un document d'identité","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/documents/{reference}","href":"/api-reference/documents/récupérer-un-document-didentité"},{"title":"Récupérer un document d'identité encodé en base64","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/documents/{reference}/base64","href":"/api-reference/documents/récupérer-un-document-didentité-encodé-en-base64"},{"title":"Mettre à jour un document d'identité","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/documents","href":"/api-reference/documents/mettre-à-jour-un-document-didentité"},{"title":"Désenrôler un document d'identité","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/documents/{reference}/unenroll","href":"/api-reference/documents/désenrôler-un-document-didentité"}]},{"group":"Consentement général et spécifique","pages":[{"title":"Enregistrer un consentement général depuis un terminal","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/general-consents","href":"/api-reference/consentements-\u0026-demandes/enregistrer-un-consentement-général-depuis-un-terminal"},{"title":"Collecter les consentements d'un usager","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/users/{refUser}/consents","href":"/api-reference/consentements-\u0026-demandes/collecter-les-consentements-dun-usager"},{"title":"Accepter un consentement depuis un terminal","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/consents/{refConsent}/acceptance","href":"/api-reference/consentements-\u0026-demandes/accepter-un-consentement-depuis-un-terminal"},{"title":"Rejeter un consentement depuis un terminal","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/consents/{refConsent}/rejection","href":"/api-reference/consentements-\u0026-demandes/rejeter-un-consentement-depuis-un-terminal"},{"title":"Révoquer un consentement avec motif","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/consents/{refConsent}/revocation","href":"/api-reference/consentements-\u0026-demandes/révoquer-un-consentement-avec-motif"},{"title":"Collecter les instruments de paiement couverts par un consentement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/with-consents/{refConsent}/wallets-payments","href":"/api-reference/consentements-\u0026-demandes/collecter-les-instruments-de-paiement-couverts-par-un-consentement"},{"title":"Collecter les prorogations d'un consentement","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/consents/{refConsent}/prorogations","href":"/api-reference/consentements-\u0026-demandes/collecter-les-prorogations-dun-consentement"},{"title":"Valider une prorogation de consentement","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/prorogations/{refProrogation}/validation","href":"/api-reference/consentements-\u0026-demandes/valider-une-prorogation-de-consentement"},{"title":"Rejeter une prorogation de consentement avec motif","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/prorogations/{refProrogation}/rejection","href":"/api-reference/consentements-\u0026-demandes/rejeter-une-prorogation-de-consentement-avec-motif"},{"title":"Récupérer les conditions générales d'utilisation (base64)","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributors/{refContributor}/conditions-of-use","href":"/api-reference/consentements-\u0026-demandes/récupérer-les-conditions-générales-dutilisation-base64"}]},{"group":"Fidélité","pages":[{"title":"Soumettre une demande d'enrôlement loyalty","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/requests","href":"/api-reference/consentements-\u0026-demandes/soumettre-une-demande-denrôlement-loyalty"}]},{"group":"Portail contributeur","pages":[{"title":"Soumettre une demande d'achat à crédit","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/demande-achat","href":"/api-reference/consentements-\u0026-demandes/soumettre-une-demande-dachat-à-crédit"},{"title":"Collecter les demandes d'achat à crédit d'un contributeur","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/contributors/{refContributor}/demande-achat","href":"/api-reference/consentements-\u0026-demandes/collecter-les-demandes-dachat-à-crédit-dun-contributeur"}]}]},{"tab":"Guide d'intégration","icon":"map","pages":[{"title":"Guide d'intégration","href":"/guides/introduction"}]},{"tab":"SDKs","icon":"cubes","pages":[{"title":"SDKs","href":"/sdks/introduction"}]},{"tab":"Glossaire","icon":"book","pages":[{"title":"Glossaire","href":"/glossary/enumerations"}]}]},"title":"Vérifier un code OTP - GIMpay Developer Portal","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}