Skip to content

Last updated: 17 November 2025 | Change log

Pilot

If you are interested in piloting Pix, please contact your Relationship Manager.

Pix is a Brazilian instant payment method developed by the Central Bank of Brazil, enabling fast, secure, and cost-effective transactions.

Note

Make yourself familiar with our API principles to ensure a resilient integration.

Product overview

Pix flow overview

Pix is a payment method that allows your customers to make 24/7 transfers via QR code or unique emv code.

For gambling payments, you must provide identity documents for CPF validation. This includes names and identity documents information.

Feature summary

Payment typeCountryAcceptance currencyRecurringReversalsPartial reversalsDisputes
Bank TransferBrasilBRL
  • Refund - yes
  • Cancel- No
  • Partial refund - yes
  • Partial cancel- No

When requesting a refund it is mandatory to provide the reason code.

  • Minimum transaction value: 0,01 BRL
  • Maximum transaction value: 50.000,00 BRL

Customer journey

QR code:

QR code flow, steps 1 to 3
  1. At checkout, your customer selects Pix as their preferred payment method.
  2. They are presented with a Pix QR code on your checkout page.
  3. Your customer logs into their banking app and navigates to the Pix view.

EMV code:

EMV code flow, steps 4 to 7
  1. Your customer can choose to scan a QR code or copy+paste the EMV code to continue with the payment.
  2. They scan the QR code.
  3. The transaction details are displayed for your customer to review, and the customer then confirms the payment.
  4. Payment is confirmed.

Get started

Use our API reference and set your headers.

Request

POST https://try.access.worldpay.com/apmPayments

Example request

application/json
{ "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "method": "pix", "expiryIn": 1200, "value": { "amount": 250, "currency": "BRL" }, "narrative": { "line1": "MindPalace" }, "paymentInstrument": { "type": "direct", "country": "BR" }, "customer": { "lastName": "James", "firstName": "Moriarty", "identityDocuments": { "reference": "12345678901", "type": "CPF" } } } }

Parameters

transactionReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$required

A unique reference generated by you that is used to identify a payment throughout its lifecycle. Bizum specific regex [a-zA-Z0-9]{4,12}.

merchantobject(MerchantV2)required
merchant.​entitystring[ 3 .. 32 ] characters^([a-zA-Z0-9\- ]*)$required

Used to route the request in Access Worldpay, created as part of on-boarding.

Example: "default"
instructionobject(InstructionV2)required

Object that contains the payment type and details.

instruction.​methodstringrequired

Type of payment method

Value"ach"
Discriminator
instruction.​valueobject(Value)required

The value of the payment.

instruction.​value.​amountinteger(int64)[ 1 .. 2147483647 ]required

The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.

Example: 12
instruction.​value.​currencystringrequired
Enum"AED""AFN""ANG""AOA""ARS""AUD""AWG""AZN""BAM""BBD"
instruction.​narrativeobject(NarrativeBase)required
instruction.​narrative.​line1string[ 1 .. 24 ] characters^[a-zA-Z0-9-., ]*$required

The description shown on your customer's bank statement for the payment.

Example: "MindPalace"
instruction.​paymentInstrumentobject(AchEftPaymentInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired

The type of instrument.

Value"direct"
instruction.​paymentInstrument.​accountTypestringrequired

Account type.

Enum"checking""savings""corporate""corporateSavings"
Example: "checking"
instruction.​paymentInstrument.​accountNumberstring[ 1 .. 17 ] characters^[0-9]*$required

Account number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​routingNumberstring= 9 characters^[0-9]*$required

Routing number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​checkNumberstring[ 1 .. 15 ] characters^[0-9]*$

Check number of the direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​companyNamestring[ 1 .. 40 ] characters^[0-9]*$

Company name if a corporate account.

Example: "123456789"
instruction.​paymentInstrument.​billingAddressobject(AchEftBillingAddress)required
instruction.​paymentInstrument.​billingAddress.​address1string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address2string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address3string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​citystring[ 1 .. 50 ] characters

City.

instruction.​paymentInstrument.​billingAddress.​countryCodestring
Enum"AD""AE""AF""AG""AI""AL""AM""AN""AO""AQ"
instruction.​paymentInstrument.​billingAddress.​postalCodestring[ 1 .. 15 ] characters

Postal code.

instruction.​paymentInstrument.​billingAddress.​statestring[ 1 .. 30 ] characters

State code of the billing address in ISO 3166-2 format.

Example: "US-OH"
instruction.​customerobject(CustomerDetailsAch)required
instruction.​customer.​firstNamestring[ 1 .. 22 ] charactersrequired

Your customer's first name.

instruction.​customer.​lastNamestring[ 1 .. 22 ] charactersrequired

Your customer's last name.

instruction.​customer.​customerIdstring<= 15 characters^[a-zA-Z0-9]*$

Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows the shoppers chosen bank to be stored for their next payment.

Example: "44528abcd"
instruction.​customer.​emailstring

The customer's e-mail address.

Example: "customer@worldpay.com"

Response

Example response

{
  "paymentInstrument": {
    "method": "pix",
    "type": "direct"
  },
  "paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtJHtzcHJpbmcucHJvZmlsZXMuYWN0aXZlfSIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdN8MbBQB9vAYY5mA9Nq7wGjDWpyzMQlvDbyPmj8n3JAiTQW8Eq5Lj6LFzcEh8YV9gCZBzLZbEeWUoPvb2T9Qf55NxtdjYFiEp3rMOHqwYKWa1TJnWx7:xasdm:Pw6YUNDd54rfT6hMMjSKiEe6HkFm9OABSOmQQkCNB2I+LQDvl0dkMgT:LWHf7rure13T5C:wQ6sGi9VYvEB5k55y2sensiXY0Yl+:o+DhIRXOVuFuo+ARMtBeZHQd:UvEu:Hn4G9xGyOnhtYhmEettFU39blHd8:YTicoyChKkMubbmwZVm3Ep4DHaGaITF1cpZDOi7Q==",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://access.worldpay.com/eyJrIjoiYXBtLXNlcnZpY2UtJHtzcHJpbmcucHJvZmlsZXMuYWN0aXZlfSIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEYlzsZIRIGCflvnYu1Ns8g1S0+66n6wCELiB9OHfX7cdN8MbBQB9vAYY5mA9Nq7wGjDWpyzMQlvDbyPmj8n3JAiTQW8Eq5Lj6LFzcEh8YV9gCZBzLZbEeWUoPvb2T9Qf55NxtdjYFiEp3rMOHqwYKWa1TJnWx7:xasdm:Pw6YUNDd54rfT6hMMjSKiEe6HkFm9OABSOmQQkCNB2I+LQDvl0dkMgT:LWHf7rure13T5C:wQ6sGi9VYvEB5k55y2sensiXY0Yl+:o+DhIRXOVuFuo+ARMtBeZHQd:UvEu:Hn4G9xGyOnhtYhmEettFU39blHd8:YTicoyChKkMubbmwZVm3Ep4DHaGaITF1cpZDOi7Q=="
    }
  },
  "_actions": {},
  "redirect": "iVBORw0KGgoAAAANSUhEUgAABbQAAAW0AQAAAAA22bh6AAAKIUlEQVR4nO3ZSxLjNgwFQN5A97+lbqBsbAMEaM9UFoyU6rdw6UMCDe5UHtcjc47/WvDvwr033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfZPWqOvDJuy6p1geO1o9U729t49kGNP4G4ubm5ubm5ubm5ubm57+zu0Gb8VbPIXotXt2W0qW9u/uXkuLm5ubm5ubm5ubm5uW/v/qHo6z5FOiXeXnOVL9/FK/IaxM3Nzc3Nzc3Nzc3Nzf1AdwDWs5z5bbkdNVPvwludCDc3Nzc3Nzc3Nzc3N/f/zX3mr9fWbFqy1r5TPqKjQEaVqbi5ubm5ubm5ubm5ubkf6F7fnnOf6ap42uJyDqXH+HkiP0Dc3Nzc3Nzc3Nzc3Nzc93WXTM3+k58O4ubm5ubm5ubm5ubm5r69e5V57fvrdeSruI11sW11Vf6kjR1Ze1y/ws3Nzc3Nzc3Nzc3NzX1n91SuVSrG6c/SdYHYsZrlyznkEzk+z856Ntzc3Nzc3Nzc3Nzc3Nw3dxdA4PuHawBK9Xzb52uU0mgi56Pi5ubm5ubm5ubm5ubmfob7aqhSqfWJwoV85b0Nf+ap8rrG4+bm5ubm5ubm5ubm5n6guy8LfHsbbWOq1UDXXODIDfNUZ54vb1uFm5ubm5ubm5ubm5ub+77uWJYp5bb07pQfvach80/MF+OWE+Hm5ubm5ubm5ubm5uZ+kHtK/sot1afb1WdtbGs7pqJl+lhXTqlNwM3Nzc3Nzc3Nzc3NzX1n97HGv/aHe+RnzTjmMc654jRLG+McCdT6cnNzc3Nzc3Nzc3Nzcz/BHWvb/uKJIUvvPkYbfLoq9dph9APi5ubm5ubm5ubm5ubmvr27rY3bCV9QK0/eFm175XL1dYJ2kNzc3Nzc3Nzc3Nzc3Nz3dc/PR1vb8WWChgptTHDMslLlykdVFnNzc3Nzc3Nzc3Nzc3M/yn3OHafq8SxXih3Heqp8NRVdzbI6h3zFzc3Nzc3Nzc3Nzc3NfXP3q+aVi4SilMuFVynN/uJqatRObozphLm5ubm5ubm5ubm5ubnv6y4pW8Odn606Hm1deVuKtjHi2bRjPj5ubm5ubm5ubm5ubm7uu7p/9DlypSDn3jHkl3rxtlDWPyNvK5W5ubm5ubm5ubm5ubm5n+Eun7XNeGR8007z5bZnm+prj1Z5Ok1ubm5ubm5ubm5ubm7ue7uP+eq9tnyfrsudi7f9MFZFv87cJuXm5ubm5ubm5ubm5uZ+jLvgA5WN1/xs0mboNfNicX+Wi07Nyxlyc3Nzc3Nzc3Nzc3NzP8hdFNGs9I5t+Soo72brHefozcfigKYe3Nzc3Nzc3Nzc3Nzc3Ld3fx6NmCBXn75Z11+5V+tdlrR115+myhZubm5ubm5ubm5ubm7uJ7hb9fIN/Ptz9XztyNumKuVYyot8tRqSm5ubm5ubm5ubm5ub+0HuvrWgomN+UZodeUdePDXKU0W3cjZltPyCm5ubm5ubm5ubm5ub++busjXevj25bVSf3uaBSopxzKNNzdvJRbi5ubm5ubm5ubm5ubnv7J42RJ8otyK3+Tq0jPsnfBfkUtzc3Nzc3Nzc3Nzc3NxPcMdPeRbQfBv46accQXGXvfEsX5UzbC25ubm5ubm5ubm5ubm57+ousjZGvBgNmpuVAhN0dQR528iDr5pzc3Nzc3Nzc3Nzc3NzP8BdKl2vtrncmKFjvjo/y6PAVKosGXPWgj49Nzc3Nzc3Nzc3Nzc3953drfDIRTK5f7i++pS9vzztWPqQ+QhObm5ubm5ubm5ubm5u7ke5y7IVL09wtYHWg4+xbNTGmKYvs3Bzc3Nzc3Nzc3Nzc3M/xR3k1Qfukdflcv2jt0yan411+bKkvIge3Nzc3Nzc3Nzc3Nzc3Ld353z5Li7zNfwbVX7K9NlzfaDHfHWsX3Bzc3Nzc3Nzc3Nzc3M/w11a5AlGm6VMmlFnLtAGL+4i66UWp8TNzc3Nzc3Nzc3Nzc19V3fe+qYUWf7pzzJ5ZG1TXJ8xyt6rTbAanJubm5ubm5ubm5ubm/ve7vfa6NOKXHn/uvfZ8G3m6URWU7WTay+4ubm5ubm5ubm5ubm57+se87KpdxR+3R7XNVfqxi8nEt1ylXNdvhwaNzc3Nzc3Nzc3Nzc391Pc0/6seI9RPHmqAKwGWmnLul+CeUhubm5ubm5ubm5ubm7uW7sjTXuOmrItk6dx895C7m/jHNbHws3Nzc3Nzc3Nzc3NzX17d/7urC1y2z7Q364rM7fzKuQxF+Dm5ubm5ubm5ubm5uZ+hrvXXL0ofcqkpXepkq/OXCVfHXPfYz5Sbm5ubm5ubm5ubm5u7ge5y7fo1GI91THLjte29vN1jFJ0VYCbm5ubm5ubm5ubm5v7Me7FilFkbaAj7y34r9OvvoFX57Caipubm5ubm5ubm5ubm/vO7tw2WnzZGh3b4mMe6H37daoCzYvL3tySm5ubm5ubm5ubm5ub+9buV82yf+QXpVzGvwu3mXuVsq0NPh1QPgJubm5ubm5ubm5ubm7um7sLqvW+8otSeDV4LjXJ/qQ925JyLNzc3Nzc3Nzc3Nzc3Nx3di9evhXH52c02Y+O7xe5QP8p0we07J2l3Nzc3Nzc3Nzc3Nzc3Hd1Z9n0XVyWFN7qqqxbvciDj/W6IpgPiJubm5ubm5ubm5ubm/u+7ml/PPvBKzVjSSl6tWdZdswvRqsSIG5ubm5ubm5ubm5ubu7buws+d5zI7XY1eMzyvio7yttWqi/Os3Bzc3Nzc3Nzc3Nzc3Pf173a36Y65p+xKHyu8THaDOiDX/Pbcobc3Nzc3Nzc3Nzc3NzcN3e/VnyRtYGiZqwLbeTI2ngcnvXiLwW4ubm5ubm5ubm5ubm5H+DuKX3KaPFsNfirwDR9OZHV2awKLA6Nm5ubm5ubm5ubm5ub+67uUXOkZV/mO7Mnl1rxpknziXReKzC4ubm5ubm5ubm5ubm5n+Ne9e4Jcm478aJU065mufKSWFdU82Jubm5ubm5ubm5ubm7uW7sbYCzKnVlbrvIYUaoXzZ5yLOf84N2Sm5ubm5ubm5ubm5ub+8nugH4t13fkUmO9ZFW0HUH/TObm5ubm5ubm5ubm5uZ+pLu8iHKtd9yWrJbETzQfM+/8MMYCz83Nzc3Nzc3Nzc3NzX1zdxvjWNyeIyXLymjv27z4akWLe9WyvODm5ubm5ubm5ubm5ua+t7tkMrbv2GM9aXFnz8jzZc9U/uu4Odzc3Nzc3Nzc3Nzc3Nz3dT8p3HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce8O9N9x7w7033HvDvTfce/NY9z9Rpqh4M3liEgAAAABJRU5ErkJggg==",
  "commandId": "cmdfD7kJPxS4EiQhq3zCFcny0",
  "transactionCode": "00020101021226930014br.gov.bcb.pix2571qrcode-h.pix.celcoin.com.br/pixqrcode/v2/4657b05124fdc0451ce94a2be36c345204000053039865802BR5907MENSA026014Belo Horizonte62070503***6304CC16"
}
Note

The response for Pix in Try does not contain the QR code and the transaction code. In Try, the payment can be authorised by accessing the redirect URL.

Schema

paymentIdstring

The identifier of the payment resource.

lastEventstring
Enum"authorized""cancelFailed""cancelled""cancelRequested""sentForSettlement""sentForAuthorization""settlementFailed""chargebackReversed""chargedBack""disputeExpired"
_linksobject(Links)

Links to resources related to the request.

_actionsobject(Actions)
redirectstring

The URL to redirect your customer to.

paymentInstrumentobject(PaymentInstrumentResponse)
commandIdstring

An action ID generated by us identifying a single merchant interaction

Example: "cmdYNdIHBPJwbkjLiykzTx0"

Errors

Check out our API reference for more responses or error codes.


Next steps

Manage your Pix payment