Integration
Before you begin
- Make sure you are boarded with Pix
- Build your server integration
Using MyCheckout hosted payment pages
MyCheckout hosted payment pages is the optimal solution if you're looking for the quickest way to accept payments and a hassle-free experience for your consumers.
Make the Create hosted checkout API call, submitting the required properties.
- returnUrl - the URL that the consumer is redirected to after the payment flow has finished.
- variant - the created styling of the checkout page tailored to your consumer's preferences.
- locale - the language that will be used for your hosted checkout page.
Property | Data type | Required |
---|---|---|
order | object | yes |
amountOfMoney | object | yes |
currencyCode | string | yes |
amount | integer | yes |
customer | object | yes |
billdingAddress | object | yes |
countryCode | string | yes |
fiscalNumber | object | yes |
locale | string | no |
variant | string | no |
Additionally, you can add hostedCheckoutSpecificInput object, featuring the following strings:
{ "order",
"amountOfMoney" : {
"currencyCode" : "BRL"
"amount" : 1000,
},
"customer" : {
"billingAddress" : {
},
"countryCode" : "BR"
}
}
}
{ "RETURNMAC": "89084bf6-d736-40a0-a5a0-2e6fb50baeae",
"hostedCheckoutId": "067f7c64-6969-71ff-ba79-2d1cf4246ae1",
"partialRedirectUrl": "pay1.checkout.worldline-solutions.com/checkout/9991-04b38b3ce0f5443599838b4fec060e76:067f7c64-6969-71ff-ba79-2d1cf4246ae1:41a98d29c2d347ff9582ea0d691fe883"
}
From the response, the important properties are:
- hostedCheckoutId– can be used in subsequent API calls to retrieve the transaction details, (with Get hosted checkout status API call);
- partialRedirectUrl– is used to create the URL to which the customer needs to be redirected, By default, we configure every account with the subdomain payment, so you can always connect https://payment/. with the partialRedirectUrl, for example:
https://payment.pay1.preprod.checkout.worldline-solutions.com/checkout/9992-6ce05357a95344********
For more information on customizing the checkout page, please refer to our detailed guide on MyCheckout hosted payment pages.
Using your own checkout page
You can build a direct integration using our SDKs (or integrate our API from scratch). Depending on your integration needs, there are several options available.
Client encryption
Our Client API allows you to perform various actions. All you need is to be able to create a session via the POST/v1/{merchantId}/sessions API call, which will grant you access to the Client API. It's highly recommended that you use our Client SDKs, provided for the following programming languages:
We also have reference implementations showing how to use these SDKs on GitHub.
Non-encrypted data
If you wish to do a direct server-to-server API call, go for this option. The difference with the other options mentioned before is that you don't need to submit the encryptedCustomerInput property. After the consumer selects the payment product, you need to perform the following:
- Make a POST /v1/{merchantId}/payments API call.
- Add the order object containing the required properties.
- Add the redirectPaymentMethodSpecificInput object containing the required properties.
- Add the redirectionData object containing the returnUrl property.
Property | Data type | Required |
---|---|---|
order | object | yes |
amountOfMoney | object | yes |
currencyCode | string | yes |
amount | integer | yes |
customer | object | yes |
billdingAddress | object | yes |
countryCode | string | yes |
contactDetails | string | yes |
emailAddress | string | yes |
fiscalNumber | string | yes |
personalInformation | string | yes |
name | string | yes |
firstName | string | yes |
surname | string | yes |
redirectPaymentMethodSpecificInput | object | yes |
paymentProductId | string | no |
redirectionData | string | no |
returnUrl | string | no |
"id" : "000008800510000157710000100001",
"order" : {
"amountOfMoney" : {
"currencyCode" : BRL,
"amount" : "1000"
},
"customer" : {
"billingAddress" : {
"countryCode": "BR"
}
"contactDetails": {
"emailAddress": "America_Lynch@hotmail.com"
},
"fiscalNumber": "88463060315",
"personalInformation": {
"name": {
"firstName": "Brandon",
"surname": "Johnson"
}
}
}
},
"redirectPaymentMethodSpecificInput": {
"paymentProductId": "6105",
"redirectionData": {
"returnUrl": "https://example.com"
}
}
}
"id" : "000008800510000157710000100001",
{
"creationOutput": {
"additionalReference": "30102024020000000827",
"externalReference": "301020240200000008270000100001"
},
"merchantAction": {
"actionType": "SHOW_INSTRUCTIONS",
"renderingData": "eyJ0eXBlIjoicnBwSG9zdGVkQ2hlY2tvdXQiLCJob3N0ZWRTZXNzaW9uU3BlY2lmaWNJbnB1dCI6eyJ0eXBlIjoicnBwU3BlY2lmaWNJbnB1dCIsImNhcnQiOnsiY3VycmVuY3lTeW1ib2wiOiJSJCIsInRvdGFsUHJpY2UiOjEwMDB9LCJyZXR1cm5DYW5jZWxTdGF0ZSI6ZmFsc2V9LCJjcmVhdGVkUGF5bWVudE91dHB1dCI6eyJwYXltZW50Ijp7ImlkIjoiMzAxMDIwMjQwMjAwMDAwMDA4MjcwMDAwMTAwMDAxIiwic3RhdHVzIjoiUEVORElOR19QQVlNRU5UIn0sIm1lcmNoYW50QWN0aW9uIjp7ImFjdGlvblR5cGUiOiJTSE9XX0lOU1RSVUNUSU9OUyIsInNob3dEYXRhIjpbeyJrZXkiOiJRUkNPREUiLCJ2YWx1ZSI6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNZ0FBQURJQVFBQUFBQ0ZJNU16QUFBQzQwbEVRVlI0WHUyWFRZcmtNQXlGVlhqaFhlVUNCbDhqTzE4cHVVQWx1VUJ5SmU5OERZTXZrT3k4TU5FOEZaTUtQY3dzeG9aaEZtMmFwc29mUkNyOVBDbkVmenIwNjhYbmZKTnZJdWRmRWs4UEh5ZFdxNHRESDd0QXBCdEk0SVBUM2hmcStmQnExeFkzRFlUR1lDYWZWbWQzWFo3YVBGcEplVG03ZURXNytIVHR4SkJPTTRtMWpSc0pIMWx0T1Q3WVNCajRTM1QrbWlBL3dZejMzNWZNL1RXUlF5OUtCOVBrWWUzblRTWHg2Z2ptNWNwQVp1UzArUEtKUVJVeFhiQm56eXZGMFplTzdlb2FTQ2dqMGhMVTJ1T0RSVVQzRnNKOGFwNDFLam9kQVYxU1JybXJKVGtPVGkwNUhaNzNQZzZhanlzR05jVHoycHN4bzdUVnF0SEV2TFVReG5WOEVzL09qTWkyVjh2bGRRM3hmUGFSbk4xOEhMUGNkYmNITldSSCsrYUNpeG1ocFVLdWdXUjZPUlNPUlVUNTNYRDcxU1UxaE11Z0V5THg2dUV2VFRuZEVhMGdHZC9nS2J5bWtXUEg2WFFONUIzSUxhUWowK0NRSmJXSjhWcUNodFBVZVJxMHlQeUtDcnJzMUJDNERGMzNkaVljZGVKZkN3bHg4bmcyV3MyZURpcDQ5MXdOUVF6Z3VMTkhVT2c1MkJ3L2xWaEJRcGtDUmhsQjQ3dVFGdm5hUURLZURRdDJKMVEzbW8vZXdseE4xS2tqZnZmbU1kWjRrOHczRU15ZnpHK3ZZUW84emE2QkJMc0ZGRFVxRVI5b1FseXZucXNqSXFJTTN4TmpOc29BYVNCNHZPY2xtOEdWbDFaekgxK1gxMVVFNGFTblZHSjVzR0laYUEzRTQ4RVIzVGJyQWxOUGFic1dncjNKaUI0SERFYk1iYjdWcFliZ3AwT3VlR09GQldvZ2RYQUR5V2wzc3RsdEh2TWZOUzcxV0UrQ3dXNkl6ZTV0RU5QTTNOMVlRVExQZlprNFFsY3daZzlvL01mckdxTE9YcUdpa1J5SmF6YlBxNjVyaU1lQ2cwQmloN1Vyd2lscll3UEJDYkwxTHhob1pDRmR3MlduaG9nZVlGWmdQWlRKYytvN29qWGsvVjV5OXFLaldGVWU4aDdRUWpCZ0ZVUVU4NmVUdWtiL3RSSFppQ0ZVVVdvd3hQc05ySkxJaGdoVndQREJSdkRKZGhWQmNuZ0plS1ZMVzBhVzBxZm5hZ2p5NHhXc1FaamxEYXkvdDZjYTh2dnpUYjZKblArWi9BQzZvSFM5ZTkxL05nQUFBQUJKUlU1RXJrSmdnZz09In0seyJrZXkiOiJQSVhDT0RFIiwidmFsdWUiOiIwMDAyMDEwMTAyMTIyNjc4MDAxNGJyLmdvdi5iY2IucGl4MjU1NmZha2UtcGl4LmNvbS5ici9xci92Mi9BQ0E0MzExRjg4NjYxQkMwRDQ4MjAwNDg3RUYxQkNEOTUyMDQwMDAwNTMwMzk4NjU4MDJCUjU5MTBGQUtFUElYIEx0ZGE2MDA4Q1VSSVRJQkE2MjA3MDUwMyoqKjI1MjQwIn1dfX0sInBhcnRpYWxQYXltZW50SW5wdXQiOnsiYW1vdW50IjoxMDAwLCJjb3VudHJ5Q29kZSI6IkJSIiwiY3VycmVuY3lDb2RlIjoiQlJMIiwiaXNSZWN1cnJpbmciOmZhbHNlLCJtZXJjaGFudElkIjoiMzAxMDIwMjQwMiIsInBheW1lbnRQcm9kdWN0SWQiOjYxMDV9LCJycHBTcGVjaWZpY0lucHV0Ijp7ImNhcnQiOnsiY3VycmVuY3lTeW1ib2wiOiJSJCIsInRvdGFsUHJpY2UiOjEwMDB9LCJyZXR1cm5DYW5jZWxTdGF0ZSI6ZmFsc2V9fQ==",
"showData": [
{
"key": "QRCODE",
"value": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAAC40lEQVR4Xu2XTYrkMAyFVXjhXeUCBl8jO18puUAluUByJe98DYMvkOy8MNE8FZMKPcwsxoZhFm2apsofRCr9PCnEfzr068XnfJNvIudfEk8PHydWq4tDH7tApBtI4IPT3hfq+fBq1xY3DYTGYCafVmd3XZ7aPFpJeTm7eDW7+HTtxJBOM4m1jRsJH1ltOT7YSBj4S3T+miA/wYz335fM/TWRQy9KB9PkYe3nTSXx6gjm5cpAZuS0+PKJQRUxXbBnzyvF0ZeO7eoaSCgj0hLU2uODRUT3FsJ8ap41KjodAV1SRrmrJTkOTi05HZ73Pg6ajysGNcTz2psxo7TVqtHEvLUQxnV8Es/OjMi2V8vldQ3xfPaRnN18HLPcdbcHNWRH++aCixmhpUKugWR6ORSORUT53XD71SU1hMugEyLx6uEvTTndEa0gGd/gKbymkWPH6XQN5B3ILaQj0+CQJbWJ8VqChtPUeRq0yPyKCrrs1BC4DF33diYcdeJfCwlx8ng2Ws2eDip491wNQQzguLNHUOg52Bw/lVhBQpkCRhlB47uQFvnaQDKeDQt2J1Q3mo/ewlxN1KkjfvfmMdZ4k8w3EMyfzG+vYQo8za6BBLsFFDUqER9oQlyvnqsjIqIM3xNjNsoAaSB4vOclm8GVl1ZzH1+X11UE4aSnVGJ5sGIZaA3E48ER3TbrAlNPabsWgr3JiB4HDEbMbb7VpYbgp0OueGOFBWogdXADyWl3stltHvMfNS71WE+CwW6Ize5tENPM3N1YQTLPfZk4QlcwZg9o/MfrGqLOXqGikRyJazbPq65riMeCg0Bih7UrwilrYwPBCbL1LxhoZCFdw2WnhogeYFZgPZTJc+o7ojXk/V5y9qKjWFUe8h7QQjBgFUQU86eTukb/tRHZiCFUUWowxPsNrJLIhghVwPDBRvDJdhVBcngJeKVLW0aW0qfnagjy4xWsQZjlDay/t6ca8vvzTb6JnP+Z/AC6oHS9e91/NgAAAABJRU5ErkJggg=="
},
{
"key": "PIXCODE",
"value": "00020101021226780014br.gov.bcb.pix2556fake-pix.com.br/qr/v2/ACA4311F88661BC0D48200487EF1BCD95204000053039865802BR5910FAKEPIX Ltda6008CURITIBA62070503***25240"
}
]
},
"payment": {
"id": "301020240200000008270000100001",
"paymentOutput": {
"amountOfMoney": {
"amount": 1000,
"currencyCode": "BRL"
},
"references": {
"paymentReference": "C1230000KG5A"
},
"paymentMethod": "redirect",
"redirectPaymentMethodSpecificOutput": {
"paymentProductId": 6105,
"bankAccountBban": {
"accountHolderName": "Johnson"
}
}
},
"status": "PENDING_PAYMENT",
"statusOutput": {
"isCancellable": true,
"isRetriable": false,
"statusCategory": "PENDING_PAYMENT",
"statusCode": 55,
"statusCodeChangeDateTime": "20250408062549",
"isAuthorized": false,
"isRefundable": false
}
}
}