{"title":"Pix (classic)","category":"default","creationDate":1776961627,"content":"<div class=\"sc-notice warning\"><div>\n<p>This page is for our old Classic API <code>\/authorise<\/code> integration. If you are integrating using our Checkout APIs, refer to the <a href=\"\/pt\/payment-methods\/pix\">Pix<\/a> documentation instead.<\/p>\n<\/div><\/div>\n<div class=\"additional-info-block output-inline\">\n<div class=\"additional-info-block__body\"><p><img style=\"width: 40px;\" alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/60.classic-integrations\/01.classic-api-integration\/classic-pix\/pix.svg?decoding=auto&amp;fetchpriority=auto\" \/>&nbsp; <strong>Read more<\/strong><\/p><p>Learn about pricing and the shopper journey for <a href=\"https:\/\/www.bcb.gov.br\/estabilidadefinanceira\/pix\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Pix<\/a>.<\/p><\/div><\/div>\n\n<p>Pix is a payment method for instant direct bank transfers in Brazil, which is built and owned by the Central Bank (Banco Central) and operated by Brazilian banks, digital accounts, and wallets.<\/p>\n<p>Shoppers can pay with Pix when shopping online. The money is sent directly from the shopper account to Adyen's account, and then transferred once a day to the merchant's bank account.<\/p>\n<p>With Pix, the payment flow is as follows:<\/p>\n<ol>\n<li>The shopper chooses to pay with Pix on your website or app.<\/li>\n<li>Your website or app shows a QR code or QR code data for the shopper to copy.<\/li>\n<li>The shopper opens their banking or wallet app participating in Pix.<\/li>\n<li>The shopper selects Pix, scans the QR code or pastes QR code data, and then confirms the payment.<\/li>\n<\/ol>\n<p>Before approving the payment, Pix checks if the transaction follows the <a href=\"#transaction-conditions\">regulations<\/a> of the Central Bank. If approved, the amount is transferred in real-time from the shopper's account to Adyen.<\/p>\n<p>Note that the merchant needs to have a local entity in Brazil to accept Pix payments.<\/p>\n<table>\n<thead>\n<tr>\n<th>Payment type<\/th>\n<th>Payment flow<\/th>\n<th>Countries\/regions<\/th>\n<th>Currencies<\/th>\n<th style=\"text-align: center;\"><a href=\"\/pt\/online-payments\/tokenization\">Recurring<\/a><\/th>\n<th style=\"text-align: center;\"><a href=\"\/pt\/online-payments\/refund\">Refunds<\/a><\/th>\n<th style=\"text-align: center;\"><a href=\"\/pt\/online-payments\/refund#refund-a-payment\">Partial refunds<\/a><\/th>\n<th style=\"text-align: center;\"><a href=\"\/pt\/online-payments\/capture\">Separate<br \/> captures<\/a><\/th>\n<th style=\"text-align: center;\"><a href=\"\/pt\/risk-management\/chargeback-guidelines\">Chargebacks<\/a><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Online banking<\/td>\n<td>Additional action<\/td>\n<td><strong>BR<\/strong><\/td>\n<td><strong>BRL<\/strong><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/> <br>Note<a href=\"#refunds\"><sup>1<\/sup><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a id=\"refunds\"><\/a> <sup>1<\/sup> Refunds are only possible within 90 days after the payment.<\/p>\n<h2>Requirements<\/h2>\n<p>These instructions explain how to add Pix to an old Classic API-only integration. If you haven't done the old Classic API integration yet, build one of our most recent <a href=\"\/pt\/online-payments\">online payments integration<\/a>.<\/p>\n<p>Before starting your Pix integration, <a href=\"\/pt\/payment-methods\/add-payment-methods\">add Pix in your test Customer Area<\/a>.<\/p>\n<h2 id=\"build-payment-form\">Build your payment form<\/h2>\n<p>To show Pix in your payment form, you need to:<\/p>\n<ol>\n<li>\n<p>Show Pix as an available payment method.<\/p>\n<div class=\"notices green\">\n<p>We provide a Pix logo which you can use on your payment form. For more information, refer to <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow\/?platform=Web&amp;integration=API%20only#downloading-logos\">Downloading logos<\/a>.<\/p>\n<\/div>\n<\/li>\n<li>\n<p>After the shopper selects Pix, collect the following details from the shopper:<\/p>\n<ul>\n<li>Name: First and last name of the shopper.<\/li>\n<li>CPF\/CNPJ: The CPF\/CNPJ is a unique identifier similar to the social security number. The shopper can provide their\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cadastro_de_Pessoas_F&#xED;sicas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Cadastro de Pessoas F\u00edsicas (CPF)<\/a>\u00a0number or their\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/CNPJ\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Cadastro Nacional da Pessoa Jur\u00eddica (CNPJ)<\/a>\u00a0number.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Pass the following data to your server:<\/p>\n<ul>\n<li>Payment method type: <strong>pix<\/strong>.<\/li>\n<li>Data collected from your shopper in the previous step, if any.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"make-payment\">Make a payment<\/h2>\n<p>From your server, make an <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a> request with the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>selectedBrand<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Set to <strong>pix<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>amount<\/code><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The final price of the purchase.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperName<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The shopper's <code>firstName<\/code> and <code>lastName<\/code>. Keep the length under 200 characters, otherwise it will be truncated.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>socialSecurityNumber<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The shopper's CPF or CNPJ number.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperStatement<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">Free-text field that will be shown to the shopper. By default this contains the message: <em>$merchantName - Este pagamento PIX para $merchantName \u00e9 processado por Adyen.<\/em> If you provide any value, keep the length under 60 characters because this will be appended to the default message.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>additionalData.pix.expirationDate<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The expiration date and time of the Pix payment. The default value is 24 hours. The maximum value is 5 days. Format: <a href=\"http:\/\/www.w3.org\/TR\/NOTE-datetime\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ISO 8601<\/a>; YYYY-MM-DDThh:mm:ssTZD.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>additionalData.pix.numberOfInfos<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The number of purchased items.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>additionalData.pix.info1.name<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The name of the purchased item. Maximum 50 characters.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>additionalData.pix.info1.value<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The price of the purchased item. Maximum 200 characters.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sc-notice info\"><div>\n<p>You need to send both <code>shopperName<\/code> and <code>socialSecurityNumber<\/code> because this information will be shown to the shopper to help identify the payment.<\/p>\n<\/div><\/div>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/authorise request'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n    \\\"reference\\\": \\\"YOUR_ORDER_NUMBER\\\",\\n    \\\"amount\\\": {\\n        \\\"value\\\": 1400,\\n        \\\"currency\\\": \\\"BRL\\\"\\n    },\\n    \\\"selectedBrand\\\": \\\"pix\\\",\\n    \\\"shopperStatement\\\": \\\"Merchant message to the shopper.\\\",\\n    \\\"shopperName\\\": {\\n        \\\"firstName\\\": \\\"Jose\\\",\\n        \\\"lastName\\\": \\\"Silva\\\"\\n    },\\n    \\\"socialSecurityNumber\\\": \\\"01234567890\\\",\\n    \\\"additionalData\\\": {\\n        \\\"pix.expirationDate\\\": \\\"2021-12-21T00:00:00-03:00\\\",\\n        \\\"pix.numberOfInfos\\\": \\\"2\\\",\\n        \\\"pix.info1.name\\\": \\\"Item 1\\\",\\n        \\\"pix.info1.value\\\": \\\"R$ 100,00\\\",\\n        \\\"pix.info2.name\\\": \\\"Item 2\\\",\\n        \\\"pix.info2.value\\\": \\\"R$ 10,00\\\"\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response contains the following:<\/p>\n<ul>\n<li><code>pspReference<\/code>: Our unique reference for the payment.<\/li>\n<li><code>resultCode<\/code>: <strong>Received<\/strong><\/li>\n<li><code>additionalData<\/code>: Contains the QR code and QR code data.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/authorise response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"additionalData\\\": {\\n        \\\"pix.expirationDate\\\": \\\"2020-11-19T00:00:00-03:00\\\",\\n        \\\"pix.qrCodeData\\\": \\\"00020101021226930014br.gov.bcb.pix2571api-h.developer.btgpactual.com\\\/v1\\\/p\\\/v2\\\/357839780dac4101be92d525ad9f2c29520400005303986540510.015802BR5914Adyen Merchant6015Cidade da Adyen61082000000062070503***6304B6FE\\\",\\n        \\\"pix.qrcode\\\": \\\"http:\\\/\\\/localhost:8080\\\/hpp\\\/generateQRCodeImage.shtml?url=00020101021226930014br.gov.bcb.pix2571api-h.developer.btgpactual.com%2Fv1%2Fp%2Fv2%2F357839780dac4101be92d525ad9f2c29520400005303986540510.015802BR5914Adyen+Merchant6015Cidade+da+Adyen61082000000062070503***6304B6FE\\\"\\n    },\\n    \\\"pspReference\\\": \\\"991607345940194B\\\",\\n    \\\"resultCode\\\": \\\"Received\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"transaction-conditions\">Transaction conditions<\/h3>\n<p>Before approving the payment, Pix performs the following checks:<\/p>\n<ul>\n<li>The shopper has sufficient funds in their transactional account.<\/li>\n<li>The transaction time did not exceed the maximum time defined by the Central Bank.<\/li>\n<li>There is no suspicion of fraud or breach of regulations to prevent money laundering and terrorist financing.<\/li>\n<li>There is no authentication problems in the shopper's financial or payment institution transactional account.<\/li>\n<li>The shopper has not been excluded from their institution participating in Pix.<\/li>\n<\/ul>\n<p>Adyen or the acquirer bank can reject the transaction in the following cases:<\/p>\n<ul>\n<li>Suspicion of fraud or breach of regulations to prevent money laundering and terrorist financing.<\/li>\n<li>Technical issue in the Pix ecosystem.<\/li>\n<\/ul>\n<h2 id=\"present-qr-code\">Present the QR code or QR code data<\/h2>\n<p>Use the information in the <code>additionalData<\/code> object of the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a> response to render the QR code or present the QR code data to the shopper.<\/p>\n<ul>\n<li><code>pix.expirationDate<\/code>: The date and time when the payment expires.<\/li>\n<li><code>pix.qrCodeData<\/code>: QR code contents. Use this to render the QR code or present as-is so they can copy it.<\/li>\n<li><code>pix.qrcode<\/code>: A link to render or download the QR Code.<\/li>\n<\/ul>\n<p>The shopper can either scan the QR code, or copy it to paste to their banking or wallet app.<\/p>\n<h2>Payment result<\/h2>\n<p>After the shopper scans the QR code and completes the payment, you will receive the result of the payment asynchronously in a <a href=\"\/pt\/development-resources\/webhooks\">webhook event<\/a>.<\/p>\n<p>Here's an example of a standard webhook event you might receive.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'std-webhook'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n    \\\"live\\\":\\\"false\\\",\\n    \\\"notificationItems\\\": [\\n        {\\n            \\\"NotificationRequestItem\\\": {\\n                \\\"additionalData\\\": {\\n                    ...\\n                    \\\"pix.originalAmountValue\\\":\\\"1001\\\",\\n                    \\\"pix.originalAmountCurrency\\\":\\\"BRL\\\"\\n                },\\n                \\\"amount\\\": {\\n                    \\\"currency\\\":\\\"BRL\\\",\\n                    \\\"value\\\":1001\\n                },\\n                \\\"eventCode\\\":\\\"AUTHORISATION\\\",\\n                \\\"eventDate\\\":\\\"2021-12-21T20:49:23-03:00\\\",\\n                \\\"merchantAccountCode\\\":\\\"YOUR_MERCHANT_ACCOUNT\\\",\\n                \\\"merchantReference\\\":\\\"YOUR_REFERENCE\\\",\\n                \\\"paymentMethod\\\":\\\"pix\\\",\\n                \\\"pspReference\\\":\\\"991607125682053H\\\",\\n                \\\"success\\\":\\\"true\\\",\\n                ...\\n            }\\n        }\\n    ]\\n}\"},{\"language\":\"xml\",\"tabTitle\":\"Soap\",\"content\":\"&lt;?xml version=\\\"1.0\\\"?&gt;\\n&lt;soap:Envelope xmlns:soap=\\\"http:\\\/\\\/schemas.xmlsoap.org\\\/soap\\\/envelope\\\/\\\"  xmlns:xsd=\\\"http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema\\\" xmlns:xsi=\\\"http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema-instance\\\"&gt;\\n  &lt;soap:Body&gt;\\n    &lt;ns1:sendNotification xmlns:ns1=\\\"http:\\\/\\\/notification.services.adyen.com\\\"&gt;\\n      &lt;ns1:Notification&gt;\\n        &lt;live xmlns=\\\"http:\\\/\\\/notification.services.adyen.com\\\"&gt;false&lt;\\\/live&gt;\\n        &lt;notificationItems xmlns=\\\"http:\\\/\\\/notification.services.adyen.com\\\"&gt;\\n          &lt;NotificationRequestItem&gt;\\n            &lt;additionalData&gt;\\n              &lt;pix.originalAmountCurrency&gt;BRL&lt;\\\/pix.originalAmountCurrency&gt;\\n              &lt;pix.originalAmountValue&gt;1001&lt;\\\/pix.originalAmountValue&gt;\\n            &lt;\\\/additionalData&gt;\\n            &lt;amount&gt;\\n              &lt;currency xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;BRL&lt;\\\/currency&gt;\\n              &lt;value xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;1001&lt;\\\/value&gt;\\n            &lt;\\\/amount&gt;\\n            &lt;eventCode&gt;AUTHORISATION&lt;\\\/eventCode&gt;\\n            &lt;eventDate&gt;2021-12-21T20:49:23-03:00&lt;\\\/eventDate&gt;\\n            &lt;merchantAccountCode&gt;YOUR_MERCHANT_ACCOUNT&lt;\\\/merchantAccountCode&gt;\\n            &lt;merchantReference&gt;YOUR_TRANSACTION_REFERENCE&lt;\\\/merchantReference&gt;\\n            &lt;paymentMethod&gt;pix&lt;\\\/paymentMethod&gt;\\n            &lt;pspReference&gt;991607125682053H&lt;\\\/pspReference&gt;\\n            &lt;success&gt;true&lt;\\\/success&gt;\\n          &lt;\\\/NotificationRequestItem&gt;\\n        &lt;\\\/notificationItems&gt;\\n      &lt;\\\/ns1:Notification&gt;\\n    &lt;\\\/ns1:sendNotification&gt;\\n  &lt;\\\/soap:Body&gt;\\n&lt;\\\/soap:Envelope&gt;\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>For more information, refer to <a href=\"\/pt\/development-resources\/webhooks\/webhook-types\">Webhooks<\/a>.<\/p>\n<h2>Match the original and the paid amount<\/h2>\n<p>With Pix, shoppers can manually modify the amount they pay in their banking or wallet app after scanning the QR code or pasting the QR code data. Make sure to implement some business logic that matches  <code>additionalData.pix.originalAmountValue<\/code> and <code>amount.value<\/code>. If the actual paid amount doesn't match the original amount, we recommend that you <a href=\"\/pt\/online-payments\/cancel\">cancel the payment<\/a> and <a href=\"#refunds\">make a refund<\/a>.<\/p>\n<h2 id=\"refunds\">Refunds<\/h2>\n<p>You can refund a payment within 90 days after the payment in the <a href=\"\/pt\/account\/manage-payments#refund-a-payment\">Customer Area<\/a> or via an <a href=\"\/pt\/online-payments\/refund\">API<\/a>.<\/p>\n<h2 id=\"test-and-go-live\">Test and go live<\/h2>\n<p>Pix is an asynchronous payment method. In the test environment, you can simulate a Pix payment by promoting the pending payment to a sale.<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">test Customer Area<\/a>.<\/li>\n<li>Go to <strong>Transactions<\/strong> &gt; <strong>Offers<\/strong>.<\/li>\n<li>Select the <strong>PSP reference<\/strong> of the pending Pix payment.<\/li>\n<li>Select the <strong>Promote this offer to a sale<\/strong> button.<\/li>\n<\/ol>\n<p>Pix payments that have been paid (including test offers that you manually promoted to sale) are under <strong>Transactions<\/strong> &gt; <strong>Payments<\/strong>.<\/p>\n<p>Test the reconciliation process by promoting test payments from offer to sale in your test Customer Area.<\/p>\n<p>Before you can accept live Pix payments, you need to <a href=\"\/pt\/payment-methods\/add-payment-methods\">submit a request for Pix<\/a> in your <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live Customer Area<\/a>.<\/p>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/online-payments\/classic-integrations\/classic-api-integration\"\n                        target=\"_self\"\n                        >\n                    Classic API integration guide\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/overview\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    API Explorer\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/classic-pix","articleFields":{"description":"Add Pix to an existing older Classic API-only integration.","parameters":{"payment_method":"Pix"},"sitemap":{"priority":0.3},"last_edit_on":"22-12-2020 11:27"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/classic-pix","title":"Pix (classic)","content":"\nThis page is for our old Classic API \/authorise integration. If you are integrating using our Checkout APIs, refer to the Pix documentation instead.\n\n\n&nbsp; Read moreLearn about pricing and the shopper journey for Pix.\n\nPix is a payment method for instant direct bank transfers in Brazil, which is built and owned by the Central Bank (Banco Central) and operated by Brazilian banks, digital accounts, and wallets.\nShoppers can pay with Pix when shopping online. The money is sent directly from the shopper account to Adyen's account, and then transferred once a day to the merchant's bank account.\nWith Pix, the payment flow is as follows:\n\nThe shopper chooses to pay with Pix on your website or app.\nYour website or app shows a QR code or QR code data for the shopper to copy.\nThe shopper opens their banking or wallet app participating in Pix.\nThe shopper selects Pix, scans the QR code or pastes QR code data, and then confirms the payment.\n\nBefore approving the payment, Pix checks if the transaction follows the regulations of the Central Bank. If approved, the amount is transferred in real-time from the shopper's account to Adyen.\nNote that the merchant needs to have a local entity in Brazil to accept Pix payments.\n\n\n\nPayment type\nPayment flow\nCountries\/regions\nCurrencies\nRecurring\nRefunds\nPartial refunds\nSeparate captures\nChargebacks\n\n\n\n\nOnline banking\nAdditional action\nBR\nBRL\n\n Note1\n\n\n\n\n\n\n 1 Refunds are only possible within 90 days after the payment.\nRequirements\nThese instructions explain how to add Pix to an old Classic API-only integration. If you haven't done the old Classic API integration yet, build one of our most recent online payments integration.\nBefore starting your Pix integration, add Pix in your test Customer Area.\nBuild your payment form\nTo show Pix in your payment form, you need to:\n\n\nShow Pix as an available payment method.\n\nWe provide a Pix logo which you can use on your payment form. For more information, refer to Downloading logos.\n\n\n\nAfter the shopper selects Pix, collect the following details from the shopper:\n\nName: First and last name of the shopper.\nCPF\/CNPJ: The CPF\/CNPJ is a unique identifier similar to the social security number. The shopper can provide their\u00a0Cadastro de Pessoas F\u00edsicas (CPF)\u00a0number or their\u00a0Cadastro Nacional da Pessoa Jur\u00eddica (CNPJ)\u00a0number.\n\n\n\nPass the following data to your server:\n\nPayment method type: pix.\nData collected from your shopper in the previous step, if any.\n\n\n\nMake a payment\nFrom your server, make an \/authorise request with the following parameters:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nselectedBrand\n\nSet to pix.\n\n\namount\n\nThe final price of the purchase.\n\n\nshopperName\n\nThe shopper's firstName and lastName. Keep the length under 200 characters, otherwise it will be truncated.\n\n\nsocialSecurityNumber\n\nThe shopper's CPF or CNPJ number.\n\n\nshopperStatement\n\nFree-text field that will be shown to the shopper. By default this contains the message: $merchantName - Este pagamento PIX para $merchantName \u00e9 processado por Adyen. If you provide any value, keep the length under 60 characters because this will be appended to the default message.\n\n\nadditionalData.pix.expirationDate\n\nThe expiration date and time of the Pix payment. The default value is 24 hours. The maximum value is 5 days. Format: ISO 8601; YYYY-MM-DDThh:mm:ssTZD.\n\n\nadditionalData.pix.numberOfInfos\n\nThe number of purchased items.\n\n\nadditionalData.pix.info1.name\n\nThe name of the purchased item. Maximum 50 characters.\n\n\nadditionalData.pix.info1.value\n\nThe price of the purchased item. Maximum 200 characters.\n\n\n\n\nYou need to send both shopperName and socialSecurityNumber because this information will be shown to the shopper to help identify the payment.\n\n\n    \n\nThe response contains the following:\n\npspReference: Our unique reference for the payment.\nresultCode: Received\nadditionalData: Contains the QR code and QR code data.\n\n\n    \n\nTransaction conditions\nBefore approving the payment, Pix performs the following checks:\n\nThe shopper has sufficient funds in their transactional account.\nThe transaction time did not exceed the maximum time defined by the Central Bank.\nThere is no suspicion of fraud or breach of regulations to prevent money laundering and terrorist financing.\nThere is no authentication problems in the shopper's financial or payment institution transactional account.\nThe shopper has not been excluded from their institution participating in Pix.\n\nAdyen or the acquirer bank can reject the transaction in the following cases:\n\nSuspicion of fraud or breach of regulations to prevent money laundering and terrorist financing.\nTechnical issue in the Pix ecosystem.\n\nPresent the QR code or QR code data\nUse the information in the additionalData object of the \/authorise response to render the QR code or present the QR code data to the shopper.\n\npix.expirationDate: The date and time when the payment expires.\npix.qrCodeData: QR code contents. Use this to render the QR code or present as-is so they can copy it.\npix.qrcode: A link to render or download the QR Code.\n\nThe shopper can either scan the QR code, or copy it to paste to their banking or wallet app.\nPayment result\nAfter the shopper scans the QR code and completes the payment, you will receive the result of the payment asynchronously in a webhook event.\nHere's an example of a standard webhook event you might receive.\n\n    \n\nFor more information, refer to Webhooks.\nMatch the original and the paid amount\nWith Pix, shoppers can manually modify the amount they pay in their banking or wallet app after scanning the QR code or pasting the QR code data. Make sure to implement some business logic that matches  additionalData.pix.originalAmountValue and amount.value. If the actual paid amount doesn't match the original amount, we recommend that you cancel the payment and make a refund.\nRefunds\nYou can refund a payment within 90 days after the payment in the Customer Area or via an API.\nTest and go live\nPix is an asynchronous payment method. In the test environment, you can simulate a Pix payment by promoting the pending payment to a sale.\n\nLog in to your test Customer Area.\nGo to Transactions &gt; Offers.\nSelect the PSP reference of the pending Pix payment.\nSelect the Promote this offer to a sale button.\n\nPix payments that have been paid (including test offers that you manually promoted to sale) are under Transactions &gt; Payments.\nTest the reconciliation process by promoting test payments from offer to sale in your test Customer Area.\nBefore you can accept live Pix payments, you need to submit a request for Pix in your live Customer Area.\nSee also\n\n\n                    Classic API integration guide\n                \n                    Webhooks\n                \n                    API Explorer\n                \n","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Classic integrations for Ecommerce","lvl3":"Classic API integration","lvl4":"Pix (classic)"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/online-payments","lvl2":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations","lvl3":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration","lvl4":"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/classic-pix"},"levels":5,"category":"Online Payments","category_color":"green","tags":["(classic)"]},"articleFiles":{"pix.svg":"<img style=\"width: 40px;\" alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/60.classic-integrations\/01.classic-api-integration\/classic-pix\/pix.svg?decoding=auto&amp;fetchpriority=auto\" \/>","std-webhook.json":"<p alt=\"\">std-webhook.json<\/p>"}}
