C’est l’appel qui débite l’instrument de paiement de l’initiateur et crédite celui du bénéficiaire, via un service proposé par un contributeur. Tous les appels précédents du parcours (solde, frais, OTP) servent à préparer celui-ci.
Chaque appel doit porter un header requestId unique, propre à cette tentative d’opération. GIMpay s’en sert pour détecter les rejeux : si vous réutilisez un requestId déjà accepté, l’appel échoue avec un 409.
Un 409 sur cet endpoint ne signifie pas que l’opération a échoué : il signifie que ce requestId a déjà été traité. Ne le réessayez pas avec un nouveau requestId sans d’abord vérifier le statut de l’opération d’origine (par exemple via GET /wallets/{referenceWallet}/operations), sous peine de débiter l’initiateur deux fois pour la même intention métier.
Le champ montant correspond au montant à débiter hors frais lorsque le mode est ADDITION. Le comportement diffère selon ce que retourne le calcul de frais :
modeApplication
Ce que vous envoyez dans montant
Ce qui est débité
Ce que reçoit le bénéficiaire
ADDITION
Le montant net souhaité
montant + frais
montant
SOUSTRACTION
Le montant total
montant
montant − frais
Ne réutilisez pas aveuglément le montant saisi par l’utilisateur : en mode ADDITION, le débit réel dépasse ce montant. Assurez-vous que le solde le couvre et que l’utilisateur en est informé avant validation.
Un statut retourné ne signifie pas toujours « terminé »
statutOperation peut valoir INITIEE, ENCOURS ou SUSPENDUE : l’opération n’est pas finalisée. Ne considérez comme définitifs que SUCCES, ECHOUE, ANNULEE et EXTOURNE. En cas d’échec, raisonEchec en donne le motif.Pour un suivi asynchrone, renseignez callbackUrl : GIMpay y notifiera l’évolution de l’état.
Le corps utile arrive dans body, à l’intérieur de l’enveloppe commune { message, status, body, timestamp }. Consultez le glossaire pour les valeurs de statutOperation et natureOperation.En cas d’erreur, un 400 signale une donnée incorrecte ou indisponible (solde insuffisant, OTP invalide…), un 404 une entité introuvable, un 409 un requestId déjà utilisé. Voir la référence des codes d’erreur.
{"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/operations/execute","slug":"/endpoints/operations/execute","pageMetadata":{"title":"Exécuter une opération","sidebarTitle":"Exécuter une opération","description":"Exécuter une opération financière entre deux instruments de paiement de l'écosystème GIMpay.","openapi":"openapi.json POST /api/v1/operations","href":"/endpoints/operations/execute"},"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: \"Exécuter une opération financière entre deux instruments de paiement de l’écosystème GIMpay.\"\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`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Heading,Step,Steps,Tab,Table,Tabs,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(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`C’est l’appel qui débite l’instrument de paiement de l’initiateur et crédite celui du bénéficiaire, via un service proposé par un contributeur. Tous les appels précédents du parcours (solde, frais, OTP) servent à préparer celui-ci.`}),`\n`,_jsx(Heading,{level:`2`,id:`avant-d’appeler`,children:`Avant d’appeler`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Générez une clé d'idempotence`,children:_jsxs(_components.p,{children:[`Le header `,_jsx(_components.code,{children:`requestId`}),` est `,_jsx(_components.strong,{children:`obligatoire`}),` : une chaîne unique par opération, à vous de la générer (par exemple un UUID). Voir la section dédiée ci-dessous.`]})}),_jsx(Step,{title:`Vérifiez le solde de l'initiateur`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET /wallets/{referenceWallet}/balance`}),` — le solde doit couvrir le montant `,_jsx(_components.strong,{children:`et`}),` les frais si le mode d’application est `,_jsx(_components.code,{children:`ADDITION`}),`.`]})}),_jsx(Step,{title:`Calculez les frais`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/endpoints/services/fees`,children:_jsx(_components.code,{children:`GET /services/{referenceService}/fees`})}),` vous donne `,_jsx(_components.code,{children:`montantFrais`}),` et surtout `,_jsx(_components.code,{children:`modeApplication`}),`, qui change le montant à envoyer ici.`]})}),_jsx(Step,{title:`Obtenez puis validez un OTP`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/endpoints/otp/generate`,children:`Générez l’OTP`}),`, faites-le saisir par l’usager, puis transmettez-le dans `,_jsx(_components.code,{children:`authData`}),`.`]})})]}),`\n`,_jsxs(Heading,{level:`2`,id:`le-header-requestid--clé-anti-doublon`,children:[`Le header `,_jsx(_components.code,{children:`requestId`}),` : clé anti-doublon`]}),`\n`,_jsxs(_components.p,{children:[`Chaque appel doit porter un header `,_jsx(_components.code,{children:`requestId`}),` unique, propre à cette tentative d’opération. GIMpay s’en sert pour détecter les rejeux : si vous réutilisez un `,_jsx(_components.code,{children:`requestId`}),` déjà accepté, l’appel échoue avec un `,_jsx(_components.code,{children:`409`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Un `,_jsx(_components.code,{children:`409`}),` sur cet endpoint ne signifie pas que l’opération a échoué : il signifie que ce `,_jsx(_components.code,{children:`requestId`}),` a `,_jsx(_components.strong,{children:`déjà été traité`}),`. Ne le réessayez pas avec un nouveau `,_jsx(_components.code,{children:`requestId`}),` sans d’abord vérifier le statut de l’opération d’origine (par exemple via `,_jsx(_components.code,{children:`GET /wallets/{referenceWallet}/operations`}),`), sous peine de débiter l’initiateur deux fois pour la même intention métier.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`montant-et-frais--la-subtilité-à-connaître`,children:`Montant et frais : la subtilité à connaître`}),`\n`,_jsxs(_components.p,{children:[`Le champ `,_jsx(_components.code,{children:`montant`}),` correspond au `,_jsxs(_components.strong,{children:[`montant à débiter hors frais lorsque le mode est `,_jsx(_components.code,{children:`ADDITION`})]}),`. Le comportement diffère selon ce que retourne le calcul de frais :`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`modeApplication`})}),_jsxs(_components.th,{children:[`Ce que vous envoyez dans `,_jsx(_components.code,{children:`montant`})]}),_jsx(_components.th,{children:`Ce qui est débité`}),_jsx(_components.th,{children:`Ce que reçoit le bénéficiaire`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADDITION`})}),_jsx(_components.td,{children:`Le montant net souhaité`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`montant`}),` + frais`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`montant`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SOUSTRACTION`})}),_jsx(_components.td,{children:`Le montant total`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`montant`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`montant`}),` − frais`]})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Ne réutilisez pas aveuglément le montant saisi par l’utilisateur : en mode `,_jsx(_components.code,{children:`ADDITION`}),`, le débit réel dépasse ce montant. Assurez-vous que le solde le couvre et que l’utilisateur en est informé avant validation.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`désigner-le-bénéficiaire`,children:`Désigner le bénéficiaire`}),`\n`,_jsx(_components.p,{children:`Deux cas de figure, selon que le bénéficiaire est déjà connu de GIMpay ou non :`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Bénéficiaire interne à GIMpay`,id:`b%C3%A9n%C3%A9ficiaire-interne-%C3%A0-gimpay`,children:_jsxs(_components.p,{children:[`Renseignez `,_jsx(_components.code,{children:`refInstrumentPaiementBeneficiaire`}),` avec la référence GIMpay de son instrument de paiement.`]})}),_jsxs(Tab,{title:`Bénéficiaire chez un contributeur tiers`,id:`b%C3%A9n%C3%A9ficiaire-chez-un-contributeur-tiers`,children:[_jsx(_components.p,{children:`Identifiez-le par le champ correspondant à son type d’instrument :`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Champ`}),_jsx(_components.th,{children:`Type d’instrument`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`msidnBeneficiaire`})}),_jsx(_components.td,{children:`Mobile wallet`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`panBeneficiaire`})}),_jsx(_components.td,{children:`Carte bancaire`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`compteBeneficiaire`})}),_jsx(_components.td,{children:`Compte bancaire`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`codeClientBeneficiaire`})}),_jsx(_components.td,{children:`Carte prépayée`})]})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`points-de-vigilance`,children:`Points de vigilance`}),`\n`,_jsx(AccordionGroup,{children:_jsxs(Accordion,{title:`Un statut retourné ne signifie pas toujours « terminé »`,icon:`clock`,id:`un-statut-retourne-ne-signifie-pas-toujours-termine`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`statutOperation`}),` peut valoir `,_jsx(_components.code,{children:`INITIEE`}),`, `,_jsx(_components.code,{children:`ENCOURS`}),` ou `,_jsx(_components.code,{children:`SUSPENDUE`}),` : l’opération n’est pas finalisée. Ne considérez comme définitifs que `,_jsx(_components.code,{children:`SUCCES`}),`, `,_jsx(_components.code,{children:`ECHOUE`}),`, `,_jsx(_components.code,{children:`ANNULEE`}),` et `,_jsx(_components.code,{children:`EXTOURNE`}),`. En cas d’échec, `,_jsx(_components.code,{children:`raisonEchec`}),` en donne le motif.`]}),_jsxs(_components.p,{children:[`Pour un suivi asynchrone, renseignez `,_jsx(_components.code,{children:`callbackUrl`}),` : GIMpay y notifiera l’évolution de l’état.`]})]})}),`\n`,_jsx(Heading,{level:`2`,id:`réponses`,children:`Réponses`}),`\n`,_jsxs(_components.p,{children:[`Le corps utile arrive dans `,_jsx(_components.code,{children:`body`}),`, à l’intérieur de l’enveloppe commune `,_jsx(_components.code,{children:`{ message, status, body, timestamp }`}),`. Consultez le `,_jsx(_components.a,{href:`/glossary/enumerations#statutoperation`,children:`glossaire`}),` pour les valeurs de `,_jsx(_components.code,{children:`statutOperation`}),` et `,_jsx(_components.code,{children:`natureOperation`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`En cas d’erreur, un `,_jsx(_components.code,{children:`400`}),` signale une donnée incorrecte ou indisponible (solde insuffisant, OTP invalide…), un `,_jsx(_components.code,{children:`404`}),` une entité introuvable, un `,_jsx(_components.code,{children:`409`}),` un `,_jsx(_components.code,{children:`requestId`}),` déjà utilisé. Voir la `,_jsx(_components.a,{href:`/getting-started/errors`,children:`référence des codes d’erreur`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`et-ensuite-`,children:`Et ensuite ?`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Annuler une opération`,icon:`rotate-left`,href:`/api-reference/introduction`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`PUT /operations/{referenceOperation}/cancel`}),` pour extourner une opération.`]})}),_jsx(Card,{title:`Consulter l'historique`,icon:`clock-rotate-left`,href:`/api-reference/introduction`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GET /wallets/{referenceWallet}/operations`}),` et `,_jsx(_components.code,{children:`/movements`}),`.`]})})]})]})}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":"Exécuter une opération","sidebarTitle":"Exécuter une opération","description":"Exécuter une opération financière entre deux instruments de paiement de l'écosystème GIMpay.","openapi":"openapi.json POST /api/v1/operations","href":"/endpoints/operations/execute"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Avant d’appeler","slug":"avant-d’appeler","depth":2,"children":[]},{"title":"Le header requestId : clé anti-doublon","slug":"le-header-requestid--clé-anti-doublon","depth":2,"children":[]},{"title":"Montant et frais : la subtilité à connaître","slug":"montant-et-frais--la-subtilité-à-connaître","depth":2,"children":[]},{"title":"Désigner le bénéficiaire","slug":"désigner-le-bénéficiaire","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":["Opérations"],"summary":"Exécuter une opération de paiement","description":"Exécuter une opération financière entre deux instruments de paiement de l'écosystème GIMpay.","operationId":"executeOperation","parameters":["7e8c75d8-170b-4365-a920-eaa5c5445f13"],"requestBody":"b999ec08-9056-4290-9205-e6f8abadc6ef","responses":{"200":"3ca1781a-6e15-479d-bcb5-5b98429d0903","400":"71e5a33f-a52f-4d5b-972b-f9521aa829b4","401":"3539cb80-0f2d-4749-a683-5831901a6103","409":"b2030a76-d28a-4569-9a98-cb283936e15c","500":"edb52609-076f-454f-bdd9-494d14bf5094"},"method":"post","type":"path","servers":["7ff24519-fcff-4044-8c77-eed05be30857"],"security":["e839d11c-96c0-429f-9296-92c56dbf64ac"],"path":"/api/v1/operations","baseUrlOptions":["https://egimgarsud.gimpayapp.com"],"title":"Exécuter une opération de paiement","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"7e8c75d8-170b-4365-a920-eaa5c5445f13":{"name":"requestId","in":"header","required":true,"description":"Clé anti-doublon, unique par opération.","schema":{"type":"string","isRequired":true,"description":"Clé anti-doublon, unique par opération.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["libelle","montant","refInstrumentPaiementInitiateur","typeOperation","refService","refContributeurBeneficiaire"],"properties":{"libelle":{"type":"string","example":"Paiement facture électricité","description":"Libellé de l'opération","isRequired":true,"uniqueKey":"libelle","typeLabel":"string"},"montant":{"type":"number","format":"double","example":15000,"description":"Montant de l'opération","isRequired":true,"uniqueKey":"montant","typeLabel":"number\u003cdouble>"},"refInstrumentPaiementInitiateur":{"type":"string","description":"Réference de l'instrument de paiement utilisé par l'initiateur de l'opération","isRequired":true,"uniqueKey":"refInstrumentPaiementInitiateur","typeLabel":"string"},"typeOperation":{"type":"string","description":"P = particulier, B = business, G = gouvernement.","enum":["P2P","P2B","P2G","B2B","B2P","B2G","G2P","G2B"],"isRequired":true,"uniqueKey":"typeOperation","typeLabel":"enum\u003cstring>"},"refService":{"type":"string","description":"La référence du service concerné par l'opération","isRequired":true,"uniqueKey":"refService","typeLabel":"string"},"refContributeurBeneficiaire":{"type":"string","description":"La référence du contributeur émetteur de l'instrument de paiement du bénéficiaire","isRequired":true,"uniqueKey":"refContributeurBeneficiaire","typeLabel":"string"},"refInstrumentPaiementBeneficiaire":{"type":"string","description":"Réference de l'instrument de paiement utilisé par le bénéficiare de l'opération","uniqueKey":"refInstrumentPaiementBeneficiaire","typeLabel":"string"},"msisdnBeneficiaire":{"type":"string","description":"Numéro mobile money du bénéficiaire (typo `msisdn` conforme au contrat).","uniqueKey":"msisdnBeneficiaire","typeLabel":"string"},"panBeneficiaire":{"type":"string","description":"Le numéro de carte bancaire du bénéficiaire","uniqueKey":"panBeneficiaire","typeLabel":"string"},"compteBeneficiaire":{"type":"string","description":"Le numéro de compte du bénéficiaire","uniqueKey":"compteBeneficiaire","typeLabel":"string"},"codeClientBeneficiaire":{"type":"string","description":"Le code client du bénéficiaire","uniqueKey":"codeClientBeneficiaire","typeLabel":"string"},"refContributeurInitiateur":{"type":"string","description":"La référence du contributeur émetteur de l'instrument de paiement de l'initiateur","uniqueKey":"refContributeurInitiateur","typeLabel":"string"},"authData":{"type":"string","description":"Donnée d'authentification (ex. OTP).","uniqueKey":"authData","typeLabel":"string"},"callbackUrl":{"type":"string","description":"URL de callback pour l'opération","uniqueKey":"callbackUrl","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"libelle":"Paiement facture électricité","montant":15000,"refInstrumentPaiementInitiateur":"\u003cstring>","refService":"\u003cstring>","refContributeurBeneficiaire":"\u003cstring>","refInstrumentPaiementBeneficiaire":"\u003cstring>","msisdnBeneficiaire":"\u003cstring>","panBeneficiaire":"\u003cstring>","compteBeneficiaire":"\u003cstring>","codeClientBeneficiaire":"\u003cstring>","refContributeurInitiateur":"\u003cstring>","authData":"\u003cstring>","callbackUrl":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3ca1781a-6e15-479d-bcb5-5b98429d0903":{"description":"Opération exécutée.","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":"object","properties":{"referenceOperation":{"type":"string","uniqueKey":"body.referenceOperation","typeLabel":"string"},"dateHeureOperation":{"type":"string","format":"date-time","uniqueKey":"body.dateHeureOperation","typeLabel":"string\u003cdate-time>"},"dateHeureAnnulationOperation":{"type":"string","format":"date-time","uniqueKey":"body.dateHeureAnnulationOperation","typeLabel":"string\u003cdate-time>"},"libelleOperation":{"type":"string","uniqueKey":"body.libelleOperation","typeLabel":"string"},"montantHToperation":{"type":"number","format":"double","uniqueKey":"body.montantHToperation","typeLabel":"number\u003cdouble>"},"montantHTfraisOperation":{"type":"number","format":"double","uniqueKey":"body.montantHTfraisOperation","typeLabel":"number\u003cdouble>"},"montantADebiter":{"type":"number","format":"double","uniqueKey":"body.montantADebiter","typeLabel":"number\u003cdouble>"},"montantACrediter":{"type":"number","format":"double","uniqueKey":"body.montantACrediter","typeLabel":"number\u003cdouble>"},"montantTotalOperation":{"type":"number","format":"double","uniqueKey":"body.montantTotalOperation","typeLabel":"number\u003cdouble>"},"typeOperation":{"type":"string","description":"P = particulier, B = business, G = gouvernement.","enum":["P2P","P2B","P2G","B2B","B2P","B2G","G2P","G2B"],"uniqueKey":"body.typeOperation","typeLabel":"enum\u003cstring>"},"natureOperation":{"type":"string","description":"Flux entre types d'instruments (A = compte, M = mobile, F = fidélité, CD = carte débit, CP = carte prépayée, C = cash).\n","enum":["A2A","A2M","A2F","A2CD","A2CP","M2M","M2A","M2F","M2CD","M2CP","CD2CD","CP2CP","CD2A","CP2A","CD2M","CP2M","CP2F","CD2F","F2F","F2A","F2M","F2CD","F2CP"],"uniqueKey":"body.natureOperation","typeLabel":"enum\u003cstring>"},"statutOperation":{"type":"string","enum":["INITIEE","ENCOURS","SUSPENDUE","ANNULEE","ECHOUE","EXTOURNE","SUCCES"],"uniqueKey":"body.statutOperation","typeLabel":"enum\u003cstring>"},"refUsagerInitiateur":{"type":"string","uniqueKey":"body.refUsagerInitiateur","typeLabel":"string"},"typeInstrumentPaiementDebite":{"type":"string","enum":["COMPTE_BANCAIRE","CARTE_BANCAIRE","MOBILE_WALLET","COMPTE_FIDELITE"],"uniqueKey":"body.typeInstrumentPaiementDebite","typeLabel":"enum\u003cstring>"},"identifiantInstrumentPaiementDebite":{"type":"string","description":"Identifiant de l'instrument débité chez son contributeur.","uniqueKey":"body.identifiantInstrumentPaiementDebite","typeLabel":"string"},"refUsagerBeneficiaire":{"type":"string","description":"La reference de l'usager du bénéficiaire","uniqueKey":"body.refUsagerBeneficiaire","typeLabel":"string"},"typeInstrumentPaiementCredite":{"type":"string","enum":["COMPTE_BANCAIRE","CARTE_BANCAIRE","MOBILE_WALLET","COMPTE_FIDELITE"],"uniqueKey":"body.typeInstrumentPaiementCredite","typeLabel":"enum\u003cstring>"},"identifiantInstrumentPaiementCredite":{"type":"string","description":"Identifiant de l'instrument crédité chez son contributeur.","uniqueKey":"body.identifiantInstrumentPaiementCredite","typeLabel":"string"},"refContributeurInitiateur":{"type":"string","description":"La référence du contributeur émetteur de l'instrument de paiement de l'initiateur","uniqueKey":"body.refContributeurInitiateur","typeLabel":"string"},"refContributeurBeneficiaire":{"type":"string","description":"La référence du contributeur émetteur de l'instrument de paiement du bénéficiaire","uniqueKey":"body.refContributeurBeneficiaire","typeLabel":"string"},"dateDernierStatut":{"type":"string","format":"date-time","uniqueKey":"body.dateDernierStatut","typeLabel":"string\u003cdate-time>"},"refService":{"type":"string","description":"La référence du service concerné par l'opération","uniqueKey":"body.refService","typeLabel":"string"},"raisonEchec":{"type":"string","description":"Renseigné si l'opération a échoué.","uniqueKey":"body.raisonEchec","typeLabel":"string"}},"uniqueKey":"body","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","status":123,"timestamp":"2023-11-07T05:31:56Z","body":{"referenceOperation":"\u003cstring>","dateHeureOperation":"2023-11-07T05:31:56Z","dateHeureAnnulationOperation":"2023-11-07T05:31:56Z","libelleOperation":"\u003cstring>","montantHToperation":123,"montantHTfraisOperation":123,"montantADebiter":123,"montantACrediter":123,"montantTotalOperation":123,"typeOperation":"P2P","natureOperation":"A2A","statutOperation":"INITIEE","refUsagerInitiateur":"\u003cstring>","typeInstrumentPaiementDebite":"COMPTE_BANCAIRE","identifiantInstrumentPaiementDebite":"\u003cstring>","refUsagerBeneficiaire":"\u003cstring>","typeInstrumentPaiementCredite":"COMPTE_BANCAIRE","identifiantInstrumentPaiementCredite":"\u003cstring>","refContributeurInitiateur":"\u003cstring>","refContributeurBeneficiaire":"\u003cstring>","dateDernierStatut":"2023-11-07T05:31:56Z","refService":"\u003cstring>","raisonEchec":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"71e5a33f-a52f-4d5b-972b-f9521aa829b4":{"description":"Requête invalide (champ manquant ou mal formé).","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"},"3539cb80-0f2d-4749-a683-5831901a6103":{"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"},"b2030a76-d28a-4569-9a98-cb283936e15c":{"description":"Conflit — ressource déjà existante (ex. `requestId` déjà utilisé).","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"},"edb52609-076f-454f-bdd9-494d14bf5094":{"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":"Exécuter une opération - GIMpay Developer Portal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T15:43:59.290Z","originalFileLocation":"endpoints/operations/execute.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=\"Exécuter une opération financière entre deux instruments de paiement de l\u0026#x27;écosystème GIMpay.\">\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=\"Exécuter une opération - GIMpay Developer Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Exécuter une opération financière entre deux instruments de paiement de l\u0026#x27;écosystème GIMpay.\">\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/operations/execute\">\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=Op%C3%A9rations\u0026amp;title=Ex%C3%A9cuter+une+op%C3%A9ration\u0026amp;description=Ex%C3%A9cuter+une+op%C3%A9ration+financi%C3%A8re+entre+deux+instruments+de+paiement+de+l%27%C3%A9cosyst%C3%A8me+GIMpay.\u0026amp;theme=2affe9d4e5c11f6689587c09\u0026amp;signature=9724ba3628996c6e267dee4977d778f2241adaefa331beee84c1e3ec88468c95\">\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=\"Exécuter une opération - GIMpay Developer Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Exécuter une opération financière entre deux instruments de paiement de l\u0026#x27;écosystème GIMpay.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://it-centrex.mintlify.app/_mintlify/api/og/v2?division=Op%C3%A9rations\u0026amp;title=Ex%C3%A9cuter+une+op%C3%A9ration\u0026amp;description=Ex%C3%A9cuter+une+op%C3%A9ration+financi%C3%A8re+entre+deux+instruments+de+paiement+de+l%27%C3%A9cosyst%C3%A8me+GIMpay.\u0026amp;theme=2affe9d4e5c11f6689587c09\u0026amp;signature=9724ba3628996c6e267dee4977d778f2241adaefa331beee84c1e3ec88468c95\">\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/operations/execute\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/endpoints/operations/execute.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/operations/execute#webpage\",\"url\":\"https://sandbox.it-centrex.com/endpoints/operations/execute\",\"name\":\"Exécuter une opération\",\"description\":\"Exécuter une opération financière entre deux instruments de paiement de l'écosystème GIMpay.\",\"dateModified\":\"2026-10-30T15:43:59.290Z\",\"isPartOf\":{\"@id\":\"https://sandbox.it-centrex.com#website\"},\"breadcrumb\":{\"@id\":\"https://sandbox.it-centrex.com/endpoints/operations/execute#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://sandbox.it-centrex.com/endpoints/operations/execute#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"GIMpay Developer Portal\",\"item\":\"https://sandbox.it-centrex.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exécuter une opération\",\"item\":\"https://sandbox.it-centrex.com/endpoints/operations/execute\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://sandbox.it-centrex.com/endpoints/operations/execute#apireference\",\"headline\":\"Exécuter une opération\",\"name\":\"Exécuter une opération\",\"description\":\"Exécuter une opération financière entre deux instruments de paiement de l'écosystème GIMpay.\",\"url\":\"https://sandbox.it-centrex.com/endpoints/operations/execute\",\"mainEntityOfPage\":{\"@id\":\"https://sandbox.it-centrex.com/endpoints/operations/execute#webpage\"},\"dateModified\":\"2026-10-30T15:43:59.290Z\",\"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","description":"Déterminer si un instrument de paiement est déjà enrôlé dans GIMpay, et déclencher l'envoi d'un OTP si ce n'est pas le cas.","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","description":null,"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","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","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":"Exécuter une opération - 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"]}