{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-apis/banking/v4/sidebars.yaml","oas-apis/banking/v4/openapi/banking-openapi.json":"oas-apis/banking/v4/openapi/banking-openapi.json"},"props":{"metadata":{"markdoc":{"tagList":["admonition","openapi-code-sample"]},"type":"markdown"},"seo":{"title":"Payment Approval","keywords":"documentation, api, portal, banking, payment, account information, aritma, psd2, open banking, reconciliation","description":"Developer documentation for Aritma's banking and financial APIs - payments, account information, webhooks, authentication and integrations.","meta":[{"name":"google-site-verification","content":"hplqlK_5O42BZjNnjtVQMEpxv9JkxcD1eH4J1T-NQmI"}],"llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"payment-approval","__idx":0},"children":["Payment Approval"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a payment is initiated through the Aritma Banking API, it follows one of two paths depending on the account's configuration. Understanding this distinction is critical for partners integrating with the API, as it directly affects both the API calls required and the end-user experience."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"two-modes-of-payment-approval","__idx":1},"children":["Two modes of payment approval"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-approve-payments-in-the-accounting-system","__idx":2},"children":["(1) Approve payments in the accounting system"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pre-approved payments means the customer authorises the payment within the accounting system ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["before"]}," it is sent to the bank, while complying with regulatory authority requirements. With pre-approved payments, the users don't need to approve payments in the corporate online bank."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How it works:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Initiate a payment via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /api/bulk-payments/credit-transfer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The payment enters status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RCVD"]}," (received) and awaits signing/approval"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create a signing basket containing one or more payment IDs — these can be individual payment line IDs, bulk payment IDs, or a mix of both"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An authorised user signs the basket using BankID, MitID, or Swedish BankID"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Once the required number of approvers (1 or 2, depending on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requiredAuthorizations"]}," setting) have signed, the payment is automatically forwarded to the bank"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The bank accepts the payment and queues it for processing on the due date"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}," Use this mode if you customers want to manage payment approval themself, within the application, rather than relying on the bank. Most partners use this configuration in production."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account Settings:"]}," To use this mode, the account's parameters must have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accountingApprovedPayments = true"]},"  (RGB on) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requiredAuthorizations = 1 "]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requiredAuthorizations = 2 "]},". The number of required Signers/Authorisations is set via the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["numberOfApprovers"]}," field in the consent properties and potentially configurations in the online bank."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not all of these account settings for payment approval can be configurable through the API. For some banks these settings are determined by the configurations the customer has set up directly with their bank, and can only be changed there."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-approving-payments-in-the-online-bank","__idx":3},"children":["(2) Approving payments in the online bank"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Payments can be sent directly to the bank without prior authorisation in the accounting system. Depending on the account's bank configuration and country-specific regulations, the customer may then need to approve the payment manually in their online bank, or the bank may accept it automatically."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How it works:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Initiate a payment via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /api/bulk-payments/credit-transfer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The payment is sent directly to the bank — no signing basket is required"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The bank processes the payment and returns status updates"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Depending on the bank's configuration, the customer may then need to approve the payment manually in their online bank"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When to use:"]}," This is typically the case when the customer prefers to review and approve each payment themselves in their online bank, rather than approving payments directly from the accounting system."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Agreement Settings:"]}," The account's parameters are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accountingApprovedPayments = false"]},"  (RGB OFF) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requiredAuthorizations = 0 "]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Not all of these account settings for payment approval can be configurable through the API. For some banks these settings are determined by the configurations the customer has set up directly with their bank, and can only be changed there."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"relationship-to-account-configuration","__idx":4},"children":["Relationship to account configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The approval mode is determined by the settings on the account, not by a property on the payment itself. These settings is set by a combination of the properties in the consent flow and the configuration the customer has in their online bank. Aritma receives information regarding account settings from the bank once the customer has ordered the integration in their online bank."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Setting"},"children":["Setting"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Agreement value"},"children":["Agreement value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Behaviour"},"children":["Behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approve payments in the accounting system"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accountingApprovedPayments: true"]}," (RGB on) & ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requiredAuthorizations > 0 "]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payments require signing basket before forwarding to bank"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approving payments in the online bank"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accountingApprovedPayments: false"]}," (RGB off)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payments go straight to bank without signing"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rgb"]}," property in the consent ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["properties"]}," object can also controls this:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"rgb\": \"true\""]}," — indicates that pre-approved payments should be enabled"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"rgb\": \"false\""]}," — pre-approved payments is wished disabled"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-signing-basket-flow","__idx":5},"children":["The signing basket flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When an account has pre-approved payments enabled, all payments must go through the signing basket flow before they are forwarded to the bank."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1--create-a-payment","__idx":6},"children":["Step 1 — Create a payment"]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/banking/v4/openapi/banking-openapi.json","operationId":"InitiatePayment","language":"curl","parameters":{},"requestBody":{"debtorAccount":{"iban":"NO5036086104622"},"debtorName":"Company AS","batchBookingPreferred":false,"paymentLines":[{"endToEndIdentification":"PAYMENT-001","instructedAmount":{"currency":"NOK","amount":"1500.00"},"creditorAccount":{"iban":"NO6036407513651"},"creditorName":"Supplier AS","remittanceInformationUnstructured":"Invoice #1234","instructionPriority":"normal"}]},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Result:"]}," The payment enters status ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RCVD"]}," and remains there until it is signed/approved."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2--create-signing-basket","__idx":7},"children":["Step 2 — Create signing basket"]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/banking/v4/openapi/banking-openapi.json","operationId":"CreateSigningBasket","language":"curl","parameters":{},"requestBody":{"paymentIds":["p1pbb64b18233714bf38204314e3faa03bc","p1pcm64b16566772bf37206317e3mdd03ss"]},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Multiple payments can be approved at once by including them in the same basket. The response returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["basketId"]}," and the current ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approvalState"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3--start-the-basket-authorisation","__idx":8},"children":["Step 3 — Start the basket authorisation"]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-apis/banking/v4/openapi/banking-openapi.json","operationId":"StartSigningBasketAuthorization","language":"curl","parameters":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response includes:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authorizationId"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scaRedirect.href"]}," — a URL where the user completes BankID verification"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4--user-completes-bankid-verification","__idx":9},"children":["Step 4 — User completes BankID verification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The PSU/User will be redirected to complete SCA for all payments in the basket."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Redirect the user to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scaRedirect.href"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["User authenticates with BankID"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["User approves the signing basket"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Flow redirects back to the configured redirect URL"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After successful authorisation, the payments in the basket are forwarded to the bank for processing."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"payment-status-flow","__idx":10},"children":["Payment status flow"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/banking/v4/about/paymentstatuses"},"children":["Payment statuses"]}," for more information"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-confusion-points","__idx":11},"children":["Common confusion points"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"my-payment-is-stuck-at-rcvd","__idx":12},"children":["\"My payment is stuck at RCVD\""]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This happens when a payment is sent from an account with pre-approved payments enabled, but the signing basket flow has not been completed. The payment is waiting for authorisation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}," Create a signing basket with the payment ID and complete the authorisation flow."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payments-from-one-account-go-through-but-not-from-another","__idx":13},"children":["\"Payments from one account go through but not from another\""]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is expected behaviour if the accounts have different agreement configurations. Check the agreement settings:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Account with RGB off: payments go through immediately"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Account with RGB on: payments require signing basket"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configuring-approval-settings-with-the-customers-bank","__idx":14},"children":["Configuring approval settings with the customers bank"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Where payments can be approved is set up in the customer's online bank, usually during onboarding (ordering of Bank Integration). The exact steps differ from bank to bank. For Swedish banks:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["SEB:"]}," Choose \"Godkänna betalningar i affärssystemet\" (approve in system) for pre-approved, or \"Godkänna i banken\" for bank approval"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Nordea:"]}," Configured during Corporate Access setup"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Swedbank / Handelsbanken:"]}," Configured via Cash Management advisor"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The bank agreement must match the Aritma agreement configuration. If the bank expects pre-approved payments but the Aritma agreement has RGB off (or vice versa), payments may fail or behave unexpectedly."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"testing-payment-in-dev-environment","__idx":15},"children":["Testing Payment in Dev Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the dev environment, accounts are typically set up with different configurations to allow testing both flows:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account with RGB off ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(requiredAuthorizations = 0)"]},":"]}," Use for testing payments without approval/signing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account with RGB on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(requiredAuthorizations > 0)"]},":"]}," Use for testing the full signing basket flow with SCA"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For BankID demo testing during the signing basket flow, see the BankID Dev Environment documentation."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"terminology-confusion","__idx":16},"children":["Terminology confusion"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Partners sometimes interpret \"pre-approved\" as meaning the payment goes through without approval. The Aritma definition is the opposite:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Term"},"children":["Term"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Aritma definition"},"children":["Aritma definition"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pre-approved"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer signs the payment in the accounting system ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["before"]}," sending to bank"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Non pre-approved"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payment is sent directly to bank without prior signing"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Payment Approval","id":"payment-approval","depth":1},{"value":"Two modes of payment approval","id":"two-modes-of-payment-approval","depth":2},{"value":"(1) Approve payments in the accounting system","id":"1-approve-payments-in-the-accounting-system","depth":3},{"value":"(2) Approving payments in the online bank","id":"2-approving-payments-in-the-online-bank","depth":3},{"value":"Relationship to account configuration","id":"relationship-to-account-configuration","depth":2},{"value":"The signing basket flow","id":"the-signing-basket-flow","depth":2},{"value":"Step 1 — Create a payment","id":"step-1--create-a-payment","depth":3},{"value":"Step 2 — Create signing basket","id":"step-2--create-signing-basket","depth":3},{"value":"Step 3 — Start the basket authorisation","id":"step-3--start-the-basket-authorisation","depth":3},{"value":"Step 4 — User completes BankID verification","id":"step-4--user-completes-bankid-verification","depth":3},{"value":"Payment status flow","id":"payment-status-flow","depth":2},{"value":"Common confusion points","id":"common-confusion-points","depth":2},{"value":"\"My payment is stuck at RCVD\"","id":"my-payment-is-stuck-at-rcvd","depth":3},{"value":"\"Payments from one account go through but not from another\"","id":"payments-from-one-account-go-through-but-not-from-another","depth":3},{"value":"Configuring approval settings with the customers bank","id":"configuring-approval-settings-with-the-customers-bank","depth":2},{"value":"Testing Payment in Dev Environment","id":"testing-payment-in-dev-environment","depth":2},{"value":"Terminology confusion","id":"terminology-confusion","depth":3}],"frontmatter":{"title":"Payment Approval","seo":{"title":"Payment Approval"}},"lastModified":"2026-07-08T09:26:03.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/apis/banking/v4/guides/payment-approval","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}