# Use Boleto/Pix

Boleto/Pix is a payment method tailored for international e-merchants that facilitates money transfers from Brazilian customers designed to make it easy for them to receive money from Brazilian customers. The Boleto/Pix credit transfer service enables customers in Brazil to make online purchases via 2Checkout and pay offline at any Brazilian post office, bank branch, or through Internet banking. Boleto/Pix currently has a market share of approximately 25% in Brazil.

## Availability <a href="#availability" id="availability"></a>

The feature is available only to users in Brazil with a Brazilian billing address.

Mandatory billing information must also include:

* State
* Phone number
* Fiscal code (CPF/CNPJ)

## Supported currencies <a href="#supported-currencies" id="supported-currencies"></a>

Boleto/Pix supports BRL transactions.

## Workflow <a href="#workflow" id="workflow"></a>

1. Shoppers select BOLETO as a payment option in the checkout interface you provide to them.
2. Call the **PlaceOrder** method with “BOLETO” as the type of the `PaymentDetails` object.
3. After the Order Object is generated, in the `PaymentDetails` > `PaymentMethod`, you will find the URL where the shoppers need to be redirected to so they can finish the payment. Example: “<https://pagbrasil.com/b?a41aewmfjb>”
4. The shopper selects the preferred Bank for payment and generates the payment slip (Boleto).
5. The shopper prints the Boleto which contains a bar-coded invoice and takes it to one of the convenient Boleto/Pix locations.
6. Once the shopper finishes the payment process on the Boleto side, the order will be updated in the 2Checkout system as well.

## Request parameters <a href="#request-parameters" id="request-parameters"></a>

<table><thead><tr><th width="119.066650390625">Parameter</th><th>Type / Description</th></tr></thead><tbody><tr><td><code>sessionID</code></td><td><strong>Required (string)</strong><br>Session identifier, the output of the <strong>Login</strong> method. Include <code>sessionID</code> into all your requests. 2Checkout throws an exception if the values are incorrect.  The <code>sessionID</code> expires in <strong>10 minutes</strong>.</td></tr><tr><td><a href="/pages/1Nzq8FH3DErKvpOktB0W"><code>Order</code></a></td><td><p><strong>Required (object)</strong><br>Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details.</p><p>See code sample for more details. </p></td></tr></tbody></table>

### Request sample <a href="#request-example" id="request-example"></a>

```php
<?php

require ('PATH_TO_AUTH');

$Order = new stdClass();
$Order->RefNo = NULL;
$Order->Currency = 'BRL';
$Order->Country = 'BR';
$Order->State = 'Acre';
$Order->Language = 'EN';
$Order->CustomerIP = '10.5.22.197';
$Order->ExternalReference = NULL;
$Order->Source = NULL;
$Order->Affiliate = new stdClass();
$Order->Affiliate->AffiliateCode = 'Partner123'
$Order->Affiliate->AffiliateSource = 'MobilePlatform'
$Order->CustomerReference = NULL;

$Order ->Items = array();
$Order ->Items[0] = new stdClass();
$Order ->Items[0]->Code = 'ProductCode';     // add product code here
$Order ->Items[0]->Quantity = 1;
$Order ->Items[0]->PriceOptions = NULL;
$Order ->Items[0]->SKU = NULL;
$Order ->Items[0]->Price = NULL;
$Order ->Items[0]->CrossSell = NULL;
$Order ->Items[0]->Trial = false;
$Order ->Items[0]->AdditionalFields = NULL;
$Order ->Items[0]->SubscriptionStartDate = NULL; //If empty or null, subscriptions become active when purchase is made.

$Order ->BillingDetails = new stdClass();
$Order ->BillingDetails->FirstName = 'John';
$Order ->BillingDetails->LastName = 'Doe';
$Order ->BillingDetails->CountryCode = 'BR';
$Order ->BillingDetails->State = 'Acre';  //Required
$Order ->BillingDetails->City = 'Acre';
$Order ->BillingDetails->Address1 = 'Address example';
$Order ->BillingDetails->Address2 = NULL;
$Order ->BillingDetails->Zip = '70403-900';    //Required
$Order ->BillingDetails->Email = 'testemail1@address.com';
$Order ->BillingDetails->Phone = '556133127400';   //Required
$Order ->BillingDetails->Company = NULL;
$Order ->BillingDetails->FiscalCode ='056.027.963-98';  //Required
$Order ->DeliveryDetails = NULL;

$Order ->PaymentDetails = new stdClass ();
$Order ->PaymentDetails->Type = 'BOLETO';
$Order ->PaymentDetails->Currency = 'BRL';
$Order ->PaymentDetails->PaymentMethod = new stdClass ();

$jsonRpcRequest = array (
'method' => 'placeOrder',
'params' => array($sessionID, $Order),
'id' => $i++,
'jsonrpc' => '2.0'
);
$order = callRPC($jsonRpcRequest, $host);

var_dump($order);
```

## Response parameters <a href="#response__00a0parameters" id="response__00a0parameters"></a>

<table><thead><tr><th width="178.800048828125">Parameter</th><th>Type</th></tr></thead><tbody><tr><td><a href="/pages/296f77b2320970fcc8c6d6047e6ecabcaa996ffa"><code>Order information</code></a></td><td><strong>Object</strong></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.2checkout.com/json-rpc-api-reference/json-rpc-api-6.0/api-requests/place-orders-with-catalog-products/use-boleto-pix.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
