{"title":"Set up payment flows","category":"default","creationDate":1776961628,"content":"<p>The connector does not manage the payment flows on your Marketplace. To process transactions such as authorisations, captures, or refunds for your sellers, you must implement payment flows yourself. For more information, see <a href=\"\/pt\/marketplaces\/process-payments\">Process payments for marketplaces<\/a>.<\/p>\n<p>Although the connector does not manage these flows, there are things you must keep in mind when processing transactions while being integrated with Adyen's Mirakl connector.<\/p>\n<p>To keep the connector synchronized, you must perform captures and refunds only from Mirakl. If you perform any operations outside Mirakl, you must manually adjust balances in Mirakl.<\/p>\n<h2>Supported payment methods<\/h2>\n<p>You can enable your users to accept online payments using all <a href=\"\/pt\/marketplaces\/payment-methods\">payment methods supported for marketplaces<\/a>.<\/p>\n<p>Before you can use new payment methods, you need to <a href=\"\/pt\/marketplaces\/payment-methods#pm-merchant-account\">request them for your merchant account<\/a>.<\/p>\n<h2 id=\"payments\">Payments<\/h2>\n<p>When <a href=\"\/pt\/marketplaces\/process-payments\/\">processing a payment<\/a>, you can split the funds between any number of <a href=\"\/pt\/marketplaces\/account-structure-resources#resources-1\">balance accounts in your platform<\/a>, including your liable balance account. You can send the data to split the payment <a href=\"\/pt\/marketplaces\/split-transactions\/split-payments-at-authorization\">in your payment request<\/a> or <a href=\"\/pt\/marketplaces\/split-transactions\/split-payments-at-capture\">in your capture request<\/a>. Note that you can only split at capture for payment methods that support <a href=\"\/pt\/online-payments\/capture\">separate captures<\/a>.<\/p>\n<p>The connector populates the <a href=\"\/pt\/plugins\/mirakl\/set-up-the-connector#add-custom-fields\">custom fields you added to Mirakl<\/a> when performing the <a href=\"\/pt\/plugins\/mirakl\/set-up-the-connector#schedule-synchronizations\">synchronizations you set up<\/a>. After a shopper places an order, it results in a pending debit. You resolve pending debits by processing the payments.<\/p>\n<p>To process payments:<\/p>\n<ol>\n<li>Use Mirakl's <a href=\"https:\/\/help.mirakl.net\/help\/api-doc\/front\/mmp.html#PA11\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">PA11 API<\/a> to get a list of pending debits.<\/li>\n<li>Make a request to the Mirakl <a href=\"https:\/\/help.mirakl.net\/help\/api-doc\/front\/mmp.html#S20\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">S20 API<\/a> to get the seller information, including the <code>adyen-v2-account-holder-id<\/code> and <code>adyen-v2-balance-account-id<\/code>.<br \/>\nThese values inform you of the account that is linked to a debit request.\n<div class=\"notices green\">\n<p>The Mirakl S20 API has a rate limit, therefore, we do not recommend making requests for each transaction. You can keep a local mapping of the Adyen account IDs and Mirakl shop IDs.<\/p>\n<\/div><\/li>\n<li>\n<p>Make a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> or  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/{paymentPspReference}\/captures<\/a> request:<\/p>\n<ul>\n<li>\n<p>In the body, include the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-applicationInfo\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">applicationInfo<\/a> and  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-splits\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">splits<\/a> arrays.<br \/>\nFor  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-applicationInfo\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">applicationInfo<\/a>, specify the following fields:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>externalPlatform<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Details of the Mirakl Connector v2.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantApplication<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Your own details, refer to <a href=\"\/pt\/partners\/application-information#ecommerce-application\">Application Information<\/a> for information on how to fill this field.<\/td>\n<\/tr>\n<tr>\n<td><code>adyenLibrary<\/code><\/td>\n<td><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td>Only if you are using an Adyen Library, the name and the version of the library you are using.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>For  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-splits\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">splits<\/a>, specify the following fields:<\/p>\n<ul>\n<li>If a shopper orders from multiple sellers in the same transaction, the splits array needs to indicate the split of funds between all sellers on that transaction.<\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>account<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Adyen Balance account ID. Get it from your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a> &gt; <strong>Accounts &amp; balances<\/strong> &gt; <strong>Balance accounts<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>type<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td><strong>BalanceAccount<\/strong>.   <br> If you want to use <code>type<\/code>: <a href=\"\/pt\/marketplaces\/transaction-fees\">\n  <strong>PaymentFee<\/strong>\n<\/a> in your request, contact Adyen. This type reduces the seller's available balance and increases failure rates for initial payouts that you must then correct with retrials. We recommend to increase the default value from 10 retries to a value that is suitable for your platform.<\/td>\n<\/tr>\n<tr>\n<td><code>amount.value<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The split amount, in <a href=\"\/pt\/development-resources\/currency-codes\/\">minor units<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>reference<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Your unique identifier for the specific transaction split.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example payment request'\" :id=\"'example-payment-request'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;# Set your X-API-KEY with the API key from the Customer Area.\\ncurl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H 'x-api-key: YOUR_X-API-KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n        \\&quot;applicationInfo\\&quot;: [\\n            \\&quot;externalPlatform\\&quot;: {\\n                \\&quot;integrator\\&quot;: \\&quot;Mirakl Connector v2\\&quot;,\\n                \\&quot;name\\&quot; : \\&quot;Mirakl\\&quot;,\\n                \\&quot;version\\&quot;: \\&quot;2.0\\&quot;\\n            },\\n            \\&quot;merchantApplication\\&quot;: {\\n                \\&quot;name\\&quot;: \\&quot;Best Ecom\\&quot;,\\n                \\&quot;version\\&quot;: \\&quot;2.0\\&quot;\\n            },\\n            \\&quot;adyenLibrary\\&quot;: {\\n                \\&quot;name\\&quot;: \\&quot;adyen-java-api-library\\&quot;,\\n                \\&quot;version\\&quot; : \\&quot;18.0.0\\&quot;\\n            }\\n        ],\\n        \\&quot;paymentMethod\\&quot;: {\\n            \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n            \\&quot;number\\&quot;: \\&quot;4111111111111111\\&quot;,\\n            \\&quot;cvc\\&quot;: \\&quot;737\\&quot;,\\n            \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n            \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n            \\&quot;holderName\\&quot;: \\&quot;John Smith\\&quot;\\n        },\\n        \\&quot;amount\\&quot;: {\\n            \\&quot;value\\&quot;: 4000,\\n            \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n        },\\n        \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n        \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n        \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/...\\&quot;,\\n        \\&quot;splits\\&quot;:[\\n            {\\n                \\&quot;amount\\&quot;: {\\n                    \\&quot;value\\&quot;: 4000\\n                },\\n                \\&quot;type\\&quot;: \\&quot;BalanceAccount\\&quot;,\\n                \\&quot;account\\&quot;: \\&quot;BA00000000000000000000001\\&quot;,\\n                \\&quot;reference\\&quot;: \\&quot;YOUR_REFERENCE\\&quot;,\\n            },\\n        ]\\n    }'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Captures<\/h2>\n<div class=\"additional-info-block output-inline\">\n<h5 class=\"article__heading additional-info-block__title\">Webhooks<\/h5><div class=\"additional-info-block__body\"><p>Learn more about <a href=\"\/pt\/development-resources\/webhooks\/\">webhooks<\/a>.<\/p><\/div><\/div>\n\n<p>When we have processed your capture request, we send you a <a href=\"\/pt\/online-payments\/capture#capture-webhook\"><strong>CAPTURE<\/strong> webhook<\/a>.<\/p>\n<p>In rare cases, a capture can fail even after you received a successful <strong>CAPTURE<\/strong> webhook. You then receive a <a href=\"\/pt\/online-payments\/capture#failed-capture\"><strong>CAPTURE_FAILED<\/strong> webhook<\/a>.<\/p>\n<p>We recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a <strong>CAPTURE<\/strong> webhook. This is to prevent modifying the order status to soon, in case you receive a <strong>CAPTURE_FAILED<\/strong> webhook later, because Mirakl does not allow to revert order statuses.<\/p>\n<h2>Refunds<\/h2>\n<p>In Mirakl, both the marketplace operator and sellers can issue refunds. To learn more about when and how refunds can be issued, refer to Mirakl documentation.<\/p>\n<p>Refunds are calculated as a part of the billing cycle. Seller balances are adjusted to reflect the net balance in the next billing cycle after a refund takes place.<\/p>\n<p>After a refund is initiated in Mirakl, you can process and <a href=\"\/pt\/marketplaces\/split-transactions\/split-refunds\">split the refund<\/a> amount between the balance accounts in your platform.<\/p>\n<p>When we have processed your refund request, we send you a <a href=\"\/pt\/online-payments\/refund#refund-webhook\"><strong>REFUND<\/strong> webhook<\/a>.<\/p>\n<p>In rare cases, a refund can fail even after you received a successful <strong>REFUND<\/strong> webhook. You then receive a <a href=\"\/pt\/online-payments\/refund#refund-failed\"><strong>REFUND_FAILED<\/strong> webhook<\/a>.<\/p>\n<p>We recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a <strong>REFUND<\/strong> webhook. This is to prevent modifying the order status to soon, in case you receive a <strong>REFUND<\/strong> webhook later, because Mirakl does not allow to revert order statuses.<\/p>\n<h2>Chargebacks<\/h2>\n<p>When a chargeback occurs in your marketplace, you can choose to book the disputed amount:<\/p>\n<ul>\n<li>Entirely to your liable balance account<\/li>\n<li>According to the original split ratio of the payment<\/li>\n<\/ul>\n<p>Refer to <a href=\"\/pt\/marketplaces\/split-transactions\/split-chargebacks\">Chargeback and disputes<\/a> for more information on how to configure chargebacks.<\/p>","url":"https:\/\/docs.adyen.com\/pt\/plugins\/mirakl\/set-up-payment-flows","articleFields":{"description":"Implement payments, refunds, and chargebacks.","next_steps":[{"title":"Seller payouts and commissions","description":"Learn how the connector handles seller payouts and commissions.","url":"\/plugins\/mirakl\/payouts","required":true},{"title":"Reconciliation and invoice management","description":"Learn how to reconcile balances when using our connector.","url":"\/plugins\/mirakl\/reconciliation-and-invoices","required":true}],"feedback_component":true,"status":"current","page_id":"bbf6e26c-678f-4ce7-83c3-37a674777b99","filters_component":false,"decision_tree":"[]"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/plugins\/mirakl\/set-up-payment-flows","title":"Set up payment flows","content":"The connector does not manage the payment flows on your Marketplace. To process transactions such as authorisations, captures, or refunds for your sellers, you must implement payment flows yourself. For more information, see Process payments for marketplaces.\nAlthough the connector does not manage these flows, there are things you must keep in mind when processing transactions while being integrated with Adyen's Mirakl connector.\nTo keep the connector synchronized, you must perform captures and refunds only from Mirakl. If you perform any operations outside Mirakl, you must manually adjust balances in Mirakl.\nSupported payment methods\nYou can enable your users to accept online payments using all payment methods supported for marketplaces.\nBefore you can use new payment methods, you need to request them for your merchant account.\nPayments\nWhen processing a payment, you can split the funds between any number of balance accounts in your platform, including your liable balance account. You can send the data to split the payment in your payment request or in your capture request. Note that you can only split at capture for payment methods that support separate captures.\nThe connector populates the custom fields you added to Mirakl when performing the synchronizations you set up. After a shopper places an order, it results in a pending debit. You resolve pending debits by processing the payments.\nTo process payments:\n\nUse Mirakl's PA11 API to get a list of pending debits.\nMake a request to the Mirakl S20 API to get the seller information, including the adyen-v2-account-holder-id and adyen-v2-balance-account-id.\nThese values inform you of the account that is linked to a debit request.\n\nThe Mirakl S20 API has a rate limit, therefore, we do not recommend making requests for each transaction. You can keep a local mapping of the Adyen account IDs and Mirakl shop IDs.\n\n\nMake a  \/payments or  \/payments\/{paymentPspReference}\/captures request:\n\n\nIn the body, include the  applicationInfo and  splits arrays.\nFor  applicationInfo, specify the following fields:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nexternalPlatform\n\nDetails of the Mirakl Connector v2.\n\n\nmerchantApplication\n\nYour own details, refer to Application Information for information on how to fill this field.\n\n\nadyenLibrary\n\nOnly if you are using an Adyen Library, the name and the version of the library you are using.\n\n\n\nFor  splits, specify the following fields:\n\nIf a shopper orders from multiple sellers in the same transaction, the splits array needs to indicate the split of funds between all sellers on that transaction.\n\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\naccount\n\nAdyen Balance account ID. Get it from your Customer Area &gt; Accounts &amp; balances &gt; Balance accounts.\n\n\ntype\n\nBalanceAccount.    If you want to use type: \n  PaymentFee\n in your request, contact Adyen. This type reduces the seller's available balance and increases failure rates for initial payouts that you must then correct with retrials. We recommend to increase the default value from 10 retries to a value that is suitable for your platform.\n\n\namount.value\n\nThe split amount, in minor units.\n\n\nreference\n\nYour unique identifier for the specific transaction split.\n\n\n\n\n\n\n\n\n    \n\nCaptures\n\nWebhooksLearn more about webhooks.\n\nWhen we have processed your capture request, we send you a CAPTURE webhook.\nIn rare cases, a capture can fail even after you received a successful CAPTURE webhook. You then receive a CAPTURE_FAILED webhook.\nWe recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a CAPTURE webhook. This is to prevent modifying the order status to soon, in case you receive a CAPTURE_FAILED webhook later, because Mirakl does not allow to revert order statuses.\nRefunds\nIn Mirakl, both the marketplace operator and sellers can issue refunds. To learn more about when and how refunds can be issued, refer to Mirakl documentation.\nRefunds are calculated as a part of the billing cycle. Seller balances are adjusted to reflect the net balance in the next billing cycle after a refund takes place.\nAfter a refund is initiated in Mirakl, you can process and split the refund amount between the balance accounts in your platform.\nWhen we have processed your refund request, we send you a REFUND webhook.\nIn rare cases, a refund can fail even after you received a successful REFUND webhook. You then receive a REFUND_FAILED webhook.\nWe recommend to implement delay of 15 minutes in your order management process before the order status is modified in Mirakl after you receive a REFUND webhook. This is to prevent modifying the order status to soon, in case you receive a REFUND webhook later, because Mirakl does not allow to revert order statuses.\nChargebacks\nWhen a chargeback occurs in your marketplace, you can choose to book the disputed amount:\n\nEntirely to your liable balance account\nAccording to the original split ratio of the payment\n\nRefer to Chargeback and disputes for more information on how to configure chargebacks.","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Plugins","lvl2":"Mirakl","lvl3":"Set up payment flows"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/plugins","lvl2":"https:\/\/docs.adyen.com\/pt\/plugins\/mirakl","lvl3":"\/pt\/plugins\/mirakl\/set-up-payment-flows"},"levels":4,"category":"Plugins","category_color":"green","tags":["payment","flows"]}}
