{"id":3274,"date":"2023-03-17T14:32:28","date_gmt":"2023-03-17T13:32:28","guid":{"rendered":"https:\/\/help.ino.cx\/?post_type=ht_kb&#038;p=3274"},"modified":"2026-06-04T15:23:52","modified_gmt":"2026-06-04T13:23:52","slug":"bank-contracts-how-to-add-them","status":"publish","type":"ht_kb","link":"https:\/\/help.ino.cx\/index.php\/help-center\/bank-contracts-how-to-add-them\/","title":{"rendered":"Banking contracts \u2013 Set them up"},"content":{"rendered":"\n<figure class=\"wp-block-image alignright is-resized\"><img decoding=\"async\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2024\/09\/Smart-licence-needed-2.png\" alt=\"Smart licence needed\" style=\"width:250px\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">[<em>Reading time: 4 minutes<\/em>]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A&nbsp;<strong>Banking contract<\/strong>&nbsp;connects INO cx to the payment processor that actually executes your transactions. Two processors are supported:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ino pay<\/strong>: (only available in France) the INO cx in-house payment service, attached to a bank with a VAD or VADS acceptance contract.<\/li>\n\n\n\n<li><strong>Stripe<\/strong>: integration with a Stripe account, configured with the public and secret keys of the Stripe dashboard.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1547\" height=\"838\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2025\/02\/undraw_payments_nbqu.png\" alt=\"\" class=\"wp-image-4740\" style=\"width:250px\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A banking contract is a prerequisite for any&nbsp;<strong>payment module<\/strong>: when you create a payment module, you pick which banking contract handles the actual transactions for it. You can configure several banking contracts in parallel \u2014 for example one Ino pay contract and one Stripe contract \u2014 and use them on different payment modules.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"257\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-1024x257.png\" alt=\"\" class=\"wp-image-6586\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-1024x257.png 1024w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-300x75.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-768x193.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-50x13.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-1536x386.png 1536w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-2048x515.png 2048w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-60x15.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.13.47-100x25.png 100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">1. Access and permissions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Banking contracts are configured in the&nbsp;<strong>Maker<\/strong>, in the&nbsp;<strong>Payment<\/strong>&nbsp;module. From the left menu, open&nbsp;<strong>Payment &gt; Banking contracts<\/strong>. The module is part of the Smart licence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To access and configure banking contracts, the user\u2019s role must include the appropriate rights on the&nbsp;<strong>Banking contracts<\/strong>&nbsp;entity:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"632\" height=\"260\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44.png\" alt=\"\" class=\"wp-image-6587\" style=\"width:400px\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44.png 632w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44-300x123.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44-50x21.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44-60x25.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.15.44-100x41.png 100w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Read<\/strong>&nbsp;\u2013 view the list and details of banking contracts.<\/li>\n\n\n\n<li><strong>Create<\/strong>&nbsp;\u2013 create a new banking contract.<\/li>\n\n\n\n<li><strong>Modify<\/strong>&nbsp;\u2013 edit an existing banking contract.<\/li>\n\n\n\n<li><strong>Delete<\/strong>&nbsp;\u2013 delete a single banking contract or several at once.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These permissions are managed in the&nbsp;<strong>Roles<\/strong>&nbsp;module of the Maker.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. The list view<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Banking contracts list shows five columns:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Column<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Contract type<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The processor \u2014&nbsp;<em>Ino pay<\/em>&nbsp;or&nbsp;<em>Stripe<\/em>, shown as a coloured tag.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Status<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The current state of the contract:&nbsp;<em>Active<\/em>,&nbsp;<em>Inactive<\/em>&nbsp;or&nbsp;<em>Error<\/em>&nbsp;(see section 5).<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Name<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Display name of the contract.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Bank<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">For Ino pay contracts, the linked bank. Empty (<code>--<\/code>) for Stripe.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Contract number<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">For Ino pay contracts, the contract number provided by the bank. Empty for Stripe.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">AS rank number<\/td><td class=\"has-text-align-left\" data-align=\"left\">For Ino pay contracts, the 3-digit number of the acceptance system. Empty for Stripe.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A search bar at the top lets you find a banking contract by its name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Create a banking contract<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To create a new banking contract:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<strong>Maker &gt; Payment &gt; Banking contracts<\/strong>.<\/li>\n\n\n\n<li>Click the&nbsp;<strong>+<\/strong>&nbsp;button at the top right.<\/li>\n\n\n\n<li>Pick the&nbsp;<strong>Contract type<\/strong>&nbsp;\u2014&nbsp;<em>Ino pay<\/em>&nbsp;or&nbsp;<em>Stripe<\/em>.<\/li>\n\n\n\n<li>Fill in the&nbsp;<strong>Name<\/strong>&nbsp;of the contract (display name only).<\/li>\n\n\n\n<li>Fill in the fields specific to the chosen type \u2014 see section 3.1 or 3.2 below.<\/li>\n\n\n\n<li>Click&nbsp;<strong>Save<\/strong>.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"907\" height=\"1024\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-907x1024.png\" alt=\"\" class=\"wp-image-6589\" style=\"width:400px\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-907x1024.png 907w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-266x300.png 266w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-768x867.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-44x50.png 44w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-53x60.png 53w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48-89x100.png 89w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.16.48.png 964w\" sizes=\"auto, (max-width: 907px) 100vw, 907px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.1. Ino pay contract<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When the contract type is&nbsp;<strong>Ino pay<\/strong>, the following fields are displayed and required:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Field<\/th><th class=\"has-text-align-left\" data-align=\"left\">Required<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Bank<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">The bank associated with the contract. Pick it from the list of banks available on the platform.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Contract number<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">The contract number provided by the bank. Up to 255 characters.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Contract type<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\"><em>VAD<\/em>&nbsp;or&nbsp;<em>VADS<\/em>&nbsp;\u2014 the acceptance contract type provided by the bank.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>AS rank number<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">3-digit number of the acceptance system (Syst\u00e8me d\u2019Acceptation).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.2. Stripe contract<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a complete walk-through of the Stripe integration \u2014 creating a Stripe account, retrieving the API keys from the Stripe dashboard, the Stripe-specific limitations inside INO cx \u2014 follow the dedicated&nbsp;<a href=\"https:\/\/help.ino.cx\/index.php\/help-center\/stripe\/\"><strong>Stripe<\/strong><\/a>&nbsp;article of the help center. The fields described below are what appears on the Banking contracts form once you have your keys ready.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the contract type is&nbsp;<strong>Stripe<\/strong>, the following fields are displayed and required:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Field<\/th><th class=\"has-text-align-left\" data-align=\"left\">Required<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Stripe public key<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">The publishable key from your Stripe dashboard. Used by the client-side of the payment form.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Stripe private key<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Yes<\/td><td class=\"has-text-align-left\" data-align=\"left\">The secret key from your Stripe dashboard. Used by the server-side to authorise transactions.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Saving a Stripe contract automatically sets up everything needed on your Stripe account to confirm the payments made through INO cx. Make sure the secret key is correct \u2014 an invalid key will prevent the contract from being saved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both keys are found in your Stripe dashboard. Treat the secret key as a password \u2014 do not share it.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"872\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46.png\" alt=\"\" class=\"wp-image-6591\" style=\"width:400px\" srcset=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46.png 964w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46-300x271.png 300w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46-768x695.png 768w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46-50x45.png 50w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46-60x54.png 60w, https:\/\/help.ino.cx\/wp-content\/uploads\/2026\/05\/Capture-decran-2026-05-26-a-16.17.46-100x90.png 100w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4. Status of a contract<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once saved, a banking contract is automatically tested against the processor. Its&nbsp;<strong>Status<\/strong>&nbsp;column in the list reflects the result:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Status<\/th><th class=\"has-text-align-left\" data-align=\"left\">Meaning<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Active<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The contract is valid and ready to be used by a payment module.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Inactive<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The contract is not yet ready. This usually means the bank has not confirmed it yet. To stop using a contract, detach it from its payment modules and delete it \u2014 there is no manual switch to deactivate it.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Error<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">The contract could not be validated by the processor. Check the keys, the contract number or the AS rank and save again.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/help.ino.cx\/wp-content\/uploads\/2023\/03\/Capture-de%CC%81cran-2023-03-16-a%CC%80-14.33.43.png\" alt=\"\" class=\"wp-image-3280\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Only contracts in the&nbsp;<em>Active<\/em>&nbsp;state can be selected when creating or editing a payment module.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Edit, duplicate or delete a banking contract<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From the&nbsp;<strong>Banking contracts<\/strong>&nbsp;list, each row provides the following actions:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Action<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Edit<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Modify the Name, the Contract type and all the type-specific fields.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Duplicate<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Create a copy of the contract. Useful when several contracts share most of their parameters. The duplicated contract keeps the original type and field values; update them as needed.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Delete<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Remove the contract. Before deleting a contract that is still referenced by a payment module, detach it from the module first, otherwise the module will no longer be usable.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Several contracts can be deleted at once by selecting them in the list and using the bulk delete action.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Next step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once at least one banking contract is in the&nbsp;<em>Active<\/em>&nbsp;state, you can use it from a&nbsp;<strong>Payment module<\/strong>&nbsp;to define how, when and through which channels payments are taken. See the&nbsp;<strong>Payment modules \u2013 Set them up<\/strong>&nbsp;article of the help center.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bank contracts are the key to the use of payment modules in your interactions with your customers. In this article, we will see how to add them in the Maker and set them up.<\/p>\n","protected":false},"author":3,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[107],"ht-kb-tag":[147,131],"class_list":["post-3274","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-configuring","ht_kb_tag-admin","ht_kb_tag-maker"],"_links":{"self":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/3274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/comments?post=3274"}],"version-history":[{"count":7,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/3274\/revisions"}],"predecessor-version":[{"id":6639,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb\/3274\/revisions\/6639"}],"wp:attachment":[{"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/media?parent=3274"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb-category?post=3274"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/help.ino.cx\/index.php\/wp-json\/wp\/v2\/ht-kb-tag?post=3274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}