Developers
documentation

Simple API integration

Streamline

- Introduction

The dLocal Streamline allows Merchants to integrate payments via Credit Card, Online Bank Payment and Cash Payment Methods (e.g. Boleto Bancario in Brazil and OXXO in Mexico). Customers do not need to visit a dLocal page to enter any details, so the payment process is “Streamlined”.

However, in order for Streamline to work, dLocal needs the merchant to collect some key data (email address and personal identity number – eg CPF number in Brazil). If you are not able to collect this information, dLocal is capable of collecting it: Download Basic API.

When a user selects a payment method supported by dLocal on the merchant website, the merchant should send the transaction and user data to dLocal. dLocal will verify the user data (personal id and data consistency, according our KYC policies), to establish whether the user can proceed with the transaction, or not. If approved, we will respond with the URL to which the merchant should redirect the user and the user will be redirected to the appropriate page to complete their transaction:

  • Credit Cards - to a credit card processor page for card data entry
  • Online Bank Payments - to their online bank account to log in and complete the payment
  • Cash Payment Methods - to a printable copy of their payment advice, which they can use to pay

After the payment has been made, the client is returned to the merchant site (to whichever “Return URL” the merchant specifies). Once the payment is confirmed by the bank/credit card company, dLocal will send the transaction result to your merchant confirmation URL (“Confirmation URL”).

- Considerations

Technical details

  • Communication between Merchant and dLocal should be made by POST.
  • The protocol used is purely HTTPS.
  • Sensible information is sent server to server.
  • The return format of the functions is json.

Security details

  • Credentials must be used in all communications.
  • Both parties must use an HMAC-SHA-256 (RFC 2104) code to verify the integrity of the information received from each side.
  • HMAC‐SHA‐256 code (32 bytes) is generated using a key provided by dLocal. This code is converted to string as a hexadecimal representation of the code (64 upper chars).
  • All communications between Merchant and dLocal should be made exclusively through registered IPs on both sides.

- Environments

Your account is associated with two different environments: Sandbox and Live. Base URL for communication:

Sandbox

Test environment available for integration development and testing which simulates the requests and transactions available in the platform. In the test environment no transactions will actually be processed.

https://sandbox.dlocal.com/api_curl/streamline/
Bank for Testing

There is one bank defined in our sandbox server for testing purposes.
Bank code: TE
Bank's name: GNB

Once the testing bank is selected from our testing environment, you will be forwarded to a dummy website for this imaginary bank. There, you will be presented with a login page. Please leave the login and password fields blank.
When you submit the form, you will be asked if you would like to set the transaction to:
- Successful
- Pending
- or Rejected.

Testing Parameters

Certain API calls require consumer data. For testing in Brazil, please use the following (all other countries can use random data for development and testing purposes):

Cpf: 00003456789
Email: [email protected]
Name: dLocal TESTING
Birthdate: 04/03/1984

Credit Card Testing
  • For pending transaction: name = ‘PEND’. (pending)
  • For rejected transaction: name = ‘REJE’. (cc_rejected_other_reason).
  • For rejected transaction: name =’CALL’. (cc_rejected_call_for_authorize).
  • For rejected transaction: name = ‘FUND’. (cc_rejected_insufficient_amount).
  • Any other name will trigger an approved transaction.
Card name Card number CVV Exp. Date
Any name according to result desired 4111111111111111 Any 3 digits 09/29

Live - Production Environment


https://api.dlocal.com/api_curl/streamline/

- Function: New invoice

Introduction

This function creates a transaction and returns a URL to redirect the user to his preferred payment method's page, at which he can confirm his payment.

URL base + /NewInvoice

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g 1
x_invoice String (max. lenght 125 chars) Unique transaction identification at the merchant site. Invoice1234
x_amount Decimal (max. 2 decimal numbers) Transaction amount (in the currency entered in the field “x_currency”) 100.95
x_bank String (max. 3 digits) Payment method code. See payment methods codes VI
x_country String (max. length: 2 chars) User’s country in ISO 3166-1 alpha-2 codes BR
x_iduser Decimal (max. 20 chars) Unique user id at the merchant side 123
x_cpf Number (max. 30 digits) User’s personal identification number: BR: CPF/CNPJ, AR: DNI, UY: CI, MX: CURP/RFC/IFE, PE: DNI, CL: RUT, CO: CC, TK: ID, IN: PAN 123456789 2
x_name String User’s full name Ivan Lolivier
x_email String User’s email address [email protected]
control String Control string JASG44DNNGIJ34IJ34OKOEWJNCV874Y4UY 3
type String Format of response json

Optional parameters

Field Format Description Example Default value
x_currency String (length: 3 chars) Transaction currency in ISO 4217. Mandatory if amount is present USD
x_description String (max. 200 chars) Transaction description
x_bdate String User’s date of birth (Format: YYYYMMDD)
x_address String User’s address. MANDATORY FOR INDIA 1225 Bonavita St.
x_zip String User’s zip/postal code 11300
x_city String User’s city. MANDATORY FOR INDIA Sao Paulo
x_state String (length: 2 chars) User’s state. Brazilian 2 letter format MO
x_mobile String User’s mobile phone number 099123456
x_return String To be provided if the return URL is different from the return URL registered by the merchant. See return url http://merchant/return
x_confirmation String To be provided if the confirmation URL is different from the confirmation URL registered by the merchant. See confirmation url http://merchant/confirm
x_sub_code String To be provided if the merchant provided for the transaction is a submerchant 123456
x_version String Version of Integration. MANDATORY FOR INDIA with param 1.1 1.1

1 - x_login and x_trans_key are your credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

2 - Here you have the length validations for each country on the x_cpf parameter

  • Argentina: between 7 and 9, or 11 digits
  • Brazil: between 11 and 14 digits - CPF validation
  • Chile: between 8 and 9 digits
  • China: between 5 and 20 digits
  • Colombia: between 6 and 10 digits
  • India PAN (x_cpf): 10 characters (5 letters, 4 numbers, 1 letter/number)
    • Example PAN: EHFGA5967A
  • Mexico: between 10 and 18 digits
  • Peru: between 8 and 9 digits
  • Turkey: between 5 and 20 digits
  • Uruguay: between 6 and 8 digits

3 - Control string (if optional parameters are not used, just treat them as empty strings)

  • $invoice– unique transaction ID at merchant
  • $amount–payment amount
  • $iduser – unique user ID at merchant
  • $bank – the bank of the payment
  • $cpf – user’s cpf
  • $bdate – user’s date of birth
  • $email – user’s email
  • $zip – user’s zip / postal code
  • $address – user’s postal address
  • $city – user’s city
  • $state – user’s state
  • $secretKey – the secret key
$message = $invoice ."V" . $amount ."I" . $iduser ."2" . $bank ."1" . $cpf
           ."H" . $bdate ."G" . $email ."Y" . $zip ."A" . $address ."P" . $city ."S" .
           $state . "P";
           $control = strtoupper(hash_hmac("sha256", pack("A*", $message), pack("A*", $secretkey)));

Response

This function, if successful, returns the following json:

{
              “status”:”0”,
              “link”: “[link to redirect the user]”
          }

On error the function returns the following:

{
              “status”: ”1”,
              “desc”: ”[Description of the error]”
           }

Return redirection

The return is a redirection made to the merchant's return URL by POST protocol with the following parameters:

Field Description
result Transaction result (code 0 to 10)
x_invoice Unique transaction ID number at the merchant
x_iduser User’s unique ID at the merchant / account number
x_description Transaction description
x_document Unique transaction ID number at dLocal
x_bank Payment method code. See payment methods codes.
x_amount The amount of the payment
x_control Control string 1

Confirmation

A confirmation will be sent at every change in transaction's status to the merchant confirmation URL by POST protocol, with the following parameters:

Field Description
result Transaction result (code 0 to 10)
x_invoice Unique transaction ID number at the merchant
x_iduser User’s unique ID at the merchant / account number
x_description Transaction description
x_document Unique transaction ID number at dLocal
x_bank Payment method code. See payment methods codes
x_payment_type The type of the payment
x_bank_name The name of the bank
x_amount The amount of the payment
x_currency The currency sent by the merchant
x_control Control signature 1

1 - Control signature for confirmation

  • $x_login – x_login given to the merchant
  • $result – transaction result (code 0 to 10; see section 4.1)
  • $x_amount – payment amount
  • $x_invoice – unique transaction ID at merchant
  • $secretkey – secret key
$message = $x_login. $result . $x_amount . $x_invoice;
          $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*', $secretkey)));

Iframe

For card payments, you can choose to display an iFrame on your website instead of redirecting.

In order to do this, you have to insert an <iframe> tag on your website. Inside the src attribute you have to put the [link to redirect the user] shown upwards, appending the GET parameter "iframe_view=1" to the link.

Example

          	&#60;iframe src="[link to redirect the user]&iframe_view=1"&gt;&lt;/iframe&gt;
        
Customization

You can customize the iframe's default style.

Style Template:
{
              “font_family”: font family name,
              “background_color”: hex color code,
              “button_color”: hex color code,
              “button_font_color”: hex color code
          }
Example

This example will generate black and white display.

{
              “font_family”: “Helvetica”,
              “background_color”: “#FFFFFF”,
              “button_color”: “#000000”,
              “button_font_color”: “#FFFFFF”
          }
URL EXAMPLE:

Remember to encode the URL, to prevent sending invalid http characters, as shown below.

&lt;iframe src="http://[link to redirect the user]&iframe_view=1&style={'font_family':'Helvetica','background_color':'#FFFFFF','button_color':'#000000','button_font_color':'#FFFFFF'}"&gt;&lt;/iframe&gt;

- Function: Refund

A partial or complete refund could be requested using this function.

POST:

URL base + /refund

Parameters

Field Format Mandatory Description Example
x_login String (length: 32 chars) Yes Your merchant ID in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Yes Your merchant password in dLocal platform D23weF2f4g 1
x_amount Decimal (max 2 decimal numbers) No The amount you want to refund set by x_currency parameter. If blank, x_amount is set to the total transaction amount. If not blank and x_currency parameter is not present then amount set in local currency 100.35
x_currency String (length: 3 chars) No The currency code MXN
x_invoice String(125) Yes The unique transaction ID (at the merchant site) payment123
x_document String(50) Yes Unique transaction ID number at dLocal 435421
x_bank_beneficiary String (max. 100 chars) 2 User’s full name Name Surname
x_bank String (max. 45 chars) 2 User's bank name Banco do Brasil
x_bank_account String (max. 45 chars) 2 User's bank account number 88365484
x_account_type Char (lenght: 1 char) 2 The type of account. C: for Current accounts S: for Savings accounts I: International accounts S
x_bank_branch String (max. 45 chars) 2 User's bank branch name 7197
x_comments String (max. 200 chars) No A commentary for the refund This is a comment
x_confirmation String No To be provided if the Refund Confirmation URL is different from the Refund Confirmation URL registered in the Merchant's Panel http://merchant/confirm
x_control String Yes Control string aklsgdASGDN45NGIJIJ34gklner 3
type String Format of response json

1 - x_login and x_trans_key are your credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

2 - If not sent, an email will be sent to the customer requesting it. After the customer fills in his banking details, you will get a confirmation (see refund confirmation) sent to your Refund Confirmation URL with Result 0.

3 - Control string for Refund function

  • $x_invoice – Unique transaction ID at merchant
  • $document – Unique transaction ID number at dLocal
  • $amount – x_amount parameter
  • $bank_benef – User’s full name
  • $bank – User's bank name
  • $bank_account – User's bank account number
  • $account_type – The type of account. C: for Current accounts S: for Savings accounts
  • $bank_branch – User's bank branch name
$message = 'A' . $invoice . $document . $amount . $bank_benef . $bank .
             $bank_account . $account_type . $bank_branch;
          $control = strtoupper(hash_hmac('sha256',pack('A*', $message),pack('A*', $secret_key)));

Response

The response has the following params.
It will send an asnchronous POST message with to your Refund Confirmation URL with similar params except for the status code, please see refund confirmation .

Field Description Format
status Parameter validation "OK" / "Error"
desc Response description message "Pending" / "Completed" / "Rejected" / "Cancelled" / error_message (see possible errors)
control Control signature 1
result Refund result. See possible results 0 / 1 / 2 / 3
x_invoice Unique transaction ID number at the merchant String
x_document Unique transaction ID number at dLocal Integer
x_amount The amount of the refund (same as request) Decimal (max. 2 decimal numbers)
x_currency The currency code of the original transaction associated to the refund. String (length: 3 chars)
x_amount_refunded (deprecated) - Always 0.00 Decimal (max. 2 decimal numbers)
x_refund Unique refund reference at dLocal Integer
error_code Returned if validation error. See possible results Integer

1 - Control signature

  • $secretkey – secret key given to the merchant
  • $result – refund result code
  • $amount – x_amount response parameter
  • $currency – x_currency response parameter
  • $invoice – unique transaction ID at merchant
  • $document – unique transaction ID at dLocal
  • $refund – unique refund reference at dLocal
$message = $result . $invoice . $document . $amount . $currency . $refund;
          $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*',$secretkey)));

Confirmation

The confirmation notification has the following params.

Field Description Format
desc Response description message "Pending" / "Completed" / "Rejected" / "Cancelled" / error_message (see possible errors)
x_control Control signature 1
result Refund result. See possible results 0 / 1 / 2 / 3
x_invoice Unique transaction ID number at the merchant String
x_document Unique transaction ID number at dLocal Integer
amount The amount refunded in local currency Decimal (max. 2 decimal numbers)
currency Local currency String (length: 3 chars)
amount_refunded (deprecated) - Always 0.00 Decimal (max. 2 decimal numbers)
x_refund Unique refund reference at dLocal Integer
error_code Returned if validation error. See possible results Integer

1 - Control signature

  • $secretkey – secret key given to the merchant
  • $refund – unique refund reference at dLocal
  • $result – refund result code
  • $invoice – unique transaction ID at merchant
  • $document – unique transaction ID at dLocal
$message = $refund . $result . $invoice . $document;
          $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*',$secretkey)));

- Chargeback Asynchronous Notification

If a chargeback was applied (requested by the user) a notification is sent to the merchant to the previously registered Merchant refund confirmation URL by POST protocol, sending the following parameters:

Field Description
result Transaction result. See possible results.
x_chargeback Unique charback reference number at dLocal
x_invoice Unique transaction ID number at the merchant
x_document Unique transaction ID number at dLocal
amount The amount of the chargeback Decimal (max. 2 decimal numbers)
currency The currency code of the chargeback String (length: 3 chars)
amount_chargedback The chargedback amount Decimal (max. 2 decimal numbers)
x_control Control string 1

1 - Control signature

  • $secretkey – secret key given to the merchant
  • $x_login – x_login given to the merchant
  • $result –transaction result
  • $chargeback – unique chargeback ID at dLocal (x_chargeback)
  • $document – unique transaction ID at dLocal (x_document)
  • $invoice – unique transaction ID at merchant (x_invoice)
$message = $result . $invoice . $document . $chargeback;
          $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*',$secretkey)));


Query Functions

- Function: Payment status

The status of a transaction can be verified with:

POST or GET:

URL Base + /webpaystatus

Parameters

Field Format Description Example
x_login String (length: 32 chars) Your ID for web pay status in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your password for web pay status in dLocal platform D23weF2f4g 1
x_invoice String(50) The unique transaction ID (at the merchant site) dsa3jg4638n

Response

Field Description
result Transaction result. See possible results
x_iduser User’s unique ID at the merchant / account number
x_invoice Unique transaction ID number at the merchant
x_amount The amount of the payment
PT “0” for Production “1” for Test
Sign control signature 1
x_document Unique transaction ID number at dLocal
x_bank Bank code. See possible codes
x_payment_type Payment type. See payment types
x_bank_name Name of the bank
x_currency Transaction currency in ISO 4217
cc Credit Card info

Response Example

The response is a json with the following format:

{
           "result":"8",
           "x_iduser":"1211386",
           "x_invoice":"7844098210",
           "x_amount":"875.02",
           "PT":"0",
           "Sign":"28F11DB2C7F4E3D1A1563C642AF8712EABE7E25540D36C8285887D3477107EA8",
           "x_document":"4554231",
           "x_bank":"VI",
           "x_payment_type":"03",
           "x_bank_name":"Visa",
           "x_currency":"BRL",
           "cc":{
              "payment_amount":"910.11",
              "payment_currency":"BRL",
              "statement_descriptor":"JJSHOUSE",
              "card_info":{
                 "holder_name":"Brenda Bonfim de Araujo",
                 "identification":{
                    "number":"41335254532",
                    "type":"CPF"
                 },
                 "last_four_digits":"8457",
                 "payment_method":"visa"
              },
              "status":"rejected",
              "status_detail":"cc_rejected_insufficient_amount"
           }
}

1 - Control signature for return, confirmation and payment status

  • $x_login – dLocal Merchant ID for web pay status
  • $result – transaction result (code 0 to 10; see section 4.1)
  • $x_amount – payment amount
  • $x_invoice – unique transaction ID at merchant
  • $secretkey – secret key
$message = $x_login. $result . $x_amount . $x_invoice;
          $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*', $secretkey)));

- Function: Refund status

The status of a refund can be verified with:

POST or GET:

https://api.dlocal.com/api_curl/query/refundstatus

Parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g 1
x_refund String (max. 20 chars) The unique refund reference at dLocal

Response

Field Description
result Transaction result. See possible results
x_invoice Unique transaction ID number at Merchant's site
x_document Unique transaction ID number at dLocal

1 - x_login and x_trans_key are your credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

- Function: Get Banks by Country

This function returns a list of valid banks (those that are available to receive dLocal payments) for the requested country.

POST:

https://api.dlocal.com/api_curl/apd/get_banks_by_country

Parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g 1
country_code String (2 chars) The user’s country. ISO 3166-1 alpha-2 code BR

1 - x_login and x_trans_key are your credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

Response example

This function, if successful, returns the following "json":

[{
             "code": "bank's id code",
             "name": "bank's name",
             "logo": "url pointing at bank's logo",
             "payment_type": "bank's payment type code "
          }, {
             "code": "bank's id code",
             "name": "bank's name",
             "logo": "url pointing at bank's logo",
             "payment_type": "bank's payment type code "
}]

- Function: Currency exchange

The currency exchange rate can be verified with: https://api.dlocal.com/apd/webcurrencyexchange

Parameters

Field Format Description Example
x_login String (length: 32 chars) Your ID for web pay status in dLocal platform AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your password for web pay status in dLocal platform D23weF2f4g 1
country String (length: 2 chars) The ISO code of the country whose currency exchange rate you want to know BR
x_amount Decimal (max 2 decimal numbers) The amount of USD you want to exchange. Optional. Default: 1 199.85

1 - x_login and x_trans_key are your web pay status credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

Response

The response is a string with the price. If we don't have the currency for that country we will return 0.

- Api Codes: Errors

Code Description Action
300 Invalid params + [param name] Ask the user to re-enter the information related to that parameter.
301 Empty params + [param name] The parameter must be included in the request and must not be empty. If the parameter contains information filled by the user, ask the user to fill the information. If the parameter is filled automatically on the merchant's side (x_login, x_trans_key, x_invoice, x_iduser or control), there is an integration error. Please include this parameter in the request.
302 Invalid control string Integration problem. Control string instructions.
401 Invalid credentials Integration problem. Check in the merchant's panel which are the correct credentials. Remember Sandbox and Production credentials are different.
402 Unregistered IP address (register in merchant's panel) Whitelist the IP in the merchant's panel in the section Credentials & Settings. If there are no more fields, please contact us.
505 Country not found Check the country sent on the request
506 Payment method not found Payment method code is not found. Check that the payment method is available on the selected country.
508 The user limit has been exceeded The maximum limit for the userId has been exceeded. Select a lower amount for processing the payment.
515 Invalid amount Ask the user to re-enter the amount.
516 Invalid invoice For functions: newInvoice and refund, it means the invoice already exists. For functions: payment status and refund status, it means the invoice was not found.
517 Invalid document number Ask the user to re-enter his document.
520 Insufficient funds The refund could not be processed due to insufficient funds. Contact us to increase the balance.
601 Currency not allowed for this country The currency does not match the country. Make sure you send the local currency of the corresponding country.

- Api codes: Refund / Chargeback result codes

code Description
0 Refund / chargeback pending
1 Amount refunded/ chargebacked successfully (final status)
2 Refund/chargeback cancelled / reimbursed (final status)
3 Refund/Chargeback failed

- Api codes: Transaction results

Code Description
6 Transaction not found in the system
7 Pending transaction, awaiting approval
8 Transaction Rejected / Expired
9 Amount Paid. Transaction successfully concluded

- Api codes: Payment types

Code Description
00 Bank Transfer Online (EFT)
01 Bank Transfer Offline
02 Cash Payment
03 Debit or Credit Card

- Payment methods codes

Argentina

Code Description Payment Type Logo
SI Santander Rio Bank Transfer Offline https://pay.dlocal.com/views/2.0/images/payments/SI.png
PF Pago Fácil Cash Payment https://pay.dlocal.com/views/2.0/images/payments/PF.png
RP Rapi Pago Cash Payment https://pay.dlocal.com/views/2.0/images/payments/RP.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
DC Diners Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
CM CMR Falabella Credit Card https://pay.dlocal.com/views/2.0/images/payments/CM.png
NJ Tarjeta Naranja Credit Card https://pay.dlocal.com/views/2.0/images/payments/NJ.png
TS Tarjeta Shopping Credit Card https://pay.dlocal.com/views/2.0/images/payments/TS.png
NT Nativa Credit Card https://pay.dlocal.com/views/2.0/images/payments/NT.png
CS Cencosud Credit Card https://pay.dlocal.com/views/2.0/images/payments/CS.png
CL Cabal Credit Card https://pay.dlocal.com/views/2.0/images/payments/CL.png
AG Argencard Credit Card https://pay.dlocal.com/views/2.0/images/payments/AG.png
VD Visa Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/VD.png
MD Mastercard Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/MD.png
MS Maestro Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/MS.png
CO Cordial Credit Card https://pay.dlocal.com/views/2.0/images/payments/CO.png
CB Cordobesa Credit Card https://pay.dlocal.com/views/2.0/images/payments/CB.png

Brazil

Code Description Payment Type Logo
BL Boleto Cash Payment https://pay.dlocal.com/views/2.0/images/payments/BL.png
I Itau Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/I.png
B Bradesco Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/B.png
BB Banco do Brasil Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/BB.png
CA Caixa Bank Transfer Offline https://pay.dlocal.com/views/2.0/images/payments/CA.png
SB Santander Bank Transfer Offline https://pay.dlocal.com/views/2.0/images/payments/SB.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
EL Elo Credit Card https://pay.dlocal.com/views/2.0/images/payments/EL.png
DC Diners Club Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
HI Hipercard Credit Card https://pay.dlocal.com/views/2.0/images/payments/HI.png
ML Cartao MercadoLivre Credit Card https://pay.dlocal.com/views/2.0/images/payments/ML.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
JC JCB Credit Card https://pay.dlocal.com/views/2.0/images/payments/JC.png
AU Aura Credit Card https://pay.dlocal.com/views/2.0/images/payments/AU.png
DS Discover Credit Card https://pay.dlocal.com/views/2.0/images/payments/DS.png

Chile

Code Description Payment Type Logo
WP WebPay Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
DC Diners Club Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
PR Presto Credit Card https://pay.dlocal.com/views/2.0/images/payments/PR.png
CM CMR Credit Card https://pay.dlocal.com/views/2.0/images/payments/CM.png
MG Magna Credit Card https://pay.dlocal.com/views/2.0/images/payments/MG.png
SP Servipag Cash Payment https://pay.dlocal.com/views/2.0/images/payments/SP.png
WP BBVA Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Santander Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP ITAU Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Corpbanca Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP BCI-TBANC Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Falabella Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Estado Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Bice Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Security Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Consorcio Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Banco Ripley Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP ScotiaBank Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png
WP Coopeuch Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/WP.png

China

Code Description Payment Type Logo
EE ePayLinks Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/EE.png

Colombia

Code Description Payment Type Logo
EY Efecty Cash Payment https://pay.dlocal.com/views/2.0/images/payments/EY.png
DA Davivienda Cash Payment https://pay.dlocal.com/views/2.0/images/payments/DA.png
PC PSE Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
EX Almacenes Éxito Cash Payment https://pay.dlocal.com/views/2.0/images/payments/EX.png
BU Baloto Cash Payment https://pay.dlocal.com/views/2.0/images/payments/BU.png
OC Banco de Occidente Cash Payment https://pay.dlocal.com/views/2.0/images/payments/OC.png
CR Carulla Cash Payment https://pay.dlocal.com/views/2.0/images/payments/CR.png
EQ Empresa de Energía del Quindio Cash Payment https://pay.dlocal.com/views/2.0/images/payments/EQ.png
SX Surtimax Cash Payment https://pay.dlocal.com/views/2.0/images/payments/SX.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
VD Visa Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/VD.png
MD MasterCard Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/MD.png
BN Boleto Bancolombia Bank Transfer Offline https://pay.dlocal.com/views/2.0/images/payments/BN.png
AE Amex Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
DC Diners Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
PC Banco Agrario Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Av Villas Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Caja Social Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Colpatria Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Corpbanca S.A. Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco de Bogota Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco de Occidente Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco GNB Sudameris Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Pichincha S.A. Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Popular Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Procredit Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Bancolombia Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Bancoomeva S.A. Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC BBVA Colombia S.A. Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Citibank Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Helm Bank S.A. Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png
PC Banco Falabella Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PC.png

India

Code Description Payment Type Logo
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
DC Diners Club Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
NB Netbanking Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/NB.png
UI UPI Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/UI.png
PW PayTM Wallet Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/PW.png
RU RuPay Credit / Debit Card https://pay.dlocal.com/views/2.0/images/payments/RU.png

Mexico

Code Description Payment Type Logo
OX OXXO Cash Payment https://pay.dlocal.com/views/2.0/images/payments/OX.png
SE SPEI Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/SE.png
BV BBVA Bancomer Cash Payment https://pay.dlocal.com/views/2.0/images/payments/BV.png
BM Banamex Cash Payment https://pay.dlocal.com/views/2.0/images/payments/BM.png
SM Santander Cash Payment https://pay.dlocal.com/views/2.0/images/payments/SM.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC MasterCard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
VD Visa Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/VD.png
MD MasterCard Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/MD.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png

Morocco

Code Description Payment Type Logos
AM AmanPay Cash Payment https://pay.dlocal.com/views/2.0/images/payments/AM.png
MI CMI Credit Card https://pay.dlocal.com/views/2.0/images/payments/MI.png
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC Mastercard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png

Perú

Code Description Payment Type Logos
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC Mastercard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
AE American Express Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
DC Diners Club Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
VD Visa Debit Debit Card https://pay.dlocal.com/views/2.0/images/payments/VD.png
EF Pago Efectivo Cash Payment https://pay.dlocal.com/views/2.0/images/payments/EF.png
BC BCP Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/BC.png
IB Interbank Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/IB.png
BP BBVA Bank Transfer Online https://pay.dlocal.com/views/2.0/images/payments/BP.png

Turkey

Code Description Payment Type Logos
AE Amex Credit Card https://pay.dlocal.com/views/2.0/images/payments/AE.png
VI Visa Credit / Debit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC Mastercard Credit / Debit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png

Uruguay

Code Description Payment Type Logos
VI Visa Credit Card https://pay.dlocal.com/views/2.0/images/payments/VI.png
MC Mastercard Credit Card https://pay.dlocal.com/views/2.0/images/payments/MC.png
DC Diners Club Credit Card https://pay.dlocal.com/views/2.0/images/payments/DC.png
OA OCA Credit Card https://pay.dlocal.com/views/2.0/images/payments/OA.png
LI Lider Credit Card https://pay.dlocal.com/views/2.0/images/payments/LI.png
RE Red Pagos Cash Payment https://pay.dlocal.com/views/2.0/images/payments/RE.png
AI Abitab Cash Payment https://pay.dlocal.com/views/2.0/images/payments/AI.png

- Recurring Payments

The dLocal Streamline API also allows Merchants to integrate recurring payments via Credit Card. When making a purchase, Merchants can allow the user to save the credit card information. After this is done, the merchant has two options: One is to make purchases using the generated token (for example, when the user makes regular purchases from the Merchant's website), or to define a recurring plan with a recurring payment for the user (for example, if the user is purchasing a service that has a validity period and can be automatically renewed).

- Save

In order to start working with recurring payments, Merchants need to do the following (for making purchases with tokenized cards):

Save user card's information on IFrame

The first step to enable recurring payments is to allow the user to store his/her card information on our site using the Function: New invoice with the following optional parameters.

Function: New invoice

POST:

https://cc.dlocal.com/api_curl/cc/newInvoice

Optional parameters

Field Description
*x_recurring Subscription (String {YES,ASK_USER} if sent with "YES" the card on iframe will be save automatically othervise we will ask the user)

The confirmation response will include extra parameters as follows. For more information regarding confirmation parameters, please see section Confirmation

Field Description
credit_card_token Unique token ID number to be used with x_iduser
credit_card_last_digits Credit card last 4 digits
Make a purchase with a tokenized card

This step involves making a regular purchase with Sale function using the Credit Card's token. Note that this operation does not require PCI compliance on the Merchant's side.

- Function: Sale

A Sale transaction checks if the card holder has sufficient funds for that purchase and if the transaction has passed the Acquirer's and Bank's risk assessment process. If approved, the transaction is completed.

POST:

https://cc.dlocal.com/api_curl/cc/sale

Mandatory Parameters

Field Format Description One-Shot / Recurrent Example
x_login String (length: 32 chars) Your merchant ID in dLocal Both AsGsd35Grf 1
x_trans_key String (length: 32 chars) Your merchant password in dLocal Both D23weF2f4g 1
x_version String (Format: X.Y) API version Both 4.0
x_invoice String (max. lenght 200 chars) Unique transaction identification at the merchant site. Both Invoice1234
x_amount Decimal (max. 2 decimal numbers) Transaction amount (in the currency entered in the field “x_currency”) Both 100.95
x_currency String (length: 3 chars) Currency code Both BRL
x_description String (max. length: 200 chars) A description of the payment Both Product 123
x_device_id String Buyer's device Id. See Device id. Both 54hj4h5jh46hasjd
x_country String (max. length: 2 chars) User’s country. in ISO 3166-1 alpha-2 codes One-Shot / Recurrent without token BR
x_cpf Number (max. 30 digits) User’s personal identification number: CPF or CNPJ for Brazil, DNI for Argentina and ID for other countries. One-Shot 123456789
x_name String User’s full name. One-Shot Ivan Lolivier
x_email String User’s email address. One-Shot [email protected]
cc_token String Token obtained in Save function Recurrent 1aj2l3g4gj4fh5d5hh6d605
control String Control string Both JASG44DNNGIJ34IJ34OKOEWJNCV874Y4UY 2

1 - x_login and x_trans_key are your credentials. Remember to find them in the panel, section Integration -> Credentials & Settings.

2 - Control string

  • $secretkey – secret key given to the merchant
  • $invoice– unique transaction ID at merchant (x_invoice)
  • $amount–payment amount (x_amount)
  • $currency–payment currency (x_currency)
  • $email– user’s email address (x_email)
  • $number–credit card number (cc_number)
  • $month – credit card expiration month (cc_exp_month)
  • $year – credit card expiration year (cc_exp_year)
  • $cpf – user’s document (x_cpf)
  • $country – country code (x_country)
  • $token – credit card token (cc_token)

If some of the above parameters are not sent in the request, they must not be considered for the control string.

$message = $invoice.$amount.$currency.$email.$number.$month.$year.$cpf.$country.$token;
              $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*',$secretkey)));

Optional parameters

Field Format Description One-Shot / Recurrent Example Default
x_bank String (max. 3 digits) Payment method code. See payment methods codes. One-Shot / Recurrent without token (only Mexico) VI
x_descriptor String (max: 13 char) Dynamic Descriptor Both AP Payment
x_ip String Buyer's IP address Both 200.11.222.3
x_confirm String To be provided if the confirmation URL is different from the confirmation URL registered by the merchant. Both http://merchant/confirm
x_bdate String User’s date of birth (Format: YYYYMMDD) One-Shot 19850812
x_iduser Decimal (max. 20 chars) Unique user id at the merchant side One-Shot user 123
x_address String User’s address One-Shot 1225 Bonavita St.
x_zip String User’s zip/postal code One-Shot 11300
x_city String User’s city One-Shot Sao Paulo
x_state String (max. 3 chars) User’s state. Brazilian 2 letter format One-Shot MO
x_phone String User’s phone number One-Shot 099123456
cc_installments Number Number of installments One-Shot 3 1
x_sub_code Integer To be provided if the merchant provided for the transaction is a sub-merchant Both 1

Response

This function, if successful, returns a json with the following parameters:

Field Description
status OK
desc Response description message
control Control string 1
result Transaction result. See possible results.
x_invoice Unique transaction ID number at the merchant
x_document Unique transaction ID number at dLocal. This information should be stored for future use.
x_currency Currency code
x_amount Transaction amount (in the currency entered in the field “x_currency”).
x_amount_paid The amount finally charged to the user, in local currency. It includes finance charges (if applies).
cc_descriptor The transaction descriptor that will appear in the user’s statement
x_description The description of the payment
cc_token Token obtained in Save function
x_iduser Unique user id at the merchant side

1 - Control signature

  • $secretkey – secret key given to the merchant
  • $result – transaction result code
  • $amount – payment amount (x_amount)
  • $currency – payment currency (x_currency)
  • $invoice – unique transaction ID at merchant (x_invoice)
  • $document – unique transaction ID at dLocal (x_document)
$message = $result . $currency . $amount . $invoice . $document . $token;
              $control = strtoupper(hash_hmac('sha256', pack('A*', $message), pack('A*',$secretkey)));

- Subscription

For recurring payments defined based on recurring plans, Merchants can do the following:

- Function: Define a subscription plan

POST:
https://sandbox.dlocal.com/api_curl/subscription_plan

This function creates a subscription plan

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_name String (length: 50 chars) Subscription's Name Recurring charge for service 12
amount Decimal (max. 2 decimal numbers) Subscription transaction amount (in the currency entered in the field “currency_code”) 123.34
currency_code String(3) Transaction currency in ISO 4217. Mandatory if amount is present USD
subscription_interval String(20) Interval period between billing attempts (possible values: days, months or years months
interval_count Integer Defines the period of a recurring charge 5
max_limit Integer Max amount of charging repetitions based on defined interval 12
notify_url String The URL the merchant will like us to return https://mymerchanturl.com/notfity_result
charge_days String Only applies for montly or yearly subscriptions, defines how many days before or after the subscription charging attempt will occur [-12,-10,1]]
country String (2 chars) The ISO code of the country for the subscription plan BR
start_date Date YYYY-MM-DD The date when the plan starts 2017-05-13

Response

The response has the following params:

Field Description Format
status Response Status "OK" / "Error"
subscription_plan_id Subscription plan identification number Integer, max 20 char

- Function: Obtain the status of a subscription plan

GET:
https://sandbox.dlocal.com/api_curl/subscription_plan

This function gets the subscription plan detailed information.

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_plan_id Integer Subscription plan identification number 4455545

Response

The response has the following params:

Field Description Format
subscription_name Subscription's Name String (length: 50 chars)
amount Recurring transaction amount (in the currency entered in the field “currency_code”) Decimal (max. 2 decimal numbers)
currency_code Transaction currency in ISO 4217. Mandatory if amount is present String(3)
subscription_interval Interval period between billing attempts (possible values: days. months, years String(20)
interval_count Defines the period of a recurring charge Integer
max_limit Max amount of charging repetitions based on defined interval Integer
status Current plan status (enabled, disabled) String
charge_days String Only applies for montly or yearly subscriptions, defines how many days before or after the subscription a charging attemp will occur [-12,-10,1]
country String (2 chars) The ISO code of the country for the subscriptin plan
start_date Date YYYY-MM-DD The date were the plan starts

- Function: Modify an existing subscription plan

PATCH:
https://sandbox.dlocal.com/api_curl/subscription_plan

This function changes the recurring plan´s configuration. Note that you by disabling a plan, you also disable all recurring charges for all users.

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_plan_id Integer Recurring plan identification number 4455545

Optional parameters

Field Format Description Example
amount Decimal (max. 2 decimal numbers) Recurring transaction amount (in the currency entered in the field “currency_code”) 123.34
currency_code String(3) Transaction currency in ISO 4217. Mandatory if amount is present USD
subscription_interval String(20) Interval period between billing attempts (possible values: days. months, years months
interval_count Integer Defines the period of a recurring charge 5
max_limit Integer Max amount of charging repetitions based on defined interval 12
country String (2 chars) The ISO code of the country for the subscriptin plan BR
status String New plan status (disable, enable) disable

Response

The response has the following params:

Field Description Format
status Response Status "OK" / "Error"
subscription_plan_id Modified recurring plan identification number Integer, max 20 char
subscription_name Subscription's Name String (length: 50 chars)
amount Recurring transaction amount (in the currency entered in the field “currency_code”) Decimal (max. 2 decimal numbers)
currency_code Transaction currency in ISO 4217. Mandatory if amount is present String(3)
subscription_interval Interval period between billing attempts (possible values: DAYS, MONTHS or YEARS String(20), capitalized
interval_count Defines the period of a recurring charge Integer
max_limit Max amount of charging repetitions based on defined interval Integer
status Current plan status (enabled, disabled) String
charge_days String Only applies for montly or yearly subscriptions, defines how many days before or after the subscription charging attemp will occur [-12,-10,1]
country String (2 chars) The ISO code of the country for the subscriptin plan
start_date Date YYYY-MM-DD The date were the plan starts

- Function: Define a subscription for a user

POST:
https://sandbox.dlocal.com/api_curl/subscription

This function creates a recurring payment schedule for a specific user with an associated credit card.

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_plan_id Integer Recurring plan id 4455545
credit_card_token String Credit Card token returned in Iframe operation
(see first step)
345643
external_id String Unique transaction ID number at the merchant 1234abcd
x_cpf Number (max. 30 digits) User’s personal identification number: CPF or CNPJ for Brazil, DNI for Argentina and ID for other countries. 123456789
start_date Date YYYY-MM-DD The date when the plan starts 2017-05-13

Response

The response has the following params:

Field Description Format
status Response Status "OK" / "Error"
subscription_id Subscription identification number Integer, max 20 char

- Function: Obtain an existing subscription for a user

GET:
https://sandbox.dlocal.com/api_curl/subscription

This function gets a recurring payment list for the specified user.

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_id Integer, max 20 char Subscription identification number 123

Response

The response is a list of elements, which have the following params:

Field Description Format
subscription_plan_id Recurring plan id Integer
credit_card_token Credit Card token returned in Iframe operation
(see first step)

- Function: Modify an existing subscription plan for a user

PATCH:
https://sandbox.dlocal.com/api_curl/subscription

This function changes the recurring plan´s configuration. Note that you by disabling a plan, you also disable all recurring charges for all users.

Mandatory parameters

Field Format Description Example
x_login String (length: 32 chars) Your merchant ID in dLocal platform AsGsd35Grf
x_trans_key String (length: 32 chars) Your merchant password in dLocal platform D23weF2f4g
subscription_id Integer Recurring payment identification number 4455545
status String New plan status (disable, enable) disable
external_id String Unique transaction ID number at the merchant 1234abcd

Optional parameters

Field Format Description Example
credit_card_token Decimal(max. 20 chars) Credit Card token returned in Iframe operation
(see first step)
345643
credit_card_brand String Brand of credit card's user Visa
last_digits String (4) The last four digits of the credit card 4567

Response

The response has the following params:

Field Description Format
status Response Status "OK" / "Error"
subscription_id Modified recurring payment identification number Integer, max 20 char

- Payment execution

Confirmation

A confirmation will be sent to the notify_url that was set on the subscription plan by POST operation when the charging attempt is made. The confirmation has the following parameters:

Field Description
subscription_id Subscription identification number
billing_attempt_result Billing attempt result (OK or Error)
billing_attempt_result_description Detailed description about billing attempt outcome

In case of error an extra parameter will be send to allow the user to update the payment: information

Field Description
payment_recovery_url The URL for the payment information recovery