diff --git a/.github/archive/integration-team/connectjs.md b/.github/archive/integration-team/connectjs.md index cb08e6831..bff66f0a5 100644 --- a/.github/archive/integration-team/connectjs.md +++ b/.github/archive/integration-team/connectjs.md @@ -34,7 +34,7 @@ MultiSafepay = { } } ``` -📘 **Note:** The `containerId` uses `multisafepayContainer` as an example class name. You can enter your own container name. +**⚠️ Note:** The `containerId` uses `multisafepayContainer` as an example class name. You can enter your own container name. 4. Add the ConnectJS library: ``` diff --git a/.gitignore b/.gitignore index af1d0fa88..4ce69e61c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,12 @@ .DS_Store +# ignore JetBrains IDE files +.idea + # ignore all installed nodeJS packages node_modules # ignore vim swap files *.swp *.swo +*.code-workspace diff --git a/api/general/error-reference.md b/api/general/error-reference.md index 4393db44b..a2cafe254 100644 --- a/api/general/error-reference.md +++ b/api/general/error-reference.md @@ -166,6 +166,7 @@ The `gateway` is unavailable. This error can occur with <> requ - Check whether the payment method supports <> requests. - Ensure you specified a gateway in the create order request. - Check if the site is correctly configured for <> requests. +- For payment components, check if the correct API token is used. Do not use an API key. --- ### 1024: Transaction declined @@ -182,6 +183,12 @@ Check that the: - Customer details are correct - Customer details match the credit details +<<<<<<< HEAD +**💡 Tip!** For card payments, use the Get order request and check the response details to learn more about the decline reason. +======= +**💡 Tip!** For card payments, use the Get order request and check the response details to learn more about the reason for the decline. +>>>>>>> 30f093744fe3101c455805012eec67440a287f7c + --- ### 1024: For Cloudflare – Incorrect customer IP address diff --git a/api/general/gateway-ids.md b/api/general/gateway-ids.md index e04232513..7e5709f50 100644 --- a/api/general/gateway-ids.md +++ b/api/general/gateway-ids.md @@ -17,6 +17,8 @@ hidden: false | Bank transfer | `BANKTRANS` | | Belfius | `BELFIUS` | | Betaal per Maand | `SANTANDER` | +| Bizum | `BIZUM` | +| Billink | `BILLINK` | | CBC/KBC | `CBC` / `KBC` | | Card payments | `CREDITCARD` | | Dotpay | `DOTPAY` | @@ -51,6 +53,7 @@ hidden: false | Amsterdam stadspas | `AMSGIFT` | | Baby Cadeaubon | `BABYCAD` | | Beautyandwellness | `BEAUTYWELL` | +| Beauty cadeau | `BEAUTYCAD` | | Bloemencadeaukaart | `BLOEMENCAD` | | Boekenbon | `BOEKENBON` | | Degrotespeelgoedwinkel | `DEGROTESPL` | diff --git a/api/general/introduction.md b/api/general/introduction.md index 49f3a4286..c7ff1cc02 100644 --- a/api/general/introduction.md +++ b/api/general/introduction.md @@ -6,19 +6,14 @@ order: 1 hidden: false --- -Welcome to the MultiSafepay API reference (JSON gateway)! +Welcome to the MultiSafepay API reference. To test using the API sandbox, you need to [create a test account](/docs/create-account/). -[block:html] -{ - "html": "" -} -[/block] -# Direct vs redirect +# Request types -With our API, you can create transactions through direct and redirect requests. +With our API, you can create transactions through **direct** and **redirect** requests. Direct requests connect directly to the payment method, whereas redirect requests first send the customer to a [payment page](/docs/payment-pages/). @@ -34,14 +29,34 @@ Then, if further customer action is: If you provide a `redirect_url`, after completing payment the customer is directed to your success/thank you page. -For more information about the direct and redirect flows for a specific payment method, see the payment method page. +--- -#### Flow +# Flows +For more information about the direct and redirect flows for a specific payment method, see the respective payment method page. Click to magnify. ![](https://files.readme.io/c702a54-DirectVsRedirectFlowchart.png "DirectVsRedirectFlowchart.png") +--- + +# Headers +When submitting requests via our API to prevent errors, always include the relevant headers. +- For **POST** and **PATCH** requests: +#### Example +```JavaScript +curl -X POST ''\ +-H 'accept: application/json' \ +-H 'content-type: application/json' +``` + +- For **GET** and **DELETE** requests: +#### Example +```JavaScript +curl -X GET ''\ +-H 'accept: application/json' \ +``` + # Wrappers and SDKs We provide the following SDKs and wrappers to facilitate integrating via our API: diff --git a/api/general/transaction-expiration.md b/api/general/transaction-expiration.md index 385b2d4e1..8c1ac2241 100644 --- a/api/general/transaction-expiration.md +++ b/api/general/transaction-expiration.md @@ -13,7 +13,7 @@ Different payment methods set different expiration times for transactions. The t The expiration time is set by the payment method and cannot be changed. -📘 **Note:** Transaction expiration times are different to session lifetimes of payment pages. +**⚠️ Note:** Transaction expiration times are different to session lifetimes of payment pages. The table below sets out the expiration time per payment method: @@ -27,12 +27,13 @@ The table below sets out the expiration time per payment method: | Bank transfer| 60 days | | Belfius| 5 days | | Betaal per Maand| 1 day | +| Bizum| 30 minutes | | CBC/KBC| 5 days | | Dotpay| 3 days | | Google Pay| 1 hour | -| iDEAL| 1.5 hours| +| iDEAL| 1 hour | | in3| 2 hours | -| Klarna| 1 hour | +| Klarna| 1 day | | MB WAY| 4 minutes | | Multibanco| 72 hours | | MyBank| 1 hour | diff --git a/api/multisafepay-api/createaffiliate.md b/api/multisafepay-api/createaffiliate.md new file mode 100644 index 000000000..e641c8237 --- /dev/null +++ b/api/multisafepay-api/createaffiliate.md @@ -0,0 +1,9 @@ +--- +title: Create affiliate +category: 62430422470152003dc86e53 +slug: createaffiliate +--- + +## Authentication + +This endpoint requires an account **API key**. To obtain your account **API key**, email \ No newline at end of file diff --git a/api/multisafepay-api/gettransaction.md b/api/multisafepay-api/gettransaction.md index b55e60ee7..17b9e8ba9 100644 --- a/api/multisafepay-api/gettransaction.md +++ b/api/multisafepay-api/gettransaction.md @@ -6,7 +6,7 @@ slug: gettransaction ## How to test -1. Under **Authentication** > **Query**, enter an [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. +1. Under **Authentication** > **Query**, enter a website [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. 2. Under **Path params**, enter the transaction ID. 3. Click **Try it!** diff --git a/api/multisafepay-api/getubo.md b/api/multisafepay-api/getubo.md new file mode 100644 index 000000000..9f60c1f39 --- /dev/null +++ b/api/multisafepay-api/getubo.md @@ -0,0 +1,9 @@ +--- +title: Get UBO +category: 62430422470152003dc86e53 +slug: getubo +--- + +## Authentication + +Authentication for this endpoint requires an account **API key**. To obtain your account **API key**, email . \ No newline at end of file diff --git a/api/multisafepay-api/listidealissuers.md b/api/multisafepay-api/listidealissuers.md index af5e7041c..a49217931 100644 --- a/api/multisafepay-api/listidealissuers.md +++ b/api/multisafepay-api/listidealissuers.md @@ -4,6 +4,12 @@ category: 62430422470152003dc86e53 slug: listidealissuers --- +### Update iDeal 2.0 + +> ⚠️ Note: +> +> Upon our migration to iDeal 2.0, the issuer is selected within the iDeal environment. The parameter `issuer_id` is no longer required for requests with type `direct`. + ## How to test 1. Under **Authentication** > **Query**, enter an [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. diff --git a/api/multisafepay-api/listpaymentmethods.md b/api/multisafepay-api/listpaymentmethods.md index e4d8cc1b4..cbc981d0a 100644 --- a/api/multisafepay-api/listpaymentmethods.md +++ b/api/multisafepay-api/listpaymentmethods.md @@ -1,9 +1,17 @@ --- title: List payment methods category: 62430422470152003dc86e53 -slug: listpaymentmethods +slug: listpaymentmethods-1 --- +### Update iDeal 2.0 + +> ⚠️ Note: +> +> Upon our migration to iDeal 2.0, the issuer is selected within the iDeal environment. The parameter `issuer_id` is no longer required for requests with type `direct`. +> +> In the `additional_data` object, `issuers` will not be returned. + ## How to test 1. Under **Authentication** > **Bearer**, enter an [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. diff --git a/api/multisafepay-api/listtransactions.md b/api/multisafepay-api/listtransactions.md index 0918f3665..e8c73ac2e 100644 --- a/api/multisafepay-api/listtransactions.md +++ b/api/multisafepay-api/listtransactions.md @@ -6,9 +6,9 @@ slug: listtransactions ## How to test -1. Under **Authentication** > **Query**, enter: - - To list all transactions for your **account**, your account API key from your **TEST** account. - - To list all transactions for your **site**, your relevant site [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. +1. Under **Authentication** > **Query**: + - Enter your **TEST account API key** to list all transactions for your **account**. To get your **TEST** account API key, email . + - Enter the relevant website or terminal group [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account to list all transactions for a specific **website** or **terminal group**. 2. Click **Try it!** ❗️ Never use a live API key! diff --git a/api/multisafepay-api/listubos.md b/api/multisafepay-api/listubos.md new file mode 100644 index 000000000..a5cee26d8 --- /dev/null +++ b/api/multisafepay-api/listubos.md @@ -0,0 +1,9 @@ +--- +title: List UBO +category: 62430422470152003dc86e53 +slug: listaffiliateubos +--- + +## Authentication + +Authentication for this endpoint requires an account **API key**. To obtain your account **API key**, email . \ No newline at end of file diff --git a/api/multisafepay-api/updatesite.md b/api/multisafepay-api/updatesite.md index d4ef7cd08..6e0f3ccf7 100644 --- a/api/multisafepay-api/updatesite.md +++ b/api/multisafepay-api/updatesite.md @@ -6,9 +6,10 @@ slug: updatesite ## How to test -1. Under **Authentication** > **Query**, enter an [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. -2. Under **Path params**, enter the site ID. -3. Click **Try it!** + +1. Under **Authentication** > **Query**, enter a website or a terminal group [API key](/docs/sites#site-id-api-key-and-security-code) from your **TEST** account. +2. Under **Path params**, enter the website or terminal group ID. +3. Click **Try it!** ❗️ Never use a live API key! diff --git a/content/accounting/accounting-integrations.md b/content/accounting/accounting-integrations.md index 31c93d4bc..1f71619fd 100644 --- a/content/accounting/accounting-integrations.md +++ b/content/accounting/accounting-integrations.md @@ -74,7 +74,7 @@ For middleware solutions to automate processes and efficiently exchange data bet For import instructions, see e-Boekhouden – Contact . -To add MultiSafepay [payment links](/docs/payment-links/) to e-Boekhouden invoices to let customers pay directly, see e-Boekhouden – How do I insert a payment link or image in my invoices . +To add MultiSafepay [payment links](/docs/payment-links/) to e-Boekhouden invoices to let customers pay directly, see e-Boekhouden – How do I insert a payment link or image in my invoices . ### PSP Betalingen integration @@ -87,215 +87,282 @@ To connect your MultiSafepay account to e-Boekhouden, see PSP betalingen – --- +# Exact Online - -
+
Exact Globe and Online can integrate with MultiSafepay directly to export relevant transaction data via their API, or you can manually export MultiSafepay [accountant exports](/docs/reports#accountant-export) (MT940 format). -# Exact + \#Exact Online -Exact Globe and Online can integrate with MultiSafepay directly to export relevant transaction data via their API, or you can manually export MultiSafepay [accountant exports](/docs/reports#accountant-export) (MT940 format). +Integration is available for Exact Online accounts with type "Accounting". -### Automated exports +## Automated exports + 
+ How to automate exports with Exact Online -
+ +  To grant MultiSafepay permission to access your Exact Online account: -1. Sign in to your MultiSafepay dashboard . -2. Go to **Reports** > **Accounting integrations** > **Exact Online** > **Configure**. - You are redirected to Exact Online. -3. Enter your email address and Exact Online password, and then click **Next**. - A list of required permissions is displayed. -4. Grant MultiSafepay access to Exact Online only or Exact Online and future companies. -5. Select the checkbox to accept the Exact Online terms and conditions. -6. Click **Allow**. - You are redirected to your MultiSafepay dashboard. - ✅   You have successfully granted MultiSafepay access permissions. +Sign in to your MultiSafepay dashboard . +Go to **Reports** > **Accounting integrations** > **Exact Online** > **Configure**.   +   You are redirected to Exact Online. + +- Enter your email address and Exact Online password, and then click **Next**.   +    A list of required permissions is displayed. +- Grant MultiSafepay access to Exact Online only or Exact Online and future companies. +- Select the checkbox to accept the Exact Online terms and conditions. + Click **Allow**.   +- You are redirected to your MultiSafepay dashboard.   + +   ✅   You have successfully granted MultiSafepay access permissions. -❗️If you delete or modify information in Exact Online, exports will fail. If you encounter an error, email [support@multisafepay.com](mailto:support@multisafepay.com) +  + +❗️If you delete or modify information in Exact Online, exports will fail. If you encounter an error, email [support@multisafepay.com](+support@multisafepay.com+)
+
+ How to schedule automated exports -
-1. In your dashboard, under **Schedule export**, toggle the **Enabled/Disabled** radio button to **Enabled**. -2. Click **Save**. - ✅   The scheduled export appears below. +In your dashboard, under **Schedule export_, toggle the _**Enabled/Disabled** radio button to **Enabled**. +Click **Save\*\*.   +   ✅   The scheduled export appears below. -- Exports start the day **after** you set the schedule. -- You can only have 1 scheduled export queued at a time. -- You can view the status of previous exports under **Export history**. If exports are failing, email [support@multisafepay.com](mailto:support@multisafepay.com) -- Export data for a specified time period **once only** to avoid duplicate data in Exact. +  -*** +Exports start the day **after** you set the schedule. +You can only have 1 scheduled export queued at a time. +You can view the status of previous exports under **Export history**. If exports are failing, email [support@multisafepay.com](+support@multisafepay.com+) +Export data for a specified time period **once only** to avoid duplicate data in Exact.   + +  To enable/disable exports: -In your dashboard, under **Schedule export**, toggle the **Enabled/Disabled** radio button as needed. +- In your dashboard, under **Schedule export_, toggle the _**Enabled/Disabled\*\* radio button as needed. ❗️You must add the data for periods when exports are disabled to Exact Online **manually**, otherwise it is lost. +
-### Financial year + +## Financial year + + 
+ How to add a new financial year -
-1. Sign in to your Exact Online account. -2. On the navigation menu > click **sample company Exact online** > **Master Data**. -3. Under **Financial** > select **Period-data table**. -4. Under **Financial years** page > click on **New** > **Create**
Create new financial year pop-up screen appears. -5. Click **Close**. + + +Sign in to your Exact Online account. +On the navigation menu > click  **sample company Exact online** > **Master Data**. +Under **Financial** > select **Period-data table**. +Under **Financial years** page > click on **New** >  **Create**
Create new financial year pop-up screen appears. +Click **Close**. ❗️You must add the financial year to Exact Online every year. Otherwise, your exports will fail. +
-### Manual imports + +## Manual imports +
+ Prerequisites -
-- Exact Basic / Standard package does **not** support the MT940 import function. You need at least Exact Advanced. -- Lightspeed users must request Lightspeed to make an adjustment to make sure order numbers appear in the correct fields in Exact Online to successfully match the MultiSafepay MT940. -- Exact Globe and Exact Online both import and match MultiSafepay MT940 reports provided that: - - Your accounting package can process MT940 files. - - The order numbers in the MT940 files also appear in the correct invoice fields in your accounting platform. - - The customer's name and order amounts that appear in the exported MT940 files match your accounting platform. +  -*** +Exact Basic / Standard package does **not** support the MT940 import function. You need at least Exact Advanced.   +Lightspeed users must request Lightspeed to make an adjustment to make sure order numbers appear in the correct fields in Exact Online to successfully match the MultiSafepay MT940. +Exact Online imports and matches MultiSafepay MT940 reports provided that: +  - Your accounting package can process MT940 files. + +  \- The order numbers in the MT940 files also appear in the correct invoice fields in your accounting platform. + +  \- The customer's name and order amounts that appear in the exported MT940 files match your accounting platform. + +  
+ +
+ How to import manually -
-1. Provide Exact with an additional international bank account number (IBAN). This can be a dummy (placeholder) IBAN. +  - - Go to IBAN Calculator – Calculate an IBAN . - - From the **Country** list, select **The Netherlands**. - - Under **Bank Code**, enter a bank, e.g. ING Group. - - In the **Account number** field, enter any 7 digits. - - Click **Calculate IBAN**. - A dummy IBAN and BIC code are generated. +- Provide Exact with an additional international bank account number (IBAN). This can be a dummy (placeholder) IBAN. -2. Submit the IBAN to the relevant platform: +  - **Exact Globe** +   \- Go to IBAN Calculator – Calculate an IBAN . - - Sign in and go to **Bank accounts**. - - Click **New**. - - Under **Type**, select **Payment service provider**. - - Enter the dummy IBAN and select the same bank as before, e.g. ING Group. - - Click **Save**. - You can now register all transactions linked to this IBAN. +   \- From the **Country** list, select **The Netherlands**. - **Exact Online** +   \- Under **Bank Code**, enter a bank, e.g. ING Group. - - Sign in and go to **Financial** > **Banking & Cash** > **Bank accounts** > **Overview**. - - Click **New**. - - Enter your dummy IBAN, and then click **Save**. - You can now register all transactions linked to this IBAN. +   \- In the **Account number** field, enter any 7 digits. -3. Export a MT940 accountant export from your MultiSafepay dashboard. +   \- Click **Calculate IBAN**.   - - Sign in to your MultiSafepay dashboard . - - Go to **Reports** > **Accountant export**: - - From the **Date selection** list, select a date range. - - From the **Currency** list, select the currency. - - From the **Report type** list, select **MT940**. - - For the **Group costs in 1 record** toggle, set to: - - **Yes:** Show only the total of all MultiSafepay transaction fees for the selected timeframe. - - **No:** List each MultiSafepay fee below the matching transaction. - - Click **Advanced options:** - - In the **Bank Account / IBAN** field, enter the dummy IBAN. - - In the **BIC** field, enter the dummy BIC code. +     A dummy IBAN and BIC code are generated. -4. Import the MT940 accountant export into Exact Online. +  + +- Submit the IBAN to the relevant platform + +   **Exact Online** - - Sign in to your Exact Online account. - - Go to **Financial** > **Banking & Cash** > **Statements** > **Import**. - - Click **Choose File**, and then select the MT940 file you want to upload. - - Click **Import**. -*** + +   \- Sign in and go to **Financial** > **Banking & Cash** > **Bank accounts** > **Overview**. + +   \- Click **New**. + +   \- Enter your dummy IBAN, and then click **Save**.   + +     You can now register all transactions linked to this IBAN. + +Export a MT940 accountant export from your MultiSafepay dashboard. + + + +   \- Sign in to your MultiSafepay dashboard . + +   \- Go to **Reports** > **Accountant export**:   + +     \- From the **Date selection** list, select a date range. + +     \- From the **Currency** list, select the currency. + +     \- From the **Report type** list, select **MT940**. + +   \- For the **Group costs in 1 record** toggle, set to:   + +     \- **Yes:** Show only the total of all MultiSafepay transaction fees for the selected timeframe. + +     \- **No:** List each MultiSafepay fee below the matching transaction. + +   \- Click **Advanced options:** + +     \- In the **Bank Account / IBAN** field, enter the dummy IBAN. + +     \- In the **BIC** field, enter the dummy BIC code. + +  + +- Import the MT940 accountant export into Exact Online. + +  + +   \- Sign in to your Exact Online account. + +   \- Go to **Financial** > **Banking & Cash** > **Statements** > **Import**. + +   \- Click **Choose File**, and then select the MT940 file you want to upload. + +   \- Click **Import**. + +  
+ + -### Denovit integration +  + +## Denovit integration\* + +  Denovit automates payment link into Exact invoices.
+ How to set up Denovit -
-1. Sign in to your Denovit account. -2. Go to your **Dashboard**, and then select the **Paylink** module. -3. Connect to your Exact account. -4. Under **PSP settings**, enter your [MultiSafepay API key](/docs/sites#site-id-api-key-and-security-code) and the payment conditions you use in Exact. -5. Adjust other settings as relevant, e.g. personalize your email template, thank-you page, or notification email to improve customer experience. +Sign in to your Denovit account. +Go to your **Dashboard_, and then select the _**Paylink** module. +Connect to your Exact account. +Under **PSP settings\*\*, enter your [MultiSafepay API key](/docs/sites#site-id-api-key-and-security-code) and the payment conditions you use in Exact. +Adjust other settings as relevant, e.g. personalize your email template, thank-you page, or notification email to improve customer experience. + +  For each new invoice in Exact, if you: -- **Email:** The customer receives a second email containing a payment link, in addition to the normal email. -- **Print and process:** The customer receives an email containing a payment link. + +**Email:** The customer receives a second email containing a payment link, in addition to the normal email. +**Print and process:** The customer receives an email containing a payment link. + *** +  + To add MultiSafepay [payment links](/docs/payment-links/) into Exact invoices, see Denovit – Payment link module . +  +
-### xCore integration +  + +xCore integration\* + xCore offers two reconciliation apps that retrieve all payment details from MultiSafepay for the day and automatically match each payment with its corresponding open item in Exact. +  For more information, see xCore – Afletteren 2.0 Exact Online with MultiSafepay . -*** - # King Business Software King Business Software supports MultiSafepay [accountant exports](/docs/reports#accountant-export) (MT940 format). @@ -393,7 +460,7 @@ You must first provide Twinfield with an additional international bank account n -✅   **Tip!** For a free 30-day trial including all accounting functions, see Twinfield – Proef abonnement aanvragen . +  **💡 Tip!** For a free 30-day trial including all accounting functions, see Twinfield – Proef abonnement aanvragen .
@@ -484,7 +551,7 @@ Provide Duopact with your MultiSafepay [site API key](/docs/sites#site-id-api-ke 3. Go to **Bankmutaties** > **MultiSafepay**. 4. Click the green button under the **Status** tab. -📘 **Note:** Manually importing transactions doesn't affect automatic imports. +**⚠️ Note:** Manually importing transactions doesn't affect automatic imports. diff --git a/content/accounting/reconciliation-via-api.md b/content/accounting/reconciliation-via-api.md index f6403acef..eb969ef7a 100644 --- a/content/accounting/reconciliation-via-api.md +++ b/content/accounting/reconciliation-via-api.md @@ -7,33 +7,63 @@ slug: 'api-reconciliation' --- The transactions API endpoint returns details about your transactions. You can use it to automate reconciliation and gain insight into your transactions. -See API reference – [Get transaction](/reference/gettransaction/). +See API reference for individual transactions – [Get transaction](/reference/gettransaction/). + +See API reference to list transactions - [List transactions](/reference/listtransactions/). + +# Authentication + +To authenticate your API requests, you need to provide the correct API key . The type of key required depends on the request: + +- For [Get transaction](/reference/gettransaction/) requests, use the **website API key** of the website where the transaction was made. +- For [List transactions](/reference/listtransactions/) requests, use an **account API key** to list all transaction for an acount. Use a **website API key** to list transactions for a specific website. # Use cases +## Retrieve individual transactions + +Enter the `transaction_id` to retrieve details for a single transaction. + +**Example** + +```curl +curl -X GET "https://testapi.multisafepay.com/v1/json/{transaction_id}" / +--header "accept: application/json" / +--header "api_key: " / +``` + ## Overview of all transactions Use the optional parameters to filter transactions. -**Sample request:** -``` -curl -X GET "https://testapi.multisafepay.com/v1/json/transactions" --header "accept: application/json" --header "api_key: " +**Example** + +```curl +curl -X GET "https://testapi.multisafepay.com/v1/json/transactions" / +--header "accept: application/json" / +--header "api_key: " / ``` ## Accounting reconciliation Reconciliation may be required by law, and automating the process saves time and reduces errors. -**Sample request:** -``` -curl -X GET "https://testapi.multisafepay.com/v1/json/transactions?completed_from=2021-01-01&completed_until=2021-02-01" --header "accept: application/json" --header "api_key: " +**Example** + +```curl +curl -X GET "https://testapi.multisafepay.com/v1/json/transactions?completed_from=2021-01-01&completed_until=2021-02-01" / +--header "accept: application/json" / +--header "api_key: " / ``` ## Overview of paid/unpaid refunds -**Sample request:** -``` -curl -X GET "https://testapi.multisafepay.com/v1/json/transactions?type=refund" --header "accept: application/json" --header "api_key: " +**Example** + +```curl +curl -X GET "https://testapi.multisafepay.com/v1/json/transactions?type=refund" / +--header "accept: application/json" / +--header "api_key: " / ```
diff --git a/content/accounting/reports.md b/content/accounting/reports.md index 65563b2c6..7cd758311 100644 --- a/content/accounting/reports.md +++ b/content/accounting/reports.md @@ -6,6 +6,10 @@ hidden: false slug: 'reports' --- +Reports can be generated via your Merchant Dashboard, or received in a [subscription](/docs/reports#set-up-automated-reports). + +Note: You can only retrieve data from approximately two years back. + # Accountant export The accountant export lists all successful incoming and outgoing transactions, including the: @@ -49,7 +53,7 @@ The accountant export lists all successful incoming and outgoing transactions, i | Paymenttype | A MultiSafepay fee, or the payment method | | Description 2-4 | Descriptions of the order | | Tr status | The <> | -| Ms description | The site name | +| Ms description | The site name, or name of the terminal group | | Mt merchanttransactionid | Your unique identifier for the order | | Mt cust firstname | The customer’s first name | | Mt cust lastname | The customer’s last name | @@ -253,7 +257,7 @@ This report provides an overview (in Excel format) of the specific transactions 2. Go to **Reports** > **Daily balance**. 3. Under **Payout ID** for the relevant date, click the green **Export** icon. -✅   **Tip!** You must have completed at least one payout to generate a payout report. +  **💡 Tip!** You must have completed at least one payout to generate a payout report. @@ -407,9 +411,7 @@ To view the autogenerated reports in your -How to filter using N-Codes -
+ | N-Code | Transaction type | |---|---| @@ -447,11 +449,20 @@ To identify transactions in reports by payment method, use the following N-codes | N109 | [KBC](/docs/cbc-kbc/) | | N913 | FEE | - +
---- +## Troubleshooting + +### Data range not applied + +In some cases, the custom range selected for your report is not applied immediately. This can usually be solved by either accessing from a different browser, or deleting your cookies / cache data. + +### Payout report not generated + +Note: The payout report is only available for automated withdrawals. + [block:html] { diff --git a/content/checkout/customization.md b/content/checkout/customization.md index ff8057641..f4ed6d146 100644 --- a/content/checkout/customization.md +++ b/content/checkout/customization.md @@ -73,49 +73,112 @@ The payment component now looks like this: # Via the dashboard 1. Sign in to your
MultiSafepay dashboard . -2. Go to **Sites**, and then click the relevant site. -3. On the **Site profile** page, under **Style your checkout solution**, for **Payment component** click **Edit**. +2. Go to **Websites**, and then click the relevant website. +3. On the **Website profile** page, under **Style your checkout solution** > **Payment component**, click **Edit**. 4. On the **Components settings** page, under **Preview - Default**, select whether you want to: + - Apply the styling from another saved template. - Edit an existing template. - Style a new single payment method component. - Style a new multiple payment method component. - View the style in JSON format. -5. Under **Configure page style**, style the: + +5. Under **Configure page style**, you can customize the appearance of your payment components. Click on each section below to expand the options:
- Container + Template simulator
+ The template simulator provides a preview of your payment page. Here, you can: - - To set the color of the container background, in the **Background color** field, enter the Hex color . - - To set the font for the field labels, from the **Font family** list, select a font. + - Set the Hex color for the background and text. + - Set the size in pixels (px) the font. + - Set the font family, style and weight. -
+
+ +
- Fields + Payment methods
- - Set the Hex color for the background, placeholder text, label text, text entered by the customer, and the borders. - - Set the size in pixels (px) for the labels, font, border radius, and box shadow. + Customize the look of all payment methods and forms. Here, you can: + + - Set the Hex color for the background, text, and borders. You can also set a color for when the user hovers over each payment method. + - Set the size in pixels (px) for the font, border width and radius, and box shadow. + - Set the font family, style and weight. + - Set the border style. + +
-
- Settings for iDEAL issuers +
+ Payment form
- - To add the default padding, border, and labels for the issuers container, select the **Embed mode** checkbox. - - To specify the layout of the issuers, from the **iDEAL issuer selection** list, choose **Select button**, **List**, or **Dropdown**. + Customize the appearance of your payment forms using the settings below. These options are divided into two categories: + + Under **General**: + + - Set the Hex color code for general background color, text, border, links and labels. + - Set the size in pixels (px) for the labels. + - Set the label's font weight. + +
+ + Under **Inputs**: + + - Set the Hex color code for the input's background, text, borders, placeholder text, focus and errors. + - Set the size in pixels (px) for the input's font, border width and radius. + - Set the font family, style and weight. Set the border style. + +
- 6. To set this as your default template, select the **Set as default template** checkbox. +
+ Gateways settings +
+ + Customize the color and text for **Apple Pay** and **Google Pay** payment components. + To preview the changes, go to **Review - Default**, click **Select component view** > **Express methods (Google & Apple Pay)**. + + - Click on the **Style Apple Pay** checkbox to enable customization for **Apple Pay**. + - Click on the **Style Google Pay** checkbox to enable customization for the **Google Pay**. + +
+
+ +
+ Settings +
+ + - Click the **Embed mode** checkbox to embed your payment component into your page. Enabling this settings will disable background and border customization for payment forms. Inputs can still be customized. + **⚠️ Note:** This only applies to **single components**. + - Enable the **MultiSafepay Payment Button** for multiple payment components clicking the checkbox. To customize the appearance of this button, go to the **Primary Button**. + +
+ +
+ +
+ Primary button +
+ + If you've enabled the **MultiSafepay Payment Button** in the **Settings** section, you can customize its appearance: + + - Set the Hex color code for the background, text and border. You can also change the color for mouseovers. + - Set the size in pixels (px) to change font size, border width, shadow and radius. + - Set the font weight clicking the **Font weight** dropdown menu. + +
+6. To set this as your default template, select the **Set as default template** checkbox. 7. In the **Save template as** field, enter the name of the template (used as the `template_id`), and then click **Submit settings**. ---- +*** [block:html] { @@ -123,4 +186,5 @@ The payment component now looks like this: } [/block] + [Top of page](#) \ No newline at end of file diff --git a/content/checkout/fastcheckout.md b/content/checkout/fastcheckout.md index c401833ff..70a6d29cf 100644 --- a/content/checkout/fastcheckout.md +++ b/content/checkout/fastcheckout.md @@ -2,7 +2,7 @@ title: 'FastCheckout' category: 62bd999547298d001abc714c order: 0 -hidden: false +hidden: true slug: 'fastcheckout' --- diff --git a/content/checkout/multiple.md b/content/checkout/multiple.md index 57e8379a7..c3801d83a 100644 --- a/content/checkout/multiple.md +++ b/content/checkout/multiple.md @@ -1,32 +1,40 @@ --- -title: "Multiple payment methods" +title: 'Multiple payment methods' category: 62bd999547298d001abc714c order: 2 hidden: false slug: 'payment-component-multiple' -parentDoc: 62a848399bb3eb004023f291 ---- +parentDoc: 62a848399bb3eb004023f291 +--- This technical manual is for integrating a payment component using multiple payment methods. - -# 1. Add the HTML elements +
-1. Add the component's CSS to the `` of your checkout page: - ```html - - ``` +Payment components examples -2. Add the component's script to the bottom of the `` of your checkout page: - ```html - - ``` +
-3. Add the DOM element for the component's UI in the `` of your checkout page: - ```html -
- ``` + + + +# 1. Add the HTML elements + +1. Add the component's CSS to the `` of your checkout page: + ```html + + ``` + +2. Add the component's script to the bottom of the `` of your checkout page: + ```html + + ``` + +3. Add the DOM element for the component's UI in the `` of your checkout page: + ```html +
+ ``` ## Choose your payment button @@ -36,57 +44,66 @@ Decide if you want to: - Use an existing button, e.g. if your checkout already includes one. - Create your own button: - ```html - - ``` - + ```html + + ``` + # 2. Initialize the component - + ## Generate an API token + Payment components require a MultiSafepay API token. See API reference – [Generate an API token](/reference/generateapitoken/). - -✅   **Tip!** To keep your API key private, request the token from your own server. - + +**💡 Tip!** To keep your API key private, request the token from your own server. + ## Construct the component object - + 1. Initialize an `orderData` object containing information about the customer's <> collected during the checkout process: - ```javascript - const orderData = { - currency: 'EUR', - amount: 10000, - customer: { - locale: 'en', - country: 'NL' - }, - payment_options: { - settings: { - connect: { - group_cards: true - } - } - }, - }; - ``` - + + ```javascript + const orderData = { + currency: 'EUR', + amount: 10000, + customer: { + locale: 'en', + country: 'NL' + }, + payment_options: { + settings: { + connect: { + group_cards: true, + qr: { + enabled: true, + autoload: false + } + } + } + }, + }; + ``` +
Properties
- | Key | Required | Value | - |---|---| - | amount | Yes | The value of the order.
Format: Number without decimal points, e.g. 100 euro is formatted as `10000` | - | currency | Yes | The currency of the order.
Format: ISO-4217 , e.g. `EUR` | - | customer.country | No | The customer's country code. Used to validate the availability of the payment method.
Format: ISO-3166-1 alpha-2 , e.g. `NL` | - | customer.locale | No | The customer's language. Sets the language of the payment component UI.
Format: ISO 639
Supported languages: `en`, `es`, `fr`, `it`, `nl` | - | customer.reference | Yes, for recurring payments | Your unique customer reference. | - | payment_options.settings.connect.group_cards | No | Groups all card payment methods as a single option in the list of payment methods.
Format: Boolean
Default: `false`.| - | recurring.model | Yes, for recurring payments | The [recurring model](/docs/recurring-payments/). | - | template.settings.embed_mode | No | A template designed to blend in seamlessly with your ecommerce platform.
Format: Boolean | -
+ | Key | Required | Value | + |----------------------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `amount` | Yes | The value of the order.
**Format**: Number without decimal points, e.g., 100 euro is formatted as `10000`. | + | `currency` | Yes | The currency of the order.
**Format**: ISO-4217 , e.g., `EUR`. | + | `customer.country` | No | The customer's country code. Used to validate the availability of the payment method.
**Format**: ISO-3166-1 alpha-2 , e.g., `NL`. | + | `customer.locale` | No | The customer's language. Sets the language of the payment component UI.
**Format**: ISO 639 .
Supported languages: `en`, `es`, `fr`, `it`, `nl`. | + | `customer.reference` | Yes, for recurring payments | Your unique customer reference.
(\*currently not supported for QR payments.) | + | `payment_options.settings.connect.group_cards`| No | Groups all card payment methods as a single option in the list of payment methods.
**Format**: Boolean
**Default**: `false`. | + | `payment_options.settings.connect.qr` | No | Allows QR code to be rendered for iDEAL and Bancontact: `enabled`.
`autoload` allows automatic display of QR code, and subsequent redirect for these methods. **Default**: `true`. | + | `recurring.model` | Yes, for recurring payments | The [recurring model](/docs/recurring-payments/). | + | `template.settings.embed_mode` | No | A template designed to blend in seamlessly with your ecommerce platform.
**Format**: Boolean. | + +
+
How to process recurring payments
@@ -96,11 +113,10 @@ Payment components require a MultiSafepay API token. See API reference – [Gene Upon subsequent payments, customers can select their stored payment details and pay with a single click. To process recurring payments in your payment component: - - Add the `cardOnFile` recurring model - - Make [List tokens](/reference/listtokens) request from your server and provide a`tokens` + - Make [List tokens](/reference/listtokens) request from your server and provide a`tokens`
- ```JavaScript + ```javascript const orderData = { currency: 'EUR', amount: 10000, @@ -108,63 +124,65 @@ Payment components require a MultiSafepay API token. See API reference – [Gene locale: 'en', country: 'NL' }, - template : { - settings: { - embed_mode: true + template: { + settings: { + embed_mode: true + } } - } }; - + const recurringData = { - "model": "cardOnFile", - "tokens": [ - { - "token": "AvqeOjgdm8A", - "code": "IDEAL", - "display": "xxxxxxxxxNL81PSTB0000012345", - "bin": null, - "name_holder": "Schilder", - "expiry_date": "", - "expired": 0, - "last4": null, - "model": "cardOnFile" - }, - { - "token": "BcEWsknWsYg", - "code": "MASTERCARD", - "display": "Card xxxx xxxx xxxx 4444", - "bin": 555555, - "name_holder": "Holder", - "expiry_date": 2412, - "expired": 0, - "last4": 4444, - "model": "cardOnFile" - }]}; - ``` + model: "cardOnFile", + tokens: [ + { + token: "AvqeOjgdm8A", + code: "IDEAL", + display: "xxxxxxxxxNL81PSTB0000012345", + bin: null, + name_holder: "Schilder", + expiry_date: "", + expired: 0, + last4: null, + model: "cardOnFile" + }, + { + token: "BcEWsknWsYg", + code: "MASTERCARD", + display: "Card xxxx xxxx xxxx 4444", + bin: 555555, + name_holder: "Holder", + expiry_date: 2412, + expired: 0, + last4: 4444, + model: "cardOnFile" + } + ] + }; + ``` > ✅ Success - > + > > Your payment component now automatically renders a checkbox where customers can choose whether they would like to store their payment details for future visits. Recurring payments are supported for all card payments. - 📘 **Note:** To test card details, see Test payment details – [Credit and debit cards](/docs/testing#credit-and-debit-cards). + **⚠️ Note:** To test card details, see Test payment details – [Credit and debit cards](/docs/testing#credit-and-debit-cards). - To use recurring payments in your payment component, you need to enable recurring payments for your account. If you haven't already, email + To use recurring payments in your payment component, you need to enable recurring payments for your account. If you haven't already, email [\[sales@multisafepay.com\](mailto:sales@multisafepay.com)](mailto:[sales@multisafepay.com](mailto:sales@multisafepay.com))
- - 📘 **Note:** We use the `orderData` object to ensure the payment methods are enabled, e.g. for the currency, country, and order value. + + **⚠️ Note:** We use the `orderData` object to ensure the payment methods are enabled, e.g. for the currency, country, and order value. 2. Construct a `PaymentComponent` object in the `test` environment using the `order` object and your API token: - ```javascript - PaymentComponent = new MultiSafepay({ - env: 'test', - apiToken: apiToken, - order: orderData - }); - ``` + ```javascript + PaymentComponent = new MultiSafepay({ + env: 'test', + apiToken: apiToken, + order: orderData + }); + ``` ## Initialize the component @@ -176,17 +194,17 @@ Initialize the component using: ```javascript PaymentComponent.init('dropin', { - container : '#MultiSafepayPayment', - onSelect : state => { - console.log('onSelect', state); - }, - onError : state => { + container: '#MultiSafepayPayment', + onGetQR: function (state) { + console.log('onGetQR', state); + }, + onError: function (state) { console.log('onError', state); }, - onLoad : state => { - console.log('onLoad', state); + onEvent: function (state) { + console.log('onEvent', state); }, - onSubmit : state => { + onSubmit: function (state) { if(PaymentComponent.hasErrors()) { let errors = PaymentComponent.getErrors(); console.log(errors); @@ -203,9 +221,18 @@ PaymentComponent.init('dropin', { if(response.success) { PaymentComponent.init('redirection', { order: response.data - }); + } }); + }, + onValidation: function (state) { + console.log('onValidation', state); + }, + onSelect: function (state) { + console.log('onSelect', state); + }, + onLoad: function (state) { + console.log('onLoad', state); } }); ``` @@ -218,33 +245,45 @@ PaymentComponent.init('dropin', { ```javascript PaymentComponent.init('dropin', { - container : '#MultiSafepayPayment', - onSelect : state => { + container: '#MultiSafepayPayment', + onSelect: state => { console.log('onSelect', state); }, - onError : state => { + onError: state => { console.log('onError', state); }, - onLoad : state => { + onLoad: state => { console.log('onLoad', state); } }); -``` +``` +
-In the method call, create event handlers for the following events: +In the method call, create event handlers for the following events:
Events
-| Event | Event handler | -|---|---| -|`onError`| Occurs when there is an error in the payment component. | -|`onLoad`| Occurs when the payment component UI is rendered. | -|`onSelect`| Occurs when the customer selects an <> with iDEAL. | -|`onSubmit`| Occurs when the customer clicks the payment button (when using the button generated by the component). | -|`onValidation`| Occurs when form validation changes. Can be used to disable the payment button until all fields are validated. | +| Event | Event Handler | +|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| +| `onError` | Occurs when there is an error in the payment component. | +| `onGetQR` | Occurs when the QR is rendered in the payment component. | +| | **Example**: | +| | ```javascript | +| | onGetQR: e => { | +| | createOrder(e.orderData).then(response => { | +| | PaymentComponent.setQR({ | +| | order: response.data | +| | }); | +| | }); | +| | }, | +| `onLoad` | Occurs when the payment component UI is rendered. | +| `onSelect` | Occurs when the customer selects an *issuer* with iDEAL. | +| `onSubmit` | Occurs when the customer clicks the payment button (when using the button generated by the component). | +| `onValidation` | Occurs when form validation changes. Can be used to disable the payment button until all fields are validated. | +
@@ -254,12 +293,14 @@ The `PaymentComponent` has the following methods: Methods
-| Method | Description | -|---|---| -|`getErrors`| Returns error messages or codes. | -|`hasErrors`| Returns a boolean value about whether errors were registered. | -|`getOrderData`| Returns an object containing a `payment_data` object and the full order configuration. | -|`getPaymentData`| Returns a `payment_data` object with a `payload` containing the customer's payment details, used to [create orders](/docs/payment-component-single/), and the `gateway`.| +| Method | Description | +|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `getErrors` | Returns error messages or codes. | +| `hasErrors` | Returns a boolean value about whether errors were registered. | +| `getOrderData` | Returns an object containing a `payment_data` object and the full order configuration. | +| `getPaymentData`| Returns a `payment_data` object with a `payload` containing the customer's payment details, used to [create orders](/docs/payment-component-single/), and the `gateway`. | +| `setQR()` | Returns a boolean to set up the QR code. Requires argument `orderData`.
If `orderData` is not sent, the payment will not be associated with the order. | + @@ -267,14 +308,13 @@ The `PaymentComponent` has the following methods: ## Handle the interaction -✅   **Tip!** This step only applies if using your own or an existing payment button. +**💡 Tip!** This step only applies if using your own or an existing payment button. 1. Assign the button element to a variable: - ```javascript - const paymentButton = document.querySelector('#payment-button'); - ``` - + ```javascript + const paymentButton = document.querySelector('#payment-button'); + ``` The `payment_data` includes the following parameters: @@ -288,68 +328,69 @@ The `payment_data` includes the following parameters: ```
- Parameters -
+Parameters +
-| Key | Required | Description| -| ---------- | :------- | ------| +| Key | Required | Description | +| ---------- | :------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `gateway` | Yes | The unique `gateway_id` to redirect the customer to the specific payment method. | -| `payload` | Yes | Information required to process the payment.
**Note:** Do not edit or modify the `payload` or otherwise the payment fails. | +| `payload` | Yes | Information required to process the payment.
**⚠️ Note:** Do not edit or modify the `payload` or otherwise the payment fails. | | `tokenize` | Optional | For [recurring payments](/docs/recurring-payments).
If a customer selects to either save their cardholder data for future visits or use an existing token, a`payment_data.tokenize` parameter is added. | -
- -**Note:** When `payment_data.tokenize` is set to `true`you need to append `customer.reference` to the order data. +**⚠️ Note:** When `payment_data.tokenize` is set to `true`you need to append `customer.reference` to the order data.
2. Create an event handler for the payment button: - - When the customer clicks the payment button, call the component's `getPaymentData()` method. - - Send the response to your server and [create an order](#create-an-order). - - Return the reponse from your server to the client-side to redirect the customer. + - When the customer clicks the payment button, call the component's `getPaymentData()` method. + - Send the response to your server and [create an order](#create-an-order). + - Return the reponse from your server to the client-side to redirect the customer.
### Redirect the customer +You need to fetch the property payment_url, which will then - depending on the result - redirect the customer to the correct page. This may be for 3ds required cards towards the authentication step, or for frictionless / not required 3ds, towards the success page. +The handling of the payment_url lies on your side. + The component's `redirection` handler redirects the customer to the relevant page: -- If customer actions are required to complete the payment (e.g. by completing 3D Secure or iDEAL issuer authentication), the customer is redirected to the relevant page. If successful, the customer is then redirected to the `redirect_url`, i.e. the "success page". +- If customer actions are required to complete the payment (e.g. by completing 3D Secure or iDEAL issuer authentication), the customer is redirected to the relevant page. If successful, the customer is then redirected to the `redirect_url`, i.e. the "success page". - If no customer action is required to complete the payment, the customer is redirected to the `redirect_url`, i.e. the "success page". -- If the customer chooses to pay by bank transfer, the component displays the banking details needed for customers to complete payment. -- If a QR code is available for customers to complete payment on their mobile device, the component displays the QR code. - +- If the customer chooses to pay by bank transfer, the component displays the banking details needed for customers to complete payment. +- If a QR code is available for customers to complete payment on their mobile device, the component displays the QR code. + ### Avoid duplicate orders -When using your own payment button, if the customer clicks it again before they are redirected, this can create duplicate orders. +When using your own payment button, if the customer clicks it again before they are redirected, this can create duplicate orders. -To avoid duplicate orders, disable the button until you have attempted to create an order. +To avoid duplicate orders, disable the button until you have attempted to create an order. Then, check `response.success`: - If `true`, don't re-enable the button, and proceed with the redirect. -- If `false`, re-enable the button for the customer to try again. - - ``` js - paymentButton.addEventListener('click', e => { - paymentButton.addAttribute('disabled'); - if (PaymentComponent.hasErrors()) { - let errors = PaymentComponent.getErrors(); - console.log(errors); - return false; - } - createOrder(PaymentComponent.getPaymentData()).then(response => { - if(!response || !response.success) { - paymentButton.disabled = false; - console.log(response); - } else { - PaymentComponent.init('redirection', { - order: response.data - }); - } - }); - }); - ``` +- If `false`, re-enable the button for the customer to try again. + + ```js + paymentButton.addEventListener('click', e => { + paymentButton.addAttribute('disabled'); + if (PaymentComponent.hasErrors()) { + let errors = PaymentComponent.getErrors(); + console.log(errors); + return false; + } + createOrder(PaymentComponent.getPaymentData()).then(response => { + if(!response || !response.success) { + paymentButton.disabled = false; + console.log(response); + } else { + PaymentComponent.init('redirection', { + order: response.data + }); + } + }); + }); + ``` ## Create an order @@ -359,35 +400,35 @@ See API reference – [Create order](/reference/createorder/) > Payment componen # 4. Go live -To test the payment methods, see Testing payment methods - [(/docs/testing#test-payment-details). +To test the payment methods, see [Testing payment methods](/docs/testing#test-payment-details). When you're ready to process real payments, make the following changes: 1. In [Step 1: Add the elements](#1-add-the-elements), replace the test JavaScript library with the live JavaScript library: - ``` html - - ``` - Next, replace the test CSS file with the live CSS file: - ``` html - - ``` + ```html + + ``` + + Next, replace the test CSS file with the live CSS file: + + ```html + + ``` 2. In [Step 2: Construct the component object](#2-construct-the-component-object), change the environment from `test` to `live`: - ``` js - PaymentComponent = new MultiSafepay({ - env: 'live', - apiToken: apiToken, - order: orderData - }); - ``` + ```js + PaymentComponent = new MultiSafepay({ + env: 'live', + apiToken: apiToken, + order: orderData + }); + ``` 3. In [Step 3: Create an order](#3-create-an-order), change the test endpoint to the **live** endpoint: - ``` - https://api.multisafepay.com/v1/json/orders - ``` - -
+ ``` +https://api.multisafepay.com/v1/json/orders + ``` --- @@ -397,4 +438,4 @@ When you're ready to process real payments, make the following changes: } [/block] -[Top of page](#) +[Top of page](#) \ No newline at end of file diff --git a/content/checkout/payment-components.md b/content/checkout/payment-components.md index 536e16358..3e54fd682 100644 --- a/content/checkout/payment-components.md +++ b/content/checkout/payment-components.md @@ -22,33 +22,32 @@ Payment components let you embed payment methods directly into your checkout. # Payment methods You can embed a single or multiple payment methods in your checkout. +These are the supported payment methods: -
-Supported payment methods -
- -- [Bancontact](/docs/bancontact/) -- [Bank transfer](/docs/bank-transfer/) +- Banking methods: + - [Bancontact](/docs/bancontact/) + - [Bank transfer](/docs/bank-transfer/) + - [Direct debit](/docs/direct-debit/) + - [iDEAL](/docs/ideal/) + - [MyBank](/docs/mybank/) - <>: - - [E-invoicing](/docs/e-invoicing/) - - [Klarna](/docs/klarna/) - - [In3](/docs/in3/) - - [Pay After Delivery](/docs/pay-after-delivery/) - - [Pay After Delivery installments](/docs/pay-after-delivery-installments/) - - [Riverty](/docs/riverty/) - - [Zinia](/docs/zinia/) -- Cards: - - [American Express](/docs/card-payments/) - - [Mastercard](/docs/card-payments/) - - [Visa](/docs/card-payments/) - - [Maestro](/docs/card-payments/) -- [iDEAL](/docs/ideal/) -- [MyBank](/docs/mybank/) -- [PayPal](/docs/paypal/) -- [Direct debit](/docs/direct-debit/) -- [Sofort](/docs/sofort/) + - [Billink](/docs/billink/) + - [E-invoicing](/docs/e-invoicing/) + - [In3](/docs/in3/) + - [Klarna](/docs/klarna/) + - [Pay After Delivery](/docs/pay-after-delivery/) + - [Pay After Delivery installments](/docs/pay-after-delivery-installments/) + - [Riverty](/docs/riverty/) + - [Zinia](/docs/zinia/) +- Cards: + - [American Express](/docs/card-payments/) + - [Maestro](/docs/card-payments/) + - [Mastercard](/docs/card-payments/) + - [Visa](/docs/card-payments/) +- Wallets: [PayPal](/docs/paypal/) -
+ +**⚠️ Note:** [Prepaid cards](/docs/prepaid-cards/) are not supported. # Card payment features diff --git a/content/checkout/payment-links.md b/content/checkout/payment-links.md index e78deb59d..a5f5ef00e 100644 --- a/content/checkout/payment-links.md +++ b/content/checkout/payment-links.md @@ -39,7 +39,7 @@ Or via your dashboard: 4. From the **Site** list, select the relevant site. 5. Under **Amount**, select the currency from the list, and then enter the whole value and cents. 6. In the **Order ID** field, enter the order ID from your webshop. - **Note:** The order ID for every payment link must be unique. + **⚠️ Note:** The order ID for every payment link must be unique. 7. In the **Description** field, enter a description of the order. 8. In the **Link expiry** field, enter the number of days for the link to remain active. Default: 30 days. 9. To send [Second Chance emails](/docs/second-chance/), select the **Second chance email** checkbox. @@ -69,7 +69,7 @@ Or via your dashboard: 2. Go to **Transactions** > **Transaction overview**, and then click the relevant transaction. 4. On the **Transaction details** page, under **Order summary**, click **Generate payment link** > **Duplicate this order**. -✅   **Tip!** The order ID must be unique. +  **💡 Tip!** The order ID must be unique.
@@ -123,7 +123,7 @@ The lifetime of a payment link is how long it remains active for the customer to To set or adjust the lifetime of a payment link, see API reference – [Create order](/reference/createorder/): `days_active` parameter. -📘 **Note:** This is different to [transaction expiration times per payment method](/reference/transaction-expiration/). +**⚠️ Note:** This is different to [transaction expiration times per payment method](/reference/transaction-expiration/). This only applies to certain payment methods: diff --git a/content/checkout/payment-pages.md b/content/checkout/payment-pages.md index 6093b8e4d..3c5e2c71a 100755 --- a/content/checkout/payment-pages.md +++ b/content/checkout/payment-pages.md @@ -105,7 +105,11 @@ Payment pages support the following languages: You can also localize payment pages to automatically filter out payment methods that are not available in the customer's country, and to display local variants. -See API reference > [Create order](/reference/createorder) > `customer` object > `locale` parameter. +The first parameter taken into account is the `country` parameter. Secondly, `locale` is checked. +If `country`is not sent, the decision is based on `locale`. + + +See API reference > [Create order](/reference/createorder) > `customer` object > `country` and `locale` parameters.
Locale codes per language and country @@ -180,7 +184,7 @@ To display all payment methods on the payment page, follow these steps: 2. Add `&methods=all` at the end of the payment link, e.g. `https://testpayv2.multisafepay.com/connect/822LtiM8RjN313Yo5C46E2cjqmuL5qVfc7w/?lang=en_NL&methods=all` 3. Redirect the customer to the adapted link. -📘 **Note:** This is not a standard option in our [ready-made integrations](/docs/our-integrations/). +**⚠️ Note:** This is not a standard option in our [ready-made integrations](/docs/our-integrations/).
@@ -200,118 +204,144 @@ If you include a `shopping_cart` object when you [create an order](/reference/cr -## Styling +## Styling -We recommend styling payment pages to be consistent with the look and feel of your site. +We recommend styling payment pages to be consistent with the look and feel of your website. ### Via the dashboard 1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**, and then click the relevant site. -3. On the **Site profile** page, under **Functionality**, click **Edit template**. -4. On the **Payment page styling** page, under **Configure page style**: - +
+ How to style the body +
-
- How to style the body -
+ Under **Configure page style** > **Body**, you can set the Hex color for the background, text, and links on the page and when the user hovers over them. - Under **Configure page style** > **Body**, you can set the Hex color for the background, text, and links on the page and when the user mouses over them. +
-
+
-
- How to style the body container -
+
+ How to style the body container +
- Under **Configure page style** > **Container**, you can set the Hex color for the background, text, labels, and links. + Under **Configure page style** > **Container**, you can set the Hex color for the background, text, labels, and links. -
+
-
- How to style the cart -
- - Under **Configure page style** > **Cart**, you can set the Hex color for the background, border, text, and labels. +
-
+
+ How to style the cart +
-
- How to style the payment form -
+ Under **Configure page style** > **Cart**, you can set the Hex color for the background, border, text, and labels. - Under **Configure page style** > **Payment form**, you can set the Hex color for the background, border, text, input border, and input labels. +
-
+
-
- How to style the buttons -
+
+ How to style the payment form +
- Under **Configure page style** > **Buttons**, you can set the Hex color for the background, border, text on the page and when moused over. + Under **Configure page style** > **Payment form**, you can set the Hex color for the background, border, text, input border, and input labels. -
+
-
- How to set a default template -
+
- If you have more than one template and want to set one as your default template, use the **Set default** option. You can also give this template a name, which is used as the `template_id`. +
+ How to style the buttons +
-
+ Under **Configure page style** > **Buttons**, you can set the Hex color for the background, border, text on the page and when hovered over. -
- How to edit saved templates -
+
- Click **Edit template** (top-right corner). +
-
+
+ How to set a default template +
-
- How to duplicate styling to another template -
+ If you have multiple templates, you can set one as your default: - - Click **Apply style from** (top-right corner). - - Select the relevant template. + - Under **Configure page style**, click **Set as default template**. + - Enter a name for your template. This will define the `template_id`. + - Click **Submit settings**. -
+
-
- How to set a default template -
+
- To set this as the default template for this site, under **Configure page style**, click **Set as default template**. +
+ How to edit saved templates +
-
+ To select a specific template you want to edit: -5. To save the finished template to the relevant site, enter a name in the **Save template as** field, and then click **Submit template**. + - Click **Edit template** at the top-right corner. + - Select the relevant template you want to edit. + - You can change the settings, name, reset to default settings or delete your template. +
+ +
+ +
+ How to duplicate styling to another template +
+ + - Select the template you want to apply the style to. + - Click **Apply style from** at the top-right corner. + - Select the relevant template. + - Click **Submit settings**. + +
+ +
+ +5. To save the finished template to the relevant website, enter a name in the **Save template as** field, and then click **Submit template**. ### Via the API You can dynamically style the payment page for specific order requests via our API. See: + - API reference – [Create order](/reference/createorder/) > Payment page/link > `payment_options` object - Recipes – Style the payment page . @@ -337,7 +367,7 @@ Some HTML tags and elements are supported and all others are stripped out. - table (width, border, bordercolor, cellpadding, cellspacing), thead, tbody, tfoot, th (width, scope, colspan, align), td (height, width, align, valign, colspan, bgcolor), tr (bgcolor, valign) - u, ul ---- +*** diff --git a/content/checkout/previous-release.md b/content/checkout/previous-release.md index fafc3d76f..13d491757 100644 --- a/content/checkout/previous-release.md +++ b/content/checkout/previous-release.md @@ -31,7 +31,7 @@ This technical manual is for integrating the previous release of the payment com ## Generate an API token Payment Components require a MultiSafepay API token. See API reference – [Generate an API token](/reference/generateapitoken/). -✅   **Tip!** To keep your API key private, request the token from your own server. +  **💡 Tip!** To keep your API key private, request the token from your own server. ## Construct the component object @@ -68,7 +68,7 @@ Payment Components require a MultiSafepay API token. See API reference – [Gene - 📘 **Note:** We use the `orderData` object to ensure the payment method is enabled and the currency, country, and order amount are supported. + **⚠️ Note:** We use the `orderData` object to ensure the payment method is enabled and the currency, country, and order amount are supported. 2. Construct a `PaymentComponent` object in the `test` environment using the `orderData` object and your API token: diff --git a/content/checkout/single.md b/content/checkout/single.md index 0c72a6fc3..4781378c0 100644 --- a/content/checkout/single.md +++ b/content/checkout/single.md @@ -36,7 +36,7 @@ Add the following elements to your checkout page: Payment Components require a MultiSafepay API token. See API reference – [Generate an API token](/reference/generateapitoken/). - ✅   **Tip!** To keep your API key private, request the token from your own server. + **💡 Tip!** To keep your API key private, request the token from your own server. ## Construct the component object @@ -129,7 +129,7 @@ Add the following elements to your checkout page: Recurring payments are supported for all card payments. - 📘 **Note:** To test card details, see Test payment details – [Credit and debit cards](/docs/testing#credit-and-debit-cards). + **⚠️ Note:** To test card details, see Test payment details – [Credit and debit cards](/docs/testing#credit-and-debit-cards). To use recurring payments in your payment component, you need to enable recurring payments for your account. If you haven't already, email [sales@multisafepay.com](mailto:sales@multisafepay.com) @@ -137,7 +137,7 @@ Add the following elements to your checkout page: -📘 **Note:** We use the `orderData` object to ensure the payment method is enabled, and the currency, country, and order amount are supported. +**⚠️ Note:** We use the `orderData` object to ensure the payment method is enabled, and the currency, country, and order amount are supported. 2. Construct a `PaymentComponent` object in the `test` environment using the `order` object and your API token: @@ -148,7 +148,7 @@ const PaymentComponent = new MultiSafepay({ }); ``` -📘 **Note:** To use recurring payments in your payment components, initialize the component using the `recurring` object. +**⚠️ Note:** To use recurring payments in your payment components, initialize the component using the `recurring` object. ## Initialize the component @@ -202,7 +202,7 @@ const PaymentComponent = new MultiSafepay({ - **Note:** The `PaymentComponent` uses the following methods: + **⚠️ Note:** The `PaymentComponent` uses the following methods:
Methods @@ -250,7 +250,7 @@ The `payment_data` includes the following parameters:
-**Note:** When `payment_data.tokenize` is set to `true`you need to append `customer.reference` to the order data. +**⚠️ Note:** When `payment_data.tokenize` is set to `true`you need to append `customer.reference` to the order data.
@@ -308,6 +308,23 @@ Use the `createOrder()` function to pass the `orderData` to your server. Create an <> from your server, appending the `payment_data` collected from the payment component UI to the order data. +#### Example + +```json + { + "type": "direct", + "order_id": "test_order_id", + "currency": "EUR", + "amount": 100, + "description": "Test Order Description", + "payment_data": + { + "payload":"payment_component_method_response", + "gateway": "CREDITCARD", + } + } +``` + See API reference – [Create order](/reference/createorder/) > Payment component. ## Redirect the customer diff --git a/content/developer/email-authentication.md b/content/developer/email-authentication.md index add63b246..6efa58777 100644 --- a/content/developer/email-authentication.md +++ b/content/developer/email-authentication.md @@ -11,7 +11,7 @@ Sender Policy Framework (SPF) records let you specify who is authorized to send 1. Through your hosting provider, domain registrar, or DNS provider, create a DNS TXT record that is named after your domain, e.g. `example.com`. 2. Add the following string your TXT record containing `v=spf1`: `include:spf.multisafepay.com` -📘 **Note:** SPF records may contain a total of 10 DNS lookups (`include` and `mx`). If you have reached this limit, add our IP addresses instead: `ip4:213.189.0.0/23 ip4:185.99.128.0/22`. +**⚠️ Note:** SPF records may contain a total of 10 DNS lookups (`include` and `mx`). If you have reached this limit, add our IP addresses instead: `ip4:213.189.0.0/23 ip4:185.99.128.0/22`. ✅ **Success!** You have created an SPF record. diff --git a/content/developer/fastcheckout-android-sdk.md b/content/developer/fastcheckout-android-sdk.md index 788bdab69..6cd2659d5 100644 --- a/content/developer/fastcheckout-android-sdk.md +++ b/content/developer/fastcheckout-android-sdk.md @@ -131,7 +131,7 @@ The customer is automatically redirected to the **Register** screen: 4. Sync Gradle. -> ✅ Success +> **✅ Success!** > You can now start using the Android SDK in your app. # How to integrate @@ -160,7 +160,7 @@ The SDK is thread safe, but you cannot access the main UI elements from backgrou #### Update the UI from a background thread in Android -📘 **Note:** For integration based on JAVA/Android versioning, see the official Android developers site – Threads . +**⚠️ Note:** For integration based on JAVA/Android versioning, see the official Android developers site – Threads . ```java … diff --git a/content/developer/fastcheckout-ios-sdk.md b/content/developer/fastcheckout-ios-sdk.md index b3a5b8f9b..bba31079a 100644 --- a/content/developer/fastcheckout-ios-sdk.md +++ b/content/developer/fastcheckout-ios-sdk.md @@ -118,7 +118,7 @@ The customer is automatically redirected to the **Register** screen: 7. Under **Embedded binaries**,click **+**. 8. Select **FastCheckoutKit.xcframework**. -> ✅ Success +> **✅ Success!** > You can now start using the FastCheckoutKit SDK in your app. # How to integrate @@ -145,7 +145,7 @@ manager.startCheckout(transactionId: "ID", host: self, onCompletion: { status, e }) ``` -> ✅ Success +> **✅ Success!** > You can now initiate a checkout and retrieve the <>. # Example diff --git a/content/developer/http-errors.md b/content/developer/http-errors.md index 563601da6..3ff811e57 100644 --- a/content/developer/http-errors.md +++ b/content/developer/http-errors.md @@ -11,7 +11,7 @@ This table lists the most common HTTP error codes and descriptions: | Error | Description | |---|---| -| HTTP 200: OK | The page is responding correctly but is missing the text `OK` in the body. | +| HTTP 204: No content | The page is responding correctly but is missing the text `OK` in the body. | | HTTP 301: Moved permanently | The page has moved permanently. Check if your [webhook endpoint](/docs/webhook/) is configured correctly in your MultiSafepay account and/or the API request. | | HTTP 302: Found | The page redirects to another location. Check if your [webhook endpoint](/docs/webhook/) is configured correctly in your MultiSafepay account and/or the API request. | | HTTP 403: Forbidden | The page appears to require a login. This often occurs in a testing environment. Either remove the login page, or add our IP ranges to your allow list. For a list of MultiSafepay IP addresses, email | diff --git a/content/developer/rounding-rule.md b/content/developer/rounding-rule.md index 163e40544..3056e52ba 100644 --- a/content/developer/rounding-rule.md +++ b/content/developer/rounding-rule.md @@ -12,7 +12,7 @@ MultiSafepay applies the following rounding rule when calculating the total cost 2. Calculate the total VAT for all items in the cart (if applicable): Multiply the total cost of each item by the VAT rate, then add the results together, rounding to 2 decimal places= VAT total. 3. Add the items total to the VAT total= Cart total. -✅   **Tip!** When rounding to 2 decimal places, always round half up . +  **💡 Tip!** When rounding to 2 decimal places, always round half up . Apply the same rounding rule in your integration to ensure: diff --git a/content/developer/troubleshooting.md b/content/developer/troubleshooting.md index 97e325230..8e9f415ec 100644 --- a/content/developer/troubleshooting.md +++ b/content/developer/troubleshooting.md @@ -166,6 +166,7 @@ The `gateway` is unavailable. This error can occur with <> requ - Check whether the payment method supports <> requests. - Ensure you specified a gateway in the create order request. - Check if the site is correctly configured for <> requests. +- For payment components, check if the correct API token is used. Do not use an API key. --- ### 1024: Transaction declined @@ -182,6 +183,8 @@ Check that the: - Customer details are correct - Customer details match the credit details +**💡 Tip!** For card payments, use the Get order request and check the response details to learn more about the decline reason. + --- ### 1024: For Cloudflare – Incorrect customer IP address diff --git a/content/getting-started/account-users.md b/content/getting-started/account-users.md index 6a81eea17..4671440e6 100644 --- a/content/getting-started/account-users.md +++ b/content/getting-started/account-users.md @@ -18,7 +18,7 @@ Your MultiSafepay account can have an unlimited number of authorized users. All | Balance hidden | Cannot view the account balance | | Orders manager | Create refunds
View all transactions
Generate payment links | | Reports manager | View all transactions and the account balance
Create and download reports
Generate payment links | -| Sites manager | View all transactions
Add and edit sites and payment pages
Style emails
Resend offline actions | +| Sites manager | View all transactions
Add and edit websites and payment pages
Add and edit terminal groups and POS terminals
Style emails
Resend offline actions | | Captures manager | View all transactions
Accept or decline uncleared transactions | # How to add and block users diff --git a/content/getting-started/api-onboarding.md b/content/getting-started/api-onboarding.md index d7302f50f..128995fb5 100644 --- a/content/getting-started/api-onboarding.md +++ b/content/getting-started/api-onboarding.md @@ -40,7 +40,7 @@ MultiSafepay verifies all bank accounts added to merchant accounts. This can be - We send the merchant a payment link for a test transaction of 1 EUR. - You send us a bank statement for the merchant's bank account via our API. -✅   **Tip!** The trade name associated with the bank account must exactly match one of the trade names listed in the chamber of commerce extract. +  **💡 Tip!** The trade name associated with the bank account must exactly match one of the trade names listed in the chamber of commerce extract. # 3. Add UBO details See API reference – [Add UBO](/reference/addaffiliateubo/) for how to submit details about the ultimate beneficial owner(s) (UBOs) of each merchant's company, including: diff --git a/content/getting-started/company-information.md b/content/getting-started/company-information.md index a6f3e55ae..dacf75233 100644 --- a/content/getting-started/company-information.md +++ b/content/getting-started/company-information.md @@ -21,8 +21,8 @@ To update your contact details, provide us with your address in your dashboard: 1. Sign in to your MultiSafepay dashboard . 2. In the top-right corner of your dashboard, click > **Account information**. -3. Under **Contact details**, provide the relevant email address. -You can indicate where to receive emails about completed transactions, uncleared transactions, invoices, and chargebacks. +3. Under **Contact details**, provide the relevant email address. +4. Click **Save**. @@ -39,9 +39,25 @@ If a different company is taking over your account, we recommend opening a **new Make sure you update all company details on your [site(s)](/docs/sites/), including the registration number, VAT number, and address. The company details on each site must match the details in your account. +
+ +## Notification emails +You can add or remove email addresses to receive notifications about completed and uncleared transactions, invoices, and chargebacks. + +
+How to add an email address
+1. Go to your MultiSafepay dashboard . +2. Under **Settings**, click **Email settings**. +3. On the **Email settings** page, fill the desired email address for each of the fields for which you want to receive notifications. You can use up to **five** email addresses for each field. +4. Click **Save**. + +You can remove an email address by clicking on it. You can remove **all** email addresses in one field clicking the ❌ button. Remember to click **Save** to store your changes. + +
+ --- [block:html] diff --git a/content/getting-started/currencies.md b/content/getting-started/currencies.md index c919a9b04..feee5b483 100644 --- a/content/getting-started/currencies.md +++ b/content/getting-started/currencies.md @@ -20,7 +20,7 @@ To accept payments in a currency other than the default (EUR), the currency must - Supported in your <> - Correctly processed in the [create order](/reference/createorder/) request -❗️ **Note:** If the currency the customer wants to use is **not** supported by a payment method, the payment method does not appear in your checkout. +**⚠️ Note:** If the currency the customer wants to use is **not** supported by a payment method, the payment method does not appear in your checkout. ## Payouts @@ -35,7 +35,7 @@ You can [make payouts](/docs/payouts/) in: If you receive funds in any other currency, you need to convert them to a payout currency to pay them out. -❗️ **Note:** MultiSafepay applies a 4% conversion fee. +**⚠️ Note:** MultiSafepay applies a 4% conversion fee. ## Business bank account @@ -126,7 +126,7 @@ To convert other currencies to Euros (EUR), follow these steps: 5. Click **Convert**. -❗️ **Note:** Take into account the exchange rate and MultiSafepay's 4% conversion fee. +**⚠️ Note:** Take into account the exchange rate and MultiSafepay's 4% conversion fee. ## Payment methods per currency diff --git a/content/getting-started/email-styling.md b/content/getting-started/email-styling.md index f0e9d7809..572f6e20b 100644 --- a/content/getting-started/email-styling.md +++ b/content/getting-started/email-styling.md @@ -79,7 +79,7 @@ Use our pre-formatted and/or pre-written templates and populate them with your c - ❗️ **Note:** The language you set here is overridden by the `customer.locale` parameter in [create order](/reference/createorder/) requests. + **⚠️ Note:** The language you set here is overridden by the `customer.locale` parameter in [create order](/reference/createorder/) requests.
Locale example @@ -144,7 +144,7 @@ Use our pre-formatted and/or pre-written templates and populate them with your c In the **From address** field, enter the email address you want the email sent from, e.g. sales@yourcompany.com. - ❗️ **Note:** If you enter a from address other than noreply@multisafepay.com, to avoid emails being marked as spam, we recommend adding the following DNS record to your domain: + **⚠️ Note:** If you enter a from address other than noreply@multisafepay.com, to avoid emails being marked as spam, we recommend adding the following DNS record to your domain: ``` v=spf1 ip4:213.189.0.0/23 ip4:185.99.128.0/22 mx diff --git a/content/getting-started/invoices.md b/content/getting-started/invoices.md index d983eb095..a207ebbac 100644 --- a/content/getting-started/invoices.md +++ b/content/getting-started/invoices.md @@ -27,7 +27,7 @@ For payment methods where MultiSafepay: - At month end: Bank fees and [Interchange++](/docs/interchange/) fees - During processing: <>, transaction, and (collecting/non-collecting) refund fees -📘 **Note:** The transaction fee total is the sum of all processed and completed transactions within a specified timeframe _plus_ the universal transaction fee agreed when you created an account with MultiSafepay. +**⚠️ Note:** The transaction fee total is the sum of all processed and completed transactions within a specified timeframe _plus_ the universal transaction fee agreed when you created an account with MultiSafepay.
diff --git a/content/getting-started/onboarding-via-api.md b/content/getting-started/onboarding-via-api.md index 3b49c5cac..8a626de1a 100644 --- a/content/getting-started/onboarding-via-api.md +++ b/content/getting-started/onboarding-via-api.md @@ -10,9 +10,9 @@ excerpt: '' Partner account holders can manage and onboard affiliated merchant accounts via our API. -# Prerequisites +# Authentication -To authenticate requests, you must include a partner account API key. +To authenticate requests, you must include a **partner account** API key. For more information, email your partner manager. # Affiliate Onboarding @@ -31,7 +31,7 @@ The table below lists our API references for managing an affiliate's account. [block:html] { - "html": "\n \n \n \n \n \t\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
Manage accountAPI reference
Access affiliated accountsList affiliates
Get affiliate
Create login URL
Update affiliate
List affiliate's balances
Charge fees to affiliatesCharge affiliate
Fund affiliatesFund affiliate
Payout affiliatesPayout affiliate
Auto payouts
Access requests made to affiliates List inquiries
Get inquiry
Access messages sent to affiliates List message
Get message
List all UBOsList UBOs
Get closing balancesList affiliate's closing balances
Adjust feesAdjust fees for an affiliate account
Get site categoriesList site categories
\n\n" + "html": "\n \n \n \n \n \t\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n
Manage accountAPI reference
Access affiliated accountsList affiliates
Get affiliate
Create login URL
Update affiliate
List affiliate's balances
Charge fees to affiliatesCharge affiliate
Fund affiliatesFund affiliate
Payout affiliatesPayout affiliate
Auto payouts
Access requests made to affiliates List inquiries
Get inquiry
Access messages sent to affiliates List message
Get message
List all UBOsList UBOs
Get closing balancesList affiliate's closing balances
Adjust feesAdjust fees for an affiliate account
Get site categoriesList site categories
\n\n" } [/block] --- diff --git a/content/getting-started/onboarding.md b/content/getting-started/onboarding.md index 4bac74979..84d194994 100644 --- a/content/getting-started/onboarding.md +++ b/content/getting-started/onboarding.md @@ -34,7 +34,7 @@ MultiSafepay pre-screens your account to check if the products/services you sell We may ask you to provide additional documents, e.g. if you have an unusual company structure. -❗️ **Note:** Requests to process cards may be denied, e.g. if you sell [prohibited products or services](/docs/prohibited-products-services/). +**⚠️ Note:** Requests to process cards may be denied, e.g. if you sell [prohibited products or services](/docs/prohibited-products-services/). # 3. Validate bank account @@ -106,7 +106,6 @@ It was based on the Disclosure of Unusual Transactions or Financial Services Act 4. Select the UBO form, and then click **Open**. 5. Upload color copies of the identity documents of all UBOs. -✅   **Tip!** We recommend using the KopieID app to hide personal information on passports or IDs. # 5. Display required information diff --git a/content/getting-started/partner-primary-accounts-private.md b/content/getting-started/partner-primary-accounts-private.md index c6d532ac8..df2fa3f8a 100644 --- a/content/getting-started/partner-primary-accounts-private.md +++ b/content/getting-started/partner-primary-accounts-private.md @@ -1,7 +1,7 @@ --- title: "Partner and primary accounts" category: 627bbcf80c1c9c0050320b60 -order: 8 +order: 9 hidden: true parentDoc: 62b0845857c8ab006af6a4f7 slug: 'partner-and-primary-accounts' diff --git a/content/getting-started/partner-primary-accounts.md b/content/getting-started/partner-primary-accounts.md index 77bbf6233..5d4c84191 100644 --- a/content/getting-started/partner-primary-accounts.md +++ b/content/getting-started/partner-primary-accounts.md @@ -1,7 +1,7 @@ --- title: "Partner and primary accounts" category: 627bbcf80c1c9c0050320b60 -order: 7 +order: 8 hidden: false parentDoc: 62b0845857c8ab006af6a4f7 slug: 'partner-accounts' diff --git a/content/getting-started/payment-methods.md b/content/getting-started/payment-methods.md index 28fccde8c..aa89578fa 100644 --- a/content/getting-started/payment-methods.md +++ b/content/getting-started/payment-methods.md @@ -1,7 +1,7 @@ --- title: "Payment methods" category: 627bbcf80c1c9c0050320b60 -order: 9 +order: 10 hidden: false parentDoc: 62b0845857c8ab006af6a4f7 slug: 'payment-methods' @@ -28,11 +28,19 @@ Some payment methods, especially Banking methods, can be activated directly via 2. To activate the payment method for: - All sites, go to **Settings** > **Payment methods**. - A specific site, go to **Sites**, and then click the relevant site. +This overwrites your global selection. Only the payment methods selected for the site will then be available. 3. Select the checkbox for the payment method, and then click **Save changes**. +**💡 Tip**: if you do not set site-specific methods, the global configuration will be applied. + 💬 **Support:** If the payment method isn't visible in your dashboard, email [support@multisafepay.com](mailto:support@multisafepay.com) -For instructions to activate additional payment methods, see the respective pages. +
+ How to activate optional payment methods +
+For instructions to activate additional payment methods, see the respective pages and follow individual activation steps. +\ +

diff --git a/content/getting-started/payouts.md b/content/getting-started/payouts.md index c21cd50de..ac40c22dc 100644 --- a/content/getting-started/payouts.md +++ b/content/getting-started/payouts.md @@ -1,7 +1,7 @@ --- title: "Payouts" category: 627bbcf80c1c9c0050320b60 -order: 10 +order: 11 hidden: false parentDoc: 62b0845857c8ab006af6a4f7 slug: 'payouts' @@ -30,7 +30,7 @@ To add additional bank accounts to your account (once fully onboarded), follow t 7. To verify the account, on the **Business bank account** page either: - Make a payment of 1 EUR from the business bank account via iDEAL or a bank transfer to your account balance, **or** - Upload a copy of a bank statement. Select the file, and then click **Upload**. - **Note:** The company name on the bank statement must exactly match one of the trade names on your Chamber of Commerce extract. + **⚠️ Note:** The company name on the bank statement must exactly match one of the trade names on your Chamber of Commerce extract. MultiSafepay verifies the bank account within 5 business days. We **only** accept business bank accounts (no private bank accounts) that are registered to your official company name. @@ -61,7 +61,7 @@ You can schedule automated payouts on specific day, or make them manually. - If you want to specify a minimum amount to retain in your balance, in the **Set reserve balance** fields, enter an amount. 4. Click **Schedule payouts**. -✅   **Tip!** +  **💡 Tip!** To schedule payouts for different currencies, you must have a account balance and an active business bank account for each currency. For automated payouts, a report to view all transactions between two payouts will be available. For more information, see [payout report](/docs/reports#payout-report) @@ -89,14 +89,15 @@ The standard currency for automatic payouts is euros (EUR). For manual payouts, Supported currencies
-You can make payouts in: +In addition to EUR, payouts can be made in: - AUD (Australian dollar) - CAD (Canadian dollar) - CHF (Swiss franc) +- CZK (Czech koruna) - DKK (Danish krone) - GBP (Pound Sterling) -- HKD (Hong Kong dollar) +- JPY (Japanese yen) - NOK (Norwegian krone) - PLN (Polish złoty) - SEK (Swedish krona) diff --git a/content/getting-started/sites.md b/content/getting-started/sites.md index 07ea58441..c18c4458d 100644 --- a/content/getting-started/sites.md +++ b/content/getting-started/sites.md @@ -1,107 +1,99 @@ --- -title: "Sites" +title: "Websites" category: 627bbcf80c1c9c0050320b60 -order: 11 +order: 12 hidden: false parentDoc: 62b0845857c8ab006af6a4f7 slug: 'sites' --- -To set up your account, you must add at least one site (e.g. a website, app, or other application), for which we generate an API key. +To set up your account, you must add at least one website (e.g. a website, app, or other application), for which we generate an API key. -You can add an unlimited number of sites to your MultiSafepay account, but they must all be operated by the same legal entity linked to that account. +You can add an unlimited number of websites to your MultiSafepay account, but they must all be operated by the same legal entity linked to that account. -To process payments from a site operated by a separate legal entity, you must sign up for an additional MultiSafepay account. +To process payments from a website operated by a separate legal entity, you must sign up for an additional MultiSafepay account. -
-How to add a site +
+How to add a website
1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**. -3. Click **Add new site**. - - From the **Category** list, select what type of products or services your site sells. - - In the **Description** field, enter the site name. - **Note:** If relevant, this is displayed on MultiSafepay payment pages and the customer’s bank statement. - - In the **Base URL** field, add the site’s URL. This must be the URL where you receive payments. - - If you want to receive [status updates](/docs/payment-statuses/) via webhook, in the **Webhook URL** field, enter a URL for us to send them to. -4. Click **Save**. - A **Sites** page for the new site appears, including the site ID, API key, and security code. +2. Go to **Websites**. +3. Click **Add new website**. + - From the **Category** list, select what type of products or services your website sells. + - From the **Subcategory** list, select the specific products or services based on the chosen category. + - In the **Description** field, enter the website name. + **⚠️ Note:** This is displayed on MultiSafepay payment pages and the customer’s bank statement. + - In the **Base URL** field, add the website’s URL. This must be the URL where you receive payments. + - If you want to receive [status updates](/docs/payment-statuses/) via webhook, in the **Webhook URL** field, enter a URL for us to send them to. +4. Click **Save**. You will be redirected to the panel of your new **website**, where you can manage different functionalities. Here, you will also find the **Website ID**, **API key**, and **Security code**. 5. Optionally, provider your **Customer support phone** and **Customer support email**. -6. To style your payment page for this site, see Payment pages – [Styling](/docs/payment-pages/#styling). -
+6. To learn how to style your payment page for this website, see Payment pages – [Styling](/docs/payment-pages/#styling). +
How to connect a site to your backend
-To connect a site to your <>, enter the required details: +To connect a website to your <>, enter the required details: -- Most [ready-made integrations](/docs/our-integrations/): Your [site ID, API key, and security code](#site-id-api-key-and-security-code), and account ID (top-right corner of your dashboard) -- [API integrations](/docs/api-integration/): Your [site API key](#site-id-api-key-and-security-code) +- Most [ready-made integrations](/docs/our-integrations/): Your [website ID, API key, and security code](#site-id-api-key-and-security-code), and account ID (top-right corner of your dashboard) +- [API integrations](/docs/api-integration/): Your [website API key](#site-id-api-key-and-security-code) To validate the connection, [place a test order](/docs/testing/).
-
-___ +*** # User guide -## Block/unblock a site +## Block/unblock a website -
-How to block/unblock a site -
+To block or unblock a website: 1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**, and then click the relevant site. -3. On the **Sites** page, from the **Status** list: - - To block, select **Blocked**. - - To unblock, select **Active**. -4. Click **Save changes**. - ✅   On the **Sites** page, the site's status changes to **Blocked**. +2. Go to **Websites**, and then click the relevant website. +3. On the **Website** panel, from the **Status** list select: + - **Blocked**, to block the website. + - **Active**, to unblock the website. +4. Click **Save changes**. -
+✅ On the **Websites** overview page, the website's status changes to **Blocked**. -## Delete/restore a site +*** -
-How to delete/restore a site -
+## Delete/restore a website -To delete a site: +To delete a website: 1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**. -3. On the row of the relevant site, click ❌   **Disable payments** > **Delete**. - ✅   The site profile disappears from the **Sites** page. +2. Go to **Websites**. +3. On the row of the relevant site, click ❌   **Disable payments** > **Delete**. -To restore the site: +✅ The website profile disappears from the **Websites** page. -1. On the **Sites** page, select the **Show deleted sites** checkbox. -2. On the row of the relevant site, click the trash can icon **Restore site** > **Yes**. -3. To return to the **Sites** overview page, deselect the **Show deleted sites** checkbox. - ✅   The site profile reappears on the **Sites** page. +To restore a website: -
+1. On the **Websites** overview page, click **Show deleted websites**. +2. From the list of websites, click **Restore website** > **Yes**. +3. To return to the **Websites** overview page, deselect the **Show deleted websites** checkbox. -## Disable/enable payments for a site +✅   The website profile reappears on the **Websites** page. -You can temporarily disable payments for a site, and then re-enable them. +*** -
-How to disable/enable payments for a site -
+## Disable/enable payments for a website + +You can temporarily disable payments for a website, and then re-enable them. 1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**. -3. On the row of the relevant site: - - To disable payments, click ❌   **Disable payments** > **Yes**.
On the **Sites** page, the site's status changes to **Blocked**. - - To enable payments, click ✅   **Enable payments** > **Yes**.
On the **Sites** page, the site's status changes to **Active**. +2. Go to **Websites**. +3. On the row of the relevant website: + - To disable payments, click ❌   **Disable payments** > **Yes**.
On the **Websites** page, the website's status changes to **Blocked**. + - To enable payments, click ✅   **Enable payments** > **Yes**.
On the **Websites** page, the website's status changes to **Active**. -
+*** ## Logos and icons @@ -113,7 +105,7 @@ For the logos and icons of all MultiSafepay payment methods, see our GitHub repo How to generate a PNG of logos
-To generate a portable network graphic (PNG) of a payment method logo to display on your site, follow these steps: +To generate a portable network graphic (PNG) of a payment method logo to display on your website, follow these steps: 1. Sign in to your MultiSafepay dashboard . 2. Go to **Settings** > **Logo designer**. @@ -121,19 +113,23 @@ To generate a portable network graphic (PNG) of a payment method logo to display 4. From the **Select elements** window, select the logos you want to include. 5. Under **Result logo**, check the preview. 6. Under **Order icons**, you can: - - Drag and drop logos to change the order in which they display. - - Remove logos by clicking **Remove**. + - Drag and drop logos to change the order in which they display. + - Remove logos by clicking **Remove**. 7. When you are happy with the preview, to generate the PNG image, click **Download**. -## Site ID, API key, and security code +## Website ID, API key, and Security code -To view the site ID, API key, and security code for a site: +To view the ID, API key, and security code for a website: 1. Sign in to your live or test MultiSafepay dashboard. -2. Go to **Sites**, and then click the relevant site. -3. The site ID, API key, and security code appears in the top-right corner of your profile. +2. Go to **Websites**, and then click on the relevant website. +3. You can find the website ID, API key, and security code in the top-right corner of the page. To view the ID and API key for a terminal group: +4. Sign in to your live or test MultiSafepay dashboard. +5. Go to **Devices** > **Terminals**. +6. Click on **Manage groups**. +7. A list of all available terminal groups will be displayed, showing the ID and API key for each group. ## Specify company name @@ -146,15 +142,13 @@ You can specify how your company name appears on customer bank statements (if su To set how your company name displays, follow these steps: 1. Sign in to your MultiSafepay dashboard . -2. Go to **Sites**, and then click the relevant site. -3. In the **Site name** field, enter the name to display (maximum 35 characters). +2. Go to **Websites**, and then click the relevant site. +3. In the **Website name** field, enter the name to display (maximum 35 characters). 4. Click **Save**. -
- ---- +*** [block:html] { @@ -162,4 +156,5 @@ To set how your company name displays, follow these steps: } [/block] + [Top of page](#) \ No newline at end of file diff --git a/content/integrations/api-integration.md b/content/integrations/api-integration.md index dc5d2bd8c..0b38d0f96 100644 --- a/content/integrations/api-integration.md +++ b/content/integrations/api-integration.md @@ -20,7 +20,7 @@ You must first: To authenticate requests, you must include your API key as a query parameter in the request URL. -✅  **Tip!** While building your integration we recommend using the [test environment](/reference/environments/): `https://testapi.multisafepay.com/v1/json`. +  **💡 Tip!** While building your integration we recommend using the [test environment](/reference/environments/): `https://testapi.multisafepay.com/v1/json`. Before continuing with this tutorial, see if you can save development time with our range of [wrappers and SDKs](/docs/wrappers-sdks/). @@ -87,7 +87,7 @@ curl -X POST "https://testapi.multisafepay.com/v1/json/orders?api_key={your-test **3.** Open the `payment_url` to complete payment on the payment page. -❗️ **Note:** If you receive an error in the response, see [Troubleshooting](/docs/troubleshooting/). +**⚠️ Note:** If you receive an error in the response, see [Troubleshooting](/docs/troubleshooting/). ✅ **Success!** You have successfully created an order. Now learn how to track orders via our webhook as they progress. diff --git a/content/integrations/ccv-shop-partner.md b/content/integrations/ccv-shop-partner.md new file mode 100644 index 000000000..6aa84c22e --- /dev/null +++ b/content/integrations/ccv-shop-partner.md @@ -0,0 +1,62 @@ +--- +title: "CCV Shop" +category: 62962dd7e272a6002ebbbbc5 +order: 100 +hidden: true +parentDoc: 62a9a54aba9800011a8bda88 +slug: 'ccv-shop-partner' +excerpt: "Technical manual for MultiSafepay's free app." +--- + + +# Prerequisites + +You will need a [MultiSafepay account](/docs/getting-started-guide/). + +# Installation and configuration + +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. + +1. Sign in to your CCV Shop <> and install the MultiSafepay app from the App Store. +2. Go to **Mijn webshop** > **Instellingen** > **Bestelproces & voorraad** > **Betaalmethoden**. +3. In the **Electronische betalingen** tab, select **MultiSafepay**. +4. Enter your [account ID, site ID and security code](/docs/sites#site-id-api-key-and-security-code). +5. If using your MultiSafepay test account, select **Test mode**. +6. Click **Synchroniseer betaalmethodes met MultiSafepay**, and then click **Save**. +
+ +___ + +# User guide + +## Payment methods + +
+Supported payment methods +
+ +- Cards: [All](/docs/card-payments/) +- Wallets: [PayPal](/docs/paypal/) +- Banking methods: + - [Bancontact](/docs/bancontact/) + - [Bank transfer](/docs/bank-transfer/) + - [Giropay](/docs/giropay/) + - [iDEAL](/docs/ideal/) + - [Sofort](/docs/sofort/) + +
+ +## Refunds + +You can process refunds from your MultiSafepay dashboard, but not in your <>. +
+ +--- + +[block:html] +{ +"html": "
\n

\n 💬\n

Support

\n

\n \n
" +} +[/block] + +[Top of page](#) \ No newline at end of file diff --git a/content/integrations/ccv-shop.md b/content/integrations/ccv-shop.md old mode 100755 new mode 100644 index 57ad81202..67eed2e34 --- a/content/integrations/ccv-shop.md +++ b/content/integrations/ccv-shop.md @@ -3,59 +3,135 @@ title: "CCV Shop" category: 62962dd7e272a6002ebbbbc5 order: 0 hidden: false -parentDoc: 62a9a54aba9800011a8bda88 +parentDoc: 62a9a54abde254065ee92a5c slug: 'ccv-shop' excerpt: "Technical manual for MultiSafepay's free app." --- - + # Prerequisites -You will need a [MultiSafepay account](/docs/getting-started-guide/). +- [MultiSafepay account](/docs/getting-started-guide/) +- A MultiSafepay [site API key](/docs/sites#site-id-api-key-and-security-code) # Installation and configuration -✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +1. Sign in to your CCV Shop <>. +2. Go to the **App store** and search for the **MultiSafepay** app. +3. Once found, select the app then click **Install** button. +4. Review and accept the permissions required by the app. +5. Enter your [Site API key](/docs/sites#site-id-api-key-and-security-code), and fill the required fields to configure the app. +6. Click the **Install** button to complete the installation. +7. Go to **My web shop** > **Settings** > **Ordering process & stock** > **Payment methods** and confirm your payments are enabled in the section **MultiSafepay Payment Service provider** -1. Sign in to your CCV Shop <> and install the MultiSafepay app from the App Store. -2. Go to **Mijn webshop** > **Instellingen** > **Bestelproces & voorraad** > **Betaalmethoden**. -3. In the **Electronische betalingen** tab, select **MultiSafepay**. -4. Enter your [account ID, site ID and security code](/docs/sites#site-id-api-key-and-security-code). -5. If using your MultiSafepay test account, select **Test mode**. -6. Click **Synchroniseer betaalmethodes met MultiSafepay**, and then click **Save**. -
+# Configuration + +1. Sign in to your CCV Shop <>. +2. Go to the **App store** and search for the **MultiSafepay** app. +3. Once found, select the app then click **Edit** button. +4. Modify the settings according your preferences. ___ # User guide +## Payment components + +The plugin supports [payment components](/docs/payment-components/), which: + +- Provide a seamless checkout experience to increase <>. +- Encrypt customer payment details for secure processing. +- Shift responsibility for [PCI DSS compliance](/docs/pci-dss/) to MultiSafepay. + +
+Supported payment methods +
+ +- Cards: Amex, Maestro, Mastercard, Visa, Bancontact, iDEAL in3, Pay After Delivery, Pay After Delivery installments, Riverty, E-Invoicing and Zinia + +
+ +
+How to activate payment components +
+ +1. Sign in to your CCV Shop <>. +2. Go to the **App store** and search for the **MultiSafepay** app. +3. Once found, select the app then click **Edit** button. +4. Set the **Enable payment component** toggle to **Enabled**. +5. Click **Save**. + +
+ ## Payment methods
Supported payment methods
-- Cards: [All](/docs/card-payments/) -- Wallets: [PayPal](/docs/paypal/) -- Banking methods: - - [Bancontact](/docs/bancontact/) - - [Bank transfer](/docs/bank-transfer/) - - [Giropay](/docs/giropay/) - - [iDEAL](/docs/ideal/) - - [Sofort](/docs/sofort/) +The activated payment methods from your MultiSafepay account appear will be registered in CCV Shop as a payment method. +To keep the payment methods synchronized, ensure to toggle the "update payment methods" setting before pressing "update".
## Refunds -You can process refunds from your MultiSafepay dashboard, but not in your <>. +You can process full and partial refunds for all payment methods from your MultiSafepay dashboard, and from the CCV Shop <>. + +
+Refund rules
+To process backend refunds: + +- In the configuration of the MultiSafepay app, **Automatic refunds** needs to be enabled. +- After enable **Automatic refunds**, select which invoice type will trigger refunds: + - **Only "Credit"**: Refunds will be triggered when a credit invoice status is changed to **Refunded**. + - **Both "Credit" and "Debit"**: Refunds will be triggered when a credit or debit invoice status is changed to **Refunded**. +- The refund amount cannot exceed the original transaction amount. +- The refund amount cannot exceed the available funds in your MultiSafepay account. +
+
+ +
+How to process refunds +
+To process backend refunds: + +1. Sign in to your CCV Shop <>. +2. Go to **My orders** > **Order management**. +3. Select the order, and click on the **Invoices** tab. +4. Change the **Invoice status** from **Paid** to **Refunded**. +5. A refund request will be processed in MultiSafepay. +
+
+ +## Sorting Payment Methods + +To sort the payment methods on the checkout page, you can change the order in the MultiSafepay app configuration. + +
+How to sort payment methods +
+ +1. Sign in to your CCV Shop <>. +2. Go to the **App store** and search for the **MultiSafepay** app. +3. Click on **Edit** button. +4. Turn on the switch field **Payment methods order**. +5. A list of the installed payment methods will be shown. +6. Use the arrow icons to sort the payment methods. +7. Click on **Update** button to save the changes. +
+ +**⚠️ Note:** Only payment methods provided by MultiSafepay can be reordered. CCV Shop does not support ordering of payment methods not provided by our app, so the order of other payment methods cannot be adjusted. + +
+
--- [block:html] { - "html": "
\n

\n 💬\n

Support

\n

\n \n
" +"html": "
\n

\n 💬\n

Support

\n

\n

Contact MultiSafepay:

\n \n
" } [/block] diff --git a/content/integrations/coppermine.md b/content/integrations/coppermine.md index 24eb0282d..e5e90d0ce 100644 --- a/content/integrations/coppermine.md +++ b/content/integrations/coppermine.md @@ -1,7 +1,7 @@ --- title: "Coppermine" category: 62962dd7e272a6002ebbbbc5 -order: 1 +order: 0 hidden: false parentDoc: 62a9a54aba9800011a8bda88 slug: 'coppermine' diff --git a/content/integrations/craft-commerce.md b/content/integrations/craft-commerce.md index 5dff23226..084d9b8ff 100755 --- a/content/integrations/craft-commerce.md +++ b/content/integrations/craft-commerce.md @@ -1,7 +1,7 @@ --- title: "Craft Commerce" category: 62962dd7e272a6002ebbbbc5 -order: 0 +order: 2 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -77,8 +77,8 @@ Supported since release: 1.2.0, March 19th 2021.
- Cards: [All](/docs/card-payments/), **except** Postepay and V Pay -- Banking methods: All -- <>: All +- Banking methods: All, except Bizum. +- <>: All, except Billink. - Wallets: [Alipay](/docs/alipay/), [PayPal](/docs/paypal/) - Prepaid cards: - Beauty and Wellness gift card diff --git a/content/integrations/cs-cart.md b/content/integrations/cs-cart.md index a65e1fe37..30128a01e 100755 --- a/content/integrations/cs-cart.md +++ b/content/integrations/cs-cart.md @@ -11,7 +11,7 @@ slug: 'cs-cart'
-Download +Download Source code diff --git a/content/integrations/drupal.md b/content/integrations/drupal.md index dd1223898..4c6b0542b 100755 --- a/content/integrations/drupal.md +++ b/content/integrations/drupal.md @@ -1,19 +1,19 @@ --- title: "Drupal" category: 62962dd7e272a6002ebbbbc5 -order: 2 +order: 3 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." slug: 'drupal' --- -# Drupal 8 & 9 +# Drupal 8, 9 & 10 - +
-Download +Download Source code @@ -24,13 +24,12 @@ slug: 'drupal' ## Prerequisites - [MultiSafepay account](/docs/getting-started-guide/) -- Drupal 8.9 and above or Drupal 9.x -- Tested on PHP 7.2 +- Drupal 8.9 and above, Drupal 9.x and 10.x - Drupal Commerce 2.x ## Installation -✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. These instructions are for Composer. You can also install the plugin in your <>. @@ -112,7 +111,7 @@ You can update the plugin in your backend or the CMS marketplace, or via SFTP. How to update in your backend
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation instructions and the Configuration instructions from step 2. @@ -121,7 +120,7 @@ You can update the plugin in your backend or the CMS marketplace, or via SFTP. ### Upgrades -❗️ **Note:** Drupal no longer provides support for Drupal 8.9.x. +**⚠️ Note:** Drupal no longer provides support for Drupal 8.9.x. For how to upgrade Drupal 8 to Drupal 9, see Drupal - Upgrading from Drupal 8 to Drupal 9 or higher .
@@ -152,7 +151,7 @@ For how to upgrade Drupal 8 to Drupal 9, see Drupal - >. 2. Go to **Apps** on the left-hand side of the dashboard. @@ -288,11 +288,11 @@ If no specific rule is set for a country, the **Default** order is used. -
-How to disable payment methods +
+How to enable payment methods
-You can disable payment methods in the **Payment method settings list**. The dot next to the payment methods is green when enabled, and grey when disabled. +You can enable and disable payment methods in the **Payment method settings list**. The dot next to the payment methods is green when enabled, and grey when disabled. To disable payment methods for specific languages, follow these steps: @@ -448,6 +448,18 @@ To access the MultiSafepay Payments app **Settings** page:

+ +# Troubleshooting + +## Payment methods not displayed correctly + +Checks you can do: + +- are you using the correct API key and environment combination? +- are the payment methods activated for your account? +- in **Payment method settings**, check that you have modified your preferences for the correct / all store languages. Check also: current setting is set to **enabled**. + +
--- [block:html] diff --git a/content/integrations/magento-1.md b/content/integrations/magento-1.md index 5c5555b72..1aeb431ac 100755 --- a/content/integrations/magento-1.md +++ b/content/integrations/magento-1.md @@ -1,7 +1,7 @@ --- title: "Magento 1" category: 62962dd7e272a6002ebbbbc5 -order: 4 +order: 6 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -9,7 +9,7 @@ slug: 'magento-1' --- -
Download +Download > ⚠️ Action required > @@ -21,6 +21,18 @@ slug: 'magento-1' Changelog
+**3.7.0** +Release date: Nov. 28th, 2024 + +### Changed ++ DAVAMS-796: Rebrand Afterpay-Riverty Logo ++ DAVAMS-744: Rebranding in3 B2C + +### Fixed ++ PLGMAGONE-771: Fix surcharges where percentage not applied when fixed amount is 0 + +*** + **3.6.0** Release date: Oct. 16th, 2023 @@ -841,7 +853,7 @@ ___ These instructions are for SFTP upload. You can also install via .ZIP file upload in Connect. -✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Unpack the content of the .ZIP file in the root of your webshop. 2. Sign in to your Magento 1 <>. @@ -897,7 +909,7 @@ The plugin is compatible with most Magento 1 checkouts. However, we cannot guara We test the plugin with Magento 1 core checkout and OneStepCheckout.com (`Idev`). -✅   **Tip!** Always test OneStepCheckout to make sure it is compatible with your configuration of the plugin. +  **💡 Tip!** Always test OneStepCheckout to make sure it is compatible with your configuration of the plugin. ## Currencies @@ -1065,7 +1077,7 @@ You can update the plugin in your Magento 1 backend or the CMS marketplace, or v How to update via SFTP
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/magento-2.md b/content/integrations/magento-2.md index f3ba5605d..15d54d935 100755 --- a/content/integrations/magento-2.md +++ b/content/integrations/magento-2.md @@ -17,17 +17,13 @@ slug: 'magento-2'
-> ⚠️ Action required -> -> If you are still using the deprecated plugin, we recommend [upgrading to the latest version](/docs/magento-2#upgrades) as soon as possible. - Our plugin is supported by a certified Magento 2 Solution Specialist and receives regular updates for the latest features from Magento and MultiSafepay. # Prerequisites - [MultiSafepay account](/docs/getting-started-guide/) -- Magento Open Source version 2.3.x & 2.4.x **or** Adobe Commerce version 2.3.x & 2.4.x (For GraphQL, only Magento Open Source versions 2.4.x are supported) -- PHP 7.1+ +- Magento Open Source version 2.3.6+ & 2.4.x **or** Adobe Commerce version 2.4.x (For GraphQL, only Magento Open Source versions 2.4.x are supported) +- PHP 7.2+ # Modules @@ -37,15 +33,16 @@ Our plugin is supported by a certified Magento 2 Solution Specialist and receive The plugin consists of several Magento modules: -| Module | Description | -|---|---| -| Multisafepay-magento2-core | Provides core functionalities | -| Multisafepay-magento2-frontend | Enables payment <> in the Magento checkout | -| Multisafepay-magento2-adminhtml | Enables/disables payment gateways, and changes settings in the Magento backend | -| Multisafepay-magento2-msi | Handles stock when MSI is enabled | -| Multisafepay-magento2-catalog-inventory | Handles stock when MSI is disabled | -| Multisafepay-magento2 | Meta package that installs all the above | -| Multisafepay-magento2-graphql | For GraphQL support, extends and adds GraphQL queries and mutations | +| Module | Description | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---| +| Multisafepay/magento2-core | Provides core functionalities | +| Multisafepay/magento2-frontend | Enables payment <> in the Magento checkout | +| Multisafepay/magento2-adminhtml | Enables/disables payment gateways, and changes settings in the Magento backend | +| Multisafepay/magento2-msi | Handles stock when MSI is enabled | +| Multisafepay/magento2-catalog-inventory | Handles stock when MSI is disabled | +| Multisafepay/magento2 | Meta package that installs all the above | +| Multisafepay/magento2-graphql | For GraphQL support, extends and adds GraphQL queries and mutations | +| Multisafepay/hyva-checkout | Adds support for Hyvä Checkout | @@ -141,8 +138,8 @@ The plugin is compatible with most Magento checkouts. By default, MagePlaza One Step checkout is supported. - Hyvä Megawire checkout - Megawire checkout module + Hyvä Checkout + Hyvä Checkout module OneStepCheckout.com @@ -150,7 +147,8 @@ The plugin is compatible with most Magento checkouts.
-**Note** We recommend testing compatibility with your configuration. + +**⚠️ Note:** We recommend testing compatibility with your configuration. For support, email [integration@multisafepay.com](mailto:integration@multisafepay.com) @@ -263,7 +261,9 @@ You must: How to activate Magento Vault
-To activate Magento Vault, and enable [recurring payments](/docs/recurring-payments/), email a request to + +To activate Magento Vault, and enable recurring payments , email a request to . + @@ -277,6 +277,33 @@ However, the vault only contains tokens valid in your webshop. If your server is + +## Manual Capture + +The Magento 2 integration supports Manual Capture from version 3.7.0 and up. + +
+How to use manual capture in magento +
+It has been implemented for the following supported payment gateways: + +- Card payments +- Maestro +- Mastercard +- Visa + +For more information about Manual capture and how to enable it for your MultiSafepay account, please check our [Manual capture](/docs/manual-capture#integration) https://docs.multisafepay.com/docs/manual-capture#integration instructions. + +To enable Manual capture in your Magento environment: + +1. Go to Stores > Configuration > MultiSafepay > Payment Gateways +2. Select a supported payment gateway, e.g. 'Card Payment' +3. Select **Enable Manual Capture** > Yes + +Please note that the full shipping amount will be captured whenever the first shipment has been made, even if it was just a partial shipment of the items. If the rest of the items in the order will not be shipped anymore, you can initiate a refund for the shipment costs of those items. + +
+ ## Order lifetimes The default lifetime of **Pending payment** orders in Magento 2 is 480 minutes (8 hours). For payment methods with a longer authorization period, the <> to **Cancelled** after 8 hours. @@ -329,7 +356,7 @@ The plugin supports [Payment Components](/docs/payment-components/), which: 3. Click **Payment type** and select **Card payment component**. 4. Click **Save config**. -📘 **Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. +**⚠️ Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. @@ -367,16 +394,6 @@ To get a payment link for a customer, follow these steps: {{/depend}} ``` -**Magento 2.3.4+** - -The email template syntax is different for Magento 2.3.4+. Add this code snippet instead: - -``` -{{depend order.payment.additional_information.payment_link}} -Pay now with {{var order.payment.additional_information.method_title}} -{{/depend}} -``` - **Backend emails** To add payment links to order confirmation emails from your Magento **backend**, you can use the `payment_link` variable and an `if/else` statement in the template. @@ -397,7 +414,7 @@ You cannot add payment links to order confirmation emails created in your **fron 2. Replace the **New order confirmation template** with your template. 3. Test the template to confirm it is working. -✅   **Tip!** You can also implement this directly in the email template files. +  **💡 Tip!** You can also implement this directly in the email template files. @@ -451,7 +468,7 @@ We also offer full extensions for [ScandiPWA](/docs/scandipwa/) and [Vue Storefr | Platform | Supported refunds | |---|---| -| MultiSafepay dashboard | Full and partial refunds
Orders with [Fooman surcharges](/docs/magento-2#surcharges)
Orders from the deprecated plugin
**Note:** Credit memos are **not** generated | +| MultiSafepay dashboard | Full and partial refunds
Orders with [Fooman surcharges](/docs/magento-2#surcharges)
Orders from the deprecated plugin
**⚠️ Note:** Credit memos are **not** generated | | Backend | Full and partial refunds, and credit memos
You can't refund more than the original amount in your backend | | API | See [Refund order](/reference/refundorder/) > BNPL refund
PATCH requests **not** supported | @@ -496,7 +513,7 @@ To avoid this, match the order lifetime to the [payment link](/docs/payment-link See [Order lifetimes](#order-lifetimes) above. -✅   **Tip!** We recommend setting order lifetimes to 2 days (2880 minutes) to allow enough time for the customer to pay, but avoid issues with external services. +  **💡 Tip!** We recommend setting order lifetimes to 2 days (2880 minutes) to allow enough time for the customer to pay, but avoid issues with external services. -## Upgrades -If you are still using the deprecated plugin , we recommend upgrading to the latest version as soon as possible. - -
-Why upgrade? -
- -The new plugin features code improvements, and unit and integration testing. It is built on top of the Magento payment provider <> structure. Some payment methods now skip the MultiSafepay payment page, which increases <>. - -We support most Magento functionalities. For any questions, email - -**New features** - -- Improved: - - Magento backend configuration, including support information - - Translations - - Error handling, and event and error logs -- Documentation for payment methods -- Modular setup for greater installation flexibility -- PWA (GraphQL) endpoints -- Support for Magento Vault and Instant Purchase (replace [recurring payments](/docs/recurring-payments/)) - -**Configuration fields** - -We have removed or altered the following configuration fields: - -_Emailing invoices to customers_ - -This feature now uses a Magento core configuration field: **Sales** > **Sales emails** > **Invoice** > **Enabled**. - -_Order statuses and flow_ - -As of version 2.16, you can assign the following MultiSafepay statuses to a Magento order status: - -- Cancelled -- Chargeback -- Declined -- Expired -- Initialized -- Partial refunded -- Refunded -- Reserved -- Uncleared -- Void - -We have updated the order status flow from version 2.5.0: - -- All new orders first receive **Pending** status. -- When redirecting the customer, the status changes to **Pending payment**, until the customer reaches your success page. -- If the payment is succesfully received at this point, the status changes to **Processing**. -- Around the same time, the webhook is triggered and the invoice is created. The webhook changes the status to **Processing** (if it isn't already). -- For bank transfers, the status doesn't change to **Pending payment**, therefore the order isn't automatically cancelled after a set period of time to give the customer more time to pay. - -_Payment links_ - -Payment links are now generated automatically. - -_Reset gateway_ - -When creating an order in your Magento 2 backend, you can now select the MultiSafepay payment <> instead. The payment gateway displays all active payment gateways to the customer based on the site settings in your MultiSafepay account. - -To enable or disable the gateway on your checkout page, we have added a **Can use checkout** configuration field. - -_Keep cart alive_ - -The cart is now always kept alive when the customer clicks **Back** on the MultiSafepay payment page. - -_Checkout_ - -We have changed the default payment flow from [redirect to direct](/reference/introduction#direct-vs-redirect) for: - -- AfterPay, E-Invoicing, in3, Pay After Delivery -- Direct Debit, Request to Pay - -We have included extra fields in the checkout for these payment methods. If you use a custom checkout, you must account for the iDEAL <> checkout field and the new checkout fields for these payment methods. - -Alternatively, you can disable additional checkout fields for these payment methods and change the flow back to redirect. Go to **Stores** > **Configuration** > **MultiSafepay** > **Payment gateways** > **Gateway** > **Additional checkout fields**. - -
+--- +## Troubleshooting -
-How to delete the deprecated plugin +
+How to troubleshoot Magento 2 issues
-Make sure you finish processing all orders created in the deprecated plugin before you delete it. The deprecated payment gateways are no longer available in Magento after deletion. - -You can refund transactions processed through the deprecated plugin in your MultiSafepay dashboard, but **not** from your Magento 2 backend. +### Order Status Update -The way you delete the deprecated plugin depends on the way you installed it: +If you experience issues with order statuses not being updated correctly (e.g., incongruent pending and processing), this might happen randomly and be difficult to replicate. This is generally caused by third-party solutions interfering in the order processing flow and the observer being based on a different instance of the order object. -**Composer** +_Tip_: This issue might appear after upgrading to our latest plugin version, possibly due to faster notification processing times surfacing an already existing update conflict. -There are two options: +To debug this issue on your side: -Option 1: Remove the code base - -``` -composer remove multisafepay/magento2msp -php bin/magento setup:upgrade -``` - -Option 2: Do a complete uninstall - -This includes removing database entries and configuration. -``` -bin/magento module:uninstall MultiSafepay_Connect --remove-data --clear-static-content -php bin/magento setup:upgrade -``` - -_Backups_ - -You can back up certain parts of the plugin by adding the following parameters: - -- `--backup-code` -- `--backup-media` -- `--backup-db` - -For information about all parameters, see Magento - Uninstall modules . -If you want a field from the deprecated plugin back, email - -**app/code** - -1. Disable the plugin: - ``` - php bin/magento module:disable --clear-static-content - php bin/magento setup:upgrade - ``` -2. To remove the code base, delete the app/code/MultiSafepay/Connect directory: - ``` - cd app/code/MultiSafepay - rm -rf Connect - ``` - -**Marketplace** - -If you installed the plugin via the Magento Marketplace, go to **System** > **Web setup wizard** > **Extension manager** > **Update / uninstall**. +1. Set to debug mode. +2. Use our Order Save Inspector to check which module might interfere (for example, delivery software, ERP).
-
---- [block:html] { diff --git a/content/integrations/mijnwebwinkel.md b/content/integrations/mijnwebwinkel.md index 815601b28..461ff6259 100644 --- a/content/integrations/mijnwebwinkel.md +++ b/content/integrations/mijnwebwinkel.md @@ -1,7 +1,7 @@ --- title: "Mijnwebwinkel" category: 62962dd7e272a6002ebbbbc5 -order: 3 +order: 2 hidden: false parentDoc: 62a9a54aba9800011a8bda88 excerpt: "Technical manual for Mijnwebwinkel's free app." @@ -15,7 +15,7 @@ You will need a [MultiSafepay account](/docs/getting-started-guide/). # Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the Mijnwebwinkel installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the Mijnwebwinkel installation procedure. Always make a backup. 1. Sign in to your Mijnwebwinkel <>. 2. Go to **Online orders** > **Payment method** > **MultiSafepay**. diff --git a/content/integrations/myshop.md b/content/integrations/myshop.md index d6ee54d1c..f4783addb 100644 --- a/content/integrations/myshop.md +++ b/content/integrations/myshop.md @@ -1,7 +1,7 @@ --- title: "myShop" category: 62962dd7e272a6002ebbbbc5 -order: 4 +order: 3 hidden: false parentDoc: 62a9a54aba9800011a8bda88 slug: 'myshop' @@ -38,7 +38,7 @@ You will need a [MultiSafepay account](/docs/getting-started-guide/). # Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the myShop installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the myShop installation procedure. Always make a backup. 1. Sign in to your myShop <>. 2. Install the MultiSafepay app in the App Store. diff --git a/content/integrations/odoo.md b/content/integrations/odoo.md index e83acca7f..fce7b9755 100644 --- a/content/integrations/odoo.md +++ b/content/integrations/odoo.md @@ -1,7 +1,7 @@ --- title: "Odoo" category: 62962dd7e272a6002ebbbbc5 -order: 6 +order: 7 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -28,7 +28,7 @@ slug: 'odoo' # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the Odoo installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the Odoo installation procedure. Always make a backup. 1. Download the ZIP archive with module. 2. Unpack the content of the .ZIP file. @@ -129,7 +129,7 @@ Supported since release: 1.1.0, July 2nd 2021.
- Cards: [All](/docs/card-payments/) -- <>: All +- <>: All, except Billink. - Wallets: [Alipay](/docs/alipay/), [Apple Pay](/docs/apple-pay/), [PayPal](/docs/paypal/) - Banking methods: - [Bancontact](/docs/bancontact/) @@ -171,7 +171,7 @@ For <> orders, the refund request must include a `shopping_cart` - The `item_quantity` must not be more than `quantity` in the original order. - The `item_price` must be equal to the `unit_price` in the original order. -❗️ **Note:** You cannot refund BNPL orders if a gift card or promo code was used for the original order. +**⚠️ Note:** You cannot refund BNPL orders if a gift card or promo code was used for the original order.
diff --git a/content/integrations/opencart-3.md b/content/integrations/opencart-3.md index 09a72f06c..694799d9f 100755 --- a/content/integrations/opencart-3.md +++ b/content/integrations/opencart-3.md @@ -1,7 +1,7 @@ --- title: "OpenCart 3" category: 62962dd7e272a6002ebbbbc5 -order: 7 +order: 8 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -31,7 +31,7 @@ slug: 'opencart-3' # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the OpenCart installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the OpenCart installation procedure. Always make a backup. 1. Download the `Plugin_OpenCart_3.x.x.ocmod.zip`. 2. Sign in to your OpenCart <>. @@ -138,7 +138,7 @@ If you're new to accepting card payments, email a request to activate them to How to disable shopping carts
-❗️ **Note:** This disables all <> methods. +**⚠️ Note:** This disables all <> methods. 1. Sign in to your OpenCart backend. 2. Go to **Extensions** > **Payments** > **MultiSafepay**. @@ -242,8 +242,7 @@ As a temporary solution, you can disable payments with shopping carts. ## Surcharges -[Surcharges](/docs/surcharges/) are no longer supported, but you can request a patch. -Email +[Surcharges](/docs/surcharges/) are not supported by default. > ⚠️ Attention Dutch merchants > @@ -253,6 +252,15 @@ Email You can update the plugin using the extension installer tool in your OpenCart backend. +
+How to update from version 3.0.0 or higher +
+ +1. For security, create a backup of your OpenCart application. +2. Follow the [installation](/docs/opencart#installation) instructions above. + +
+
How to update from version 2.2.0 to 3.x.x
@@ -277,7 +285,7 @@ You can update the plugin using the extension installer tool in your OpenCart ba 1. For security, create a backup of your OpenCart application. 2. Manually remove all files from the MultiSafepay extension using an FTP program or server file administration program. -3. Follow the [installation](/docs/opencart#how-to-install) instructions above. +3. Follow the [installation](/docs/opencart#installation) instructions above.

diff --git a/content/integrations/opencart-4.md b/content/integrations/opencart-4.md index b2f5fb45b..f13af1ed9 100644 --- a/content/integrations/opencart-4.md +++ b/content/integrations/opencart-4.md @@ -1,7 +1,7 @@ --- title: "OpenCart 4" category: 62962dd7e272a6002ebbbbc5 -order: 8 +order: 9 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -11,7 +11,7 @@ slug: 'opencart-4'
-Download +Download Source code @@ -26,12 +26,12 @@ slug: 'opencart-4' # Prerequisites - [MultiSafepay account](/docs/getting-started-guide/) -- OpenCart 4.0.1.x -- PHP version 8.0, 8.1 +- OpenCart 4.0.2.0 up to 4.0.2.3 +- PHP versions supported: 8.0, 8.1 # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the OpenCart 4 installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the OpenCart 4 installation procedure. Always make a backup. 1. Download the plugin file: `multisafepay.ocmod.zip`. 2. Sign in to your OpenCart 4 <>. @@ -114,7 +114,7 @@ If you're new to accepting card payments, email a request to activate them to How to process backend refunds
-1. Sign in to your OpenCart 4 . +1. Sign in to your OpenCart 4 <>. 2. Go to **Orders** > **Order view button** > **Order history panel**. 3. Click the **Refund** button. This only appears if the <> is **Completed** or **Shipped**. @@ -178,7 +178,7 @@ As a temporary solution, you can disable payments with shopping carts. How to disable shopping carts
-❗️ **Note:** This disables all <> methods. +**⚠️ Note:** This disables all <> methods. 1. Sign in to your OpenCart 4 . 2. Go to **Extensions** > **Extensions** > **Payments** > **MultiSafepay** > **Edit Icon**. @@ -220,4 +220,4 @@ The Integration Team will do their best to support you with installing surcharge } [/block] -[Top of page](#) \ No newline at end of file +[Top of page](#) diff --git a/content/integrations/oscommerce.md b/content/integrations/oscommerce.md index ffe7efe43..48aca4e0e 100755 --- a/content/integrations/oscommerce.md +++ b/content/integrations/oscommerce.md @@ -1,7 +1,7 @@ --- title: "OsCommerce" category: 62962dd7e272a6002ebbbbc5 -order: 9 +order: 10 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -97,11 +97,11 @@ Release date: Mar 28, 2014 - OsCommerce 2.3 - Tested on PHP 7.0 -📘 **Note:** Version 3.0.0 is tested on PHP 5.6. Previous versions are no longer tested for compatibility. For more information, email +**⚠️ Note:** Version 3.0.0 is tested on PHP 5.6. Previous versions are no longer tested for compatibility. For more information, email # Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the OsCommerce installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the OsCommerce installation procedure. Always make a backup. 1. Unpack the content of the .ZIP file in the root of your webshop. 2. Sign in to your OsCommerce <>. @@ -164,7 +164,7 @@ You can update the plugin in your backend or the CMS marketplace, or via SFTP. How to update via SFTP
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/our-integrations.md b/content/integrations/our-integrations.md index 197cc7c84..dc447a0f6 100644 --- a/content/integrations/our-integrations.md +++ b/content/integrations/our-integrations.md @@ -10,7 +10,7 @@ This section contains our ready-made integrations for ecommerce platforms. Check out our most popular integrations: [block:html] { - "html": "\n\n" + "html": "\n\n" } [/block] @@ -23,7 +23,7 @@ We also offer integrations for the following: [block:html] { - "html": "\n\n" + "html": "\n\n" } [/block] [block:html] diff --git a/content/integrations/partner-integrations.md b/content/integrations/partner-integrations.md index b33d7684e..c7ce44dd8 100644 --- a/content/integrations/partner-integrations.md +++ b/content/integrations/partner-integrations.md @@ -147,6 +147,27 @@ For other support, see Easywebshop – Gomage provides a plugin to integrate with MultiSafepay. + +
+Prerequisites +
+ +You will need a [MultiSafepay account](/docs/getting-started-guide/). + +
+ +
+Support +
+ +For support, see Gomage . + +
+___ + ## Logic4 @@ -186,7 +207,11 @@ For any technical queries about the plugin, see Logic4 – Manual . -✅   **Tip!** We recommend first installing the plugin in a test environment, following the LogiVert installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the LogiVert installation procedure. Always make a backup. + + +___ +##Pronamic Pay + +Pronamic ,provides a Premium Pronamic Pay plugin to integrate MultiSafepay with multiple WordPress plugins. + +
+Prerequisites +
+ +You will need a [MultiSafepay account](/docs/getting-started-guide/). + +
+ +
+Support +
+ +For any technical queries, see – Pronamic support . + +
+ +
+Supported payment methods +
+ +- Cards:[All](/docs/card-payments/) +- Banking methods: + - [Bancontact](/docs/bancontact/) + - [Bank transfer](/docs/bank-transfer/) + - [Belfius](/docs/belfius/) + - [iDEAL](/docs/ideal/) + - [KBC](/docs/kbc/) + - [Direct Debit](/docs/direct-debit/) + - [Giropay](/docs/giropay/) + - [Sofort](/docs/sofort/) +- BNPL: + - [in3](//docs/in3) +- Wallets: + - [Alipay +](/docs/alipay-plus/) + - [Apple](/docs/apple-pay/) + - [Google](/docs/google-pay/) + - [PayPal](/docs/paypal/) + +
+ +
+Supported plugins + +- Gravity Forms +- Contact Form 7 +- Ninja Forms +- Formidable Forms +- WooCommerce +- Easy Digital Downloads +- Restrict Content Pro +- MemberPress +- Charitable +- Give + +
+ +
+Installation and configuration +
+ +To install and configure the plugin, see Pronamic Pay – Installation guide .
___ diff --git a/content/integrations/prestashop-1-6.md b/content/integrations/prestashop-1-6.md index 158e0a766..fa87594af 100644 --- a/content/integrations/prestashop-1-6.md +++ b/content/integrations/prestashop-1-6.md @@ -1,7 +1,7 @@ --- title: "PrestaShop 1.6" category: 62962dd7e272a6002ebbbbc5 -order: 10 +order: 13 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -11,7 +11,7 @@ slug: 'prestashop-1-6'
-Download +Download Source code @@ -27,16 +27,16 @@ slug: 'prestashop-1-6' - [MultiSafepay account](/docs/getting-started-guide/) - PrestaShop 1.6 -- Tested on PHP 7.0 +- Tested on PHP 5.6 # Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the PrestaShop 1.6 installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the PrestaShop 1.6 installation procedure. Always make a backup. 1. Unpack the contents of the .zip archive and upload the **Modules** folder via SFTP to the PrestaShop root directory, merging the two folders. 2. Sign in to your PrestaShop 1.6 <>. 3. Go to **Modules and services** > **Payments and gateways**. - **Note:** You must install and configure the MultiSafepay Core Module (MultiSafepay) because all payment methods require certain settings and/or the API key in the core module. + **⚠️ Note:** You must install and configure the MultiSafepay Core Module (MultiSafepay) because all payment methods require certain settings and/or the API key in the core module. 4. In the next screen, proceed with the installation. 5. Enter your [API key](/docs/sites#site-id-api-key-and-security-code), and then click **Save**. 6. On the **Payments** tab, enable the relevant payment methods. @@ -208,7 +208,7 @@ You can update the plugin in your backend and the CMS marketplace, or via SFTP. How to update via SFTP
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/prestashop-1-7.md b/content/integrations/prestashop.md similarity index 87% rename from content/integrations/prestashop-1-7.md rename to content/integrations/prestashop.md index 959eb5ad8..9338896b2 100644 --- a/content/integrations/prestashop-1-7.md +++ b/content/integrations/prestashop.md @@ -1,18 +1,18 @@ --- -title: "PrestaShop 1.7" +title: "PrestaShop" category: 62962dd7e272a6002ebbbbc5 -order: 11 +order: 12 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." -slug: 'prestashop-1-7' +slug: 'prestashop' ---
-Download +Download Source code @@ -27,21 +27,21 @@ slug: 'prestashop-1-7' # Prerequisites - [MultiSafepay account](/docs/getting-started-guide/) -- PrestaShop 1.7.6 up to PrestaShop 8.1.x +- PrestaShop 1.7.6 up to PrestaShop 8.2.x - PHP version 7.2 or higher # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the PrestaShop 1.7 installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the PrestaShop installation procedure. Always make a backup. -1. Sign in to your PrestaShop 1.7 <>. +1. Sign in to your PrestaShop Back Office. 2. Go to **Modules** > **Module Manager** > **Upload a module**. 3. Select the Plugin_PrestaShop.zip file, and then click **Configure**. 4. Clear your cache. # Configuration -1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay**, and enter your [site API key](/docs/sites/#site-id-api-key-and-security-code). 3. On the **Payment methods** tab, enable the relevant payment methods. 4. Click **Save**. @@ -65,7 +65,7 @@ After completing the configuration, enable specific countries to make the paymen ## Backend orders -In the previous release, PrestaShop backend orders were only created for MultiSafepay orders with **Completed** status. +In the previous release, PrestaShop Back Office orders were only created for MultiSafepay orders with **Completed** status. In the current release, a backend order is created for **every** order attempt, that is for MultiSafepay orders with **Initialized** status. ## Checkouts @@ -95,7 +95,7 @@ Supported since release: 5.0.0-RC-1, Oct 27th 2021. How to configure generic gateways
-1. Sign in to your Prestashop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **Payment methods** > **Generic gateway**. 3. Set the relevant [payment method gateway IDs](/reference/gateway-ids/) and the gateway icon. @@ -138,7 +138,7 @@ If the notification hasn't been processed yet, a waiting page with a loader disp To change the flow you are using, follow these steps: -1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **General settings** tab. 3. In the **Create order before payment** field, select the flow. 4. Click **Save**. @@ -166,7 +166,7 @@ The plugin supports [payment components](/docs/payment-components/), which: How to activate payment components
-1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **Payment methods** tab. 3. Select the relevant payment methods. 4. Set **Enable payment component** toggle to **Enabled**. @@ -174,7 +174,7 @@ The plugin supports [payment components](/docs/payment-components/), which: 💬 Support: If you're new to accepting card payments, email a request to activate them to -📘 **Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. +**⚠️ Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. @@ -189,7 +189,7 @@ The plugin supports [payment components](/docs/payment-components/), which: 3. Click on **Add new order** at the top right corner. 4. To add new order, follow all steps in PrestaShop 8 core reference page - see PrestaShop back office page
-> 📘 **Note:** To successfully generate payment links from the back office, ensure that you have followed the steps below: +> **⚠️ Note:** To successfully generate payment links from the back office, ensure that you have followed the steps below: > Under **Summary** section: > - Select **MultiSafepay** as **Payment**. > - Select **MultiSafepay initialized** as **Order status**. @@ -240,7 +240,7 @@ The plugin supports [recurring payments](/docs/recurring-payments). How to enable recurring payments
-1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **Payment methods** tab. 3. Select either the bundled card payments <>, **or** select specific card. 4. Set the **Enable tokenization** toggle to **Enabled**. @@ -250,7 +250,7 @@ The plugin supports [recurring payments](/docs/recurring-payments). ## Refunds -- [Full and partial refunds](/docs/refund-payments/) are supported in your MultiSafepay dashboard and <>. +- [Full and partial refunds](/docs/refund-payments/) are supported in your MultiSafepay dashboard and PrestaShop <>. - [BNPL refunds](/docs/refund-payments#bnpl-refunds) are supported in the dashboard only. - Refunds for orders that include shopping cart rule discounts are supported in the dashboard only. @@ -262,26 +262,28 @@ By default, refunds initiated in your backend are automatically processed via ou To disable this, follow these steps: -1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **Manage hooks**. 3. Select **Display non-positionable hooks**. 4. For **actionOrderSlipAdd**, select the three dots, and then click **Unhook**. +For more information, see PrestaShop – Creating returns and refunds . + ## Shopping carts If you notice errors in shopping cart calculations, email As a temporary solution, you can disable sending the shopping cart with the payment request. -❗️ **Note:** <> methods do not work if the shopping cart is disabled. +**⚠️ Note:** <> methods do not work if the shopping cart is disabled.
How to disable the shopping cart
-1. Sign in to your PrestaShop 1.7 backend. +1. Sign in to your PrestaShop Back Office. 2. Go to **MultiSafepay** > **General settings** tab. 3. Set the **Disable Shopping Cart** toggle to **Enabled**. 4. Click **Save**. @@ -311,7 +313,7 @@ There are several + +# Prerequisites + +- [MultiSafepay account](/docs/getting-started-guide/) registered in one of the following countries: The Netherlands, Belgium, Spain, Italy, Germany. +- A MultiSafepay [site API key](/docs/sites#site-id-api-key-and-security-code). +- Country restrictions may apply per payment app. + +# Installation + +To install Shopify Payments Apps, follow these steps: + +1. Sign in to your Shopify backend. +2. Ensure that your Shopify user has the permissions to install new apps. +3. Check that the payment methods you want to use in Shopify are [activated for your MultiSafepay account](/docs/payment-methods). +4. Select the desired payment methods, and install their apps using one or more of the following links: + - American Express + - Amazon Pay + - Bancontact + - Bank Transfer + - Bizum + - Card Payment + - CBC + - Direct debit + - iDEAL + - KBC + - Maestro + - MB WAY + - Mastercard + - Multibanco + - MyBank + - Visa + - WeChat Pay +5. Click "Install". +6. If necessary, log in to your Shopify store. +7. On your admin page, click **Install**. +8. Under **Settings**: + - **MultiSafepay website API Key**: Enter your [site API key](/docs/sites#site-id-api-key-and-security-code). + - **MultiSafepay Environment**: Turn on if you are using a Test API key. Turn off for a Live API key. +9. Click **Save**. +10. Under **Payment configuration** click the button **Payment configuration** + - Enable Test Mode if you are using a Test API key. Turn off for a Live API key. + - Enable or disable payment icons according to your preferences. + +
+ +> ⚠️ About API key and selected environment +> +> For all the above-listed MultiSafepay payment apps, the same API key, and the selected environment (test or live) will be used. Once you change the API key in a payment app, or the environment selected, it is automatically changed for the other active apps associated with your shop. + +
+ +--- + +# User guide + +## Abandoned checkouts + +MultiSafepay's [Second Chance](/docs/second-chance/) feature is **not** supported. + +Shopify offers a similar native service. See Shopify – Recovering abandoned checkouts . + +## Checkout Configuration + +Configure settings for this payment app: activate the payment method, switch between Shopify Test / Live mode. + +In **Settings** > **Checkout**, you can configure which customer details to include in your order request: + +- Customer contact method: We recommend setting up the checkout by using the email as the primary customer contact method. +- Customer information: We recommend setting up the shipping address phone number as required. + +Note: for some payment methods, certain customer data is required, e.g. phone number is required for Amazon Pay payments. + +## Currencies + +Via MultiSafepay, you can only accept payments in **EUR**. +Ensure the default currency is set to EUR under **Settings** > **General** > **Store defaults** > **Currencies to display**. + +## Payment capture method + +Payment capture method will be forced to **Automatically at checkout** when a customer submits the order request via one of these apps. + +## Reconciliation + +To match orders in your accounting system with your MultiSafepay account, use the MultiSafepay order ID and the Shopify payment ID. + +## Refunds + +[Full and partial refunds](/docs/refund-payments/) are supported via your MultiSafepay dashboard and backend. + +
+How to process a refund in your backend +
+ +1. Sign in to your Shopify backend. +2. Go to **Orders**. +3. Select the order you want to refund. +4. Click **Refund**, enter the refund amount, and confirm. +5. A refund request is sent to MultiSafepay. The refund status is updated in your Shopify backend as **pending**. +6. The refund is processed by MultiSafepay. The refund status is updated in your Shopify backend as **refunded**. + +**Notes** + +- The refund amount cannot exceed the original transaction amount. +- Refunds are not processed in real-time. + - The refund status is updated in your Shopify backend as **pending** until the refund is processed by MultiSafepay. + - While the refund is **pending** in your Shopify backend, refund will appear as **reserved** in your MultiSafepay account. + +
+ +# Uninstallation + +To uninstall, follow these steps: + +1. Ensure that your Shopify user has the permissions to uninstall apps. +2. On your admin page, go to **Settings** > **Apps and sales channels**. +3. Select the MultiSafepay payment app you want to uninstall, and clicking on the three dots icon, select the option **Uninstall**. +4. On the dialog window, select a reason and confirm the action by clicking **Uninstall** button. + +--- + +## Troubleshooting + +### Payment Order ID + +
+How to troubleshoot Shopify issues +
+ +If you experience issues with order statuses, or refund statuses not updating, we will need the payment ID of the original transaction to investigate the issue. + +1. Sign in to your Shopify backend. +2. Go to **Orders**. +3. Select the order related to the issue you want to report. +4. In the timeline, look for the earliest payment event and find the Payment ID. +5. Include the payment ID when reporting your issue to MultiSafepay support. + +
+ +--- + +[block:html] +{ + "html": "
\n

\n 💬\n

Support

\n

\n

Contact MultiSafepay:

\n \n
" +} +[/block] + +[Top of page](#) diff --git a/content/integrations/shopify.md b/content/integrations/shopify.md index da86a81ce..66e73e79d 100755 --- a/content/integrations/shopify.md +++ b/content/integrations/shopify.md @@ -1,7 +1,7 @@ --- title: "Shopify" category: 62962dd7e272a6002ebbbbc5 -order: 14 +order: 15 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free app." @@ -9,11 +9,9 @@ slug: 'shopify' --- -> ❗️ Urgent action required! +> ℹ More information > -> As of July 31, 2022, the deprecated version of the app will no longer be supported. Payments will **not** be processed. -> [Migrate to our updated app](#how-to-install) as soon as possible. -> The new app leverages a single, powerful <> for a faster, safer integration. +> Discover the [new version of our Shopify payments apps](/docs/shopify-payment-apps) and streamline payment management for your Shopify store. With access to over 15 payment methods through multiple gateways, provide your customers with a secure, personalized, and versatile checkout experience. Grow your business with a solution designed to support scalability and meet the demands of a global audience. # Prerequisites @@ -21,25 +19,24 @@ You will need a [MultiSafepay account](/docs/getting-started-guide/). # Installation -To install or migrate, follow these steps: +To install, follow these steps: 1. For increased security and stability, wait for off-peak hours and temporarily enable password protection for your webshop. 2. Check that the payment methods you want to use in Shopify are [activated for your MultiSafepay account](/docs/payment-methods). 3. From the Shopify app store, install the MultiSafepay payments app . 4. Under **Settings**: - **Website API key**: Enter your [site API key](/docs/sites#site-id-api-key-and-security-code). - - **Environment**: Set whether it is a **live** or **test** key. -5. Click **Save and continue** (might take a few seconds). + - **Environment**: Set whether it is a **live** or **test** API key. +5. Click **Save and continue** (this process might take a few seconds). You are redirected to **Settings** > **Payments**. -6. For each payment method you want to activate, on the ** app** page: - - If Shopify has not reviewed the payment method yet, click **Install unlisted app**. +6. For each payment method you wish to activate, follow the below steps on the **app** page: - Select the payment method checkbox. - Under **Test mode**, select the **Enable test mode** checkbox. - Click **Activate **. - If the payment method is **not** activated for your MultiSafepay account, an error appears. + If the payment method is **not** activated for your MultiSafepay account, then in Shopify an error appears. 7. [Activate the method for your MultiSafepay account](/docs/payment-methods), and then in Shopify, click **Retry**. -✅   **Tip!** We recommend first testing each payment method before setting your **live** API key. +  **💡 Tip!** We recommend first testing each payment method before setting your **live** API key.
--- @@ -56,6 +53,10 @@ See Shopify – -Installation and configuration -
- -1. To install payment methods, use the relevant links. For each, click the **Install** button on the bottom right: - - -
Alipay - - American Express - - Bancontact - - Bank transfer - - Belfius - - CBC/KBC - - Dotpay - - EPS - - Giropay - - iDEAL , iDEAL QR - - Maestro - - Mastercard - - PayPal - - Paysafecard - - Request to Pay - - Direct debit - - Sofort - - Trustly - - Visa (including Cartes Bancaires & Dankort) - -2. Sign in to your Shopify <>. -3. Go to **Settings** > **Payment providers** > **Alternative payments**. -4. Search for and then click the payment methods you have installed. -5. Enter your [site ID and security code](/docs/sites#site-id-api-key-and-security-code). -6. Activate the payment method. - -✅   **Tip!** To bundle all payment methods under a single MultiSafepay payment gateway at checkout, under **Alternative payments**, activate the **MultiSafepay** payment method. - -
- ## Order expiration Shopify orders expire after **3** days. @@ -112,7 +75,7 @@ The `pendingExpiresAt` value matches the date and time when the order expires an For more information, see Shopify.dev – Pend a payment . -**Note:** If an order is not completed within **2** hours, the <> changes from **Pending** to **Expired**. +**⚠️ Note:** If an order is not completed within **2** hours, the <> changes from **Pending** to **Expired**. ## Payment methods @@ -121,19 +84,10 @@ For more information, see Shopify.dev – **Plugin manager**. @@ -39,11 +39,16 @@ slug: 'shopware-5' 7. Fill out the other fields as required. 8. Go to **Configuration** and select the required payment methods.
- --- ## User guide +### Enabling and disabling payment methods + +Once the plugin is initially installed, reinstalling becomes necessary to manage the listing or delisting of enabled and disabled payment methods. + +Please follow the first four steps described in the installation and configuration process, then proceed to the fifth one, where you will find the **Reinstall** icon for clicking. + ### Backend orders To create backend orders in the MultiSafepay Shopware 5 plugin, Shopware uses a third-party plugin. @@ -52,30 +57,6 @@ See shopwareLabs GitHub –
-How to configure generic gateways -
- -1. Sign in to your Shopware 5 backend. -2. Go to **MultiSafepay settings**. -3. Set the relevant [payment method gateway IDs](/reference/gateway-ids/). -4. Upload a custom gateway image, if relevant. -5. For <> orders, specify whether to include a shopping cart. - -For support, email - -You can filter generic gateways by country, and minimum and maximum amount. - - - ## Order flows The plugin supports two flows for creating orders: **before** or **after** the transaction is completed. @@ -116,6 +97,8 @@ To change the flow you are using, follow these steps: ### Payment methods +By default, activated payment methods from your MultiSafepay account appear on the payment method list. +
Supported payment methods
@@ -188,7 +171,7 @@ You can update the plugin in your backend or the CMS marketplace, or via SFTP. How to update in your backend
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/shopware-6.md b/content/integrations/shopware-6.md index 5e39bbf21..978b3dc2c 100644 --- a/content/integrations/shopware-6.md +++ b/content/integrations/shopware-6.md @@ -1,7 +1,7 @@ --- title: "Shopware 6" category: 62962dd7e272a6002ebbbbc5 -order: 16 +order: 17 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manuals for MultiSafepay's free plugins." @@ -12,8 +12,6 @@ slug: 'shopware-6'
-Download - Source code Changelog @@ -23,12 +21,12 @@ slug: 'shopware-6' ## Prerequisites - [MultiSafepay account](/docs/getting-started-guide/) -- Shopware 6.4.11.x or higher, and 6.5.x.x -- Tested on Shopware 6.5.0.0, 6.4.20.2 and PHP8.1 +- Shopware 6.6.x.x +- Tested on Shopware 6.6.3.0 and PHP 8.1–8.2 ## Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the Shopware 6 installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the Shopware 6 installation procedure. Always make a backup. ### Marketplace installation Get the free MultiSafepay plugin from the Shopware 6 marketplace and connect your webshop with your Shopware account. @@ -82,7 +80,7 @@ If you're new to accepting card payments, email a request to activate them to -📘 **Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. +**⚠️ Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases.
@@ -148,24 +146,21 @@ You cannot refund more than the original amount in your backend. ### Shipping orders -For <> orders, after shipment, you must change the order status from **Completed** to **Shipped**. This prevents the order expiring and triggers invoicing. - -If you change the <> to **Delivered** in your backend, the updated status is passed to your MultiSafepay dashboard automatically. +For <> orders, once shipped, the delivery status must be manually updated from **Open** to **Shipped**. This change will then automatically reflect in your MultiSafepay dashboard. -### Updates +## Updates -You can update the plugin in your backend and the CMS marketplace, or via using SFTP. - -
-How to update in your backend -
+  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. -✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +### Marketplace update +Following the steps described in the installation process from Shopware 6 marketplace. -1. Download the plugin again above. -2. Follow the Installation and configuration instructions from step 3. +### Composer update +By executing the following command within the root directory of Shopware 6: -
+``` +composer update multisafepay/shopware6 +``` --- @@ -175,4 +170,4 @@ You can update the plugin in your backend and the CMS marketplace, or via using } [/block] -[Top of page](#) \ No newline at end of file +[Top of page](#) diff --git a/content/integrations/virtuemart-3.md b/content/integrations/virtuemart-3.md index 499bc08ae..704621de5 100755 --- a/content/integrations/virtuemart-3.md +++ b/content/integrations/virtuemart-3.md @@ -1,7 +1,7 @@ --- title: "VirtueMart 3" category: 62962dd7e272a6002ebbbbc5 -order: 17 +order: 20 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -27,7 +27,7 @@ slug: 'virtuemart-3' # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the VirtueMart installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the VirtueMart installation procedure. Always make a backup. 1. Sign in to your VirtueMart <>. 2. Go to **Extensions** > **Extension manager**. @@ -107,7 +107,7 @@ You can update the plugin in your backend and the CMS marketplace, via SFTP. How to update in your backend
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/virtuemart-4.md b/content/integrations/virtuemart-4.md index 39ce9a4d9..19c7a4b4e 100755 --- a/content/integrations/virtuemart-4.md +++ b/content/integrations/virtuemart-4.md @@ -1,7 +1,7 @@ --- title: "VirtueMart 4" category: 62962dd7e272a6002ebbbbc5 -order: 18 +order: 19 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -11,7 +11,7 @@ slug: 'virtuemart-4'
-Download +Download Source code @@ -27,7 +27,7 @@ slug: 'virtuemart-4' # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the VirtueMart installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the VirtueMart installation procedure. Always make a backup. 1. Sign in to your VirtueMart <>. 2. Go to **System** > **Install** > **Extensions**. @@ -95,14 +95,14 @@ If a customer selects Apple Pay at checkout but isn't on an Apple device, they r ## Refunds -[Full refunds](/docs/refund-payments/) are supported in your MultiSafepay dashboard. +[Full refunds](/docs/refund-payments/) are supported in both MultiSafepay and VirtueMart dashboards. You cannot refund more than the original amount in your dashboard. ## Updates You can update the plugin in your backend as described below: -✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/vue-storefront.md b/content/integrations/vue-storefront.md index 5a53ea2aa..4f0d4ba6c 100644 --- a/content/integrations/vue-storefront.md +++ b/content/integrations/vue-storefront.md @@ -1,7 +1,7 @@ --- title: "Vue Storefront" category: 62962dd7e272a6002ebbbbc5 -order: 19 +order: 21 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Free plugin for MultiSafepay payment solutions." diff --git a/content/integrations/webshop-access.md b/content/integrations/webshop-access.md index 9a39cc75e..4abbc1019 100644 --- a/content/integrations/webshop-access.md +++ b/content/integrations/webshop-access.md @@ -1,37 +1,156 @@ --- -title : "Integration Team: Help us help you" +title : "Integration Troubleshooting Guide" category: 62962dd7e272a6002ebbbbc5 order: 500 -hidden: true +hidden: false slug: 'help-us-help-you' --- -We test all our ready-made integrations before release, but your integration may still encounter configuration issues or a bug - especially if you have created your own [API integration](/docs/api-integration/). +We test all our ready-made integrations before release, but due to external factors or incompatibility with third party solutions, your integration may still encounter configuration issues or a bug. -We are best able to support issues that are reproducible in a standard website environment. But we always try to offer support, even for issues outside our scope. +Here are some common checks that we recommend doing before investigating together with our technical support team. -# Basics -When we start trying to reproduce an issue, we always begin with the basics. +# Basics -Help us by answering the following questions: +Via our ready-made plugins, we offer solutions that require minimal manual configuration from your side. +We strive for correct functionality, and support you best as possible with any configuration. -- Does the issue occur in the plugin core? -- Does it occur in the payment method core? -- When did the issue start occurring? -- Has there been a recent plugin or system update? -- Can you reproduce the issue? -- Do you have any examples? +## Plugin versions + +Always ensure your **plugin version is up to date**. Only then, we can guarantee correct functioning of our solutions. +Seek assistance from your developer to make sure the basic configurations are in place. + +Check the **changelog** for your plugin to read about any recently added features, and bugfixes. + + +**💡 Tip!** Before conducting updates, always test via a **staging** environment. + +## Third party solutions + +**⚠️ Note:** We cannot guarantee correct behavior with any third party solutions which are not explicitly mentioned as compatible in our documentation. + + +If you encounter an issue with payments while using one of our plugin integrations, always try to reproduce the issue with any third party solutions deactivated. This gives valuable insights for further investigation. + +# Payments failing + +If you encounter issues that affect payments, valuable first checks are: + +- Log into your Merchant Dashboard and check for any alerts: You see alerts on your main page if we have recently requested information, or your account needs extra configuration. +- Create a [payment link](/docs/payment-links/) and verify if the issue occurs as well. (!) + This helps narrow down if the cause lies in a payment configuration, or rather within the plugin /API integration. + + **💡 Tip!** Always indicate the result of this step when reaching out to us, best with a screenshot. + +- Check if the payment method is available for the country and currency selected. +- Check if a transaction is created (and declined) or if no transaction arrives to the system in the first place. + +With the results of these checks, reach out to us via [info@multisafepay.com](mailto:info@multisafepay.com). + + +**💡 Tip!** Check our status page for general updates or notifications. + + +Further checks for plugin integrations: + +- Set your Back Office to debug mode. +- Send us the system report / error logs. + +Further checks for custom integrations: + +- Check if all requirements in the create Order request were met. +- Send us a sample request. + +# Payment Component not displayed correctly + +Possible errors you may encounter in case of misconfigurations are: + +- Payment component displayed empty +- _Temporarily not available_ + If you use our API + If you use one of our ready-made solutions, contact [integration@multisafepay.com](mailto:integration@multisafepay.com) + +**Checks** we recommend for our **plugins**: -# Integration Team rules +- **Always** ensure that the setting Payment component is set to "enabled" within the payment method. +- Review which themes you are using and indicate these to us. +- Set your backoffice to debug mode. +- Send us the system report / error logs. + + +**Checks** we recommend for **API** solutions: + +- Ensure you have followed all instructions in the Payment component guide. +- Reach out to us via [integration@multisafepay.com](mailto:integration@multisafepay.com) + +As a temporary fix, while we investigate the issue, you can use our payments via redirect. + +# Amounts differ between shopping cart and payment page + +- Check if the issue occurs also when deactivating any 3rd party solutions + **💡 Tip!** you can do this best via a staging environment. + +- Contact us for support. +Alternative solutions in the meantime: +- Activate payment components to avoid confusion with your customers. +- Disable the shopping cart via your settings for the payment page in your Merchant Dashboard. + ⚠️ **Note:** This will disable BNPL methods. + +# Webhook issues + +If you encounter the following issue: + +- **Transaction status** in your Back Office differs from the status on your MultiSafepay Dashboard + +You can try the following: + +- Relaunch the notification +- Verify that you have indicated the correct notification URL + +With the results of these checks, reach out to us via [integration@multisafepay.com](mailto:info@multisafepay.com). + +# Direct payment button issues + +If you notice any troubles during the integration of direct buttons for Apple Pay or Google Pay, we recommend: + +## Apple Pay direct integration + +- Ensure that card payments, as well as Apple Pay are enabled for your website / account. +- Ensure you follow our [step by step guide](/docs/apple-pay-direct/). +- When validating your domain, double check to have associated the **correct URL**. +- Distinguish correctly between **TEST** and **LIVE** environments, and the respective domain validation files. +- Place the correct validation file, and do NOT copy-paste. +- Check if you whitelisted Apple Pay's domain & IP addresses . +- When using a protected environment during testing, ensure you have **whitelisted **our IP ranges. You can mention this need to our support team via [info@multisafepay.com](mailto:info@multisafepay.com) who will send the information to you. +- Check if the issue occurs via the** redirect solution** as well. This result is valuable information when contacting [info@multisafepay.com](mailto:info@multisafepay.com). + +## Google Pay direct integration + +- Ensure you follow our [step by step guide](/docs/google-pay-direct/). +- Ensure you have validated the URL correctly. +- Check if the issue occurs via the redirect solution as well. This result is valuable information when contacting [info@multisafepay.com](mailto:info@multisafepay.com). + +# Integration contact rules + +If all the steps within your topic did not solve the issue, we are always available to help you investigate further. +When creating a ticket to [integration@multisafepay.com](mailto:integration@multisafepay.com), please **always** indicate the following: + +- **Confirm you have executed all the steps we recommend for self-troubleshooting** +- Your **merchant ID** (MID) to identify your account. +- Indicate if you are integrating via our API, or which plugin version you are using. +- Send any examples (transactions, order IDs) and if possible, screenshots. +- When did the issue start occurring? +- Have you done any changes from your side shortly before the issue occurred for the first time? - We conduct our investigations in a staging or test environment of your ecommerce platform. Create a temporary username and a strong password to give us access. Always delete the temporary account after we finish the investigation. -- We only ask for the credentials for your live ecommerce platform account in extraordinary circumstances. In such cases, we recommended making a backup beforehand, just in case. -> ⚠️ **Note:** -> -> MultiSafepay assumes **no** responsibility for mistakes in your live environment. -> + +> ⚠️ **Note:** +> +> MultiSafepay assumes **no** responsibility for mistakes in your live environment. +> We only ask for the credentials for your live ecommerce platform account in extraordinary circumstances. In such cases, we recommended making a backup beforehand, just in case. +> > - If we require server access, we work exclusively with SFTP and SSH, using Port 22. For security reasons, we no longer support the FTP protocol. > > - If we cannot reproduce an issue in a standard staging or test environment, we consider it a _time-boxed project_. This means we allocate a limited period of time to work on it further. We cannot guarantee a solution. \ No newline at end of file diff --git a/content/integrations/woocommerce.md b/content/integrations/woocommerce.md index 96071575b..b1f440eb4 100755 --- a/content/integrations/woocommerce.md +++ b/content/integrations/woocommerce.md @@ -1,7 +1,7 @@ --- title: "WooCommerce" category: 62962dd7e272a6002ebbbbc5 -order: 20 +order: 22 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -27,7 +27,7 @@ slug: 'woocommerce' # Installation -✅   **Tip!** We recommend first installing the plugin in a test environment, following the WooCommerce installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the WooCommerce installation procedure. Always make a backup. There are two ways to install the plugin: @@ -134,8 +134,8 @@ First, read the following: Example of how to implement and overwrite the shopping cart: ``` javascript -add_filter('multisafepay_order_request', 'return_my_multisafepay_order_request'); -function return_my_own_locale( \MultiSafepay\Api\Transactions\OrderRequest $order_request) { +add_filter( 'multisafepay_order_request', 'return_my_multisafepay_order_request' ); +function return_my_multisafepay_order_request( \MultiSafepay\Api\Transactions\OrderRequest $order_request ) { // Your conditions and logic to return a valid order request // Register a CartItem $shopping_cart_items = array(); @@ -186,7 +186,7 @@ The plugin supports [payment components](/docs/payment-components/), which: 💬 Support: If you're new to accepting card payments, email a request to activate them to -📘 **Note:** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. +**⚠️ Note:*** If you have a custom checkout and encounter a conflict with the payment component, the Integration Team will do their best to provide support, but we can't guarantee compatibility in all cases. @@ -216,6 +216,7 @@ By default, activated payment methods from your MultiSafepay account appear on t
- Cards: [All](/docs/card-payments/) (The card number field automatically detects the type of card (e.g. Visa) as the customer enters their card number.) +**💡 Tip!** In your settings, you can enable the function "group Credit cards" to show cards as a single payment method. - Banking methods: All, except TrustPay - <>: All - Wallets: [Alipay](/docs/alipay/), [Apple Pay](/docs/apple-pay/), [Google Pay](/docs/google-pay/), [PayPal](/docs/paypal/) @@ -258,7 +259,7 @@ You need to [activate recurring payments](/docs/recurring-payments/) and then en 5. In the **Recurring payments** filed, select **Enabled**. 6. Click **Save changes**. -📘 **Note:** To activate recurring payments, ensure that the Payment component is enabled. +**⚠️ Note:** To activate recurring payments, ensure that the Payment component is enabled. @@ -272,6 +273,15 @@ For <> orders, after shipment, you must change the order status f If you change the <> to **Shipped** in your backend, the updated status is passed to your MultiSafepay dashboard automatically. +## Checkouts + +The plugin supports the WooCommerce checkout and is compatible with most premium themes, unless you have a custom checkout. + +### WooCommerce Checkout Blocks + +You can use the Checkout Blocks for WooCommerce to customize your checkout. +**⚠️ Note:** Only redirect payment methods are supported with this checkout at the moment. + ## Surcharges You can apply [surcharges](/docs/surcharges/) in the plugin when combined with a relevant third-party package. @@ -292,6 +302,23 @@ The Integration Team will do their best to help you install third-party packages +## Troubleshooting + +### Redirect URL not leading to thank you page + +- possible reasons + +WC_Order::get_checkout_order_received_url() => + +does not return correct URL, which can be caused by a third party plugin making use of the "woocommerce_get_checkout_order_received_url" filter and returning a wrong value + +- possible solutions + +Use the filter "woocommerce_get_checkout_order_received_url", provided by WooCommerce, and re-format into the correct value. + + WooCommerce code reference +WooCommerce add filter + ## Updates You can update the plugin in your backend and the CMS marketplace, or via SFTP. @@ -300,7 +327,7 @@ You can update the plugin in your backend and the CMS marketplace, or via SFTP. How to update in your backend
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/integrations/x-cart.md b/content/integrations/x-cart.md index aef268904..c16c75f73 100755 --- a/content/integrations/x-cart.md +++ b/content/integrations/x-cart.md @@ -1,7 +1,7 @@ --- title: "X-Cart" category: 62962dd7e272a6002ebbbbc5 -order: 21 +order: 23 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." diff --git a/content/integrations/zen-cart.md b/content/integrations/zen-cart.md index 9970d58d9..21c197ecf 100755 --- a/content/integrations/zen-cart.md +++ b/content/integrations/zen-cart.md @@ -1,7 +1,7 @@ --- title: "Zen Cart" category: 62962dd7e272a6002ebbbbc5 -order: 22 +order: 24 hidden: false parentDoc: 62a9a54abde254065ee92a5c excerpt: "Technical manual for MultiSafepay's free plugin." @@ -27,7 +27,7 @@ slug: 'zen-cart' # Installation and configuration -✅   **Tip!** We recommend first installing the plugin in a test environment, following the Zen Cart installation procedure. Always make a backup. +  **💡 Tip!** We recommend first installing the plugin in a test environment, following the Zen Cart installation procedure. Always make a backup. 1. In the root of your webshop, unpack the content of the .ZIP file. 2. Sign in to your Zen Cart <>. @@ -50,8 +50,8 @@ slug: 'zen-cart'
- Cards: [All](/docs/card-payments/) -- Banking methods: All, except iDEAL QR and TrustPay -- <>: All, except in3 +- Banking methods: All, except iDEAL QR, TrustPay, and Bizum. +- <>: All, except in3 and Billink. - Wallets: [Alipay](/docs/alipay/), [Apple Pay](/docs/apple-pay/), [PayPal](/docs/paypal/) - Prepaid cards: - Beauty and Wellness gift card @@ -87,7 +87,7 @@ You can update the plugin in your backend and the CMS marketplace, or via SFTP. How to update via SFTP
-✅   **Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. +  **💡 Tip!** Make sure you have a backup of your production environment, and that you test the plugin in a staging environment. 1. Download the plugin again above. 2. Follow the Installation and configuration instructions from step 2. diff --git a/content/payment-management/chargebacks.md b/content/payment-management/chargebacks.md index ded6239f6..eb37d220e 100644 --- a/content/payment-management/chargebacks.md +++ b/content/payment-management/chargebacks.md @@ -3,7 +3,6 @@ title: 'Chargebacks' category: 6278c92bf4ad4a00361431b0 order: 0 hidden: false -parentDoc: 62a727569e389a012f577acd slug: 'chargebacks' --- @@ -58,7 +57,7 @@ You need to upload relevant documentary evidence: 1. Sign in to your MultiSafepay dashboard . 2. Go to **Settings** > **Files**. -3. Under **Upload a new file**, click **Choose file**.
**Note:** You must upload files in PDF format. +3. Under **Upload a new file**, click **Choose file**.
**⚠️ Note:** You must upload files in PDF format. 4. Select the relevant file(s), and then click **Open**. 5. Under **Upload queue**, to upload: - A specific file, click **Upload**. diff --git a/content/payment-management/recurring-payments.md b/content/payment-management/recurring-payments.md index 9c95721d1..b9c30d0e7 100755 --- a/content/payment-management/recurring-payments.md +++ b/content/payment-management/recurring-payments.md @@ -30,11 +30,10 @@ For both initial and subsequent payments: For initial payments then subsequent payments via direct debit: - Bancontact - [Bancontact WIP](/docs/bancontact#bancontact-wip-service) - iDEAL -- Sofort -❗️ **Note:** For subsequent payments to be successful via direct debit, ensure that direct debit [is activated in your MultiSafepay account](/docs/direct-debit/#activation). +**⚠️ Note:** For subsequent payments to be successful via direct debit, ensure that direct debit [is activated in your MultiSafepay account](/docs/direct-debit/#activation). -✅  **Tip:** Test every payment method flow you intend to use. + **💡 Tip!** Test every payment method flow you intend to use. ## Initial payment @@ -143,7 +142,7 @@ We support recurring payments in our plugins for: See API reference – [Create order](/reference/createorder/) > `customer.reference`. -📘 **Note:** Tokens for direct debits are originally received as iDEAL or Sofort transactions. +**⚠️ Note:** Tokens for direct debits are originally received as iDEAL or Sofort transactions.
Additional parameters diff --git a/content/payment-management/second-chance.md b/content/payment-management/second-chance.md index e1dbeb40d..88a118753 100755 --- a/content/payment-management/second-chance.md +++ b/content/payment-management/second-chance.md @@ -64,7 +64,7 @@ To integrate, see Recipes – Locale codes per language and country @@ -137,7 +137,7 @@ Payment links in Second Chance emails have the same lifetime as the original pay To set or adjust the lifetime of a payment link, see API reference – [Create order](/reference/createorder/): `days_active` parameter. -📘 **Note:** This is different to [transaction expiration times per payment method](/reference/transaction-expiration/). +**⚠️ Note:** This is different to [transaction expiration times per payment method](/reference/transaction-expiration/). This only applies to certain payment methods: diff --git a/content/payment-management/success-pages.md b/content/payment-management/success-pages.md index a18d4f282..450486340 100644 --- a/content/payment-management/success-pages.md +++ b/content/payment-management/success-pages.md @@ -6,12 +6,14 @@ hidden: false slug: 'success-pages' --- -After completing payment, MultiSafepay redirects the customer to a success (or thank you) page. +After completing payment process, MultiSafepay redirects the customer to a success ("thank you") page, or to the next confirmation step where necessary. If `payment_options.redirect_url` in your [create order](/reference/createorder) request is: -- Set to your success page URL, we redirect the customer there -- **Not** set, we redirect the customer to a MultiSafepay success page +- Set to your success page URL, we redirect the customer there (or to the next step in the process) +- **Not** set, we redirect the customer to a MultiSafepay success page (or to the next step in the process) + +**⚠️ Note:** redirection to the success page should not be taken as a guarantor of completed payment; To check the status of a payment, you can rely on the notification. #### Example diff --git a/content/payment-management/webhook.md b/content/payment-management/webhook.md index 64a60e6bd..bebe2761c 100644 --- a/content/payment-management/webhook.md +++ b/content/payment-management/webhook.md @@ -30,7 +30,7 @@ Our webhook uses the `POST` method to inform your web server when there is an up max-width: 750px; width: 100%;"> -📘 **Note:** International bank account numbers (IBANs) are sensitive data. For security reasons, we mask them by default in POST webhook notifications so that only the last 4 digits are visible, e.g. *** 1234. +**⚠️ Note:** International bank account numbers (IBANs) are sensitive data. For security reasons, we mask them by default in POST webhook notifications so that only the last 4 digits are visible, e.g. *** 1234. To unmask them, see [IBANs](/docs/ibans/). # Prerequisites @@ -51,11 +51,17 @@ You can configure the webhook endpoint at: Site level
-1. Sign in to your
MultiSafepay account . -2. Go to **Sites**, and then click the relevant site. -3. On the **Site profile** page, under **Functionality**, in the **Webhook URL** field, set your webhook endpoint. +For websites: -📘 **Note:** These instructions apply to your `notification_url` for order updates. For [FastCheckout shipping options updates](/docs/fastcheckout-shipping-options), see Order level below. +1. Sign in to your MultiSafepay dashboard . +2. Go to **Websites**, and then click the relevant website. +3. Under **Functionality** > **Webhook URL**, set your webhook endpoint. + +**⚠️ Note:** These instructions apply to your `notification_url` for order updates. For [FastCheckout shipping options updates](/docs/fastcheckout-shipping-options), see Order level below. + +For terminal groups: + +You can add a **Webhook URL** for a **terminal group** from your MultiSafepay dashboard . For more information, see **Activation** - SmartPOS activation or Traditional (CTAP) terminal , depending on your terminal.
@@ -75,7 +81,7 @@ You can configure the webhook endpoint at: -📘 **Note:** If you configure your webhook endpoint at site **and** order level, the order level endpoint is used by default. +**⚠️ Note:** If you configure your webhook endpoint at site **and** order level, the order level endpoint is used by default. ### Example request @@ -193,7 +199,7 @@ The updated order details make up the payload of the request. Check the <> in the `status` field. If necessary, update your <>. -📘 **Note:** You can ignore notifications that: +**⚠️ Note:** You can ignore notifications that: - Don't have the `timestamp` parameter in the URL - Have the same <> @@ -314,8 +320,8 @@ We provide a code sample in Python for your reference. Acknowledge that you have successfully received a valid notification by returning: -- HTTP status code `200` with `OK` at the start or end of the message body, **or** -- HTTP status code `200` with `MULTISAFEPAY_OK` anywhere in the message body. +- HTTP status code `200` with `OK` within the first 100 characters of the message body, **or** +- HTTP status code `200` with `MULTISAFEPAY_OK` anywhere within the first 100 characters of the message body. Until we receive your acknowledgment, we resend the notification 3 times at 15 minute intervals, each with a new timestamp. diff --git a/content/payment-methods/3ds2.md b/content/payment-methods/3ds2.md index 4b49ff2b4..523a239a7 100644 --- a/content/payment-methods/3ds2.md +++ b/content/payment-methods/3ds2.md @@ -1,11 +1,18 @@ --- title: '3D Secure 2.0' category: 6298bd782d1cf4006032e765 -order: 25 +order: 0 hidden: false parentDoc: 62a727569e389a012f577acd slug: '3ds2' --- + + +>⚠️ Note: +> +> Due to scheme regulations, transactions created with payment method VISA must include correct customer details in the `email` / `phone` parameter. +> See also [Create Order](/reference/createorder/) > customer object. + # Authentication 3D Secure 2.0 (3DS2) is an authentication protocol that <> use to verify cardholder identity for online credit and debit card payments. Under the [PSD2](/docs/psd2/), MultiSafepay is required to apply it to **all** Europe-based card payments, and we enable it by default for non-EU payments as well. @@ -32,6 +39,8 @@ When you collect cardholder data, you also need to collect other contextual info See also [Cardholder data](/docs/cardholder-data). +**⚠️ Note:** Some details are required to comply with scheme regulations. For example, transactions created with payment method VISA must include the `email` parameter. + # Exemptions To help you optimize <> and manage risk, MultiSafepay supports exemptions from 3DS2 and [strong customer authentication](/docs/psd2/) (SCA). diff --git a/content/payment-methods/amazon-pay-integration.md b/content/payment-methods/amazon-pay-integration.md index 4cd9fb79b..89e5d43db 100644 --- a/content/payment-methods/amazon-pay-integration.md +++ b/content/payment-methods/amazon-pay-integration.md @@ -42,7 +42,7 @@ Create an element in the `` of your checkout page where you want to displa
``` -📘 **Note:** This element is populated in a later step. For more information, see [Display the Amazon Pay button](#3-display-the-amazon-pay-button) below. +**⚠️ Note:** This element is populated in a later step. For more information, see [Display the Amazon Pay button](#3-display-the-amazon-pay-button) below. # 2. Create an order diff --git a/content/payment-methods/amazon-pay.md b/content/payment-methods/amazon-pay.md index 1c86bcbf8..4be2e0482 100755 --- a/content/payment-methods/amazon-pay.md +++ b/content/payment-methods/amazon-pay.md @@ -84,20 +84,16 @@ For more information, see Amazon Pay – Download the compressed Apple Pay domain validation files . +1. Download the compressed Apple Pay domain validation files . 2. Unzip the folder and select the relevant file. 3. Place the domain validation file at: @@ -43,7 +43,7 @@ To see which Apple products are compatible with Apple Pay, see Apple Developer https://{your-domain}/.well-known/apple-developer-merchantid-domain-association ``` -📘 **Note:** For testing, download the domain validation in the **test** folder. +**⚠️ Note:** For testing, download the domain validation in the **test** folder. ## 2. Request to register @@ -103,13 +103,13 @@ When the customer clicks or taps the ** Pay** button: You can use `requiredBillingContactFields` to collect the customer's billing and/or shipping details from Apple Pay. If the customer hasn't previously provided their billing address to Apple Pay, they are prompted to do so. - 📘 **Note:** The billing and shipping details are not required to create Apple Pay direct orders with MultiSafepay. However, since the collected details are available to you in unencrypted form, you can use them to reduce checkout friction and manage orders. + **⚠️ Note:** The billing and shipping details are not required to create Apple Pay direct orders with MultiSafepay. However, since the collected details are available to you in unencrypted form, you can use them to reduce checkout friction and manage orders. --- - 📘 **Note:** The `total.amount` is in euros, whereas the `amount` in MultiSafepay order requests is in eurocents. + **⚠️ Note:** The `total.amount` is in euros, whereas the `amount` in MultiSafepay order requests is in eurocents. For more information about the `ApplePayRequest` object, see Apple Developer – ApplePayRequest . @@ -124,7 +124,7 @@ When the customer clicks or taps the ** Pay** button: For more information about Apple Pay versions, see Apple Developer – Apple Pay on the web version history . - 📘 **Note:** You can only create a session within a user gesture handler. For example, you can create the session when the user taps the ** Pay** button. + **⚠️ Note:** You can only create a session within a user gesture handler. For example, you can create the session when the user taps the ** Pay** button. For more information, see Apple Developer – Creating an Apple Pay session . @@ -161,11 +161,11 @@ When the customer clicks or taps the ** Pay** button: -H "Authorization: Bearer " \ -d '{ "origin_domain": "originDomain", - "validation_url": "validationUrl", + "validation_url": "validationUrl" }' ``` - 📘 **Note:** The actual code depends on your server-side framework. + **⚠️ Note:** The actual code depends on your server-side framework. A successful response contains an Apple Pay merchant `session`, which expires after five minutes. @@ -207,13 +207,13 @@ For more information about the `payment` object, see Apple Developer: 1. From your server, [create an order](/reference/createorder/) > Wallet order.
See also Examples > Apple pay direct, using the `payment.token` property.
To use the `payment.token` property in the order request, convert it to an escaped JSON string. -📘 **Note:** The billing and shipping details are **not** required for Apple Pay direct orders. +**⚠️ Note:** The billing and shipping details are **not** required for Apple Pay direct orders. 2. To access the shipping and/or billing details from the `payment` object, use the `payment.billingContact` and `payment.shippingContact` properties. 3. To add the details to the order request, format them in accordance with [create order](/reference/createorder/) requests. -📘 **Note:** Billing and shipping data are **not** encrypted. +**⚠️ Note:** Billing and shipping data are **not** encrypted. For more information about the `payment` object and its properties, see Apple Developer – ApplePayPayment . diff --git a/content/payment-methods/bancontact.md b/content/payment-methods/bancontact.md index d8221806e..96bbbff8e 100755 --- a/content/payment-methods/bancontact.md +++ b/content/payment-methods/bancontact.md @@ -73,6 +73,8 @@ The table below sets out the <> and < + **⚠️ Note:** Bancontact doesn't support **direct** requests. + - By default, transactions expire after 1 hour. - If `seconds_active` is set, the QR code will expire at the time specified. See recipes - Seconds_active . @@ -120,6 +122,28 @@ Requests are screened and approved by Bancontact Payconiq. See [Recurring payments](/docs/recurring-payments/).
+ +## Deferred Sales + +Our Deferred Sales functionality allows you to [manually capture](/docs/manual-capture) Bancontact transactions. + +### How it works + +**Full capture** can be useful when a customer places an order but you are unable to ship it right away, or when you need to verify customer details before approving an order. An authorization is created for the full amount of the transaction. The funds are settled when you ship the order. + +**Partial capture** can be useful when a customer places an order for multiple items but you can't ship them all at once, only in separate shipments. An authorization is created for the full amount of the transaction, and the amount for each shipment is settled when you send it. + +You can perform 1 partial capture. The remaining amount will be released by the issuer automatically. + +### Activation + +1. You sign an agreement with Bancontact. +2. Bancontact evaluates your requests, and enables the service. +3. Bancontact defines **maximum amounts** and **expiry times** for authorizations. + +For a complete user guide, see [Manual Capture](/docs/manual-capture). + + --- [block:html] diff --git a/content/payment-methods/bank-transfer.md b/content/payment-methods/bank-transfer.md index 9235b3bd5..34af7ffbe 100755 --- a/content/payment-methods/bank-transfer.md +++ b/content/payment-methods/bank-transfer.md @@ -119,7 +119,7 @@ MultiSafepay emails the customer the following payment details to include when t
-📘 **Note:** Bank accounts are always displayed in IBAN format. See also [Unmasking IBANs](/docs/ibans/). +**⚠️ Note:** Bank accounts are always displayed in IBAN format. See also [Unmasking IBANs](/docs/ibans/).
How to email payment instructions yourself @@ -216,7 +216,7 @@ To resolve unmatched payments, check if a [transaction](/docs/payment-links#inte 4. Add the customer's bank account number (if known) to help us match the payment. 5. Click **Confirm** to create the transaction in our system. -✅   **Tip!** The order ID must be unique for each payment link. +  **💡 Tip!** The order ID must be unique for each payment link. --- diff --git a/content/payment-methods/banking-methods.md b/content/payment-methods/banking-methods.md index ed0b1c428..03c0e7912 100644 --- a/content/payment-methods/banking-methods.md +++ b/content/payment-methods/banking-methods.md @@ -9,7 +9,7 @@ slug: 'banking-methods' [block:html] { - "html": "" + "html": "" } [/block]
@@ -39,7 +39,7 @@ slug: 'banking-methods' [block:html] { - "html": "\n\n\n" + "html": "" } [/block]
@@ -50,7 +50,19 @@ slug: 'banking-methods' [block:html] { - "html": "\n\n\n" + "html": "" +} +[/block] + +
+ +--- + +## Spain + +[block:html] +{ + "html": "
\n \n\n" } [/block] diff --git a/content/payment-methods/belfius.md b/content/payment-methods/belfius.md index 06d1e82bc..342562e15 100755 --- a/content/payment-methods/belfius.md +++ b/content/payment-methods/belfius.md @@ -30,7 +30,7 @@ This diagram shows the flow for a successful transaction. Click to magnify. margin-right: auto; max-width: 750px;width: 100%;"> -📘 **Note:** MultiSafepay doesn’t automatically receive the customer's IBAN when a transaction is completed, but we import our bank statements daily. All incoming payments are then completed. +**⚠️ Note:** MultiSafepay doesn’t automatically receive the customer's IBAN when a transaction is completed, but we import our bank statements daily. All incoming payments are then completed. # Payment statuses @@ -45,7 +45,7 @@ The table below sets out the <> and <> remains **Initialized**. We import our bank statements daily and finalize all incoming payments. +**⚠️ Note:** If the customer doesn’t click the **Return to website** button, MultiSafepay doesn’t receive an update and the <> remains **Initialized**. We import our bank statements daily and finalize all incoming payments. # Activation diff --git a/content/payment-methods/betaalpermaand.md b/content/payment-methods/betaalpermaand.md index eec3e09a6..5d816664b 100755 --- a/content/payment-methods/betaalpermaand.md +++ b/content/payment-methods/betaalpermaand.md @@ -1,5 +1,5 @@ --- -title: 'Betaal per Maand' +title: 'Betaal per Maand (Deprecated)' category: 6298bd782d1cf4006032e765 order: 0 hidden: false @@ -7,6 +7,12 @@ parentDoc: 62bd75142e264000a66d62b5 slug: betaal-per-maand --- + +⚠️ Note: + +>Santander betaal per maand is discontinued as from 01/01/2024, and no new orders will be accepted. Existing orders will be handled up to 31/03/2024, after which no operations are possible anymore. + + Betaal per Maand is a MultiSafepay <> method in collaboration with Santander. It is intended for large amounts paid as a one-off payment or in monthly installments. Santander bears the risk and guarantees <>. @@ -40,7 +46,7 @@ The table below sets out the <> and < You can no longer cancel. You can only refund. | Completed | Uncleared | -| ❗️ **Note:** To capture the funds, when you ship the <> you must manually [change the order status to Shipped](#shipment) and send us the [track-and-trace code](#track-and-trace-codes). | Shipped | Uncleared | +| **⚠️ Note:** To capture the funds, when you ship the <> you must manually [change the order status to Shipped](#shipment) and send us the [track-and-trace code](#track-and-trace-codes). | Shipped | Uncleared | | MultiSafepay has collected payment. | Shipped | Completed | | Santander declined the transaction.
Only the customer can contact them to find out why (for privacy and compliance reasons). | Declined | Declined | | You cancelled the transaction before capture. | Void | Void | @@ -111,7 +117,7 @@ To cancel an order, email with the following details: - Order ID - Transaction ID (MultiSafepay's transaction reference number) -❗️ **Note:** You cannot cancel a Betaal per Maand order via your MultiSafepay dashboard . +**⚠️ Note:** You cannot cancel a Betaal per Maand order via your MultiSafepay dashboard . ## Collection period @@ -182,7 +188,7 @@ If you change the order status in your <>, the following [read For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:**Some third-party plugins may not support updating the status via our API.
diff --git a/content/payment-methods/billink.md b/content/payment-methods/billink.md new file mode 100644 index 000000000..13e384f64 --- /dev/null +++ b/content/payment-methods/billink.md @@ -0,0 +1,187 @@ +--- +title: 'Billink' +category: 6298bd782d1cf4006032e765 +parentDoc: 62bd75142e264000a66d62b5 +order: 1 +slug: 'billink' +--- + + + +Billink is a Dutch BNPL payment method available for both B2C and B2B transactions. It allows customers to receive goods before payment, settling the invoice within a typically 14-day period. Billink performs real-time credit checks and assumes the risk of non-payment. + + + +| Supports | Details | +| ------------------------------------------------------------- | ----------------------------- | +| [Countries](/docs/payment-methods#payment-methods-by-country) | Netherlands, Belgium, Germany | +| [Currencies](/docs/currencies/) | EUR | +| [Chargebacks](/docs/chargebacks/) | No | +| [Payment pages](/docs/payment-pages/) | Yes | +| [Refunds](/docs/refund-payments/) | Yes: Full and partial | + +# Payment flow + +This diagram shows the flow for a successful transaction. Click to magnify. + +Pay After Delivery payment flow + +# Payment statuses + +The table below sets out the <> and <> for payments and refunds. + +| Description | Order status | Transaction status | +| ------------------------------------------------------------------------------- | ------------ | ------------------ | +| Billink's credit check is in progress. | Initialized | Initialized | +| The order is created. | Completed | Uncleared | +| Billink declined the transaction. | Declined | Declined | +| **⚠️ Note:** To capture the funds, manually change the order status to Shipped. | Shipped | Unclear | +| MultiSafepay has collected the payment. | Shipped | Completed | +| The customer initiated the payment process but didn't finalize it. | Expired | Expired | +| **Refunds:** Billink has successfully processed a full or partial refund. | Completed | Completed | +| **Refunds:** The refund was declined. | Declined | Declined | + + + +# Activation + +1. Email a request to [sales@multisafepay.com](mailto:sales@multisafepay.com) + We check your eligibility and if approved, activate the payment method for your account. +2. Once approved, to activate the method in your dashboard, sign in to your MultiSafepay dashboard . +3. To activate the payment method for: + - All sites, go to **Settings** > **Payment methods**. + - A specific site, go to **Sites**, and then click the relevant site. +4. Select the checkbox for the payment method, and then click **Save**. + +💬 Support: If the payment method isn't visible in your dashboard, email [integration@multisafepay.com](mailto:integration@multisafepay.com) +
+ +# Integration + +### API + +See API reference – [Create order](/reference/createorder/) > BNPL order. + +
+Example requests +
+ +For example requests, on the [Create order](/reference/createorder/) page, in the black sandbox, see **Examples** > **Billink redirect**. + + + +
+ +- A `shopping_cart` object is required for all BNPL orders. See Recipes – Include shopping_cart in order . + +- For <> orders, you must display your terms and conditions in your checkout. + +## Ready made solutions + +Billink is supported in most ready-made integrations . + +- Exceptions: + - Craft Commerce + - Odoo + - OsCommerce + - Shopify + - Zen Cart + +## Testing + +Testing will soon be available for this payment method. + +*** + +# User guide + +## Addresses + +Different billing and shipping addresses are supported. + +## Amount limits + +Minimum and maximum order amounts apply. Email [sales@multisafepay.com](mailto:[sales@multisafepay.com](mailto:sales@multisafepay.com)) + +## Cancellation + +You can cancel the invoice order **before** shipment or **after** partial shipment. + +
+How to cancel an order +
+ +**In your dashboard** + +1. Sign in to your MultiSafepay dashboard . +2. Go to **Transactions** > **Transaction overview**, and then click the relevant transaction. +3. On the **Transaction details** page, click **Cancel**. +4. Add a description of what happened with the order, and then click **Complete**. + The <> changes to **Void** and the <> to **Cancelled**. + +
+ +## Collection flow + +- Billink sends the customer an invoice after the order is shipped in full, **or** partially shipped and the remaining items cancelled. +- If the customer fails to pay within the initial 14 day period, Billink sends reminders of their obligation to pay, in accordance with the Wet Incasso Kosten (WIK). +- The customer can contact Billink if there is an issue with the payment. +- If the customer still fails to pay, Billink sends the invoice to a debt collector. +- If necessary, you can delay the collection flow by placing the transaction on hold. + +## Refunds + +To refund a Billink transaction, follow these steps: + +1. Sign in to your MultiSafepay dashboard . +2. Navigate to **Transactions / Transactions Overview** and find the transaction you want to refund, or search for the transaction you want to refund by using the search bar. +3. Click on the transaction to go to the transaction details page. +4. On the right side of the page are the order details and a blue Refund button. +5. In this section you can remove order lines or refund the complete order. + +## Shipment + +When you ship the order, you **must** manually change the [order status](/docs/payment-statuses/) from **Completed** to **Shipped**, which: + +- Captures the funds +- Prevents the order from expiring + +
+How to change the order status to shipped +
+ +**In your dashboard** + +1. Sign in to your MultiSafepay dashboard . +2. Go to **Transactions** > **Transactions overview**, and then click the relevant transaction. +3. On the **Transaction details** page, under **Order details**, click **Change order status**. +4. Change the status to **Shipped**. +5. Send the customer the track and trace details, if relevant. + +**In your backend** + +If you change the order status in your backend, the following [ready-made integrations](/docs/our-integrations/) pass the updated status to your dashboard automatically: + +- Magento 2 and WooCommerce: When you set the order to **Shipped** in your backend. +- Shopware 5: When you set the order to **Delivered** in your backend. + +For other ready-made integrations, make an [update order](/reference/updateorder/) API request. + +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. + +*** + +
+ +### Surcharges + +Due to changes to the Wet op het consumentenkrediet, merchants who apply [surcharges](/docs/surcharges/) to <> methods are now deemed credit providers under article 7:57 of the Burgerlijk Wetboek. This requires a permit from the Authority for Financial Markets (AFM). + +We therefore strongly recommend **not** applying surcharges. + +For more information, email [\[sales@multisafepay.com\](mailto:sales@multisafepay.com)](mailto:[sales@multisafepay.com](mailto:sales@multisafepay.com)) +
\ No newline at end of file diff --git a/content/payment-methods/bizum.md b/content/payment-methods/bizum.md new file mode 100644 index 000000000..fc424c4d6 --- /dev/null +++ b/content/payment-methods/bizum.md @@ -0,0 +1,152 @@ +--- +title: 'Bizum' +category: 6298bd782d1cf4006032e765 +parentDoc: 62a728d48b97080046c1d220 +order: 5 +slug: 'bizum' +--- + +> ⚠️ Note: +> +> We are currently in the pilot phase for this product in Spain. +> +> If you are interested in participating in the next stage of our pilot, email [sales@multisafepay.com](mailto:integration@multisafepay.com) + + + + +Bizum is a mobile payment system in Spain that enables users to make instant transfers through their banking app, providing a quick and secure way to conduct payments. + + + + +| Supports | Details | +| ------------------------------------------------------------- | ------- | +| [Countries](/docs/payment-methods#payment-methods-by-country) | Spain | +| [Currencies](/docs/currencies/) | EUR | +| [Chargebacks](/docs/chargebacks/) | No | +| [Payment pages](/docs/payment-pages/) | Yes | + + + +# Payment flow + +This diagram shows the flow for a successful transaction. Click to magnify. + + + +Bizum payment flow + +*** + + + +# Payment statuses + +The table below sets out the <> and <> for payments and refunds. + +| Description | Order status | Transaction status | +| ------------------------------------------------------------------------------------------------ | ------------ | ------------------ | +| The customer has initiated a transaction and gets redirected to Bizum. You can no longer cancel. | Initialized | Initialized | +| The customer has completed the authentication. | Completed | Initialized | +| The customer didn't complete payment within 30 minutes. | Expired | Expired | +| The authentication failed. | Declined | Declined | +| **Refunds:** Refund complete. | Completed | Initialized | +| **Refunds:** Refund declined. | Declined | Declined | + +*** + + + +# Activation + +1. Request merchant registration at your local bank, and follow guidelines provided by them (for example agreements). +2. Provide MultiSafepay with your **FUC** (Merchant Identification Code), **CSB**, and **Terminal**. +3. We confirm activation. +4. Sign in to your MultiSafepay dashboard . +5. To activate the payment method for: + +- All sites, go to **Settings** > **Payment methods**. +- A specific site, go to **Sites**, and then click the relevant site. +- Select the checkbox for the payment method, and then click **Save changes**. + +💬 **Support:** If the payment method isn't visible in your dashboard, email [support@multisafepay.com](mailto:integration@multisafepay.com) + + + +# Integration + +## API + +See API reference – [Create order](/reference/createorder/) > Banking order. + +
+Example requests +
+ + For example requests, on the [Create order](/reference/createorder/) page, in the black sandbox, see **Examples** > **Bizum direct/redirect**. + + + + Set `gateway` to `BIZUM`, and `type` to `direct` or `redirect`. + + + +
+ +- For <> orders, you must provide the customer with [payment instructions](#payment-instructions) to proceed with the payment. + +- Transactions expire after 30 minutes. + + + +## Ready made solutions + +Bizum is supported in most ready-made integrations . + +- Exceptions: + - Craft Commerce + - Odoo + - OsCommerce + - Zen Cart + +## Testing + +Testing will soon be available for this payment method. + + + +# User guides + +## Amount limits + +- Minimum order amount: 0.50 EUR +- Maximum order amount: 1,000 EUR +- Maximum amount per day: 2,000 EUR +- Maximum amount per month: 5,000 EUR + + + +## Cancellation + +You can no longer cancel a transaction after the status changes to **Initialized**. + + + +## Refunds + +You can process full and partial refunds in your dashboard. + + + +[block:html] +{ + "html": "
\n

\n 💬\n

Support

\n

\n

Email support@multisafepay.com

\n
\n" +} +[/block] + + +[Top of page](#) \ No newline at end of file diff --git a/content/payment-methods/buy-now-pay-later.md b/content/payment-methods/buy-now-pay-later.md index c150fb9ee..4699eaa1a 100644 --- a/content/payment-methods/buy-now-pay-later.md +++ b/content/payment-methods/buy-now-pay-later.md @@ -7,11 +7,58 @@ slug: 'bnpl' --- ## Europe-wide -[block:html] -{ - "html": "" -} -[/block] +
--- @@ -19,7 +66,7 @@ slug: 'bnpl' [block:html] { - "html": "\n\n" + "html": "\n\n" } [/block]
diff --git a/content/payment-methods/card-payment-errors.md b/content/payment-methods/card-payment-errors.md index 3c7fd32d7..b95a7dbc4 100644 --- a/content/payment-methods/card-payment-errors.md +++ b/content/payment-methods/card-payment-errors.md @@ -1,7 +1,7 @@ --- title: "Card payment errors" category: 6298bd782d1cf4006032e765 -order: 26 +order: 1 hidden: false parentDoc: 62a727569e389a012f577acd slug: "card-payment-errors" @@ -58,6 +58,8 @@ If the issue can't be resolved, ask the cardholder for another card number or to | **Invalid merchant or service provider** | The issuer restricts the merchant or service provider.| **Cardholder:** Contact the issuer.| | **Pick up the card** | The transaction was declined because the cardholder's account was closed or blocked.| **Cardholder:** Contact the issuer to complete the transaction | | **Pick up the card, special conditions** | The issuer wants to check the transaction.| **Cardholder:** Contact the issuer to complete the transaction | +| **Cardholder not enrolled in service** | The cardholder is not enrolled in 3DS service. | **Cardholder**: Contact the issuer.
**Merchant**: card not enrolled in 3DS service. Not possible to authenticate | +| **Transaction timed out (ACS)** | The transaction expired in the authentication stage | **Cardholder**: In next transaction, complete authentication | | **Invalid merchant or service provider** | The merchant or service provider is restricted by the issuer.| **Cardholder:** Contact the issuer. | | **Invalid transaction** | The transaction is invalid. |**Cardholder:** Check the payment method type and payment details
**Merchant:** Do not reattempt. The issuer will never approve.| | **Invalid amount** | The payment amount exceeds issuer policies or regulatory limits.| **Cardholder:** Contact your bank. | diff --git a/content/payment-methods/interchange.md b/content/payment-methods/card-payment-pricing-models.md similarity index 94% rename from content/payment-methods/interchange.md rename to content/payment-methods/card-payment-pricing-models.md index 2ade996fc..7b2b9a42e 100644 --- a/content/payment-methods/interchange.md +++ b/content/payment-methods/card-payment-pricing-models.md @@ -1,11 +1,11 @@ --- -title: 'Card payment pricing models' +title: "Card payment pricing models" category: 6298bd782d1cf4006032e765 -order: 30 +order: 2 hidden: false parentDoc: 62a727569e389a012f577acd -excerpt: 'Distinction between Blended and Interchange ++ pricing' -slug: Card-payment-pricing +excerpt: Distintion between Blended and Interchange ++ pricing +slug: "card-payment-pricing-models" --- Banks and <> charge different fees to cover the operational costs of managing their network and processing card payments. @@ -32,7 +32,8 @@ The actual cost for processing a card transaction vary considerably depending on We distinguish between two main card pricing models: **Blended** and **Interchange ++**. -### Blended pricing + +### Blended pricing In the Blended pricing model, a fixed percentage is charged based on an initial projection of the card volume and market. @@ -58,3 +59,5 @@ If your business mostly relies on cross-border and B2B sales, Interchange++ pric "html": "
\n

\n 💬\n

Support

\n

\n

Email sales@multisafepay.com

\n
\n" } [/block] + +[Top of page](#) \ No newline at end of file diff --git a/content/payment-methods/card-payments.md b/content/payment-methods/card-payments.md index 74de827b9..376e2ea9a 100644 --- a/content/payment-methods/card-payments.md +++ b/content/payment-methods/card-payments.md @@ -1,7 +1,7 @@ --- title: 'Card payments' category: 6298bd782d1cf4006032e765 -order: 24 +order: 3 hidden: false slug: 'card-payments' parentDoc: 62a727569e389a012f577acd @@ -31,12 +31,14 @@ MultiSafepay supports the following credit and debit cards: - Postepay - Visa and co-branded cards Cartes Bancaires , Dankort , V Pay (debit card) -📘 **Note:** [Co-branded cards](/docs/card-payments#co-branded-cards) are processed through the VISA <>. +**⚠️ Note:** [Co-branded cards](/docs/card-payments#co-branded-cards) are processed through the VISA <>. + +**⚠️ Note:** Payments made with AMEX in CHF are settled in EUR. | Supports | Details | |---|---| | [Countries](/docs/payment-methods#payment-methods-by-country) | Amex, Maestro, Mastercard, Visa: Worldwide
Cartes Bancaires: France
Dankort: Denmark
Postepay: Italy
V Pay: Europe | -| [Currencies](/docs/currencies/) | Amex: EUR, GBP, USD
Maestro, Mastercard, Visa: AED, AUD, BRL, CAD, CHF, CLP, CNY, COP, CZK, DKK, EUR, GBP, HKD, HRK, HUF, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, RON, RUB, SEK, SGD, THB, TRY, TWD, UAH, USD, VEF, ZAR
To support additional currencies, email | +| [Currencies](/docs/currencies/) | Amex: EUR, GBP, USD, CHF
Maestro, Mastercard, Visa: AED, AUD, BRL, CAD, CHF, CLP, CNY, COP, CZK, DKK, EUR, GBP, HKD, HRK, HUF, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, RON, RUB, SEK, SGD, THB, TRY, TWD, UAH, USD, VEF, ZAR
To support additional currencies, email | | [3D Secure 2.0](/docs/3ds2/) | Yes | | [Chargebacks](/docs/chargebacks/) | Yes, **except** Postepay | | [Payment components](/docs/payment-components/) | Yes | @@ -86,6 +88,8 @@ The table below sets out the <> and <. + 💬 **Support:** If the payment method isn't visible in your dashboard, email # Integration @@ -99,6 +103,8 @@ The table below sets out the <> and < **Card direct/redirect**. Set `gateway` to `AMEX`, `MAESTRO`, `MASTERCARD`, `VISA`, or the generic `CREDITCARD`. + **⚠️ Note:** Consider card-specific requirements for the [Create order request](/reference/createorder/), for example including correct details in the `email` or `phone` parameter for VISA payments. + @@ -129,6 +135,12 @@ To test card payments, see Testing payment methods - [Credit and debit cards](/d # User guide +## Amount limits + +For credit card payments, the maximum order amount will be limited to 5,000 EUR by default. To request a change to this limit, email . + +Occasional credit card payments that surpass the maximum limit must be justified. Email the invoice to + ## Amex merchant account number If you use your Amex merchant account number: diff --git a/content/payment-methods/card-refunds.md b/content/payment-methods/card-refunds.md index 16060dfad..e587d8181 100644 --- a/content/payment-methods/card-refunds.md +++ b/content/payment-methods/card-refunds.md @@ -1,7 +1,7 @@ --- title: 'Card refunds' category: 6298bd782d1cf4006032e765 -order: 27 +order: 4 hidden: false parentDoc: 62a727569e389a012f577acd slug: 'card-refunds' diff --git a/content/payment-methods/cardholder-data.md b/content/payment-methods/cardholder-data.md index dc5534875..8fe53fff8 100755 --- a/content/payment-methods/cardholder-data.md +++ b/content/payment-methods/cardholder-data.md @@ -1,7 +1,7 @@ --- title: 'Cardholder data' category: 6298bd782d1cf4006032e765 -order: 28 +order: 5 hidden: false parentDoc: 62a727569e389a012f577acd excerpt: Handle sensitive cardholder data on your PCI DSS compliant server. @@ -41,7 +41,7 @@ Set `type` to `direct`. ## 3DS2 When you collect cardholder data, you must also collect the contextual information about the customer's device (fingerprint) required for [3DS2](/docs/3ds2) authentication. The fingerprint can be created through JavaScript interfaces and methods in the customer's browser. - +**⚠️ Note:** Some details are required to comply with scheme regulations. For exmaple, transactions created with payment method VISA must include correct information in the `email` or `phone` parameter. To learn how to create a fingerprint, see Recipe – Create a customer.browser object . diff --git a/content/payment-methods/cbc-kbc.md b/content/payment-methods/cbc-kbc.md index 16762ba43..229ecfcad 100644 --- a/content/payment-methods/cbc-kbc.md +++ b/content/payment-methods/cbc-kbc.md @@ -1,7 +1,7 @@ --- title: 'CBC/KBC' category: 6298bd782d1cf4006032e765 -order: 5 +order: 6 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'cbc-kbc' @@ -33,7 +33,7 @@ This diagram shows the flow for a successful transaction. Click to magnify. max-width: 750px; width: 100%;"> -📘 **Note:** MultiSafepay doesn’t automatically receive the customer's IBAN when a transaction is completed, but we import our bank statements daily. All incoming payments are then completed. +**⚠️ Note:** MultiSafepay doesn’t automatically receive the customer's IBAN when a transaction is completed, but we import our bank statements daily. All incoming payments are then completed. # Payment statuses @@ -49,7 +49,7 @@ The table below sets out the <> and < -📘 **Note:** If the customer doesn’t click the **Return to website** button, MultiSafepay doesn’t receive an update and the transaction status remains **Initialized**. We import our bank statements daily and match all incoming payments. +**⚠️ Note:** If the customer doesn’t click the **Return to website** button, MultiSafepay doesn’t receive an update and the transaction status remains **Initialized**. We import our bank statements daily and match all incoming payments. # Activation @@ -82,7 +82,7 @@ The table below sets out the <> and < +
+ Dankort Logo + +
+
+ Postepay Logo + +
+
+ American Express Logo + +
+
+ Mastercard Logo + +
+
+ V Pay Logo + +
+
+ Visa Logo + +
+
+ Cartes Bancaires Logo + +
+
+ Maestro Logo + +
+
+ +--- + +## Solutions + + +--- + +## Payment management + + +--- + +## Security + + +--- + +## Pricing + + +
+ +--- + +[Top of page](#) + + + + + -
+ diff --git a/content/payment-methods/direct-debit.md b/content/payment-methods/direct-debit.md index 0958bd923..f7c69f79a 100644 --- a/content/payment-methods/direct-debit.md +++ b/content/payment-methods/direct-debit.md @@ -1,7 +1,7 @@ --- title: 'Direct debit' category: 6298bd782d1cf4006032e765 -order: 6 +order: 7 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'direct-debit' @@ -15,7 +15,7 @@ Read how direct debits can benefit your business on SEPA region
**Note:** To avoid declined transactions, non-EEA countries must include name and address in the `customer_object`. | +| [Countries](/docs/payment-methods#payment-methods-by-country) | SEPA region
**⚠️ Note:** To avoid declined transactions, non-EEA countries must include name and address in the `customer_object`. | | [Currencies](/docs/currencies/) | EUR | | [Chargebacks](/docs/chargebacks/) | Yes (see below) | | [Payment components](/docs/payment-components/) | Yes | @@ -69,6 +69,8 @@ The table below sets out the <> and <. + 💬 **Support:** If the payment method isn't visible in your dashboard, email # Integration @@ -139,11 +141,13 @@ If the IBAN or BIC is incorrect, our bank informs us the next business day. |MS03|Unspecified reason generated by agent| Contact the debtor. | |RC01|Incorrect bank identifier | Contact the debtor for the correct BIC for a non-EEA collection. Ask your bank to allocate the debtor's bank's correct BIC in the interbank message. | |RR01|Missing debtor account or identification| Repair the collection to complete the debtor's account information. Contact your bank. | -|RR02|Missing debtor name or address| Repair the collection to complete the debtor's name and/or address. Contact your bank.
**Note:** To avoid declined transactions, non-EEA countries must include name and address in the `customer_object`. | +|RR02|Missing debtor name or address| Repair the collection to complete the debtor's name and/or address. Contact your bank.
**⚠️ Note:** To avoid declined transactions, non-EEA countries must include name and address in the `customer_object`. | |RR03|Missing creditor name or address| Repair the collection to complete your name. Contact your bank. | |RR04|Regulatory reason| Contact your bank. | |SL01|Specific service offered by debtor agent| Contact the debtor. | |TM01|File received after cut-off time| | +|CUST|Is used sporadically (known to the collector)| Contact your bank. | +|DUPL|Is used sporadically (duplicate payment)| Contact your bank. |
For more information in: diff --git a/content/payment-methods/dotpay.md b/content/payment-methods/dotpay.md index 48930631c..7ad3ad651 100644 --- a/content/payment-methods/dotpay.md +++ b/content/payment-methods/dotpay.md @@ -1,7 +1,7 @@ --- title: 'Dotpay' category: 6298bd782d1cf4006032e765 -order: 7 +order: 8 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'dotpay' @@ -72,6 +72,8 @@ The table below sets out the <> and < + **⚠️ Note:** **Direct** requests are not supported for Dotpay. + - Transactions expire after 3 days. ### Ready-made integrations diff --git a/content/payment-methods/e-invoicing.md b/content/payment-methods/e-invoicing.md index 4e822b645..95cd952ed 100755 --- a/content/payment-methods/e-invoicing.md +++ b/content/payment-methods/e-invoicing.md @@ -41,7 +41,7 @@ The table below sets out the <> and < You can no longer cancel. You can only refund. | Completed | Initialized | -| ❗️ **Note:** [Manually change the order status to Shipped](#shipment).
You must ship to receive payment. | Shipped | Initialized | +| **⚠️ Note:** [Manually change the order status to Shipped](#shipment).
You must ship to receive payment. | Shipped | Initialized | | MultiSafepay has collected payment. | Completed | Completed | | MultiFactor declined the transaction. | Declined | Declined | | The transaction has been cancelled. | Void/Cancelled | Void/Cancelled | @@ -396,7 +396,7 @@ If you change the order status in your <>, the following [read For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. --- diff --git a/content/payment-methods/edenred.md b/content/payment-methods/edenred.md index 4da3870d6..ee1ce4992 100644 --- a/content/payment-methods/edenred.md +++ b/content/payment-methods/edenred.md @@ -81,7 +81,7 @@ The table below sets out the <> and <> and < + ### Testing To test gift card payments, see Testing payment methods - [Prepaid cards](/docs/testing#prepaid-cards).
@@ -149,6 +150,14 @@ VVV Cadeaukaart cards can sometimes throw an error where the credit balance appe If a customer completes a payment and receives this error message, advise them to wait for 1 hour for a confirmation email before trying again to avoid placing two orders. +## Refunds + +Transactions paid partially by a gift card, and partially by a payment method follow the below rules: + +1. Refund amounts lower than 5 EUR are always refunded to the payment method. +2. Refund priority is: payment method first, rest of amount refunded to the coupon + + ## Webshop Giftcard Webshop Giftcard no longer offers [open-loop gift cards](#closed-loop-vs-open-loop-cards). diff --git a/content/payment-methods/giropay.md b/content/payment-methods/giropay.md index b44b13750..4a6c8ca73 100644 --- a/content/payment-methods/giropay.md +++ b/content/payment-methods/giropay.md @@ -1,7 +1,7 @@ --- -title: 'Giropay' +title: 'Giropay (Deprecated)' category: 6298bd782d1cf4006032e765 -order: 9 +order: 10 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'giropay' @@ -11,6 +11,11 @@ slug: 'giropay' Giropay is the leading inter-bank payment method in Germany, connecting all major German retail banks. Customers pay from their own online banking environment. <> is instant and guaranteed. + +> ⚠️ Note: Giropay is deprecated as of 01 July 2024. New activations are no longer possible. +> +> + Read how Giropay can benefit your business on multisafepay.com | Supports | Details | diff --git a/content/payment-methods/google-pay-direct.md b/content/payment-methods/google-pay-direct.md index 801fb210c..8d0dfdb04 100644 --- a/content/payment-methods/google-pay-direct.md +++ b/content/payment-methods/google-pay-direct.md @@ -52,7 +52,7 @@ Add the Google Pay JavaScript library to the bottom of the `` of your chec onload="onGooglePayLoaded()"> ``` -📘 **Note:** The `onload` event handler is used to display the **Google Pay** button. For more information, see [Display the Google Pay button](#3-display-the-google-pay-button). +**⚠️ Note:** The `onload` event handler is used to display the **Google Pay** button. For more information, see [Display the Google Pay button](#3-display-the-google-pay-button). ## Place the Google Pay button @@ -62,7 +62,7 @@ Create an element in the `` of your checkout page where you want to displa
``` -📘 **Note:** This element is populated in a later step. For more information, see [Display the Google Pay button](#display-the-google-pay-button). +**⚠️ Note:** This element is populated in a later step. For more information, see [Display the Google Pay button](#display-the-google-pay-button). ## Configure Google Pay @@ -79,7 +79,7 @@ Create an element in the `` of your checkout page where you want to displa 2. Configure the Google Pay payment token request. - 📘 **Note:** Google Pay uses payment tokens to encrypt the customer's payment details for secure processing. + **⚠️ Note:** Google Pay uses payment tokens to encrypt the customer's payment details for secure processing. Create a `tokenizationSpecification` object: diff --git a/content/payment-methods/ideal.md b/content/payment-methods/ideal.md index 73ed32fb5..1288994f2 100755 --- a/content/payment-methods/ideal.md +++ b/content/payment-methods/ideal.md @@ -1,7 +1,7 @@ --- title: 'iDEAL' category: 6298bd782d1cf4006032e765 -order: 10 +order: 11 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'ideal' @@ -9,6 +9,18 @@ slug: 'ideal' +> ⚠️ Note: +> +> We are gradually migrating to iDeal 2.0, an enhanced version of this payment method. +> +> Changes: +> +> - For users of our redirect solution: +> Our **payment page** no longer displays an issuer list when iDeal is selected. +> Instead, the customer is redirected to the iDeal environment to select the issuer. +> - For users of our direct solution (via API): +> The issuer is selected within the iDeal environment. The parameter `issuer_id` is no longer required for requests with type `direct`. + iDEAL is the leading payment method in the Netherlands and links all major Dutch retail banks. Customers pay via mobile banking app, [QR code](#ideal-qr), or in their own online banking environment. Once a payment is completed, the customer cannot reverse it and iDEAL guarantees <>. Read how iDEAL can benefit your business on multisafepay.com @@ -44,7 +56,7 @@ The table below sets out the <> and <> and < -- Transactions expire after 1.5 hours. +- Transactions expire after 1 hour. ### Ready-made integrations - Banking is supported in most [ready-made integrations](/docs/our-integrations/), **except** ZenCart. @@ -85,7 +97,7 @@ The table below sets out the <> and <iDEAL QR has a wide range of applications. Customers can scan QR codes off screens or paper (e.g. invoices, receipts), and change the amount to pay. This makes it particularly suitable for hospitality, charity collectors, and home deliveries. You can specify whether the same QR code can be used more than once. +iDEAL QR has a wide range of applications. Customers can scan QR codes off screens or paper (e.g. invoices, receipts), and change the amount to pay. This makes it particularly suitable for hospitality, charity collectors, and home deliveries. You can specify whether the same QR code can be used more than once. Not all Dutch banking apps support iDEAL QR yet, so we recommend that customers scan QR codes with their camera or a general QR reader. This redirects to the ideal.nl payment page, which works for all banks. diff --git a/content/payment-methods/in3.md b/content/payment-methods/in3.md index 5e76ca512..daef87689 100644 --- a/content/payment-methods/in3.md +++ b/content/payment-methods/in3.md @@ -1,5 +1,5 @@ --- -title: 'in3' +title: 'iDEAL in3' category: 6298bd782d1cf4006032e765 order: 2 hidden: false @@ -7,18 +7,18 @@ parentDoc: 62bd75142e264000a66d62b5 slug: 'in3' --- - + -in3 is a Dutch <> method where customers pay in 3 installments, at no extra cost and without having to register with the Bureau Krediet Registratie (BKR). in3 guarantees <> after receiving the first installment. +iDEAL in3 is a Dutch <> method where customers pay in 3 installments, at no extra cost and without having to register with the Bureau Krediet Registratie (BKR). iDEAL in3 guarantees <> after receiving the first installment. -Read how in3 can benefit your business on multisafepay.com +Read how iDEAL in3 can benefit your business on multisafepay.com | Supports | Details | |---|---| -| [Countries](/docs/payment-methods#payment-methods-by-country) | Netherlands – in3 checks the customer's country, and billing/shipping address to confirm. | +| [Countries](/docs/payment-methods#payment-methods-by-country) | Netherlands – iDEAL in3 checks the customer's country, and billing/shipping address to confirm. | | [Currencies](/docs/currencies/) | EUR | | [Chargebacks](/docs/chargebacks/) | No | -| [Discounts](/docs/discounts/) | Yes
You can request in3 to process a full or partial refund, either before <> or up to 1 year afterwards. | +| [Discounts](/docs/discounts/) | Yes
You can request iDEAL in3 to process a full or partial refund, either before <> or up to 1 year afterwards. | | [Payment pages](/docs/payment-pages/) | Yes (current version only) | | [Refunds](/docs/refund-payments/) | Yes: Full, partial, and API refunds | | [Second Chance](/docs/second-chance/) | Yes | @@ -39,15 +39,15 @@ The table below sets out the <> and < You can no longer cancel. You can only refund. | Completed | Uncleared | | You can [manually change the order status to shipped](#shipment) for your records, but this is not required to trigger invoicing. | Shipped | Uncleared | | MultiSafepay has collected payment. | Completed | Completed | -| in3 declined the transaction. | Declined | Declined | +| iDEAL in3 declined the transaction. | Declined | Declined | | The customer cancelled the transaction or abandoned the first installment. | Void | Void | | The customer didn't pay the first installment. | Expired | Expired | -| **Refunds:** in3 has successfully processed a full or partial refund. | Completed | Completed | +| **Refunds:** iDEAL in3 has successfully processed a full or partial refund. | Completed | Completed | | **Refunds:** The refund was declined. | Declined | Declined | # Activation @@ -78,21 +78,21 @@ The table below sets out the <> and < - A `shopping_cart` object is required for all BNPL orders. See Recipes – Include shopping_cart in order . -- Transactions expire after 2 hours. +- iDEAL sends an expiration notification after approximately 2 days. Once we receive the notification, the transaction expires. - For <> orders, you must display your terms and conditions in your checkout. ### Ready-made integrations -in3 (direct) is supported in: +iDEAL in3 (direct) is supported in: - [Craft Commerce](/docs/craft-commerce/) - [Magento 1](/docs/magento-1/) and [Magento 2](/docs/magento-2/) - [OpenCart](/docs/opencart/) -- [PrestaShop 1.7](/docs/prestashop-1-7/) +- [PrestaShop](/docs/prestashop/) - [VirtueMart 3](/docs/virtuemart-3/) - [VirtueMart 4](/docs/virtuemart-4/) - [WooCommerce](/docs/woocommerce/) ### Testing -To test in3 payments, see Testing payment methods – [BNPL methods](/docs/testing#bnpl-methods). +To test iDEAL in3 payments, see Testing payment methods – [BNPL methods](/docs/testing#bnpl-methods).
--- @@ -105,14 +105,14 @@ Different billing and shipping addresses are supported. ## Amount limits -- Minimum amount: 100 EUR -- Maximum amount: 3000 EUR +- Minimum amount: 50 EUR +- Maximum amount: 5000 EUR -You can adjust these limits in the <> of our [ready-made integrations](/docs/our-integrations/) to show or hide in3 on your checkout page depending on the order value. +You can adjust these limits in the <> of our [ready-made integrations](/docs/our-integrations/) to show or hide iDEAL in3 on your checkout page depending on the order value. ## Gift cards -When paying with a gift card and in, customers must enter the gift card details **before** placing their order, i.e. on your checkout page. This is because in3 collects and require precise order specifications. Our platform would interpret the gift card as a discount and generate incorrect order information, e.g. tax calculations. +When paying with a gift card and in, customers must enter the gift card details **before** placing their order, i.e. on your checkout page. This is because iDEAL in3 collects and require precise order specifications. Our platform would interpret the gift card as a discount and generate incorrect order information, e.g. tax calculations. You are solely responsible for this in your integration. @@ -141,7 +141,7 @@ If you change the order status in your backend, the following [ready-made integr For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. --- @@ -156,6 +156,38 @@ We therefore strongly recommend **not** applying surcharges. For more information, email
+# in3 Business + +We are currently in the pilot phase with in3 Business. +To activate this payment method, email + + +in3 is a Dutch <> method where customers pay in 3 installments, at no extra cost and without having to register with the Bureau Krediet Registratie (BKR). in3 guarantees <> after receiving the first installment. + +Read how in3 Business can benefit your webshop on multisafepay.com + + +## User guide + +### Amount limits: + +- Minimum amount: 150 EUR +- Maximum amount: 30000 EUR + +### Integration: + +For `direct` requests: + +- Gateway: IN3B2B +- Required fields: First name, last name, address, email, business name, chamber of commerce number. + +Ready-made integrations: + +- [Magento 2](/docs/magento-2/) +- Shopware 6 +- Prestashop 1.6 +- [PrestaShop 1.7](/docs/prestashop-1-7/) +- Lightspeed --- [block:html] diff --git a/content/payment-methods/klarna.md b/content/payment-methods/klarna.md index 13e93831d..3b7a485c8 100755 --- a/content/payment-methods/klarna.md +++ b/content/payment-methods/klarna.md @@ -40,9 +40,9 @@ The table below sets out the <> and < See [Expired orders](#expired-orders). | Expired | Expired | +| The transaction expired after 1 day or you didn't [change the order status to shipped](#shipment) within 28 days.
See [Expired orders](#expired-orders). | Expired | Expired | | Klarna authorized the transaction, but either you or the customer cancelled it before capture. | Void | Void | | Klarna declined the transaction.
Only the customer can contact Klarna to find out why (for privacy and compliance reasons).
For merchant support, email | Declined | Declined | | **Refunds:** Refund initiated. | Initialized | Completed | @@ -50,36 +50,36 @@ The table below sets out the <> and < Test account
-1. At Klarna.com , sign up for a test account, selecting the **Playground** environment. -2. Under **Settings**, click **Generate new Klarna API credentials** to generate a user name and password. -3. Email these credentials to -4. MultiSafepay connects to Klarna. +1. Go to Klarna and click **Log in**. +2. Click **Select environment** > **Playground** to create a test account. Click **Sign Up**. +3. Follow the intructions to complete the registration process. +4. In the Klarna main panel, go to **Settings** and click **Generate new Klarna API credentials** to generate a test username and password. +5. Email these credentials to . +6. We will activate your Klarna test account for your MultiSafepay test account. -We recommend testing Klarna payments via the Klarna Portal to experience the full functionality. You can also test from your **test** MultiSafepay dashboard with more limited functionality. +You can test Klarna payments via the Klarna Portal on your MultiSafepay dashboard . -
Live account
-1. Sign up for a live Klarna account: - - Via the Klarna website, selecting the **Production** environment, **or** - - Email your Klarna account manager or -2. Specify MultiSafepay as your payment service provider and the countries you want to activate Klarna for. -3. Sign an agreement with Klarna, including pricing. -4. We activate Klarna for your MultiSafepay account. -5. If using a ready-made integration, activate Klarna in your <>. +1. To sign up for a live Klarna account, email your Klarna account manager or . +2. In your email, include the following details: + - MultiSafepay as your payment service provider. + - The websites and countries for which you want to activate Klarna. +3. Sign an agreement with Klarna. This agreement includes the pricing details. +4. We will activate Klarna for your MultiSafepay account. +5. If you are using a ready-made integration, activate Klarna in your <>. For questions, see Klarna – Klantenservice . -For support, email
# Integration @@ -98,7 +98,7 @@ For support, email - A `shopping_cart` object is required for all BNPL orders. See Recipes – Include shopping_cart in order . -- Transactions expire after 1 hour. +- Transactions expire after 1 day. - For <> orders, you must display your terms and conditions in your checkout. ### Ready-made integrations @@ -203,7 +203,7 @@ If your link has expired or you haven't received an email, email @@ -282,6 +282,16 @@ For every transaction, Klarna generates two reference numbers: Both reference numbers appear in the **Transaction details** page in your dashboard. +## Refunds + +To refund a Klarna transaction, follow these steps: + +1. Sign in to your MultiSafepay dashboard . +2. Navigate to **Transactions / Transactions Overview** and find the transaction you want to refund, or search for the transaction you want to refund by using the search bar. +3. Click on the transaction to go to the transaction details page. +4. On the right side of the page are the order details and a blue Refund button. +5. In this section you can remove order lines or refund the complete order. + ## Shipment ### Change the order status @@ -313,7 +323,7 @@ If you change the order status in your backend, the following [ready-made integr For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. diff --git a/content/payment-methods/manual-capture.md b/content/payment-methods/manual-capture.md index 014fe7b11..4e3ab2f2e 100644 --- a/content/payment-methods/manual-capture.md +++ b/content/payment-methods/manual-capture.md @@ -1,7 +1,7 @@ --- title: 'Manual Capture' category: 6298bd782d1cf4006032e765 -order: 31 +order: 6 hidden: false parentDoc: 62a727569e389a012f577acd slug: 'manual-capture' @@ -20,15 +20,19 @@ To activate Manual Capture for your MultiSafepay account, email Manual capture: Initial payment - Manual capture: Capture payment +- Manual capture: Cancel reservation See API reference: - [Create order](/reference/createorder/) > Set `manual` to `capture`. - [Capture payment](/reference/capturepayment/) +- [Cancel authorized payment](/reference/cancelauthorizedorder)
@@ -49,6 +53,27 @@ After expiration, the <> can cancel the authorization. - Mastercard - Visa +## Cancellation + +You can cancel a reservation created via manual capture. For partial captures, the cancellation will apply to the remaining amount. + +
+How to cancel an authorized transaction
+ +**Via API**: + +- See API reference - Cancel authorized payment + +**Via dashboard**: + +- Sign in to your MultiSafepay dashboard . +- Go to **Transactions** > **Transaction overview**, and then select the relevant transaction. +- On the **Transaction summary** page, in **Order Summary**, click **Cancel Reservation**. +- Add a description of what happened with the order, and then click **Complete**. + The <> changes to **Void** and the <> to **Void**. + +
+ ## Statuses | Action | Description | Order status | Transaction status | diff --git a/content/payment-methods/mbway.md b/content/payment-methods/mbway.md index 146191a3e..b5a0dddbe 100644 --- a/content/payment-methods/mbway.md +++ b/content/payment-methods/mbway.md @@ -1,7 +1,7 @@ --- title: 'MB WAY' category: 6298bd782d1cf4006032e765 -order: 10 +order: 12 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'mb-way' @@ -108,31 +108,26 @@ You can still update the customer's phone number on the [payment pages](/docs/pa ## Refunds -You can process refunds in your dashboard **or** via API. +You can process refunds in your dashboard. + +The customer must provide you with their IBAN to process refunds via bank transfer.
How to refund an order
-**In your dashboard** - 1. Sign in to your MultiSafepay dashboard . 2. Go to **Transactions** > **Transaction overview**, and then click the relevant transaction. 3. On the **Transaction details** page, click **Refund order**. -4. In the **Reason / Description** field, enter the reason for the refund or a description of what happened with the order, and then click **Complete**. -5. In the **Comment** field, enter any additional information. -6. In the **Amount** fields, enter the amount to refund. -7. Click **Continue**. -8. Review the **Refund confirmation**, and then click **Confirm**. - -**Via the API** - -See API reference – [Refund order](/reference/refundorder). - -*** +4. In the **Account Holder Name** field, enter the customer's full name. +5. In the **IBAN** field, enter the customer's IBAN. +6. In the **Reason / Description** field, enter the reason for the refund or a description of what happened with the order, and then click **Complete**. +7. In the **Comment** field, enter any additional information. +8. In the **Amount** fields, enter the amount to refund. +9. Click **Continue**. +10. Review the **Refund confirmation**, and then click **Confirm**.
- --- [block:html] diff --git a/content/payment-methods/monizze.md b/content/payment-methods/monizze.md index 2e501420e..592dfd49b 100644 --- a/content/payment-methods/monizze.md +++ b/content/payment-methods/monizze.md @@ -80,7 +80,7 @@ The table below sets out the <> and < +
## Refunds @@ -120,6 +120,22 @@ You can process refunds in your dashboard. The customer must provide you with their IBAN to process refunds via bank transfer. +
+How to refund an order +
+ +1. Sign in to your MultiSafepay dashboard . +2. Go to **Transactions** > **Transaction overview**, and then click the relevant transaction. +3. On the **Transaction details** page, click **Refund order**. +4. In the **Account Holder Name** field, enter the customer's full name. +5. In the **IBAN** field, enter the customer's IBAN. +6. In the **Reason / Description** field, enter the reason for the refund or a description of what happened with the order, and then click **Complete**. +7. In the **Comment** field, enter any additional information. +8. In the **Amount** fields, enter the amount to refund. +9. Click **Continue**. +10. Review the **Refund confirmation**, and then click **Confirm**. + +
--- [block:html] diff --git a/content/payment-methods/mybank.md b/content/payment-methods/mybank.md index 7d4283e7e..62d4f598d 100644 --- a/content/payment-methods/mybank.md +++ b/content/payment-methods/mybank.md @@ -1,7 +1,7 @@ --- title: 'MyBank' category: 6298bd782d1cf4006032e765 -order: 11 +order: 14 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'mybank' @@ -26,7 +26,7 @@ Customers pay in their own online banking environment. <> i The customer's bank may apply their own fee to MyBank transactions (not influenced by MultiSafepay or MyBank). This can have a significant impact on transactions for small amounts, e.g. 1 EUR transaction, but a 1,50 EUR issuer fee. -✅   **Tip!** Consider setting a minimum amount limit for MyBank transactions in your integration. +  **💡 Tip!** Consider setting a minimum amount limit for MyBank transactions in your integration. # Payment flow This diagram shows the flow for a successful transaction. Click to magnify. diff --git a/content/payment-methods/pay-after-delivery-installments.md b/content/payment-methods/pay-after-delivery-installments.md index 504813e68..a77262d34 100755 --- a/content/payment-methods/pay-after-delivery-installments.md +++ b/content/payment-methods/pay-after-delivery-installments.md @@ -296,7 +296,7 @@ You must must refund partial shipments separately, using the specific **shipment See API reference – [Refund order](/reference/refundorder). -❗️ **Note:** To partially ship an order, email a request to +**⚠️ Note:** To partially ship an order, email a request to --- @@ -328,7 +328,7 @@ If you change the order status in your <>, the following [read For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. --- diff --git a/content/payment-methods/pay-after-delivery.md b/content/payment-methods/pay-after-delivery.md index 9dd307bea..e81a2dc6f 100755 --- a/content/payment-methods/pay-after-delivery.md +++ b/content/payment-methods/pay-after-delivery.md @@ -23,6 +23,35 @@ Read how Pay After Delivery can benefit your business on Pay After Delivery Installments ]) product line. + +### API integrations + + Switch the gateway code in either redirect or direct transactions to "BNPL_MF". + + For _direct_ transaction requests, _bank account_ is no longer required. + +### Plugin integrations + +- Configure "BNPL_MF" gateway. +- deactivate "PAYAFTER" gateway. + +### Redirect or Components + +Configure in your plugin integration "BNPL_MF" and deactivate "PAYAFTER" gateway in the MultiSafepay Control Panel. + +**Questions?** +Contact our MultiFactor support at [klantenservice@multifactor.nl](mailto:klantenservice@multifactor.nl). + + # Payment flow This diagram shows the flow for a successful transaction. Click to magnify. @@ -42,7 +71,7 @@ The table below sets out the <> and < +**⚠️ Note:** To partially ship an order, email a request to --- @@ -324,7 +353,7 @@ If you change the order status in your <>, the following [read For other ready-made integrations, make an [update order](/reference/updateorder/) API request. -❗️ **Note:** Some third-party plugins may not support updating the status via our API. +**⚠️ Note:** Some third-party plugins may not support updating the status via our API. --- diff --git a/content/payment-methods/paypal-direct.md b/content/payment-methods/paypal-direct.md index 6389eec9d..848566d23 100644 --- a/content/payment-methods/paypal-direct.md +++ b/content/payment-methods/paypal-direct.md @@ -131,4 +131,4 @@ PayPal must be [onboarded in your MultiSafepay account](/docs/paypal#activation)
A popup appears containing the PayPal test store. 3. Select **Pay now**, and then click **Save**.
The order is successfully completed. -**Note:** If you select the card payment option from test scenario list, you will receive an `INSTRUMENT_DECLINED` error. +**⚠️ Note:** If you select the card payment option from test scenario list, you will receive an `INSTRUMENT_DECLINED` error. diff --git a/content/payment-methods/paypal.md b/content/payment-methods/paypal.md index 51900573c..b35f7abc8 100755 --- a/content/payment-methods/paypal.md +++ b/content/payment-methods/paypal.md @@ -148,7 +148,7 @@ To be eligible, for specific countries, transaction requests must contain the co - For a list of the countries, see PayPal API – State codes . - For more information, see PayPal – What is Seller Pretection . -**Note**: For disputes and disbursement information, further details appear in a transaction note in your dashboard under **Transaction overview** > **Transaction summary**. +**⚠️ Note:** For disputes and disbursement information, further details appear in a transaction note in your dashboard under **Transaction overview** > **Transaction summary**. ## Refunds @@ -166,6 +166,15 @@ You can include shopping cart in your [create order](/reference/createorder/) re You can no longer display your logo; your website name is displayed in the PayPal checkout. + +## Troubleshooting + +If you encounter any issues with PayPal, for example a system error, do the following checks: + +- [You have upgraded to the latest PayPal API](/docs/paypal#activation) +- PayPal is activated for your account + +
--- diff --git a/content/payment-methods/paysafecard.md b/content/payment-methods/paysafecard.md index 2dad2bfb1..1d7aea68f 100644 --- a/content/payment-methods/paysafecard.md +++ b/content/payment-methods/paysafecard.md @@ -81,15 +81,14 @@ For any questions, email Supported in: - [CS-Cart](/docs/cs-cart/) -- [Drupal 7](/docs/drupal/) -- [Drupal 8 & 9](/docs/drupal/) +- [Drupal](/docs/drupal/) - [OsCommerce](/docs/oscommerce/) - [Magento 1](/docs/magento-1/) - [Magento 2](/docs/magento-2/) - [OpenCart 3](/docs/opencart/) - [OpenCart 4](/docs/opencart-4/) - [PrestaShop 1.6](/docs/prestashop-1-6/) -- [PrestaShop 1.7](/docs/prestashop-1-7/) +- [PrestaShop](/docs/prestashop/) - [Shopware 5](/docs/shopware/) - [Shopware 6](/docs/shopware/) - [VirtueMart 3](/docs/virtuemart/) diff --git a/content/payment-methods/request-to-pay.md b/content/payment-methods/request-to-pay.md index 6315c2fc5..968735d8f 100644 --- a/content/payment-methods/request-to-pay.md +++ b/content/payment-methods/request-to-pay.md @@ -1,7 +1,7 @@ --- -title: 'Request to Pay' +title: 'Request to Pay (Deprecated)' category: 6298bd782d1cf4006032e765 -order: 12 +order: 15 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'request-to-pay' @@ -17,7 +17,7 @@ Read how Request to Pay can benefit your business on +> ⚠️ Note: +> +> Sofort is no longer available as a standalone payment method due to its acquisition by Klarna. +> Existing integrations will be kept intact, yet it is not possible to activate Sofort for new merchants. +> +> For alternatives in banking methods, see also our overview . + Sofort is a banking payment method by Klarna. It integrates with the customer's bank like a <> bank transfer. The customer verifies the payment, which reduces the risks associated with traditional transfers. Once payment is completed, the customer cannot reverse it and Sofort guarantees <>. diff --git a/content/payment-methods/testing.md b/content/payment-methods/testing.md index 87aad37b1..706917291 100644 --- a/content/payment-methods/testing.md +++ b/content/payment-methods/testing.md @@ -88,6 +88,8 @@ Testing this new format is possible on both our TEST and LIVE environment: **Test a Bancontact order** +**⚠️ Note:** Bancontact doesn't support **direct** requests. + 1. [Create an order](/reference/createorder/) > Banking order (Example: Bancontact redirect). 2. Open the payment link. 3. In the **Card number** field, enter a card number (see table below). @@ -130,7 +132,7 @@ You can see the reason the transaction was declined in your MultiSafepay test ac | Any other IBAN | **Expired** | The transaction is initiated.
After 5 days, this changes to **Expired**. |
-❗️ **Note:** You cannot test making <> API requests with an IBAN to test different <>. +**⚠️ Note:** You cannot test making <> API requests with an IBAN to test different <>. @@ -151,6 +153,8 @@ You can see the reason the transaction was declined in your MultiSafepay test ac How to test Dotpay
+**⚠️ Note:** **Direct** requests are not supported for Dotpay. + 1. [Create an order](/reference/createorder/) > Banking order (Example: Dotpay redirect) 2. On the Dotpay page, enter in the: - **Email address** field: Any email address @@ -195,18 +199,34 @@ You can see the reason the transaction was declined in your MultiSafepay test ac
1. [Create an order](/reference/createorder/) > Banking order (Example: iDEAL direct/redirect) -2. For <>, select a bank. -3. On the **Test platform** page, from the **Test scenario** list, select **Completed**. -4. Click **Test**. - The payment is processed in the test environment as **Successful**, with <> **Completed**, and <> **Completed**. +2. For <> orders, open the payment link. +3. On the **Test platform** page, from the **Test scenario** list, select the desired transaction scenario. Refer to the table below for details. +4. Click **Test**. -You can also test the following scenarios: +| Scenario | Description | +| ------------- | -------------------------------------------------------------------------- | +| **Success** | The transaction is initiated.
Transaction will show as **Completed**. | +| **Failure** | The transaction is initiated.
Transaction will show as **Declined**. | +| **Cancelled** | The transaction is initiated.
Transaction will show as **Void**. | +| **Expired** | The transaction is initiated.
Transaction will show as **Expired**. | -| Scenario | Description | -| --- | --- | -| **Declined** | The transaction was declined. | -| **Open** **Completed** | The transaction is initiated.
After 1 minute, this changes to **Completed**. | -| **Open** **Declined** | The transaction is initiated.
After 1 minute, this changes to **Declined**. | + + +
+How to test Multibanco & MB WAY +
+ +1. [Create an order](/reference/createorder/) > Banking order. + See also the Examples for the specific payment method. +2. For <> orders, open the payment link. +3. Set the `amount` parameter according to the desired transaction scenario. Refer to the table below for details. +4. For **MB WAY** direct orders, in the `customer` object, fill the `phone` parameter. For redirect orders, enter a phone number on the payment link and click **Confirm**. + +| Amount | Scenario | Description | +| ----------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------ | +| 9.99 and below | **Declined** | The transaction is initiated.
Transaction will show as **Declined**. | +| Between 10.00 and 20.00 | **Completed** | The transaction is initiated.
Transaction will show as **Completed**. | +| Above 20.00 | **Expired** | The transaction is initiated.
The status will show as **Initialized**. After 84 hours, this changes to **Expired**. |
@@ -282,7 +302,7 @@ You can also test the following scenarios: | Visa/co-branded:
4012001038488884 | **Declined** | The transaction was declined (3D authentication was successful, but insufficient funds). |
-✅   **Tip!** You can see the reason a transaction was declined in your MultiSafepay test account under **Notes**. +  **💡 Tip!** You can see the reason a transaction was declined in your MultiSafepay test account under **Notes**. @@ -425,7 +445,7 @@ To refund an order: You can only test invoicing in your MultiSafepay live account. To do this, change the order status to **Shipped**. -**Note** You can't test: +**⚠️ Note:** You can't test: - Receiving successful payment notifications from Klarna - Changing the <> from **Uncleared** to **Completed**, except for refunds @@ -442,7 +462,7 @@ To learn more about integrating Klarna with MultiSafepay, see [Klarna](/docs/kla 1. Request a test API key from Riverty via either: - Your implementation ticket with Riverty, **or** - - Email + - Email Riverty shares the test key with MultiSafepay. @@ -473,7 +493,7 @@ To change the order status, either: - Make an [update order](/reference/updateorder/) request, or - In your MultiSafepay test dashboard, go to **Order summary**, and then click **Order status**. -❗️ **Note:** You can't test: +**⚠️ Note:** You can't test: - Receiving successful payment notifications from Riverty - Changing the <> from **Uncleared** to **Completed** - Processing refunds @@ -599,7 +619,7 @@ Any other card number receives an "Invalid card number" error. 3. Click **Test**. The payment is processed in your MultiSafepay test account as **Successful**, with <> **Completed**, and transaction status **Initialized**. -❗️ **Note:** You can't test Alipay declining transactions. +**⚠️ Note:** You can't test Alipay declining transactions. @@ -694,7 +714,7 @@ To test, follow these steps: 3. Click **Test**. The payment is processed in your MultiSafepay test account as **Successful**, with <> **Completed**, and <> **Initialized**. -📘 **Note:** Since MultiSafepay does not collect payments on behalf of PayPal, the <> remains **Initialized** and can't be changed to **Completed**. +**⚠️ Note:** Since MultiSafepay does not collect payments on behalf of PayPal, the <> remains **Initialized** and can't be changed to **Completed**. **Change the order status** diff --git a/content/payment-methods/trustly.md b/content/payment-methods/trustly.md index f1217bbec..da8156405 100644 --- a/content/payment-methods/trustly.md +++ b/content/payment-methods/trustly.md @@ -1,7 +1,7 @@ --- title: 'Trustly' category: 6298bd782d1cf4006032e765 -order: 14 +order: 17 hidden: false parentDoc: 62a728d48b97080046c1d220 slug: 'trustly' @@ -16,7 +16,7 @@ Read how Trustly can benefit your business on SmartPOS terminals and accessories directly through the shop in your MultiSafepay dashboard. Technical details and prices are provided for each device listed. + +How to access the terminal shop: + +1. Sign in to your MultiSafepay dashboard . +2. Go to **Devices** and select **Shop**. + +## How to place an order + + +You can place an order for your desired product from the shop in your MultiSafepay dashboard . + +1. Choose the desired devices and click **Add to cart**. +2. Click the trolley icon to access your cart. +3. In **My Cart**, click on **Pay with balance**. +4. Your delivery information, including your shipping address, will display by default. Modify if necessary. +5. Click **Confirm**. The total cost of the items in your cart will be discounted from your balance. +6. A message will appear stating that the order has been placed successfully. + +## Adding funds to your balance + +If your balance is insufficient to complete the payment, you can add more funds: + +1. In **My Cart**, click **Top up balance**. +2. Select one of the following payment methods: + - Card payments : Enter the required details and click **Pay now**. + - iDEAL : Click **Pay now**. You will be redirected to a iDEAL payment page. Follow the instructions to complete your payment. +3. The amount selected will be added to your balance. + + +## Invoice and Shipping Information + +Once your order is placed, an invoice will be automatically generated and sent to your email address, detailing the products purchased. + +You can find your order in **Transactions** > **Transaction Overview**. Select the relevant transaction. + +- In **Transaction details**, you will find the date of shipment, order status, and a **Track and trace URL**. +- In **Shipment history**, you can track the order through the shipment process. +- In **Order summary**, you can click **Packing slip** to download a document containing information related to the items you have ordered. + +*** + +If you are experiencing issues with your device, you can request an RMA (Return Merchandise Authorization). See - Send back a terminal . + + +💬 **Support**: For questions, email [pos-support@multisafepay.com](mailto:pos-support@multisafepay.com). + +*** + +[Top of page](#) \ No newline at end of file diff --git a/content/point-of-sale/event-notifications.md b/content/point-of-sale/event-notifications.md index a7fe7f5aa..68aecc21d 100644 --- a/content/point-of-sale/event-notifications.md +++ b/content/point-of-sale/event-notifications.md @@ -7,15 +7,7 @@ hidden: false slug: 'event-notifications' --- -> ⚠️ Note: -> -> We are currently in the pilot phase for this product in the following countries: -> -> - Netherlands -> -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email -> + Subscribe to event notifications to receive order payments updates when, e.g., @@ -27,12 +19,14 @@ Subscribe to event notifications to receive order payments updates when, e.g., - SmartPOS terminal must be [activated in your MultiSafepay account](/docs/getting-started-guide/). - Payments must be initiated via [cloud <> payment](/docs/solutions). +In other scenarios, you can make use of our webhook notifications. + # 1. Initiate payments 1. [Create an order](/reference/createorder/), and set`terminal_id` in your request. See Recipe - Cloud POS payment . 2. In response to the API request you made, you receive the `events_token`. -📘 **Note:** You cannot initiate another payment until the current payment is **Cancelled** or **Completed**. +**⚠️ Note:** You cannot initiate another payment until the current payment is **Cancelled** or **Completed**. # 2. Subscribe to the event notifications @@ -47,11 +41,23 @@ curl -H 'Authorization: events_token' 'https://api.multisafepay.com/events/strea ``` curl -H 'Authorization: eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTQwNzEyMDcsImdydtdfI6WyJtYnVzOnNlc3Npb24ub3JkZXIiLCJtYnVzOnNlc3Npb24ucXIiXSwicGlkIjoiNTk5TWM0VWhOWDhYczNmNU55b3JnaVZZMlhab1BsVVkxa28iLCJzdWIiOiJwciJ9.p1txKa0wlR6Pn-DvQW8oYmYcesU49GgZsPebME_EvYs' \ -'https://testapi.multisafepay.com/events/stream/' +'https://api.multisafepay.com/events/stream/' ``` +
+ Example response +
+ +``` +event: session.order +data: {"financial_status":"initialized","order_id":"ExampleOrderID1234567","session_id":"1025J8hXqtM9dLcilPp3gqkXi8Res3tvZZZ","status":"initialized","transaction_id":"89000000"} +event: session.order +data: {"financial_status":"completed","order_id":"ExampleOrderID1234567","session_id":"1025J8hXqtM9dLcilPp3gqkXi8Res3tvZZZ","status":"completed","transaction_id":"890000000"} +``` +
+ # 3. Payment statuses The table below sets out possible payment statuses and what they commonly mean. diff --git a/content/point-of-sale/hardware-setup.md b/content/point-of-sale/hardware-setup.md index d2353d226..161f884b4 100644 --- a/content/point-of-sale/hardware-setup.md +++ b/content/point-of-sale/hardware-setup.md @@ -1,24 +1,41 @@ --- title: 'Hardware setup' +parentDoc: 64674fbc74bc4007521ebbcb category: 6477597e0e2961004638cd5d -order: 1 +order: 4 hidden: false slug: 'hardware-setup' --- +> > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands +> - Belgium > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email > This page outlines the configuration of the hardware. -### Connect to a Wi-Fi network +# Security check upon delivery + +To ensure the secure handling of your customers' card data, it is highly recommended to inspect your terminals for any signs of tampering. + +Steps to follow: + +1. Verify that the plastic cover around the terminal box is undamaged. +2. Compare the device you received with the image of the device you ordered. +3. Check the weight of the terminal to ensure no unauthorized objects, such as in the battery compartment, have been added. + +## Connect to a Wi-Fi network To connect to a Wi-Fi network: @@ -29,7 +46,7 @@ For more information about Wi-Fi connection, refer to the manual provided with t *** -### Connect to the Smartpad +# Connect to the Smartpad Smartpad is a cable-powered terminal that must be connected to a power cable. @@ -37,23 +54,109 @@ To enhance network stability, we recommend that you connect the Smartpad to a ne *** -### Manage battery +# Manage battery If your battery is not charging, ensure that you are using a USB-C cable that is properly connected to the power source. *** -### Print receipts +# Print receipts To print your receipt, you need a thermal printer roll of either 57mm or 58mm. *** -### Turn on the terminal +# Serial number + +You can find your serial number (for SmartPOS / Sunmi) + +- on the device: some models display the serial number on the back of the terminal. +- in the MultiSafepay app: go to **Settings** > Menu > **About** > scroll to the bottom +- in the Sunmi settings app: location depends on the Android version, for example under **Model and hardware** / **About device** + +# Turn on the terminal - Charge the terminal for at least 30 minutes. - Press and hold the power button for a few seconds to switch it on. - For more information, see the manual provided with the terminal. +For more information, see the manual provided with the terminal. + +*** + + + +# Update firmware + +An outdated version of the firmware can cause miscellaneous issues. +Always ensure to run your device on the latest available version. + +Via the Sunmi portal, + +1. Go to **Device** > Device upgrade > Upgrade management + +2. Remove the data filter + +3. If there is new firmware available, the **Add to Upgrade Group** button will be highlighted. +Adding a terminal to the update group means the terminal will detect new firmware and will start downloading. + +**💡 Tip!** Make sure to unpack and activate the terminal so you can add it to the upgrade group. + +4. Download will start automatically. +By default, the download limit is set to 20KB/sec. You can increase this on the terminal itself in the **System update app**, ideally via the partner portal to apply it to all terminals. + +5. Upon successful download, reboot the terminal to install the newly downloaded firmware. + +6. You can automate this in the partner portal via +Device > Device Upgrade > **Important package configuration** + + +Steps on the device: + +1. **Reboot** via the button on right of the device +2. Settings (terminal) > About device > (select model) +3. You can view your current version, and **check update**. + +*** + +# Sunmi portal + +Functionalities you can access as a partner through your Sunmi portal: + +- remotely reboot a terminal +- whitelist apps to be displayed +- remotely switch off a terminal +- check installed Android version +- check last wifi connection time of a device +- push new software +- access terminal settings (automatic upgrades & installation; update message prompt etc.) + + +## Automatic installation and updates + +- Sign in to partner.sunmi.com. +- Configure the app to automatically update or choose a specific version. Select a specific time at which you want the app to be updated. +- Set the app to install automatically when the POS terminal connects to a network. +- Choose the terminal models you want to apply these settings to. + +## Add your app to the Sunmi App Store + +- Sign in to your Sunmi Partner Account via partner.sunmi.com. +- Go to **Development** > App Publishing, and upload your APK file. + +## Sunmi developer documentation + +For guides on available tools and functions, you can refer to the Sunmi Developer Documentation . + +To find specific information for your terminal model, go to Documents by Model . + + +## Sunmi contact + +As a partner you can contact Sunmi support for any issues with the terminal. + +1. Go to Sunmi +2. Click **Support** +3. Go to **Contact Technical Support** +4. Click **Need to raise a request** [Top of page](#) \ No newline at end of file diff --git a/content/point-of-sale/pos-overview.md b/content/point-of-sale/pos-overview.md index 2461faad7..c2f5367d0 100644 --- a/content/point-of-sale/pos-overview.md +++ b/content/point-of-sale/pos-overview.md @@ -8,14 +8,18 @@ slug: 'overview' > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: -> +> We currently offer this product in the following countries: +> > - Netherlands -> - Belgium +> - Belgium +> +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email - With MultiSafepay <> solutions, you can accept in-person payments through various terminals. Our <> solutions support multiple payment methods and offer flexible implementation options. @@ -48,10 +52,12 @@ Read how our POS solutions can benefit your business on \n \n \n \n" } + [/block] --- -[Top of page](#) \ No newline at end of file +[Top of page](#) + diff --git a/content/point-of-sale/pos-troubleshooting.md b/content/point-of-sale/pos-troubleshooting.md index 6e88e732e..63af8422f 100644 --- a/content/point-of-sale/pos-troubleshooting.md +++ b/content/point-of-sale/pos-troubleshooting.md @@ -1,20 +1,12 @@ --- title: 'POS troubleshooting' category: 6477597e0e2961004638cd5d -order: 4 +order: 3 hidden: false slug: 'pos-troubleshooting' --- -> ⚠️ Note: -> -> We are currently in the pilot phase for this product in the following countries: -> -> - Netherlands -> -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email This page provides troubleshooting steps to resolve common issues. @@ -42,7 +34,7 @@ When the internet connection isn't working correctly: The terminal is not correctly onboarded or linked with the correct group. -### Onboard the terminal +## Onboard the terminal If you haven't activated your terminal, follow these steps: @@ -68,7 +60,18 @@ If your SmartPOS terminal isn't onboarded correctly, email +- attempt manual configuration via **Settings** > Advanced > Security Center > Key Injection > RKI > Key Inject +- contact us via *** +## Sunmi system keyboard for Manual Input +When using **Manual Input** for the first time on the **SUNMI P2 SE** model, the default system keyboard will be displayed instead of a numeric keypad. + +To fix this, at the **Manual Input** screen, click the **keyboard** icon in the bottom corner and choose the language you selected during the initial device setup. This will display the numeric keypad. + +*** +## Logs + +Retrieving logs can be a helpful step to investigate an issue. You can generate them via your Sunmi portal: + +- Go to Device > **Log task management** +- Clear _start time_ +- Press **New task** +- Ensure to select **syslog** and add serial numbers +- Define the timeframe during which the logs should be uploaded to the portal and replicate the issue during this time. _Start time \_must be later than \_current time_. +- Click **release** + +*** # Payment errors The terminal isn't working correctly, payment information isn't displayed or payment is declined. -### Declined payment +## Order placed - not shown on terminal + +Checks you can do: + +- Is the terminal connected to wifi? +- Did you use the correct API key for your terminal group? + +## Declined payment If your payment is declined, check if you encountered any error messages. @@ -106,6 +137,10 @@ If your payment is declined, check if you encountered any error messages. | Configuration error. Try again | Send a request to | | Card not supported | Send a request to | | Use a different interface | Initiate the transaction again.
Ask the customer to insert the card instead of doing a contactless payment. | +| 1000 card declined | Contact support@multisafepay.com to confirm payment method configuration. | +| Use Magstripe | Contact pos-support@multisafepay.com | + +Additional check: ensure that you did not deactivate any card payment methods in your Merchant Dashboard. > **Note:** > @@ -114,7 +149,71 @@ If your payment is declined, check if you encountered any error messages. > - Terminal serial number > - Description of the issue > - If available, pictures or video -> + + +# Errors in the display of the app / screen + +- Restart your terminal. +- contact us via support@multisafepay.com + +*** +# Set device to developer mode + +Note: once a device is converted to developer mode, it cannot be reverted. This means it will no longer be PCI compliant. + +1. Request TUSN code from Sumni. +2. Navigate to Settings > System > About +3. Scroll down to the **TUSN** button +4. Press the TUSN button 8 times (alternative: SV button) +5. Enter the code received from Sunmi. + The 4-digit code is valid for 24 hours. + + +# Tampering alarm + +If your device has been blocked due to the error on screen "Attacked! Please contact your service provider", you can reach out to Sunmi for support. + +1. On the Sunmi page , go to *Contact Technical Support* > Create new request. +2. Select **P Serial Tamper** and follow the steps in the Sunmi environment. +**💡 Tip!** prepare a picture of your device to attach to the form. +3. Depending on the error code, you will receive a code to unblock your device. + +Once the terminal is rebooted, the device is ready for use again. +If the alarm reoccurs within a short time frame, a sensor might be damaged. You can contact us for assistance via [pos-support@multisafepay.com](mailto:pos@multisafepay.com). + + +# Send back a terminal + +In specific cases it might be necessary to return a device to us for technical investigation, or hardware substitution. + +(!) Note: Only return a terminal if requested by us. + +## Needed details + +To ensure a quick and efficient return procedure, indicate the following: + +- MultiSafepay account ID +- Serial number +- Address for new terminal +- Reason for return +- Support ticket reference (ex. 172349) + +Send this information to [pos-support@multisafepay.com](mailto:pos@multisafepay.com). + +## Reasons to return a terminal (temporarily) + +- Display broken +- Keyboard broken +- Printer broken +- Scanner broken +- Battery not working/no power +- Payment issues (only send back on our request) +- Chip reader broken +- Hardware damage +- Network not working +- Account closure +- Wrong terminal ordered + *** diff --git a/content/point-of-sale/smartPOS-features.md b/content/point-of-sale/smartPOS-features.md index 460718f1a..86519c908 100644 --- a/content/point-of-sale/smartPOS-features.md +++ b/content/point-of-sale/smartPOS-features.md @@ -10,124 +10,183 @@ slug: 'smartpos-features' > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands +> - Belgium > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email +> + + + +# Features + +After activating your SmartPOS terminal, you can add features from your SmartPOS payment app. SmartPOS features contains: + +
+
+ Global Settings +

    +
  • Display items after payment have been processed.
  • +
  • Add a tip to your payment flow.
  • +
  • Print a receipt.
  • +
  • Hide the MultiSafepay logo.
  • +
+ Payment Settings +

    +
  • Insert an order ID (or Scan QR)
  • +
  • Allow refunds
  • +
  • Allow card authorization
  • +
  • Initiate payments manually or using cloud mode
  • +
  • Hide the navigation menu on the main screen
  • +
  • Define the closing order flow
  • +
  • Change your payment method
  • +
+ Navigation Settings +

    +
  • Enable the Cancel function
  • +
  • Hide navigation
  • +
+
+ +
+ +
+
+ + + + -After activating your SmartPOS terminal, you can add features from your SmartPOS payment app. SmartPOS features let you: -- Display items after payment have been processed. - -- Add a tip to your payment flow. - -- Send an invoice to your customer via email or print. - -- Initiate payments manually or using cloud mode. - -- Hide the navigation menu on the main screen. - -- View the transaction overview. - -# Add features To add payment flow features, follow these steps: 1. On the navigation menu, click the **Back** button. -2. Select **Settings**. -
-
-POS-display -
+2. Select **Settings**. + -
- How to enable display items -
+## How to enable display items 1. In the **Global settings** list, click the **Display items** toggle. 2. To return to the main screen, click the **Back** button. Once you've initiated the payment, the items are displayed on the payment screen. -**Example:** + -
- How to enable tipping -
+## How to enable tipping 1. In the **Global settings** list, click the **Tipping** toggle. 2. To return to the main screen, click the **Back** button. -After the payment has been processed, the option to tip is displayed on the payment screen. +Enabling this feature will display a tipping screen before the payment is processed. On the tipping screen, you can: -**Example:** -smartPOS_print -
-*** + +- Click a suggested tipping amount or click **Custom** to add a specific amount. +- Click **No Tip** to proceed without tipping. +- Click the **Employee** icon to assign the employee you want to tip or to add a new employee. -
+You can add an employee via **+ add employee** > Insert **Name** and **Employee ID**. -
+*** -
- How to enable print or email -
+## How to enable print or email 1. In the **Global settings** list, click the **Print/Email** toggle. 2. To return to the main screen, click the **Back** button. -**Example:** + -
- How to disable manual input -
+*** -1. In the **Payment** list, click the ** Manual input** toggle. +## How to enable cloud mode + +1. In the **Payment** list, click the ** Cloud mode** toggle to the right. 2. To return to the main screen, click the **Back** button. *** -
+To exit the cloud mode payment screen: -
+1. Tap and hold the **MultiSafepay** logo or your personal logo for few seconds. +2. Enter the default **PIN code**.
The default PIN code is `1324`. -
- How to enable cloud mode -
+**⚠️ Note:** For your security, we recommend you change the default PIN code as soon as possible. -1. In the **Payment** list, click the ** Cloud mode** toggle to the right. -2. To return to the main screen, click the **Back** button. +*** ---- +## How to define your closing order flow -To exit the cloud mode payment screen: +Upon completed or declined payment, the customer can be redirected to a page that confirms the outcome of the payment process, OR go back automatically to your app. +Example message on the confirmation screen: "Payment is completed successfully". -1. Tap and hold the **MultiSafepay** logo for few seconds. -2. Enter the default **PIN code**.
The default PIN code is `1324`. +You can customize this flow: -**Note:** For your security, we recommend you change the default PIN code as soon as possible. +1. Go to **Settings** > **Payment** > **Close timeout** +2. To display the confirmation screen for a fixed amount of time, select the seconds from the dropdown. This is the timeout of the "Completed" page. + If you select _disabled_, there is no automatic timeout, and you will need to press _Close Order_ to close the confirmation screen and return to your own application. ---- +**⚠️ Note:** This applies to both cloud mode and native application setups. - ---- -
+*** After you've enabled the **Cloud mode**, the **Navigation** list appears. This feature allows you to hide the cancel button and system navigation. -**Example:** -smartPOS_print -
+ - + +**💡 Tip!** You can print your closing balance report using either the device printer, or the [external printer](docs/test-page#external-printer). + +*** + +## How to hide navigation 1. In the **Navigation** list, click the ** System navigation** toggle to the right. 2. To return to the main screen, click the **Back** button -**Note:** To access the navigation menu, tap the **MultiSafepay** logo. +**Note:** To access the navigation menu, tap the **MultiSafepay** logo or your personal logo.
*** - + +*** + +## How to scan qr codes + +You can use the QR code reader within our app to easily recognize order information and include it in a transaction. + +1. In the **Settings** section, enable **Insert order**. +2. When using **Manual input**, select **Scan QR**. + +The QR reader is able to detect the following parameters: + +- amount +- order ID +- description + This information will be included in the payment request. + +
+ +*** + +## How to enable refunds + +1. Go to **Features** > **Payment**. +2. Click the **Allow refunds** toggle. +3. Enter your 4-digit PIN Code. + +Once this feature is activated, you can process refunds from your terminal. To do this: + +1. Go to **Features** > **History**. +2. Click the relevant transaction. +3. Click **Refund**. You can process full or partial refunds. +4. Click **Ok** > **Confirm**. + +*** + +## How to enable ❌ cancel 1. In the **Navigation** list, click the **Cancel button** toggle to the right. 2. To return to the main screen, click the **Back** button. @@ -169,12 +295,17 @@ After you've enabled the **Cloud mode**, the **Navigation** list appears. This f *** +## How to validate a card + +1. In **Settings** > **Payment**, enable **Allow Zero Amount** +2. Customer completes the 0 EUR transaction. +3. You will see the transaction with 0 amount in your transaction overview. + -
- How to view transaction overview +*** -
+## How to view transaction overview 1. On the navigation menu, click the **Back** button. 2. Select **History**. @@ -183,8 +314,34 @@ After you've enabled the **Cloud mode**, the **Navigation** list appears. This f - View transaction information **or** - Send a copy of the transaction via email. ---- -
+*** + +## How to unbind your terminal + +1. In the **Settings** list, go to the menu in the top left corner. +2. Select **Security**, and insert your 4-digit PIN Code. +3. Click **Unbind** and confirm. + +**⚠️ Note:** Unbinding will result in a complete data erasure. +You can bind the terminal to the same or a different account, or terminal group. + +## How to use an external printer +Additionally to our built-in printers within some of our devices, you can use the Sunmi kitchen cloud printer via + +- Bluetooth +- WiFi +- USB connections + +You can set it up within your app: + +1. Via Settings, go to _External printer_ +2. Press **Discover** +3. Select Connection Type +4. List of printers available is displayed +5. When a payment is completed, click the **printer icon** to print your receipt. + + +*** [Top of page](#) \ No newline at end of file diff --git a/content/point-of-sale/smartpos-activation.md b/content/point-of-sale/smartpos-activation.md index 9f633fdf5..4a828bd9c 100644 --- a/content/point-of-sale/smartpos-activation.md +++ b/content/point-of-sale/smartpos-activation.md @@ -9,14 +9,18 @@ slug: 'smartpos-activation' > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands +> - Belgium > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email > - SmartPOS is an advanced <> terminal with Android applications, providing added functionality. It enables you to make payments through various options, such as manual input flow, cloud POS payment, or third-party on-device applications. # Prerequisites @@ -31,14 +35,26 @@ To process payments, you will need: To activate a SmartPOS terminal, follow these steps: 1. Sign in to your MultiSafepay dashboard . + 2. Go to **Devices** > **Terminals**. -3. Click **Add SmartPOS**. -4. Below the **<> name**, click **Add new group**. + +3. Click **Add terminal**. + +4. Below the **<> name**, click **Add new group**, or select a previously created group. + 5. Fill out the following fields: -- **New group name**. -- **Terminal name**. -- In the **MCC** field, click the **drop-down** icon and select the relevant MCC code. -6. Click **Get code**.
A dialog with a QR code appears. + + - **New group name**. + - **Webhook URL** (optional). + - In the **Business category** field, click the **drop-down** icon and specify the relevant service or product offered. If a category has been assigned to your account in the past, it will be displayed automatically. + - **Logo**: Select an image you want to display in different places of your payment app, to show customized branding. To upload your logo, see [How to upload logos](#how-to-upload-logos). + The logo is added to all terminals of this group and will show in the background of your terminal. + + **⚠️Note**: Individual terminals within a group cannot have different images. + +6. Select Terminal type **SmartPOS**. +7. Click **Create**. + Install the MultiSafepay payment app on your terminal to scan the QR code. @@ -52,18 +68,31 @@ Install the MultiSafepay payment app on your terminal to scan the QR code. ✅ Success! You have successfully activated your terminal. You can now start accepting payments. -**Note:** You can edit and link various terminals if you have already created a group. +**⚠️ Note:** You can edit and link various terminals if you have already created a group. + +## How to upload your logo -
How to edit a group +1. Go to your MultiSafepay dashboard . +2. Go to **Settings** > **Files** and upload the desired image file. The file must meet the following requirements: + - Format: **PNG** + - Resolution: **512x512 pixels** + + You can upload multiple files at the same time. +3. Click **Upload** for single files or **Upload all** to upload all files. + +## How to edit a group 1. Sign in to your MultiSafepay dashboard . 2. Go to **Devices** > **Terminals**. 3. Click **Manage groups**. -4. To edit an existing group: -- Click the ** edit** icon next to the group name. -- Fill in the **name** field. -5. In the **<>** field, click the **dropdown** icon and select the relevant MCC code. -6. Click **Create**. +4. Click the **edit** icon on the right side of the panel to edit the desired terminal group. Here, you can: + - Change the **name** of the terminal group. + - Change the logo by selecting a different image file. + - Change the **webhook URL**. +5. Click the **save** icon. + +**💡 Tip!** You can view your API key via **Manage groups** > **API key**. + ---
diff --git a/content/point-of-sale/smartpos-overview.md b/content/point-of-sale/smartpos-overview.md index b8b9e3495..c9847221a 100644 --- a/content/point-of-sale/smartpos-overview.md +++ b/content/point-of-sale/smartpos-overview.md @@ -1,19 +1,24 @@ --- title: 'SmartPOS terminal' category: 6477597e0e2961004638cd5d -order: 3 +order: 2 hidden: false slug: 'smartpos-terminal' --- > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands +> - Belgium > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email > This section provides an overview of our SmartPOS terminal. diff --git a/content/point-of-sale/smartpos-solutions.md b/content/point-of-sale/smartpos-solutions.md index b59d13846..1952d1958 100644 --- a/content/point-of-sale/smartpos-solutions.md +++ b/content/point-of-sale/smartpos-solutions.md @@ -9,12 +9,17 @@ slug: 'smartpos-solutions' > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands +> - Belgium > -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> As a partner, you can further connect accounts registered in the following countries: +> +> - Italy +> - Spain +> +> If you are interested in our Point of Sale solutions, email > Our SmartPOS solutions let you initiate payments through: @@ -44,9 +49,10 @@ This diagram shows a successful cloud-based POS payment flow. Click to magnify. margin-right: auto; max-width: 750px;width: 100%;"/> - 📘 **Note:** Before you start initiating payments, you must ensure **cloud mode** is enabled - see [SmartPOS features](/docs/smartpos-features). + **⚠️ Note:** Before you start initiating payments, you must ensure **cloud mode** is enabled - see [SmartPOS features](/docs/smartpos-features). -Create an order. See Recipe - Cloud POS payment . +- Create an order. See Recipe - Cloud POS payment . +- Cancel an order. See [cancellation](#cancellation). To receive payments updates subscribe to [Event notifications.](/docs/event-notifications) @@ -73,7 +79,8 @@ This diagram shows a successful web application payment flow. Click to magnify. **Example** -``` + +```curl curl -X POST \ "https://api.multisafepay.com/v1/json/orders?api_key={your-api-key}" -d '{ @@ -87,19 +94,22 @@ curl -X POST \ "notification_url": "https://www.example.com/paymentnotification", "notification_method": "POST" } -}' +} +' ``` 2. Initiate a payment using the URL below: ``` URL -msp://?amount={$amount}&order_id={$order_id}&callback={$callback_url}¬ification_url={$notification_url} +msp://?amount={$amount}&order_id={$order_id}&callback={$callback_url}&printing=true&tipping=true¬ification_url={$notification_url} ``` - `amount`: the amount specified in EUR cents. -- `order_id`: Your unique identifier for order ID. -- `callback_url`: This URL redirects the customer to receive payment status notifications. +- `order_id`: your unique identifier for order ID. +- `callback_url`: this URL redirects the customer to receive payment status notifications. - Optionally, you can set `notification_url` to receive order payment updates notifications. +- `tipping`: include a tip. +- `printing`: activate printing function. Payment status received can either be **Completed** or **Cancelled**. @@ -125,10 +135,11 @@ This diagram shows a successful native application payment flow. Click to magnif **Example** -``` +```curl curl -X POST \ "https://api.multisafepay.com/v1/json/orders?api_key={your-api-key}" --d '{ +-d ' +{ "type": "redirect", "order_id": "my_order_id", "gateway": "", @@ -139,12 +150,130 @@ curl -X POST \ "notification_url": "https://www.example.com/paymentnotification", "notification_method": "POST" } -}' +} +' ``` 2. To initiate payments - see MultiSafepay Android POS integration .
+# API features + +In addition to the features mentioned in our API reference, there are POS-specific details you can retrieve via our API, including the **Terminal ID** that processed a transaction. + +**Example GET order** + +```json +{ + "success": true, + "data": { + "amount": 1, + "amount_refunded": 0, + "completed": "2024-06-04T15:50:18", + "costs": [ + { + "amount": 2, + "description": "2 For Visa Transactions", + "transaction_id": 899813954, + "type": "SYSTEM" + }, + { + "amount": 0.6, + "description": "2.9 % For Visa CreditCards Transactions (min 60)", + "transaction_id": 899813955, + "type": "SYSTEM" + } + ], + "created": "2024-06-04T15:50:17", + "currency": "EUR", + "custom_info": { + "custom_1": null, + "custom_2": null, + "custom_3": null + }, + "customer": { + "address1": null, + "address2": null, + "city": null, + "country": null, + "country_name": null, + "email": null, + "first_name": null, + "house_number": null, + "last_name": null, + "locale": "en_US", + "phone1": null, + "phone2": null, + "state": null, + "zip_code": null + }, + "description": "12341234", + "fastcheckout": "NO", + "financial_status": "completed", + "items": null, + "modified": "2024-06-04T15:50:18", + "order_id": "TestGetOrder123123", + "payment_details": { + "account_holder_name": "card holder", + "account_id": null, + "application_id": "a0000000031010", + "authorization_code": "705151", + "card_acceptor_id": "1001001", + "card_acceptor_location": "Amsterdam", + "card_acceptor_name": "TestMSP", + "card_additional_response_data": { + "sca_details": {} + }, + "card_authentication_result": null, + "card_entry_mode": "ICC_CONTACTLESS", + "card_expiry_date": "3112", + "card_funding": "D", + "card_product": "F", + "card_product_type": 1, + "card_sequence_number": "0000", + "card_verification_result": "2", + "cardholder_verification_method": "FAILED", + "cardholder_verification_result": "UNKNOWN", + "emv": { + "91": "ab1231231234" + }, + "external_transaction_id": "12312312312", + "issuer_bin": "123123", + "issuer_country_code": "ES", + "last4": "1234", + "recurring_flow": null, + "recurring_id": "1231213123", + "recurring_model": null, + "response_code": "00", + "scheme_reference_id": "123123123123123", + "terminal_id": "0000004d", + "type": "VISA" + }, + "payment_methods": [ + { + "account_holder_name": "card holder", + "amount": 1, + "card_expiry_date": "3112", + "currency": "EUR", + "description": "12341234", + "external_transaction_id": "123123412341234", + "payment_description": "Visa", + "status": "completed", + "type": "VISA" + } + ], + "reason": "Approved", + "reason_code": "1000", + "related_transactions": null, + "status": "completed", + "transaction_id": 123412342341234, + "var1": null, + "var2": null, + "var3": null + } +} + +``` # Handle notifications @@ -160,11 +289,79 @@ The table below sets out options available for receiving updates on the payments ## Cancellation -To cancel an order, make a POST request using the `order_id`. +You can use two different request methods to cancel an order: **POST** or **PATCH**. Both methods require the use of an `order_id` and a group **API** key, which you can find at your MultiSafepay dashboard under **Manage groups**. + + +
+PATCH request + +To cancel an order with a **PATCH** request, follow these instructions: + +- The `status` parameter (string) must be set to **cancelled**. +- Set `exclude_order` (boolean) to **true**. This sets the outcome of the cancellation. + +**Example Request** + +```curl cURL PATCH + +curl --location --request PATCH \ + --url 'https://api.multisafepay.com/v1/json/orders/{order_id}/?api_key={your-api-key}' \ + --header 'Accept: application/json' \ + --header 'Content-Type: application/json' + --data ' +{ + "status": "cancelled", + "exclude_order": true +} +' ``` -curl -X POST 'https://testapi.multisafepay.com/v1/json/orders/{order_id}/cancel?api_key={your-api-key}' + +**Example Response** +```json + +{ + "success":true, + "data": {} +} +``` +
+ +
+POST request + + + +To cancel an order with a **POST** request, no additional parameters are required. Introduce the `order_id` and the **API** key in the URL. + +**Example request** + +```cURL POST +curl -X POST +"https://api.multisafepay.com/v1/json/orders/{order_id}/cancel?api_key={your-api-key}" +``` +**Example response** +```JSON +{ + "success": true, + "data": { + "costs": [], + "created": "dateTtime", + "custom_info": { + "custom_1": null, + "custom_2": null, + "custom_3": null + }, + "fastcheckout": "NO", + "financial_status": null, + "modified": "dateTtime", + "payment_details": {}, + "payment_methods": null, + "status": "cancelled" + } +} ``` +
## Refunds @@ -188,6 +385,8 @@ See API reference – [Refund order](/reference/refundorder). 7. Click **Continue**. 8. Review **Refund confirmation**, and then click **Confirm**. + + ## Updates diff --git a/content/point-of-sale/traditional-ctap.md b/content/point-of-sale/traditional-ctap.md index a3219d375..342b89f98 100644 --- a/content/point-of-sale/traditional-ctap.md +++ b/content/point-of-sale/traditional-ctap.md @@ -1,7 +1,7 @@ --- title: 'Traditional (CTAP) terminal' category: 6477597e0e2961004638cd5d -order: 2 +order: 1 hidden: false slug: 'traditional-ctap-terminal' @@ -9,12 +9,12 @@ slug: 'traditional-ctap-terminal' > ⚠️ Note: > -> We are currently in the pilot phase for this product in the following countries: +> We currently offer this product in the following countries: > > - Netherlands -> -> Please note that in this stage, you cannot request terminals yet to use POS services. -> If you are interested in participating in the next stage of our pilot, email +> - Belgium +> +> If you are interested in our Point of Sale solutions, email Traditional (CTAP) is a terminal that has passed Acquiris certification and can be connected to acquirers with a C-TAP host. @@ -31,14 +31,16 @@ Traditional (CTAP) is a terminal that has passed MultiSafepay dashboard . 2. Go to **Devices** > **Terminals**. -3. Select **Add Traditional (CTAP)**. -4. On the **New Traditional (CTAP)** tab > select **Add new group**. -5. Fill out the following fields: -- **New group name**. -- **Terminal name**. -- In the **MCC** field, click the **drop-down** icon and then select the relevant MCC code. -6. Select **Create**. +3. Click **Add terminal**. +4. Below the **<> name**, click **Add new group**, or select a previously created group. +5. For a new group, out the following fields: +- **New group name**. +- **Webhook URL** (optional). +- In the **Business category** field, click the **drop-down** icon and specify the relevant service or product offered. If a category has been assigned to your account in the past, it will be displayed automatically. +6. Select Terminal type **CTAP**. A unique Terminal ID will be automatically generated. +**💡 Tip!** you can modify TID until manually via Devices > Terminals > TID until transactions are processed. The name can still be modified after processing transactions. 7. Copy **Terminal ID**, **Account ID**, and **CTAP Acquirer** and send them to your POS provider. +**💡 Tip!** As long as the terminal is not bound, the TID and name can be changed via the "Edit" icon. 8. After your POS provider has set up your terminal, the activation is completed. 9. Terminal manufacturer and serial number are now displayed in your MultiSafepay dashboard . diff --git a/docs/archive/google-analytics.md b/docs/archive/google-analytics.md index dff244cf3..88a74ed2a 100644 --- a/docs/archive/google-analytics.md +++ b/docs/archive/google-analytics.md @@ -24,7 +24,7 @@ If you use `analytics.js`, Google gives you a **tracking ID** that you need to a If you use `gtag.js`, then you use **tags** instead of tracking IDs. The `gtag.js` library adds a single tag to your site to connect with multiple Google products and services, including Google Analytics. -📘 **Note:** All Google Analytics accounts since 2017 use `gtag.js`. Prior to 2017, `analytics.js` was the default method for tagging. +**⚠️ Note:** All Google Analytics accounts since 2017 use `gtag.js`. Prior to 2017, `analytics.js` was the default method for tagging. ## API integrations @@ -48,7 +48,7 @@ This can impact the reliability of Google Analytics reports, and they won't accu To prevent third-party shopping carts initiating new sessions, you can exclude referral domains. This prevents the customer being counted as a referral when they return to your success page. -📘 **Note:** This feature is only available for sites using `gtag.js` or `analytics.js`. +**⚠️ Note:** This feature is only available for sites using `gtag.js` or `analytics.js`. For instructions, see Google Analytics – Referral exclusions . @@ -113,13 +113,13 @@ In your PHP code, the parameter should look like this: `$this→_redirect('check Make sure you do this for **all** links from the payment gateway to your site. -✅   **Tip!** Our ready-made integrations for Magento 1 and 2 do this automatically. +  **💡 Tip!** Our ready-made integrations for Magento 1 and 2 do this automatically. ## Server-side solutions These solutions need a server environment and may require significant development effort. -📘 **Note:** +**⚠️ Note:** - Server-side solutions are still in their infancy and could require regular adjustment and maintenance. - It is not possible to use client-side and server-side solutions at the same time. diff --git a/docs/archive/payment-methods.md b/docs/archive/payment-methods.md index c7ee199dc..41729b2c9 100644 --- a/docs/archive/payment-methods.md +++ b/docs/archive/payment-methods.md @@ -46,7 +46,7 @@ Once the method is activated, also enable it in your <>. | Lithuania | PayPal, Trustly | | Luxembourg | PayPal, Trustly | | Malta | PayPal, Trustly | -| Netherlands | Betaal per Maand, gift cards, iDEAL, in3, Klarna, Pay After Delivery, PayPal, Riverty, Trustly | +| Netherlands | Gift cards, iDEAL, in3, Klarna, Pay After Delivery, PayPal, Riverty, Trustly | | Norway | Klarna, PayPal, Trustly | | Poland | Dotpay, PayPal, Sofort, Trustly | | Portugal | PayPal, Trustly | diff --git a/landing-page/landing-page.html b/landing-page/landing-page.html index 68008a711..5f900642e 100644 --- a/landing-page/landing-page.html +++ b/landing-page/landing-page.html @@ -73,12 +73,14 @@

Checkout solutions

- + @@ -165,6 +167,7 @@

Checkout solutions

gap: 20px; align-items: center !important; } + .flex-item { padding: 10px; @@ -243,7 +246,6 @@

Checkout solutions

padding: 50px; border-radius: 10px; } - @media screen and (max-width: 935px) { .grey-background { background: none; diff --git a/static/diagrams/src/bizum-payment-flow.mmd b/static/diagrams/src/bizum-payment-flow.mmd new file mode 100644 index 000000000..36843553c --- /dev/null +++ b/static/diagrams/src/bizum-payment-flow.mmd @@ -0,0 +1,15 @@ +sequenceDiagram + autonumber + participant C as Customer + participant Mu as MultiSafepay + participant Bi as Bizum + + C->>Mu: Selects Bizum at checkout + Mu->>C: Sends redirect URL for authentication + alt Redirect flow + Mu->>C: Redirects to payment page,
then to Bizum environment + else Direct flow + Mu->>C: Redirects to Bizum environment + end + C->>Bi: Inserts phone number + C->>Bi: Authenticates \ No newline at end of file diff --git a/static/diagrams/svg/billink-payment-flow.svg b/static/diagrams/svg/billink-payment-flow.svg new file mode 100644 index 000000000..6201493d2 --- /dev/null +++ b/static/diagrams/svg/billink-payment-flow.svg @@ -0,0 +1 @@ +MerchantBillinkMultiSafepayCustomerMerchantBillinkMultiSafepayCustomerPerforms credit checkManually changes the order status to ShippedSelects Billink at checkout1Redirects to the payment page to provide the required data. The customer has to verify their data through the Billink app2Sends an invoice via email, which must be paid within 14 days after the order has been received3Ships order4Completes payment5Transfers funds6Settles funds7 \ No newline at end of file diff --git a/static/diagrams/svg/bizum-payment-flow.svg b/static/diagrams/svg/bizum-payment-flow.svg new file mode 100644 index 000000000..f0caca0b8 --- /dev/null +++ b/static/diagrams/svg/bizum-payment-flow.svg @@ -0,0 +1 @@ +BizumMultiSafepayCustomerBizumMultiSafepayCustomeralt[Redirect flow][Direct flow]Selects Bizum at checkout1Sends redirect URL for authentication2Redirects to payment page, then to Bizum environment3Redirects to Bizum environment4Inserts phone number5Authenticates6 \ No newline at end of file diff --git a/static/diagrams/svg/in3business-payment-flow.svg b/static/diagrams/svg/in3business-payment-flow.svg new file mode 100644 index 000000000..78209aa56 --- /dev/null +++ b/static/diagrams/svg/in3business-payment-flow.svg @@ -0,0 +1 @@ +Merchantin3MultiSafepayBusinessMerchantin3MultiSafepayBusinessalt[Redirect flow][Direct flow]Selects in3 Business at checkout.1Redirects to payment page to provide their business name, CoC number, birth date, title, and phone number then redirects to your success page2Redirects to in3 to select their bank, and accept the payment periods and terms & conditions3Authorizes the payment4Captures the funds5Pays 1st instalment within 5 mins (settlement is now guaranteed)6Ships the order7Transfers funds8Settles funds (within 15 days of 1st instalment)9Pays 2nd instalment within 30 days, and 3rd within 60 days10 \ No newline at end of file diff --git a/static/domain-validation-apple-pay/domain-validation-apple-pay.zip b/static/domain-validation-apple-pay/domain-validation-apple-pay.zip index 8b16d3f21..6341d248b 100644 Binary files a/static/domain-validation-apple-pay/domain-validation-apple-pay.zip and b/static/domain-validation-apple-pay/domain-validation-apple-pay.zip differ diff --git a/static/domain-validation-apple-pay/new-domain-validation-apple-pay.zip b/static/domain-validation-apple-pay/new-domain-validation-apple-pay.zip deleted file mode 100644 index 00b03f350..000000000 Binary files a/static/domain-validation-apple-pay/new-domain-validation-apple-pay.zip and /dev/null differ diff --git a/static/img/POS_feature_list.png b/static/img/POS_feature_list.png new file mode 100644 index 000000000..cdc3dc373 Binary files /dev/null and b/static/img/POS_feature_list.png differ diff --git a/static/img/POS_features.png b/static/img/POS_features.png new file mode 100644 index 000000000..bdf451446 Binary files /dev/null and b/static/img/POS_features.png differ diff --git a/static/img/POS_main_screen.png b/static/img/POS_main_screen.png new file mode 100644 index 000000000..fe03b42fb Binary files /dev/null and b/static/img/POS_main_screen.png differ diff --git a/static/logo/Integrations/Drupal_10.svg b/static/logo/Integrations/Drupal_10.svg new file mode 100644 index 000000000..f9c475f8c --- /dev/null +++ b/static/logo/Integrations/Drupal_10.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/logo/Integrations/ccv-shop.svg b/static/logo/Integrations/ccv-shop.svg new file mode 100644 index 000000000..9d842d150 --- /dev/null +++ b/static/logo/Integrations/ccv-shop.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + diff --git a/static/logo/Payment_methods/Bizum.svg b/static/logo/Payment_methods/Bizum.svg new file mode 100644 index 000000000..66144f848 --- /dev/null +++ b/static/logo/Payment_methods/Bizum.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/logo/Plugins/Drupal_10.svg b/static/logo/Plugins/Drupal_10.svg new file mode 100644 index 000000000..f9c475f8c --- /dev/null +++ b/static/logo/Plugins/Drupal_10.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/plugin-downloads/magento1/Plugin_Magento_3.7.0.zip b/static/plugin-downloads/magento1/Plugin_Magento_3.7.0.zip new file mode 100644 index 000000000..8ba2469f6 Binary files /dev/null and b/static/plugin-downloads/magento1/Plugin_Magento_3.7.0.zip differ diff --git a/static/svgs/credit_debit_page/3dsecure.svg b/static/svgs/credit_debit_page/3dsecure.svg new file mode 100644 index 000000000..e5a952663 --- /dev/null +++ b/static/svgs/credit_debit_page/3dsecure.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/svgs/credit_debit_page/Euro.svg b/static/svgs/credit_debit_page/Euro.svg new file mode 100644 index 000000000..54f97757c --- /dev/null +++ b/static/svgs/credit_debit_page/Euro.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/svgs/credit_debit_page/cardholderdata.svg b/static/svgs/credit_debit_page/cardholderdata.svg new file mode 100644 index 000000000..6b05d4b8e --- /dev/null +++ b/static/svgs/credit_debit_page/cardholderdata.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/static/svgs/credit_debit_page/cardpayments.svg b/static/svgs/credit_debit_page/cardpayments.svg new file mode 100644 index 000000000..4c9061492 --- /dev/null +++ b/static/svgs/credit_debit_page/cardpayments.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/svgs/credit_debit_page/chargebacks.svg b/static/svgs/credit_debit_page/chargebacks.svg new file mode 100644 index 000000000..a85489ee6 --- /dev/null +++ b/static/svgs/credit_debit_page/chargebacks.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/svgs/credit_debit_page/errors.svg b/static/svgs/credit_debit_page/errors.svg new file mode 100644 index 000000000..88c1dbfb3 --- /dev/null +++ b/static/svgs/credit_debit_page/errors.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/static/svgs/credit_debit_page/manualcapture.svg b/static/svgs/credit_debit_page/manualcapture.svg new file mode 100644 index 000000000..88393980b --- /dev/null +++ b/static/svgs/credit_debit_page/manualcapture.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/svgs/credit_debit_page/moto.svg b/static/svgs/credit_debit_page/moto.svg new file mode 100644 index 000000000..a27bb1614 --- /dev/null +++ b/static/svgs/credit_debit_page/moto.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/svgs/credit_debit_page/princingmodels.svg b/static/svgs/credit_debit_page/princingmodels.svg new file mode 100644 index 000000000..50ad8cf0c --- /dev/null +++ b/static/svgs/credit_debit_page/princingmodels.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/svgs/credit_debit_page/refunds.svg b/static/svgs/credit_debit_page/refunds.svg new file mode 100644 index 000000000..9f47375c8 --- /dev/null +++ b/static/svgs/credit_debit_page/refunds.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/static/svgs/credit_debit_page/unclearedpayments.svg b/static/svgs/credit_debit_page/unclearedpayments.svg new file mode 100644 index 000000000..9028ea651 --- /dev/null +++ b/static/svgs/credit_debit_page/unclearedpayments.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/static/svgs/credit_debit_page/zeroauthorization.svg b/static/svgs/credit_debit_page/zeroauthorization.svg new file mode 100644 index 000000000..a9000cef7 --- /dev/null +++ b/static/svgs/credit_debit_page/zeroauthorization.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/wordlist.txt b/wordlist.txt index 2995f3404..3fe0b6692 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -1,5 +1,3 @@ -aan -Acquiris ABN ABNA ACA @@ -25,6 +23,7 @@ ARNs ASN AUD AccountID +Acquiris Actuals Addons Afletteren @@ -56,7 +55,6 @@ BKR BNO BNPL BRL -Brouwmarkt BVK BVKPayment Backend @@ -73,25 +71,21 @@ Bevestigen Biercheque Birthdate BitBag +Bizum Bloemen Bloemencadeaukaart Boeken Boekenbon Boekhouden +Brouwmarkt Burgerlijk -cadeau -cadeaubon -cadeaucheque CAMT CCV -CVV CCVshop CEST CET CFDs -Changs CHARGEBACK -chèque CHF CLI CLP @@ -106,6 +100,7 @@ CSV CTAP CURRENTDATE CVC +CVV CZK Cadeau Cadeaubon @@ -115,15 +110,15 @@ Cartes Casper Cesena Changelog -Cloudflare +Changs CloudSuite +Cloudflare Coppermine Creditdebit Credito Cryptocurrencies Cryptocurrency Cryptographic -CTAP DANKORT DAVAMS DELIVERYCARRIER @@ -157,8 +152,6 @@ Dropdown Duopact Dynamicweb EBA -eco -ecocheque EEA EINVOICE EPS @@ -172,9 +165,7 @@ Edenred's Edoburu Electronische Electrosex -favicon FERBUY -Fi FI FROMNAME Fashioncheque @@ -183,6 +174,7 @@ FastCheckout FastCheckout's FastCheckoutKit FerBuy +Fi Fietsenbon Financials Fooman @@ -210,25 +202,24 @@ IBAN IBANs ICT ILS -Incasso ING INR IPEK IPs ISK +Incasso Instellingen Intersolve -Jewelstore JPY JSON +Jewelstore Jong Joomla -Kelly Fashion Giftcard KBC KLARNA -Kosten KRW KYC +Kelly Fashion Giftcard Klantenservice Klarna's Klus @@ -236,20 +227,22 @@ Knab Kopen KopieID Koppeling +Kosten Krediet LVP -Lanschot +Lanschot Laravel Liefcadeaukaart Lightspeed LogiVert -maaltijdcheques +MCC MCC MERCHANTCITY MERCHANTCOUNTRY MERCHANTLOGOHTML MERCHANTNAME MERCHANTPHONESUPPORT +MERCHANTPO MERCHANTSUPPORT MISTERCASH MOTO @@ -265,20 +258,18 @@ Maintransaction Mastercard Mastercard's Mc -MCC -MERCHANTPO Mijn MijnDomein Mijnwebwinkel MisterCash Monizze Monizze's -Multibanco MultiFactor MultiSafepay MultiSafepay's MultiSafepayClient MultiSafepayImportedRows +Multibanco MyBank NL NOK @@ -289,9 +280,8 @@ Nationale verwen cadeaubon Nederland Nname NodeJS -OrderRequest -ORDERSTATUS OFBiz +ORDERSTATUS ORRTIZ Odoo Offerte @@ -299,11 +289,11 @@ Ohmygood Omnipay OneStepCheckout Ontvangst -onze OpenCart OrderRequest -OroCommerce OrderRequest +OrderRequest +OroCommerce OsCommerce PAYAFTER PCI @@ -331,8 +321,6 @@ Picqer Popolare Postbus Postepay -prefinances -prefinancing Premarc PrestaShop Proef @@ -341,10 +329,11 @@ Qwindo REFUNDDESTINATION RESTful Rabobank +Rebrand +Rebranding Regio Registratie Registreer -repas Revolut Riverty Riverty's @@ -360,7 +349,6 @@ SGD SHA SITENAME SITEURL -SmartPOS SMS SNS SRC @@ -374,8 +362,9 @@ Shopify Shoptrader Shopware SmartPOS -Smartpad +SmartPOS SmartPad +Smartpad SnelKoppeling SnelStart Sodexo @@ -417,7 +406,7 @@ VEF VIBAN VIBANs VVV -Van +Van Venia Verificatiecode Verkooppunten @@ -428,8 +417,9 @@ Volksbank Voordeel Vue Vuur -WIP WIK +WIP +WLAN WWFT WeChat Webshopgiftcard @@ -438,7 +428,6 @@ Wi Wijn Wijncadeau Winkelcheque -WLAN WooCommerce Wordpress Wwft @@ -456,6 +445,7 @@ ZV ZenCart ZilverCMS Zinia +aan aangeleverd aanvragen abonnement @@ -483,6 +473,9 @@ bon boolean br bunq +cadeau +cadeaubon +cadeaucheque callout cancelled cardOnFile @@ -492,6 +485,7 @@ chargeback chargebacks checkboxes cheque +chèque config consumentenkrediet contactless @@ -501,6 +495,7 @@ cust customizable cyberattack cyberlocker +dCVV de decrypts degrotespeelgoedwinkel @@ -508,14 +503,16 @@ derden di dotpay dropdown -dCVV +eco +ecocheque ecommerce eps erotiekbon -fff facto fastcheckout favicon +favicon +fff fijncadeau financials financieren @@ -545,14 +542,17 @@ kurt lastname li lookups +maaltijdcheques maand magento +maskedId merchanttransactionid middleware mijn minmax msi multisafepay +multisafepayRestore myShop naar nb @@ -573,6 +573,7 @@ onboarded onboarding ons onvalidatemerchant +onze oty params passcode @@ -580,12 +581,16 @@ pauzed paymentmethod png pre +prefinances +prefinancing px readme rebranded +repas reputational rgb rgba +scalability signup smartcard sofort @@ -606,6 +611,7 @@ ul uncaptured unencrypted url +urls utm venia verder @@ -619,15 +625,10 @@ webshop webshops witwassen www -xml xCore xcframework +xml yireo youtube yukiworks zoeken -maskedId -multisafepayRestore -urls - -