{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Dividindo recebimentos","type":"basic","slug":"dividindo-recebimentos","excerpt":"Passo a passo para gerar uma cobrança do tipo Marketplace (split de pagamentos) na API Gerencianet","body":"O marketplace é uma ferramenta que permite a divisão de um valor recebido entre uma ou mais pessoas, conforme porcentagem definida no momento de criação da cobrança.\n\nAo gerar uma transação, é possível definir a divisão do valor entre várias contas Gerencianet. Utilizamos o termo \"Transação de Marketplace\" sempre que o pagamento de uma transação implicar em repasses parciais ou integrais a outras contas Gerencianet. Para emitir, é bem simples e disponibilizamos duas formas para realizar a emissão:\n\n1. [Criação de transação Marketplace em *One Step*](https://dev.gerencianet.com.br/v1/docs/dividindo-recebimentos#section-1-cria-o-de-transa-o-marketplace-em-one-step-um-passo-), onde o titulo é criado em um passo único.\n\n2. [Criação de transação Marketplace em *Two Steps*](https://dev.gerencianet.com.br/v1/docs/dividindo-recebimentos#section-2-cria-o-de-transa-o-marketplace-em-two-steps-dois-passos-), onde primeiro é criado o titulo e posteriormente atribuído pagador e forma de pagamento.\n[block:callout]\n{\n \"type\": \"warning\",\n \"body\": \"Caso você tenha ativado o Bolix em sua conta Gerencianet, as cobranças geradas com a funcionalidade Marketplace já vão vir com o pix no boleto.\\nMais detalhes sobre o Bolix e como ativá-lo <a href=\\\"https://dev.gerencianet.com.br/docs/bolix-boleto-carne\\\" target=\\\"_blank\\\" title=\\\"Saiba mais sobre o Bolix\\\">aqui</a>\",\n \"title\": \"Bolix\"\n}\n[/block]\n# 1. Criação de transação Marketplace em *One Step* (Um passo)\n\nNesta opção é necessário que o *body* da requisição contenha todos os atributos mínimos obrigatórios para a emissão do titulo.\nAbaixo temos os exemplos de implementação utilizando as SDK's disponíveis:\n\n[block:callout]\n{\n \"type\": \"warning\",\n \"body\": \"Para que a criação de transações via *One Step* ocorra normalmente é necessário atualizar sua SDK. Todos os arquivos necessários para tal estão disponíveis através através de nosso [repositório](https://github.com/gerencianet) e em nossa [documentação](https://dev.gerencianet.com.br/docs/instalacao-da-api).\",\n \"title\": \"Importante\"\n}\n[/block]\n\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n\\nrequire __DIR__.'/../../autoload.php';\\n\\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n\\n $clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n $clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n $options = [\\n 'client_id' => $clientId,\\n 'client_secret' => $clientSecret,\\n 'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)\\n ];\\n\\n $repass_1 = [\\n 'payee_code' => \\\"Insira_aqui_o_indentificador_da_conta_destino\\\", // identificador da conta Gerencianet (repasse 1)\\n 'percentage' => 2500 // porcentagem de repasse (2500 = 25%)\\n ];\\n \\n $repass_2 = [\\n 'payee_code' => \\\"Insira_aqui_o_indentificador_da_conta_destino\\\", // identificador da conta Gerencianet (repasse 2)\\n 'percentage' => 1500 // porcentagem de repasse (1500 = 15%)\\n ];\\n \\n $repasses = [\\n $repass_1,\\n $repass_2\\n ];\\n\\n $item_1 = [\\n 'name' => 'Item 1', // nome do item, produto ou serviço\\n 'amount' => 1, // quantidade\\n 'value' => 1500, // valor (1000 = R$ 10,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)\\n 'marketplace'=>array('repasses'=>$repasses)\\n ];\\n $items = [\\n $item_1\\n ];\\n $metadata = array('notification_url'=>'sua_url_de_notificacao_.com.br'); //Url de notificações\\n $customer = [\\n 'name' => 'Gorbadoc Oldbuck', // nome do cliente\\n 'cpf' => '94271564656', // cpf válido do cliente\\n 'phone_number' => '5144916523', // telefone do cliente\\n ];\\n $discount = [ // configuração de descontos\\n 'type' => 'currency', // tipo de desconto a ser aplicado\\n 'value' => 599 // valor de desconto \\n ];\\n $configurations = [ // configurações de juros e mora\\n 'fine' => 200, // porcentagem de multa\\n 'interest' => 33 // porcentagem de juros\\n ];\\n $conditional_discount = [ // configurações de desconto condicional\\n 'type' => 'percentage', // seleção do tipo de desconto \\n 'value' => 500, // porcentagem de desconto\\n 'until_date' => '2019-09-13' // data máxima para aplicação do desconto\\n ];\\n $bankingBillet = [\\n 'expire_at' => '2019-09-13', // data de vencimento do titulo\\n 'message' => 'teste\\\\nteste\\\\nteste\\\\nteste', // mensagem a ser exibida no boleto\\n 'customer' => $customer,\\n 'discount' =>$discount,\\n 'conditional_discount' => $conditional_discount\\n ];\\n $payment = [\\n 'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = boleto)\\n ];\\n $body = [\\n 'items' => $items,\\n 'metadata' =>$metadata,\\n 'payment' => $payment\\n ];\\n try {\\n $api = new Gerencianet($options);\\n $pay_charge = $api->oneStep([],$body);\\n echo '<pre>';\\n print_r($pay_charge);\\n echo '<pre>';\\n \\n } catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n } catch (Exception $e) {\\n print_r($e->getMessage());\\n }\",\n \"language\": \"php\"\n },\n {\n \"code\": \"using System;\\n\\nnamespace Gerencianet.SDK.Examples\\n{\\n class OneStepBillet\\n {\\n public static void Execute()\\n {\\n dynamic endpoints = new Endpoints(Credentials.Default.ClientId, Credentials.Default.ClientSecret, Credentials.Default.Sandbox);\\n\\n var body = new\\n {\\n items = new[] {\\n new {\\n name = \\\"Product 1\\\",\\n value = 590,\\n amount = 2,\\n marketplace = new {\\n repasses = new [] { new {\\n payee_code = \\\"Insira_aqui_o_indentificador_da_conta_destino\\\",\\n percentage = 2500\\n },\\n new {\\n payee_code = \\\"Insira_aqui_o_indentificador_da_conta_destino\\\",\\n percentage = 1500\\n }\\n }\\n }\\n }\\n },\\n shippings = new[] {\\n new {\\n name = \\\"Default Shipping Cost\\\",\\n value = 10\\n }\\n },\\n payment = new\\n {\\n banking_billet = new\\n {\\n expire_at = \\\"2019-09-15\\\",\\n customer = new\\n {\\n name = \\\"Gorbadoc Oldbuck\\\",\\n cpf = \\\"04267484171\\\",\\n phone_number = \\\"5144916523\\\"\\n }\\n }\\n }\\n };\\n\\n try\\n {\\n var response = endpoints.OneStep(null, body);\\n Console.WriteLine(response);\\n }\\n catch (GnException e)\\n {\\n Console.WriteLine(e.ErrorType);\\n Console.WriteLine(e.Message);\\n }\\n }\\n }\\n}\",\n \"language\": \"csharp\",\n \"name\": \".Net\"\n },\n {\n \"code\": \"package br.com.gerencianet.charge.json;\\n\\nimport java.util.HashMap;\\n\\nimport org.json.JSONArray;\\nimport org.json.JSONObject;\\n\\nimport br.com.gerencianet.Credentials;\\nimport br.com.gerencianet.gnsdk.Gerencianet;\\nimport br.com.gerencianet.gnsdk.exceptions.GerencianetException;\\n\\npublic class OneStepMarketPlace {\\n\\tpublic static void main(String[] args) {\\n /* ********* Set credentials parameters ******** */\\n Credentials credentials = new Credentials();\\n JSONObject options = new JSONObject();\\n options.put(\\\"client_id\\\", credentials.getClientId());\\n options.put(\\\"client_secret\\\", credentials.getClientSecret());\\n //options.put(\\\"partner_token\\\", credentials.getPartnerToken());\\n options.put(\\\"sandbox\\\", credentials.isSandbox());\\n /* ************************************************* */ \\n \\n // repasses\\n \\n JSONObject repass_1 = new JSONObject();\\n repass_1.put(\\\"payee_code\\\", \\\"Insira_aqui_o_indentificador_da_conta_destino\\\");\\n repass_1.put(\\\"percentage\\\", 1500);\\n \\n JSONObject repass_2 = new JSONObject();\\n repass_2.put(\\\"payee_code\\\", \\\"Insira_aqui_o_indentificador_da_conta_destino\\\");\\n repass_2.put(\\\"percentage\\\", 2500);\\n\\n JSONArray repass = new JSONArray();\\n repass.put(repass_1);\\n repass.put(repass_2);\\n \\n JSONObject repasses = new JSONObject();\\n repasses.put(\\\"repasses\\\", repass);\\n\\n \\n // items\\n JSONArray items = new JSONArray();\\n JSONObject item1 = new JSONObject();\\n item1.put(\\\"name\\\", \\\"Item 1\\\");\\n item1.put(\\\"amount\\\", 1);\\n item1.put(\\\"value\\\", 1000);\\n item1.put(\\\"marketplace\\\",repasses);\\n items.put(item1);\\n \\n //JSONObject body = new JSONObject();\\n //body.put(\\\"items\\\", items);\\n \\n //customer\\n JSONObject customer = new JSONObject();\\n customer.put(\\\"name\\\", \\\"Gorbadoc Oldbuck\\\");\\n customer.put(\\\"cpf\\\", \\\"94271564656\\\");\\n customer.put(\\\"phone_number\\\", \\\"5144916523\\\");\\n \\n //URL de notificações\\n JSONObject metadata = new JSONObject();\\n metadata.put(\\\"notification_url\\\", \\\"http://api.seuIp.com/notificacao\\\");\\n metadata.put(\\\"custom_id\\\", \\\"id_0007\\\");\\n \\n //desconto \\n JSONObject discount = new JSONObject();\\n discount.put(\\\"type\\\",\\\"currency\\\");\\n discount.put(\\\"value\\\",400);\\n \\n //juros e mora\\n JSONObject configurations = new JSONObject();\\n configurations.put(\\\"fine\\\", 200);\\n configurations.put(\\\"interest\\\", 33);\\n \\n //disconto condicional\\n JSONObject conditional_discount = new JSONObject();\\n conditional_discount.put(\\\"type\\\",\\\"percentage\\\");\\n conditional_discount.put(\\\"value\\\", 100);\\n conditional_discount.put(\\\"until_date\\\", \\\"2019-09-13\\\");\\n \\n \\n JSONObject bankingBillet = new JSONObject();\\n bankingBillet.put(\\\"expire_at\\\", \\\"2019-09-15\\\");\\n bankingBillet.put(\\\"customer\\\", customer);\\n bankingBillet.put(\\\"discount\\\", discount);\\n bankingBillet.put(\\\"configurations\\\", configurations);\\n bankingBillet.put(\\\"conditional_discount\\\", conditional_discount);\\n \\n JSONObject payment = new JSONObject();\\n payment.put(\\\"banking_billet\\\", bankingBillet);\\n JSONObject body = new JSONObject();\\n body.put(\\\"payment\\\", payment);\\n body.put(\\\"items\\\", items);\\n body.put(\\\"metadata\\\", metadata);\\n \\n try {\\n Gerencianet gn = new Gerencianet(options);\\n JSONObject response = gn.call(\\\"oneStep\\\", new HashMap<String,String>(), body);\\n System.out.println(response);\\n }catch (GerencianetException e){\\n System.out.println(e.getCode());\\n System.out.println(e.getError());\\n System.out.println(e.getErrorDescription());\\n }\\n catch (Exception e) {\\n System.out.println(e.getMessage());\\n }\\n }\\n}\",\n \"language\": \"java\"\n },\n {\n \"code\": \"'use strict';\\n\\nvar Gerencianet = require('gn-api-sdk-node');\\nvar credentials = require('./credentials');\\n\\nvar options = {\\n client_id: credentials.client_id,\\n client_secret: credentials.client_secret,\\n sandbox: true\\n}\\n\\nvar body = {\\n\\n payment: {\\n banking_billet: {\\n expire_at: '2019-09-19',\\n customer: {\\n name: 'Gorbadoc Oldbuck',\\n email: 'oldbuck:::at:::gerencianet.com.br',\\n cpf: '04267484171',\\n birth: '1977-01-15',\\n phone_number: '5144916523'\\n }\\n }\\n },\\n\\n items: [{\\n name: 'Product 1',\\n value: 500,\\n amount: 1,\\n\\tmarketplace: {\\n repasses: [{\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 2500\\n }, {\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 1500\\n }]\\n }\\n }],\\n shippings: [{\\n name: 'Default Shipping Cost',\\n value: 100\\n }]\\n}\\n\\nvar gerencianet = new Gerencianet(options);\\n\\ngerencianet\\n .oneStep([], body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJs\"\n },\n {\n \"code\": \"package main\\n import (\\n \\\"fmt\\\"\\n \\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n \\\"../configs\\\"\\n)\\n\\nfunc main(){\\n\\t\\n\\tcredentials := configs.Credentials\\n\\tgn := gerencianet.NewGerencianet(credentials)\\n\\n\\trepassOne := map[string]interface{}{\\n\\t\\t\\\"payee_code\\\": \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 1)\\n\\t\\t\\\"percentage\\\": 2500, // porcentagem de repasse (2500 = 25%)\\n\\t }\\n\\n\\t repassTwo := map[string]interface{}{\\n\\t\\t\\\"payee_code\\\": \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 2)\\n\\t\\t\\\"percentage\\\": 1500, // porcentagem de repasse (1500 = 15%)\\n\\t }\\n\\t\\n\\tcustomer := map[string]interface{}{\\n\\t\\t\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",\\n\\t\\t\\\"cpf\\\": \\\"04267484171\\\",\\n\\t\\t\\\"phone_number\\\": \\\"51944916523\\\",\\n\\t}\\n\\n\\tbody := map[string]interface{} {\\n\\t\\t\\\"payment\\\": map[string]interface{} {\\n\\t\\t\\t\\\"banking_billet\\\": map[string]interface{} {\\n\\t\\t\\t\\t\\\"expire_at\\\": \\\"2019-09-13\\\",\\n\\t\\t\\t\\t\\\"customer\\\": customer,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t\\t\\\"items\\\": []map[string]interface{}{\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Product 1\\\",\\n\\t\\t\\t\\t\\\"value\\\": 500,\\n\\t\\t\\t\\t\\\"amount\\\": 1,\\n\\t\\t\\t\\t\\\"marketplace\\\": map[string]interface{}{\\n\\t\\t\\t\\t \\\"repasses\\\": []map[string]interface{}{\\n\\t\\t\\t\\t\\trepassOne,\\n\\t\\t\\t\\t\\trepassTwo,\\n\\t\\t\\t\\t },\\n\\t\\t\\t\\t},\\n\\t\\t\\t},\\n\\t\\t},\\n\\t\\t\\\"shippings\\\": []map[string]interface{} {\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"name\\\": \\\"Default Shipping Cost\\\",\\n\\t\\t\\t\\t\\\"value\\\": 100,\\n\\t\\t\\t},\\n\\t\\t},\\n\\t}\\n\\n\\tres, err := gn.CreateChargeOneStep(body) // no lugar do 1 coloque o charge_id certo\\n\\n\\tif err != nil {\\n\\t\\tfmt.Println(err)\\n\\t} else {\\n\\t\\tfmt.Println(res)\\n\\t}\\n}\",\n \"language\": \"go\"\n },\n {\n \"code\": \"# encoding: utf-8\\n\\nfrom gerencianet import Gerencianet\\nfrom credentials import CREDENTIALS\\n\\ngn = Gerencianet(CREDENTIALS)\\n\\nbody = {\\n 'items': [{\\n 'name': \\\"Product 1\\\",\\n 'value': 1000,\\n 'amount': 2,\\n 'marketplace': {\\n 'repasses': [{\\n 'payee_code': \\\"informe_payee_code_conta\\\",\\n 'percentage': 2500\\n },{\\n 'payee_code': \\\"informe_payee_code_conta\\\",\\n 'percentage': 1500\\n }]\\n }\\n }],\\n 'shippings': [{\\n 'name': \\\"Default Shipping Cost\\\",\\n 'value': 100\\n }],\\n 'payment': {\\n 'banking_billet': {\\n 'expire_at': '2021-12-12',\\n 'customer': {\\n 'name': \\\"Gorbadoc Oldbuck\\\",\\n 'email': \\\"[email protected]\\\",\\n 'cpf': \\\"94271564656\\\",\\n 'birth': \\\"1977-01-15\\\",\\n 'phone_number': \\\"5144916523\\\"\\n }\\n }\\n }\\n}\\n\\nresponse = gn.create_charge_onestep(params=None, body=body)\\nprint(response)\",\n \"language\": \"python\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire_relative \\\"./credentials\\\"\\n\\noptions = {\\n client_id: CREDENTIALS::CLIENT_ID,\\n client_secret: CREDENTIALS::CLIENT_SECRET,\\n sandbox: true\\n}\\n\\nbody = {\\n items: [{\\n name: \\\"Product 1\\\",\\n value: 1000,\\n amount: 2,\\n marketplace: {\\n repasses: [{\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 2500\\n }, {\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 1500\\n }]\\n }\\n }],\\n shippings: [{\\n name: \\\"Default Shipping Cost\\\",\\n value: 100\\n }],\\n payment: {\\n banking_billet: {\\n expire_at: \\\"2019-09-25\\\",\\n customer: {\\n name: \\\"Gorbadoc Oldbuck\\\",\\n email: \\\"[email protected]\\\",\\n cpf: \\\"04267484171\\\",\\n birth: \\\"1977-01-15\\\",\\n phone_number: \\\"5144916523\\\"\\n }\\n }\\n }\\n}\\n\\ngerencianet = Gerencianet.new(options)\\nputs gerencianet.create_charge_onestep(body: body)\",\n \"language\": \"ruby\"\n },\n {\n \"code\": \"interface\\n\\nfunction PayOneStepWithBilletMktPlace: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nvar\\n Body: String;\\nbegin\\n\\n Repasse1 :=\\n '{'+\\n '\\\"payee_code\\\": \\\"informe_o_payee_code_1\\\",'+\\n '\\\"percentage\\\": 2500'+\\n '},';\\n\\n Repasse2 :=\\n '{'+\\n '\\\"payee_code\\\": \\\"informe_o_payee_code_2\\\",'+\\n '\\\"percentage\\\": 1500'+\\n '}';\\n\\n Repasses := '{ \\\"repasses\\\": ['+ Repasse1 + Repasse2 +'] }';\\n\\n Body :=\\n '{'+\\n '\\\"metadata\\\": {'+\\n '\\\"custom_id\\\": \\\"id_0007\\\",'+\\n '\\\"notification_url\\\": \\\"https://url-do-cliente.com.br/\\\"'+\\n '},'+\\n '\\\"payment\\\": {'+\\n '\\\"banking_billet\\\": {'+\\n '\\\"configurations\\\": {'+\\n '\\\"fine\\\": 200,'+\\n '\\\"interest\\\": 33'+\\n '},'+\\n '\\\"conditional_discount\\\": {'+\\n '\\\"until_date\\\": \\\"2019-08-30\\\",'+\\n '\\\"type\\\": \\\"percentage\\\",'+\\n '\\\"value\\\": 500'+\\n '},'+\\n '\\\"discount\\\": {'+\\n '\\\"type\\\": \\\"currency\\\",'+\\n '\\\"value\\\": 599'+\\n '},'+\\n '\\\"expire_at\\\": \\\"2019-09-15\\\",'+\\n '\\\"customer\\\": {'+\\n '\\\"name\\\": \\\"Gorbadoc Oldbuck\\\",'+\\n '\\\"cpf\\\": \\\"94271564656\\\",'+\\n '\\\"phone_number\\\": \\\"5144916523\\\"'+\\n '}'+\\n '}'+\\n '},'+\\n '\\\"items\\\": ['+\\n '{'+\\n '\\\"amount\\\": 1,'+\\n '\\\"name\\\": \\\"Item 1\\\",'+\\n '\\\"value\\\": 600'+\\n '},'+\\n '{'+\\n '\\\"amount\\\": 1,'+\\n '\\\"name\\\": \\\"Item 2\\\",'+\\n '\\\"value\\\": 1000'+\\n '\\\"marketplace\\\":' + Repasses +\\n '}'+\\n ']'+\\n '}';\\n Result := ExecuteGerenciaNetRequest( 'payOneStep','','',Body );\\nend;\",\n \"language\": \"javascript\",\n \"name\": \"Delphi\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"OneStep\": \"/Charge/one-step\"\n \"items\"\n \"name\"\n \"value\"\n \"amount\"\n \"marketplace\"\n \"repasses\"\n \"payee_code\"\n \"percentage\"\n \"shippings\"\n \"name\"\n \"value\"\n \"payee_code\"\n \"metadata\"\n \"custom_id\"\n \"notification_url\"\n \"payment\"\n \"banking_billet\"\n \"customer\"\n \"name\"\n \"cpf\"\n \"email\"\n \"phone_number\"\n \"birth\"\n \"address\"\n \"street\"\n \"number\"\n \"neighborhood\"\n \"zipcode\"\n \"city\"\n \"complement\"\n \"state\"\n \"juridical_person\"\n \"corporate_name\"\n \"cnpj\"\n \"expire_at\"\n \"discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"conditional_discount\"\n \"type\"\n \"percentage\",\n \"currency\"\n \"value\"\n \"until_date\"\n \"configurations\"\n \"fine\"\n \"interest\"\n \"message\"</pre>\n\n## b) Atributos que podem ser utilizados para criar um titulo:\n<br>\n\n*Objeto **items***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>items</code>\",\n \"0-1\": \"Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de items</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome do item, produto ou serviço. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres (String).</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor, em centavos. Ex: R$ 10,00 = 1000. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>amount</code> // Quantidade. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer (padrão: 1)</span></strong></div>\\n\\n<div class=\\\"tab2\\\">\\n <code>marketplace<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Referente às configurações\\n de repasses. <span class=\\\"atributo\\\">Atributos:</span>\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>repasses<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Array com as definições de repasses\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>payee_code<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // código identificador da conta\\n Gerencianet, único por conta - confira(<a\\n href=\\\"https://cdn.discordapp.com/attachments/652136190006525955/809138574549188618/identificador-conta.jpg\\\"\\n target=\\\"_blank\\\">código identificador da conta Gerencianet</a>)\\n <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">String.</span></strong>\\n </div>\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>*percentage*<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> (porcentagem de repasse, sendo que\\n 9000 equivale a 90%).\\n <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong>\\n </div>\\n </div>\\n</div>\",\n \"0-2\": \"Sim\",\n \"0-3\": \"Array\",\n \"1-0\": \"<code>shippings</code>\",\n \"1-1\": \"Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de shippings</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Rótulo do frete. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor do frete, em centavos (1990 equivale a R$19,90). <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>payeeCode</code>, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao \\\"identificador da conta\\\" Gerencianet (<a href=\\\"https://cdn.discordapp.com/attachments/652136190006525955/809138574549188618/identificador-conta.jpg\\\" target=\\\"_blank\\\">onde localizar meu identificador?</a>) <span class=\\\"atributo\\\">(String)</span></strong>\\n<strong class=\\\"descricao-atributo\\\"></div>\",\n \"1-2\": \"Não\",\n \"1-3\": \"Array\",\n \"2-0\": \"<code>metadata</code>\",\n \"2-1\": \"Define dados específicos da transação.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de metadata</em></span>\\n\\n<div class=\\\"tab2\\\"><code>custom_id</code> // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>notification_url</code> // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\",\n \"2-2\": \"Não\",\n \"2-3\": \"Object\"\n },\n \"cols\": 4,\n \"rows\": 3\n}\n[/block]\n<br>\n\n*Objeto **Payment***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-3\": \"Objeto\",\n \"0-2\": \"Sim\",\n \"0-1\": \"Forma de pagamento através de \\\"boleto bancário\\\"\",\n \"0-0\": \"<code>*banking_billet*</code>\"\n },\n \"cols\": 4,\n \"rows\": 1\n}\n[/block]\n<br>\n\n*Objeto **Banking_Billet***\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>name</code>\",\n \"0-1\": \"Nome do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255.</span></strong>\",\n \"0-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"0-3\": \"String\",\n \"1-0\": \"<code>cpf</code>\",\n \"1-1\": \"CPF válido do cliente (sem pontos, vírgulas ou hífen).\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 11 caracteres.</span></strong>\",\n \"1-2\": \"Sim\\n\\n*Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.*\",\n \"1-3\": \"String\",\n \"2-0\": \"<code>email</code>\",\n \"2-1\": \"Email do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. Ex.: [email protected]</span></strong>\",\n \"2-2\": \"Não\",\n \"2-3\": \"String\",\n \"3-0\": \"<code>phone_number</code>\",\n \"3-1\": \"Telefone do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777</span></strong>\",\n \"3-2\": \"Não\",\n \"3-3\": \"String\",\n \"4-0\": \"<code>birth</code>\",\n \"4-1\": \"Data de nascimento do cliente.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"4-2\": \"Não\",\n \"4-3\": \"String\",\n \"5-0\": \"<code>address</code>\",\n \"5-1\": \"Endereço do cliente.\\n\\n<span class=\\\"tab1\\\">*Atributos de address*</span>\\n\\n<div class=\\\"tab2\\\"><code>street<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // nome da rua <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>number<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // número <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/Integer)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>neighborhood<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Bairro <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>zipcode<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CEP (sem pontos ou hífen) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>city<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // cidade <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>complement</code> // complemento <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(String/null)</strong></span></div>\\n\\n<div class=\\\"tab2\\\"><code>state<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // estado (2 caracteres) <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">(Object)</strong></span></div>\",\n \"5-2\": \"Não\",\n \"5-3\": \"Object\",\n \"6-0\": \"<code>juridical_person</code>\",\n \"6-1\": \"Dados de pessoa jurídica\\n\\n<span class=\\\"tab1\\\">*Atributos de juridical_person*</span>\\n\\n<div class=\\\"tab2\\\">\\n<code>corporate_name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome da razão social. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255. String.</strong></span></div>\\n\\n<div class=\\\"tab2\\\">\\n<code>cnpj<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // CNPJ da empresa. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Tamanho: 14 caracteres. String.</strong></span>\\n</div>\",\n \"6-2\": \"Não\",\n \"6-3\": \"Object\",\n \"7-0\": \"<code>expire_at</code>\",\n \"7-1\": \"Data de vencimento do boleto.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong>\",\n \"7-2\": \"Sim\",\n \"7-3\": \"String\",\n \"8-0\": \"<code>discount</code>\",\n \"8-1\": \"Define dados de desconto sobre a cobrança.\\n\\n<span class=\\\"tab1\\\">*Atributos de discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.\\n</strong>\\n</div>\",\n \"8-2\": \"Não\",\n \"8-3\": \"Object\",\n \"9-0\": \"<code>conditional_discount</code>\",\n \"9-1\": \"Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.\\n\\n<span class=\\\"tab1\\\">*Atributos de conditional_discount*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">type<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Tipo do desconto (String). Valores permitidos:\\n<code>currency</code>: o desconto será informado em centavos;\\n<code>percentage</code>: o desconto será informado em porcentagem.</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">value<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Valor do desconto (Integer). Se o tipo do desconto for <code>currency</code>, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja <code>percentage</code>, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:\\n1) <code>currency</code> // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar <code>599</code>;\\n2) <code>percentage</code> // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar <code>1500</code>.</strong></div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">until_date<strong class=\\\"atributo-obrigatorio\\\">*</strong></span>, // Data máxima que o desconto será concedido. (String). </strong><strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Formato: YYYY-MM-DD</span></strong></div>\",\n \"9-2\": \"Não\",\n \"9-3\": \"Object\",\n \"10-0\": \"<code>configurations</code>\",\n \"10-1\": \"Permite incluir no boleto multa e juros caso seja pago após o vencimento.\\n\\n<span class=\\\"tab1\\\">*Atributos de configurations*</span>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">fine</span>, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar <code>200</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 1000. Integer. \\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize <code>0</code> como valor do atributo <code>fine</code></strong></span></div>\\n</strong>\\n</div>\\n\\n<div class=\\\"tab2\\\">\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">interest</span>, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar <code>33</code>. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 0 e máximo de 330. Integer.\\n\\nCaso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize <code>0</code> como valor do atributo <code>interest</code></strong></span></div>\\n</strong>\\n</div>\",\n \"10-2\": \"Não\",\n \"10-3\": \"Object\",\n \"11-0\": \"<code>message</code>\",\n \"11-1\": \"Permite incluir no boleto uma \\\"observação\\\", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Até 4 linhas contendo 100 caracteres em cada linha. String.</span></strong>\\n\\n<strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">O operador <code>\\\\n</code> é utilizado para efetuar a quebra de linha.</span></strong>\",\n \"11-2\": \"Não\",\n \"11-3\": \"String\"\n },\n \"cols\": 4,\n \"rows\": 12\n}\n[/block]\n<strong style=\"font-size:10px;color:#ea6e1c\">* valor obrigatório</strong>\n\n#2. Criação de transação Marketplace em *Two Steps* (Dois passos)\n\nPara a criação de uma transação Marketplace pelo método tradicional é necessário segui os passos listado a seguir:\n\n2.1. [Crie a transação de marketplace](https://dev.gerencianet.com.br/v1/docs/dividindo-recebimentos#section-2-1-criar-transa-o-de-marketplace), informando conta(s) de repasse, o item/produto/serviço, valor, quantidade, etc;\n\n2.2. [Associe à forma de pagamento desejada](https://dev.gerencianet.com.br/v1/docs/dividindo-recebimentos#section-2-2-associar-forma-de-pagamento-via-boleto-ou-cart-o), informando o <code>charge_id</code> da transação e os dados do cliente pagador.\n\nO restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. [Certifique-se de que a SDK da Gerencianet foi instalada](https://dev.gerencianet.com.br/docs#section-2-bibliotecas).\n\n<hr>\n\n## 2.1 Criar transação de marketplace\n\nTransações que tiverem pelo menos um item definido como item de marketplace ou valores de fretes destinados a contas diferentes da conta integradora, são consideradas \"Transações de Marketplace\". Com o marketplace da Gerencianet é possível que o valor pago pelo cliente final seja dividido automaticamente entre vendedor e fornecedor, sem que o processo tenha que ser realizado manualmente.\n\nPrimeiramente, precisamos gerar a transação. É neste momento que será informada a conta(s) Gerencianet de repasse, o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.\n\nUma observação importante é que a taxa de intermediação da Gerencianet é cobrada proporcionalmente de todas as contas que receberem os repasses, portanto, todos os envolvidos necessitam de uma conta Gerencianet.\n\nO código mais abaixo exemplifica a utilização dos repasses, em que o valor total da transação é R$ <strong>50,00</strong>. De acordo com o código abaixo, o valor será dividido entre 3 (três) contas Gerencianet. A primeira conta ficará com <strong>25%</strong> do valor, a segunda conta ficará com <strong>15%</strong> do valor e a terceira, com o restante, que neste caso é <strong>60%</strong> do valor.\n\nO atributo <code>payee_code</code> refere-se ao \"identificador da conta\" Gerencianet e será utilizado para identificar as contas que receberão os repasses. Confira onde localizá-lo em sua plataforma (<a href=\"https://cdn.discordapp.com/attachments/652136190006525955/809138574549188618/identificador-conta.jpg\" target=\"_blank\">veja onde localizar</a>).\n\nCaso queira, pode explorar e conhecer mais sobre este recurso <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge\" target=\"_blank\">usando nosso Playground</a>.\n\nO exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<?php\\n \\nrequire __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK\\n \\nuse Gerencianet\\\\Exception\\\\GerencianetException;\\nuse Gerencianet\\\\Gerencianet;\\n \\n$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)\\n$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)\\n \\n$options = [\\n 'client_id' => $clientId,\\n 'client_secret' => $clientSecret,\\n 'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)\\n];\\n \\n$repass_1 = [\\n 'payee_code' => \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 1)\\n 'percentage' => 2500 // porcentagem de repasse (2500 = 25%)\\n];\\n \\n$repass_2 = [\\n 'payee_code' => \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 2)\\n 'percentage' => 1500 // porcentagem de repasse (1500 = 15%)\\n];\\n \\n$repasses = [\\n $repass_1,\\n $repass_2\\n];\\n \\n$item_1 = [\\n 'name' => 'Meu Produto', // nome do item, produto ou serviço\\n 'amount' => 1, // quantidade\\n 'value' => 5000, // valor (5000 = R$ 50,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)\\n 'marketplace'=>array('repasses'=>$repasses)\\n];\\n \\n$items = [\\n $item_1\\n];\\n \\n// Exemplo para receber notificações da alteração do status da transação.\\n// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']\\n// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes\\n\\n// Como enviar seu $body com o $metadata\\n// $body = [\\n// 'items' => $items,\\n// 'metadata' => $metadata\\n// ];\\n\\n$body = [\\n 'items' => $items\\n];\\n \\ntry {\\n $api = new Gerencianet($options);\\n $charge = $api->createCharge([], $body);\\n \\n print_r($charge);\\n} catch (GerencianetException $e) {\\n print_r($e->code);\\n print_r($e->error);\\n print_r($e->errorDescription);\\n} catch (Exception $e) {\\n print_r($e->getMessage());\\n}\",\n \"language\": \"php\"\n },\n {\n \"code\": \"'use strict';\\n \\nvar Gerencianet = require('gn-api-sdk-node');\\n \\nvar clientId = 'informe_seu_client_id';\\nvar clientSecret = 'informe_seu_client_secret';\\n \\nvar options = {\\n client_id: clientId,\\n client_secret: clientSecret,\\n sandbox: true\\n}\\n \\nvar body = {\\n items: [{\\n name: 'Meu Produto',\\n value: 5000,\\n amount: 1,\\n marketplace: {\\n repasses: [{\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 2500\\n }, {\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 1500\\n }]\\n }\\n }]\\n}\\n \\nvar gerencianet = new Gerencianet(options);\\n \\ngerencianet\\n .createCharge({}, body)\\n .then(console.log)\\n .catch(console.log)\\n .done();\",\n \"language\": \"javascript\",\n \"name\": \"NodeJS\"\n },\n {\n \"code\": \"require \\\"gerencianet\\\"\\nrequire_relative \\\"./credentials\\\"\\n \\noptions = {\\n client_id: \\\"informe_seu_client_id\\\",\\n client_secret: \\\"informe_seu_client_secret\\\",\\n sandbox: true\\n}\\n \\nbody = {\\n items: [{\\n name: \\\"Meu Produto\\\",\\n value: 5000,\\n amount: 1,\\n marketplace: {\\n repasses: [{\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 2500\\n }, {\\n payee_code: \\\"informe_payee_code_conta\\\",\\n percentage: 1500\\n }]\\n }\\n }]\\n}\\n \\ngerencianet = Gerencianet.new(options)\\ngerencianet.create_charge(body: body)\",\n \"language\": \"ruby\",\n \"name\": \"Ruby\"\n },\n {\n \"code\": \"from gerencianet import Gerencianet\\n \\noptions = {\\n 'client_id': 'informe_seu_client_id',\\n 'client_secret': 'informe_seu_client_secret',\\n 'sandbox': True\\n}\\n \\ngn = Gerencianet(options)\\n \\nbody = {\\n 'items': [{\\n 'name': \\\"Meu Produto\\\",\\n 'value': 5000,\\n 'amount': 1,\\n 'marketplace': {\\n 'repasses': [{\\n 'payee_code': \\\"informe_payee_code_conta\\\",\\n 'percentage': 2500\\n },{\\n 'payee_code': \\\"informe_payee_code_conta\\\",\\n 'percentage': 1500\\n }]\\n }\\n }],\\n 'metadata': {\\n 'notification_url': \\\"http://yourdomain.com\\\"\\n }\\n}\\n \\ngn.create_charge(body=body)\",\n \"language\": \"python\"\n },\n {\n \"code\": \"dynamic endpoints = new Endpoints(\\\"informe_seu_client_id\\\", \\\"informe_seu_client_secret\\\", true);\\n \\nvar body = new {\\n items = new [] {\\n new {\\n name = \\\"Meu Produto\\\",\\n value = 5000,\\n amount = 1,\\n marketplace = new {\\n repasses = new [] {\\n new {\\n payee_code = \\\"informe_payee_code_conta\\\",\\n percentage = 2500\\n },\\n new {\\n payee_code = \\\"informe_payee_code_conta\\\",\\n percentage = 1500\\n }\\n }\\n }\\n }\\n },\\n metadata = new {\\n notification_url = \\\"http://yourdomain.com\\\"\\n }\\n};\\n \\nvar response = endpoints.CreateCharge(null, body);\",\n \"language\": \"asp\",\n \"name\": \".NET\"\n },\n {\n \"code\": \"/* Para que a SDK Java funcione corretamente, é necessário que a instanciação do módulo seja feita através da criação de um objeto do tipo Gerencianet.\\n\\nSempre que quisermos chamar uma função da API, basta invocar o método call do objeto Gerencianet, passando como parâmetro o nome do método, os parâmetros da requisição (sempre será um HashMap<String, String>), e o \\\"body\\\", que consiste nas propriedades a serem passadas como argumento na chamada de um função da SDK. O \\\"body\\\" pode ser declarado de duas formas: um JSONObject ou um Map<String, Object>.\\n\\nEsta estrutura é necessária para representar o corpo da requisição http que é enviada à um determinado endpoint. Se o \\\"body\\\" for um JSONObject, o retorno do método call será um JSONObject, se for um Map<String, Object>, o retorno do método call será um Map<String, Object>\\n\\nA seguir, disponibilizamos links de nosso Github mostrando duas formas diferentes de retorno: JSONObject\\ne Map<String, Object>\\n\\n\\nJSONObject\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/marketplace/json/Marketplace.java\\n\\n\\nMap<String, Object>\\n\\nhttps://github.com/gerencianet/gn-api-sdk-java-examples/blob/master/src/main/java/br/com/gerencianet/marketplace/map/Marketplace.java\\n\\n*/\",\n \"language\": \"java\"\n },\n {\n \"code\": \"interface\\nfunction CreateCharge: String;\\n\\nimplementation\\nuses uGerenciaClient, uGerenciaNetClientUtilities;\\n{... your code ... }\\n\\nfunction CreateCharge: String;\\nvar \\nBody : String;\\nRepasse1 : String;\\nRepasse2 : String;\\nRepasses : String;\\n\\nbegin \\n EnableService( 'GerenciaNet.dll' ); \\n ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json',''); \\n GerenciaNetAuthorize(); \\n\\n Repasse1 :=\\n '{'+\\n '\\\"payee_code\\\": \\\"informe_o_payee_code_1\\\",'+\\n '\\\"percentage\\\": 2500'+\\n '},';\\n\\n Repasse2 :=\\n '{'+\\n '\\\"payee_code\\\": \\\"informe_o_payee_code_2\\\",'+\\n '\\\"percentage\\\": 1500'+\\n '}';\\n\\n Repasses := '{ \\\"repasses\\\": ['+ Repasse1 + Repasse2 +'] }';\\n\\n Body := '{'+\\n '\\\"items\\\":'+\\n '['+\\n '{'+\\n '\\\"name\\\":\\\"Meu Produto\\\",'+\\n '\\\"value\\\":9000,'+\\n '\\\"amount\\\":1,'+\\n '\\\"marketplace\\\":' + Repasses +\\n '}'+\\n ']'+\\n '}';\\n\\n Result := ExecuteGerenciaNetRequest( 'createCharge','','',Body );\\nend;\",\n \"language\": \"json\",\n \"name\": \"Delphi\"\n },\n {\n \"code\": \"// No código de exemplo de uso da SDK de Go, definimos as credenciais de acesso à API (Client_Id e Client_Secret) e o ambiente a ser usado (sandbox como 'true' ou 'false') dentro de um arquivo específico (configs.go), que está localizado no diretório \\\"_examples/configs\\\". Essas credenciais são exportadas através da variável 'Credentials'.\\n\\npackage main\\n\\nimport (\\n \\\"fmt\\\"\\n \\\"github.com/gerencianet/gn-api-sdk-go/gerencianet\\\"\\n \\\"github.com/gerencianet/gn-api-sdk-go/_examples/configs\\\"\\n)\\n\\nfunc main(){\\n \\n credentials := configs.Credentials\\n gn := gerencianet.NewGerencianet(credentials)\\n\\n repassOne := map[string]interface{}{\\n \\t\\\"payee_code\\\": \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 1)\\n \\t\\\"percentage\\\": 2500, // porcentagem de repasse (2500 = 25%)\\n }\\n\\n repassTwo := map[string]interface{}{\\n \\t\\\"payee_code\\\": \\\"informe_payee_code_conta\\\", // identificador da conta Gerencianet (repasse 2)\\n \\t\\\"percentage\\\": 1500, // porcentagem de repasse (1500 = 15%)\\n }\\n\\n body := map[string]interface{}{\\n \\\"items\\\": []map[string]interface{}{\\n {\\n \\\"name\\\": \\\"Product 1\\\",\\n \\\"value\\\": 1000,\\n \\\"amount\\\": 2,\\n \\\"marketplace\\\": map[string]interface{}{\\n \\t\\\"repasses\\\": []map[string]interface{}{\\n \\t\\trepassOne,\\n \\t\\trepassTwo,\\n \\t},\\n },\\n },\\n },\\n \\\"shippings\\\": []map[string]interface{} {\\n {\\n \\\"name\\\": \\\"Default Shipping Cost\\\",\\n \\\"value\\\": 100,\\n },\\n },\\n }\\n\\n res, err := gn.CreateCharge(body)\\n\\n if err != nil {\\n fmt.Println(err)\\n } else {\\n fmt.Println(res)\\n }\\n}\",\n \"language\": \"go\"\n }\n ]\n}\n[/block]\n<br>\n\n## a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:\n\n<pre>\"id\": \"/Charge\"\n \"items\"\n \"name\"\n \"value\"\n \"amount\"\n \"marketplace\"\n \"repasses\"\n \"payee_code\"\n \"percentage\"\n \"shippings\"\n \"name\"\n \"value\"\n \"payee_code\"\n \"metadata\"\n \"custom_id\"\n \"notification_url\"</pre>\n\nPara verificar mais detalhes, <a href=\"https://dev.gerencianet.com.br/docs/playground-transacoes#charge\" target=\"_blank\">acesse aqui</a> e explore em nosso Playground.\n\n<br>\n\n## b) Atributos que podem ser utilizados para criar uma transação:\n[block:parameters]\n{\n \"data\": {\n \"h-0\": \"Atributo\",\n \"h-1\": \"Descrição\",\n \"h-2\": \"Obrigatório\",\n \"h-3\": \"Tipo\",\n \"0-0\": \"<code>items</code>\",\n \"1-0\": \"<code>shippings</code>\",\n \"2-0\": \"<code>metadata</code>\",\n \"0-1\": \"Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de items</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Nome do item, produto ou serviço. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Mínimo de 1 caractere e máximo de 255 caracteres (String).</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor, em centavos. Ex: R$ 10,00 = 1000. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>amount</code> // Quantidade. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer (padrão: 1)</span></strong></div>\\n\\n<div class=\\\"tab2\\\">\\n <code>marketplace<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Referente às configurações\\n de repasses. <span class=\\\"atributo\\\">Atributos:</span>\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>repasses<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Array com as definições de repasses\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>payee_code<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // código identificador da conta\\n Gerencianet, único por conta - confira(<a\\n href=\\\"https://cdn.discordapp.com/attachments/652136190006525955/809138574549188618/identificador-conta.jpg\\\"\\n target=\\\"_blank\\\">código identificador da conta Gerencianet</a>)\\n <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">String.</span></strong>\\n </div>\\n <div style=\\\"margin: 5px 0 0 10px;\\\" class=\\\"tab2\\\">\\n <code>*percentage*<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> (porcentagem de repasse, sendo que\\n 9000 equivale a 90%).\\n <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong>\\n </div>\\n </div>\\n</div>\",\n \"1-1\": \"Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de shippings</em></span>\\n\\n<div class=\\\"tab2\\\"><code>name<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Rótulo do frete. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>value<strong class=\\\"atributo-obrigatorio\\\">*</strong></code> // Valor do frete, em centavos (1990 equivale a R$19,90). <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Integer.</span></strong></div>\",\n \"2-1\": \"Define dados específicos da transação.\\n\\n<span class=\\\"tab1\\\"><em>Atributos de metadata</em></span>\\n\\n<div class=\\\"tab2\\\"><code>custom_id</code> // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\\n\\n<div class=\\\"tab2\\\"><code>notification_url</code> // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. <strong class=\\\"descricao-atributo\\\"><span class=\\\"atributo\\\">Máximo de 255 caracteres. String/null.</span></strong></div>\",\n \"0-2\": \"Sim\",\n \"1-2\": \"Não\",\n \"2-2\": \"Não\",\n \"0-3\": \"Array\",\n \"1-3\": \"Array\",\n \"2-3\": \"Object\"\n },\n \"cols\": 4,\n \"rows\": 3\n}\n[/block]\n<strong class=\"atributo-obrigatorio-texto\">* valor obrigatório</strong>\n\n<br>\n<hr>\n\n## 2.2. Associar à forma de pagamento via boleto ou cartão\n\nApós criar a transação de marketplace, você receberá o <code>charge_id</code>. Ele será utilizado para que você defina qual será a forma de pagamento da referida transação.\n\nPara detalhes, acesse a página referente à forma que deseja: [boleto bancário](https://dev.gerencianet.com.br/docs/gerar-boleto) e [cartão de crédito](https://dev.gerencianet.com.br/docs/pagamento-cartao).\n\n<br>\n<hr>\n\n# 3. Vídeos: Marketplace\n\nPensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como criar transação de marketplace através de integração com a API da Gerencianet.\n\n\n## 3.1. Visão Geral - Conhecendo o Marketplace (integração API Gerencianet)\n[block:html]\n{\n \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/l1epJxBFUvM\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n<br>\n\n## 3.2. Criando transação por Marketplace (integração API Gerencianet)\n[block:html]\n{\n \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/3SdgVG2RfrA\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n<br>\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"Curso Completo de Integração com a API Gerencianet\",\n \"body\": \"Para acesso as demais aulas, de outros assuntos, acesse a página <a href=\\\"https://dev.gerencianet.com.br/docs/curso-online-gerencianet\\\" title=\\\"Link Interno\\\">Curso Online de Integrações</a>.\"\n}\n[/block]\n<br>\n<hr>\n\n# 4. Próximos Passos\n[block:html]\n{\n \"html\": \"<p>Vamos conhecer mais sobre o detalhamento do mecanismo de funcionamento do marketplace?</p>\\n\\n<a href=\\\"https://dev.gerencianet.com.br/docs/marketplace-como-funciona\\\" title=\\\"Link Interno\\\"><button type=\\\"button\\\" class=\\\"btn btn-default navbar-btn\\\">Como funciona o Marketplace da Gerencianet?</button></a>\"\n}\n[/block]","updates":[],"order":3,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"606f2ca7c5ba9100787834b7","project":"575aeffae12cf20e002f306c","version":{"version":"1.1.0","version_clean":"1.1.0","codename":"2021","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["606f2ca6c5ba91007878342b","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","606f2ca6c5ba91007878342c","606f2ca6c5ba91007878342d","606f2ca6c5ba91007878342e","606f2ca6c5ba91007878342f","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","606f2ca6c5ba910078783430","606f2ca6c5ba910078783431","5783f78c5cbce30e0074e2b7","606f2ca6c5ba910078783432","606f2ca6c5ba910078783433","606f2ca6c5ba910078783434","606f2ca6c5ba910078783435","606f2ca6c5ba910078783436","606f2ca6c5ba910078783437","578529f887c9280e0090394b","606f2ca6c5ba910078783438","606f2ca6c5ba910078783439","606f2ca6c5ba91007878343a","606f2ca6c5ba91007878343b","606f2ca6c5ba91007878343c","606f2ca6c5ba91007878343d","606f2ca6c5ba91007878343e","606f2ca6c5ba91007878343f","606f2ca6c5ba910078783440","606f2ca6c5ba910078783441","60d61f026ddc3901a32ee5f1","60ec37c637005f015e54174e","61473375119247002a9c14d7","6283a3819575c60045513ea2"],"_id":"606f2ca7c5ba9100787834c6","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","__v":4,"forked_from":"575aeffae12cf20e002f306f"},"category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Marketplace","slug":"marketplace","order":15,"from_sync":false,"reference":false,"_id":"606f2ca6c5ba910078783436","version":"606f2ca7c5ba9100787834c6","__v":0,"project":"575aeffae12cf20e002f306c","createdAt":"2016-07-11T19:51:27.671Z"},"user":"5cd2d0083432a2004b7a6b83","createdAt":"2019-09-12T13:54:28.051Z","__v":0,"parentDoc":null}
Dividindo recebimentos
Passo a passo para gerar uma cobrança do tipo Marketplace (split de pagamentos) na API Gerencianet