# MD for: https://www.mercadopago.com.br/developers/pt/docs/payment-facilitators/integration-update.md \# Integration Update > WARNING > > Important > > Circular BCB 3978 no. determines that all Payment Facilitators identify the ultimate beneficiaries at the time of the transaction. To comply with this regulation, it becomes mandatory to send the parameters of the \`sub\_merchant\` property that are detailed in the table below. In case the fields are not sent, the card networks may apply penalties that will be passed on to the Payment Facilitator. To use the Payment Facilitator integration, it is necessary to update the \`forward\_data.sub\_merchant\` property for sending the fields described below. * [csharp ](#editor%5F6) * [go ](#editor%5F5) * [java ](#editor%5F4) * [json ](#editor%5F1) * [nodejs ](#editor%5F2) * [php ](#editor%5F3) json nodejs php java go csharp ``` { "payer": {...}, "forward_data": { "sub_merchant": { "sub_merchant_id": 123123, "mcc": "5462", "country": "BRA", "address_door_number": 1, "zip": "2222222", "document_number": "222222222222222", "city": "SÃO PAULO", "address_street": "RUA A", "legal_name": "LOJINHA DO ZÉ", "region_code_iso": "BR-MG", "region_code": "BR", "document_type": "CNPJ", "phone": "123123123", "url": "www.nomedofacilitador.com.br" } }, "transaction_amount": 20, "description": "...", "token": "....", "statement_descriptor": "PRUEBA", "issuer_id": ..., "payment_method_id": "...", "amounts": {...}, "installments": 1, "pos_id": "....", "external_reference": "..." } ``` Copiar ``` /** * Mercado Pago Payment Capture. * * @see {@link https://www.mercadopago.com/developers/en/reference/online-payments/checkout-api-payments/create-payment/post Documentation}. */ import MercadoPago, { Payment } from '@src/index'; const client = new MercadoPago({ accessToken: 'YOUR_ACCESS_TOKEN' }); const payment = new Payment(client); payment.create({ body: { transaction_amount: 100, description: 'Test', payment_method_id: 'visa', installments: 12, token: '010466403607c1efc03205b75bd2f18e', payer: { email: 'test_payer@example.com' }, forward_data: { sub_merchant: { sub_merchant_id: '1234', mcc: '12345', country: 'BRA', address_door_number: 123, zip: '9876678', document_number: '234567876543', city: 'São Paulo', address_street: 'Rua TESTE', legal_name: 'legal', region_code_iso: 'BR', document_type: 'CNPJ', phone: '123456789', url: 'www.nomedofacilitador.com.br' } } }, requestOptions: { idempotencyKey: '234rw8ujdsfjawadfsa' } }).then(console.log).catch(console.log); ``` Copiar ``` (float) '100', "token" => '545950fe518e85df69052e1765898e92', "description" =>'teste', "payment_method_id" => 'visa', "installments" => 1, "payer" => [ "email" => 'test_payer@example.com', ], "forward_data" => [ "sub_merchant" => [ "sub_merchant_id" => "123123", "mcc" => "5462", "country" => "BRA", "address_door_number" => 1, "zip" => "2222222", "document_number" => "222222222222222", "city" => "SÃO PAULO", "address_street" => "RUA A", "legal_name" => "LOJINHA DO ZÉ", "region_code_iso" => "BR-MG", "region_code" => "BR", "document_type" => "CNPJ", "phone" => "123123123", "url" => "www.nomedofacilitador.com.br" ] ] ]; try{ $payment = $client->create( $request, $request_options); var_dump($payment); } catch (MPApiException $e) { var_dump($e); } catch (\Exception $e) { // Handle all other exceptions var_dump($e); } // echo "Content: "; // var_dump($e->getApiResponse()->getContent()); // echo "\n"; // } catch (\Exception $e) { // // Handle all other exceptions // echo $e->getMessage(); // } ``` Copiar ``` package com.mercadopago; import com.mercadopago.client.MercadoPagoClient; import com.mercadopago.client.common.IdentificationRequest; import com.mercadopago.client.common.SubMerchant; import com.mercadopago.client.payment.*; import com.mercadopago.core.MPRequestOptions; import com.mercadopago.exceptions.MPApiException; import com.mercadopago.exceptions.MPException; import com.mercadopago.net.Headers; import com.mercadopago.resources.payment.Payment; import java.math.BigDecimal; import java.util.HashMap; import java.util.UUID; public class Main { public static void main(String[] args) { HashMap headers = new HashMap<>(); headers.put(Headers.IDEMPOTENCY_KEY, UUID.randomUUID().toString()); MPRequestOptions requestOptions = MPRequestOptions .builder() .customHeaders(headers) .accessToken("YOUR_ACCESS_TOKEN").build(); PaymentClient client = new PaymentClient(); PaymentCreateRequest createRequest = PaymentCreateRequest.builder() .transactionAmount(new BigDecimal(100)) .description("test_card") .paymentMethodId("visa") .token("c83cff0fe27a67ae53054fe8716b18bc") .installments(1) .forwardData(PaymentForwardDataRequest.builder() .subMerchant(SubMerchant.builder() .subMerchantId("345678") .mcc("1234") .country("BR") .addressDoorNumber("123") .zip("12345678") .documentNumber("12345678901") .city("Sao Paulo") .addressStreet("Street") .legalName("Business") .regionCodeIso("SP") .regionCode("SP") .documentType("CPF") .phone("1234567890") .url("www.nomedofacilitador.com.br").build()).build()) .payer(PaymentPayerRequest.builder() .email("test_payer@example.com").build()).build(); try { Payment payment = client.create(createRequest, requestOptions); System.out.println(payment.getId()); } catch (MPApiException ex) { System.out.printf( "MercadoPago Error. Status: %s, Content: %s%n", ex.getApiResponse().getStatusCode(), ex.getApiResponse().getContent()); } catch (MPException ex) { ex.printStackTrace(); } } } ``` Copiar ``` package main import ( "context" "fmt" "github.com/mercadopago/sdk-go/pkg/config" "github.com/mercadopago/sdk-go/pkg/payment" ) func main() { accessToken := "YOUR_ACCESS_TOKEN" cfg, err := config.New(accessToken) if err != nil { fmt.Println(err) return } client := payment.NewClient(cfg) request := payment.Request{ TransactionAmount: 105, PaymentMethodID: "visa", Payer: &payment.PayerRequest{ Email: "test_payer@example.com", }, ForwardData: &payment.ForwardDataRequest{ SubMerchant: &payment.SubMerchantRequest{ SubMerchantId: "1234", MCC: "123", Country: "BRA", AddressDoorNumber: "1", ZIP: "22222222", DocumentNumber: "22222222222222", City: "Sao Paulo", AddressStreet: "Rua A", LegalName: "Legal Name", RegionCodeIso: "BR", RegionCode: "BR-SC", DocumentType: "CNPJ", Phone: "123456789", URL: "www.nomedofacilitador.com.br", }, }, Token: "879a958bbed52608607ae70bed919e13", Installments: 12, } resource, err := client.Create(context.Background(), request) if err != nil { fmt.Println(err) return } fmt.Println(resource) } ``` Copiar ``` using System; using MercadoPago.Config; using MercadoPago.Client.Common; using MercadoPago.Client.Payment; using MercadoPago.Resource.Payment; MercadoPagoConfig.AccessToken = "YOUR_ACCESS_TOKEN"; var request = new PaymentCreateRequest { TransactionAmount = 105, Description = "Título do produto", PaymentMethodId = "visa", Token = "879a958bbed52608607ae70bed919e13", Installments = 3, Payer = new PaymentPayerRequest { Email = "test_payer@example.com", }, PaymentForwardDataRequest = new PaymentForwardDataRequest { SubMerchant = new SubMerchant { SubMerchantId = "1234", MCC = "123", Country = "BRA", AddressDoorNumber = "1", Zip = "22222222", DocumentNumber = "22222222222222", City = "Sao Paulo", AddressStreet = "Rua A", LegalName = "Legal Name", RegionCodeIso = "BR", RegionCode = "BR-SC", DocumentType = "CNPJ", Phone = "123456789", Url = "www.nomedofacilitador.com.br", }, }, }; var client = new PaymentClient(); Payment payment = await client.CreateAsync(request); Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(payment)); ``` Copiar | Field | Type | Description | Required | Example | |---|---|---|---|---| | \`sub\_merchant\_id\` | Number | Submerchant code. | Required | 123123 | | \`mcc\` | Text | Submerchant MCC according to Abecs decision and/or primary CNAE. | Required | 5462 | | \`country\` | Text | Country where the submerchant is located. | Required | BRA | | \`address\_door\_number\` | Number | Street number where the submerchant is located. | Required | 1 | | \`zip\` | Text | CEP of the submerchant. | Required | 2222222 | | \`document\_number\` | Text | Identification number of the submerchant's document. | Required | 222222222222222 | | \`city\` | Text | City where the submerchant is located. | Required | SÃO PAULO | | \`address\_street\` | Text | Street where the submerchant is located. | Required | RUA A | | \`legal\_name\` | Text | Legal name of the submerchant. | Required | LOJINHA DO ZÉ | | \`region\_code\_iso\` | Text | State where the submerchant is located. | Required | BR-MG | | \`region\_code\` | Text | State abbreviation identification of the submerchant. | Required | MG | | \`document\_type\` | Text | Identification of the submerchant's document type, which can be: \*\*CPF\*\* or \*\*CNPJ\*\*. | Required | CNPJ | | \`phone\` | Text | Phone number of the submerchant. | Required | 123123123 | | \`url\` | Text | Payment facilitator URL. | Required | www.paymentfacilitator.com.br |