{"__v":73,"_id":"555fb08928249c1900618a68","api":{"auth":"required","params":[],"results":{"codes":[]},"settings":"","url":""},"body":"Bem-vindo,\n\nQueremos que você conheça um novo mundo de pagamentos online!\n\nEssa é a nossa documentação! Nela você encontrará uma descrição das principais tendências no fluxo de pagamentos online, além de ter acesso a nossos métodos, operações e bibliotecas de integração.  \n\nPensamos em cada passo para que você tenha uma experiência única e consiga transacionar com poucas linhas de código. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Você já tem sua MerchantKey?\"\n}\n[/block]\nPara enviar transações é essencial que você tenha uma MerchantKey. Ela é a autenticação necessária para todas as requisições enviadas aos nossos endpoints.\n\nPara começar, vamos disponibilizar a MerchantKey de homologação que deve ser utilizada no nosso Sandbox. Se você ainda não possui uma MerchantKey, **[entre aqui](https://dashboard.mundipagg.com/#/signup)**.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"MerchantKey\",\n  \"body\": \"87328324-8DA6-459E-9948-5431F5A183FA\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Endpoint - Sandbox\"\n}\n[/block]\nNossa API foi construída sobre a arquitetura REST!\n\nCom a MerchantKey em mãos basta enviá-la no campo de cabeçalho HTTP: MerchantKey. Você deve enviar no campo *Content-type* do cabeçalho o formato JSON (application/json) assim como no campo Accept.\n\n`MerchantKey: 87328324-8DA6-459E-9948-5431F5A183FA`\n`Content-type: application/json`\n`Accept: application/json`\n\nO endpoint do Sandbox da Mundi é:\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Endpoint do Sandbox\",\n  \"body\": \"https://sandbox.mundipaggone.com\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Mantendo a segurança da integração\"\n}\n[/block]\nPara manter a segurança na troca de mensagens é necessário que nossos servidores sejam liberados no seu ambiente. Recomendamos fortemente que você libere o domínio **mundipaggone.com**.\n\nCaso não seja possível a liberação do domínio, segue abaixo a lista de IP's que devem ser liberados:\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"209.134.53.73\\n208.93.65.183\\n23.101.169.64\\n104.209.129.203\",\n  \"title\": \"IP's MundiPagg\"\n}\n[/block]\nAlém disso, por sermos uma empresa PCI precisamos manter a segurança na troca de informações com as nossas APIs. Seguem as configurações aceitas:\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Protocolos aceitos\",\n  \"body\": \"TLS 1.1\\nTLS 1.2\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Hashs Codes\",\n  \"body\": \"SHA256\\nSHA384\\nSHA512\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Cipher Suites\",\n  \"body\": \"Com criptografia igual ou superior a 128 bits\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Requisições para a API\"\n}\n[/block]\nAs requisições enviadas para nossa API são as principais formas de comunicação com o nosso sistema. Para que essa comunicação seja bem sucedida, critérios básicos devem ser respeitados, senão você não conseguirá criar transações. \n\nDedicamos a seção [Enviando requisições válidas](doc:erros) para que você configure o seu código de maneira simples e evitando esses tipos de erros!\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Bibliotecas de integração\"\n}\n[/block]\nCriamos algumas bibliotecas de diferentes linguagens para cortarmos alguns caminhos na integração. O objetivo é facilitar ainda mais a experiência para que você comece a transacionar rapidamente!\n\nAs bibliotecas que temos hoje são: \n\n[.NET](https://github.com/mundipagg/mundipagg-one-dotnet)\n[Java](https://github.com/mundipagg/mundipagg-one-java)\n[PHP](https://github.com/mundipagg/mundipagg-one-php)\n[Ruby](https://github.com/mundipagg/mundipagg-one-ruby)\n[Python](https://github.com/mundipagg/mundipagg-one-python)","category":"555fb08928249c1900618a66","createdAt":"2015-05-22T22:41:13.898Z","excerpt":"Vamos integrar?","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":0,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"bem-vindo","sync_unique":"","title":"Bem-vindo!","type":"basic","updates":["55dca3b34f535537007da1c4","561f1140cfc3610d00567173","5631621e9c25801700dac349","565d48bdb311ea0d00a3845b"],"user":"555fb063336c041700a9b861","version":"555fb08828249c1900618a65","childrenPages":[]}

Bem-vindo!

Vamos integrar?

Bem-vindo,

Queremos que você conheça um novo mundo de pagamentos online!

Essa é a nossa documentação! Nela você encontrará uma descrição das principais tendências no fluxo de pagamentos online, além de ter acesso a nossos métodos, operações e bibliotecas de integração.

Pensamos em cada passo para que você tenha uma experiência única e consiga transacionar com poucas linhas de código.

Você já tem sua MerchantKey?

Para enviar transações é essencial que você tenha uma MerchantKey. Ela é a autenticação necessária para todas as requisições enviadas aos nossos endpoints.

Para começar, vamos disponibilizar a MerchantKey de homologação que deve ser utilizada no nosso Sandbox. Se você ainda não possui uma MerchantKey, entre aqui.

MerchantKey

87328324-8DA6-459E-9948-5431F5A183FA

Endpoint - Sandbox

Nossa API foi construída sobre a arquitetura REST!

Com a MerchantKey em mãos basta enviá-la no campo de cabeçalho HTTP: MerchantKey. Você deve enviar no campo Content-type do cabeçalho o formato JSON (application/json) assim como no campo Accept.

MerchantKey: 87328324-8DA6-459E-9948-5431F5A183FA
Content-type: application/json
Accept: application/json

O endpoint do Sandbox da Mundi é:

Endpoint do Sandbox

https://sandbox.mundipaggone.com

Mantendo a segurança da integração

Para manter a segurança na troca de mensagens é necessário que nossos servidores sejam liberados no seu ambiente. Recomendamos fortemente que você libere o domínio mundipaggone.com.

Caso não seja possível a liberação do domínio, segue abaixo a lista de IP's que devem ser liberados:

IP's MundiPagg

209.134.53.73
208.93.65.183
23.101.169.64
104.209.129.203

Além disso, por sermos uma empresa PCI precisamos manter a segurança na troca de informações com as nossas APIs. Seguem as configurações aceitas:

Protocolos aceitos

TLS 1.1
TLS 1.2

Hashs Codes

SHA256
SHA384
SHA512

Cipher Suites

Com criptografia igual ou superior a 128 bits

Requisições para a API

As requisições enviadas para nossa API são as principais formas de comunicação com o nosso sistema. Para que essa comunicação seja bem sucedida, critérios básicos devem ser respeitados, senão você não conseguirá criar transações.

Dedicamos a seção Enviando requisições válidas para que você configure o seu código de maneira simples e evitando esses tipos de erros!

Bibliotecas de integração

Criamos algumas bibliotecas de diferentes linguagens para cortarmos alguns caminhos na integração. O objetivo é facilitar ainda mais a experiência para que você comece a transacionar rapidamente!

As bibliotecas que temos hoje são:

.NET
Java
PHP
Ruby
Python

{"__v":22,"_id":"55b7d976568be2230092bbac","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"Com a MerchantKey você já pode começar o envio de transações com os diversos meios de pagamento que oferecemos! \n\nOs mais comuns são: **cartões de crédito**, **boletos bancários** e o **débito online (transferência bancária)**. Em breve disponibilizaremos outros meios, como: **carteiras virtuais** e **moedas virtuais (bitcoin)**.\n\nMas antes, vamos falar um pouco sobre o código e como as informações devem chegar em nosso endpoint. \n\nEscolhemos o cartão de crédito para ambientar você às nossas requisições. Ele é o mais utilizado no ecommerce, caso você queira também, ali no nosso menu, temos a descrição para [boletos](doc:boleto) e para o [débito online](doc:debito-online)!\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Montando a requisição\"\n}\n[/block]\nPara realizar uma transação de cartão de crédito, você deve montar o JSON com informações básicas antes de enviá-los ao nosso endpoint. \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Campos obrigatórios e não obrigatórios\",\n  \"body\": \"Existem informações que são obrigatórias na requisição enquanto outras não. Recomendamos que alguns dos campos **não obrigatórios** sejam utilizados, pois eles enriquecerão as pesquisas e gestão das transações no nosso sistema.\"\n}\n[/block]\nNa próxima seção, colocamos uma tabela com os campos e suas descrições e também disponibilizamos alguns exemplos de códigos para você montar a requisição. \n\nNesses códigos, não colocamos todos os campos possíveis, porém você pode informá-los! Na seção [referências](doc:referencias) estão todos os campos complementares passíveis de envio.","category":"555fb08928249c1900618a66","createdAt":"2015-07-28T19:35:18.242Z","excerpt":"Como criar transações de cartão de crédito","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":1,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"criando-transacoes","sync_unique":"","title":"Criando transações","type":"basic","updates":[],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Criando transações

Como criar transações de cartão de crédito

Com a MerchantKey você já pode começar o envio de transações com os diversos meios de pagamento que oferecemos!

Os mais comuns são: cartões de crédito, boletos bancários e o débito online (transferência bancária). Em breve disponibilizaremos outros meios, como: carteiras virtuais e moedas virtuais (bitcoin).

Mas antes, vamos falar um pouco sobre o código e como as informações devem chegar em nosso endpoint.

Escolhemos o cartão de crédito para ambientar você às nossas requisições. Ele é o mais utilizado no ecommerce, caso você queira também, ali no nosso menu, temos a descrição para boletos e para o débito online!

Montando a requisição

Para realizar uma transação de cartão de crédito, você deve montar o JSON com informações básicas antes de enviá-los ao nosso endpoint.

Campos obrigatórios e não obrigatórios

Existem informações que são obrigatórias na requisição enquanto outras não. Recomendamos que alguns dos campos não obrigatórios sejam utilizados, pois eles enriquecerão as pesquisas e gestão das transações no nosso sistema.

Na próxima seção, colocamos uma tabela com os campos e suas descrições e também disponibilizamos alguns exemplos de códigos para você montar a requisição.

Nesses códigos, não colocamos todos os campos possíveis, porém você pode informá-los! Na seção referências estão todos os campos complementares passíveis de envio.

{"__v":20,"_id":"55b80b3caea7c8190058bb67","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55b80b3caea7c8190058bb73","default":"","desc":"Valor da transação em centavos. R$ 100,00 = 10000","name":"CreditCardTransactionCollection[AmountInCents]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb72","default":"","desc":"Bandeira do cartão do cliente","name":"CreditCardTransactionCollection[CreditCard[CreditCardBrand]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb71","default":"","desc":"Número do cartão do cliente. Informar apenas números.","name":"CreditCardTransactionCollection[CreditCard[CreditCardNumber]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb70","default":"","desc":"Mês de expiração do cartão","name":"CreditCardTransactionCollection[CreditCard[ExpMonth]]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6f","default":"","desc":"Ano de expiração do cartão","name":"CreditCardTransactionCollection[CreditCard[ExpYear]]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6e","default":"","desc":"Código de segurança do cartão","name":"CreditCardTransactionCollection[CreditCard[SecurityCode]]","ref":"","required":false,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6d","default":"","desc":"Nome do portador do cartão","name":"CreditCardTransactionCollection[CreditCard[HolderName]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6b","default":"","desc":"Número de Parcelas","name":"CreditCardTransactionCollection[InstallmentCount]","ref":"","required":false,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb69","default":"","desc":"Identificador do pedido na sua base","name":"Order[OrderReference]","ref":"","required":false,"type":"string","in":"body"}],"results":{"codes":[{"language":"json","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 137,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"857a5a07-ff3c-46e3-946e-452e25f149eb\",\n  \"BoletoTransactionResultCollection\": [],\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": [\n    {\n      \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n      \"AcquirerName\": \"Simulator\",\n      \"AcquirerReturnCode\": \"0\",\n      \"AffiliationCode\": \"000000000\",\n      \"AmountInCents\": 10000,\n      \"AuthorizationCode\": \"168147\",\n      \"AuthorizedAmountInCents\": 10000,\n      \"CapturedAmountInCents\": 10000,\n      \"CapturedDate\": \"2015-12-04T19:51:11\",\n      \"CreditCard\": {\n        \"CreditCardBrand\": \"Visa\",\n        \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n        \"IsExpiredCreditCard\": false,\n        \"MaskedCreditCardNumber\": \"411111****1111\"\n      },\n      \"CreditCardOperation\": \"AuthAndCapture\",\n      \"CreditCardTransactionStatus\": \"Captured\",\n      \"DueDate\": null,\n      \"ExternalTime\": 0,\n      \"PaymentMethodName\": \"Simulator\",\n      \"RefundedAmountInCents\": null,\n      \"Success\": true,\n      \"TransactionIdentifier\": \"246844\",\n      \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n      \"TransactionKeyToAcquirer\": \"20ba05207d0944f8\",\n      \"TransactionReference\": \"1c65eaf7-df3c-4c7f-af63-f90fb6200996\",\n      \"UniqueSequentialNumber\": \"636606\",\n      \"VoidedAmountInCents\": null\n    }\n  ],\n  \"OrderResult\": {\n    \"CreateDate\": \"2015-12-04T19:51:11\",\n    \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n    \"OrderReference\": \"NúmeroDoPedido\"\n  }\n}","status":201},{"code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"86765577-3600-40b5-b801-0aab23228566\",\n  \"BoletoTransactionResultCollection\": null,\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": null,\n  \"OrderResult\": null\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Cria a transação.\\nvar transaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        CreditCardBrand = CreditCardBrandEnum.Visa,\\n        CreditCardNumber = \\\"4111111111111111\\\",\\n        ExpMonth = 10,\\n        ExpYear = 22,\\n        HolderName = \\\"LUKE SKYWALKER\\\",\\n        SecurityCode = \\\"123\\\"\\n    },\\n    InstallmentCount = 1\\n};\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona a transação na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    }\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Status transação: {0}\\\", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\t\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave da loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $createSaleRequest = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Define dados da transação\\n    $createSaleRequest->addCreditCardTransaction()\\n        ->setAmountInCents(10000)\\n        ->setPaymentMethodCode(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\PaymentMethodEnum::SIMULATOR)\\n        ->setCreditCardOperation(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardOperationEnum::AUTH_AND_CAPTURE)\\n        ->getCreditCard()\\n\\t\\t\\t\\t->setCreditCardBrand(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardBrandEnum::VISA)\\n\\t\\t\\t\\t->setCreditCardNumber(\\\"4111111111111111\\\")\\n\\t\\t\\t\\t->setExpMonth(10)\\n\\t\\t\\t\\t->setExpYear(2022)\\n\\t\\t\\t\\t->setHolderName(\\\"LUKE SKYWALKER\\\")\\n\\t\\t\\t\\t->setSecurityCode(\\\"123\\\");\\n\\n    //Define dados do pedido\\n    $createSaleRequest->getOrder()\\n    ->setOrderReference('NumeroDopedido');\\n\\n    // Cria um objeto ApiClient\\n    $apiClient = new \\\\Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $apiClient->createSale($createSaleRequest);\\n\\n    // Mapeia resposta\\n    $httpStatusCode = $response->isSuccess() ? 201 : 401;\\n    \\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $httpStatusCode = 400;\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    // Devolve resposta\\n    http_response_code($httpStatusCode);\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\\n?>\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card transaction object\\ncreditCardTransaction = Gateway::CreditCardTransaction.new\\n\\n# 100 reais in cents \\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.CreditCard.CreditCardBrand = 'Visa'\\ncreditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'\\ncreditCardTransaction.CreditCard.ExpMonth = 10\\ncreditCardTransaction.CreditCard.ExpYear = 22\\ncreditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'\\ncreditCardTransaction.CreditCard.SecurityCode = '123'\\ncreditCardTransaction.InstallmentCount = 1\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# coding=utf-8\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n#Coleta os dados do cartão.\\ncreditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,\\n                             security_code='123', holder_name='LUKE SKYWALKER')\\n\\n#Cria a transação.\\ntransaction_collection = [creditcard_transaction(10000, creditcard_data)]\\n\\n#Cria o numero do pedido\\noptions_request = order(order_reference='NumeroDoPedido')\\n\\n#Cria a request.\\nrequest = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.create_with_request(request)\\n\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);\\ncreditCard.setCreditCardNumber(\\\"4111111111111111\\\");\\ncreditCard.setExpMonth(10);\\ncreditCard.setExpYear(22);\\ncreditCard.setHolderName(\\\"LUKE SKYWALKER\\\");\\ncreditCard.setSecurityCode(\\\"123\\\");\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setInstallmentCount(1);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NumeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setOrder(order);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);\",\n      \"language\": \"java\",\n      \"name\": null\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"CreditCardBrand\\\": \\\"Visa\\\",\\n                \\\"CreditCardNumber\\\": \\\"4111111111111111\\\",\\n                \\\"ExpMonth\\\": 10,\\n                \\\"ExpYear\\\": 22,\\n                \\\"HolderName\\\": \\\"LUKE SKYWALKER\\\",\\n                \\\"SecurityCode\\\": \\\"123\\\"\\n            },\\n            \\\"InstallmentCount\\\": 1\\n        }\\n    ],\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    }\\n}\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nApesar de ser um campo não obrigatório, o ``OrderReference`` é uma informação importante para a sua gestão. Assim, aconselhamos que você **sempre** nos envie esse campo.\n\nVocê também pode acrescentar as informações do seu cliente na requisição e já ficar preparado caso passe a utilizar um sistema antifraude, basta olhar [aqui](docs:antifraude).\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Diferença entre pedido e transação\",\n  \"body\": \"Um pedido pode ter \\\"n\\\" transações. Este número varia de acordo com a forma de pagamento selecionado. Ex: Um pedido pode ter seu valor total dividido em dois cartões diferente, gerando duas transações. Ou seja, o OrderReference é o mesmo para as duas transações porém o TransactionReference (Número de cada transação dentro de um pedido) deve ser diferente.\"\n}\n[/block]\nCom os exemplos acima você já consegue enviar uma transação para nosso sandbox.\n\nÉ importante lembrar que alguns campos são indispensáveis em uma transação, assim, caso você não nos envie, os valores default serão utilizados. Os campos são: o número de parcelas ``InstallmentCount`` (default: 1), o tipo de operação que você deseja fazer ``CreditCardOperation`` ([pré-autorização](doc:pre-autorizacao) ou autorização e captura instantânea - default: *AuthAndCapture*), dentre outras.\n[block:callout]\n{\n  \"type\": \"success\",\n  \"title\": \"Retentativa Automática\",\n  \"body\": \"A Mundi é um gateway que possui todas as suas ferramentas voltadas para aumentar a sua conversão de pagamentos. Dentre elas, temos a **retentativa automática**, ou seja, em tempo real tentamos autorizar a transação na mesma ou em outra processadora de cartão, caso a transação não seja autorizada. Se você quiser ativar essa funcionalidade fale com a nossa equipe de relacionamento.\"\n}\n[/block]\nAo receber a resposta da requisição, você poderá receber dois tipos de status de transação: `Captured` caso a sua transação tenha sido autorizada e capturada ou `NotAuthorized` para casos que a transação não obteve sucesso na autorização.\n\nLembre que estamos fazendo uma transação na qual  o default é **CreditCardOperation = AuthAndCapture**. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Adaptando para a sua necessidade\"\n}\n[/block]\nEsse é o request de uma transação básica, ou seja, o mínimo necessário para que você conclua uma venda ou cobrança com poucas informações. Dedicamos a seção [referências](doc:referencias) para detalhar os outros campos que podem ser enviados.\n\nNa Mundi, você também pode integrar seu [antifraude](doc:antifraude), realizar [transações recorrentes](doc:recorrencia) (para modelos de assinatura), disponibilizar compras com [múltiplos cartões](doc:multi-meios-de-pagamento) e até mesmo guardar o cartão do seu cliente para utilizá-lo na [compra com um clique](doc:instant-buy-tokenizacao).","category":"555fb08928249c1900618a66","createdAt":"2015-07-28T23:07:40.651Z","editedParams":true,"editedParams2":true,"excerpt":"Enviando uma requisição de transação de cartão de crédito","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":2,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"realizando-transacoes","sync_unique":"","title":"Realizando transações de cartão de crédito","type":"post","updates":["55f70357a7ceef0d00251c1c","560047121503430d007cc816","56058dbc7c8e580d0001b08b","56097f988aedf50d0004d121","560c18dbbf971337006e0bdd","560cb0be052c8e0d0014dc5b","564616d60c30fb2100ba3805","5661b77855e4450d00e62bf2","566b0cf6f625510d000e56f7","56bc9028752c130d008d1908"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postRealizando transações de cartão de crédito

Enviando uma requisição de transação de cartão de crédito

Body Params

CreditCardTransactionCollection[AmountInCents]:
required
integer
Valor da transação em centavos. R$ 100,00 = 10000
CreditCardTransactionCollection[CreditCard[CreditCardBrand]:
required
string
Bandeira do cartão do cliente
CreditCardTransactionCollection[CreditCard[CreditCardNumber]:
required
string
Número do cartão do cliente. Informar apenas números.
CreditCardTransactionCollection[CreditCard[ExpMonth]:
required
integer
Mês de expiração do cartão
CreditCardTransactionCollection[CreditCard[ExpYear]:
required
integer
Ano de expiração do cartão
CreditCardTransactionCollection[CreditCard[SecurityCode]:
integer
Código de segurança do cartão
CreditCardTransactionCollection[CreditCard[HolderName]:
required
string
Nome do portador do cartão
CreditCardTransactionCollection[InstallmentCount]:
integer
Número de Parcelas
Order[OrderReference]:
string
Identificador do pedido na sua base
// Cria a transação.
var transaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        CreditCardBrand = CreditCardBrandEnum.Visa,
        CreditCardNumber = "4111111111111111",
        ExpMonth = 10,
        ExpYear = 22,
        HolderName = "LUKE SKYWALKER",
        SecurityCode = "123"
    },
    InstallmentCount = 1
};

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona a transação na requisição.
    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    }
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.CreditCardTransactionResultCollection != null) {
    Console.WriteLine("Status transação: {0}", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');	

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave da loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto requisição
    $createSaleRequest = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Define dados da transação
    $createSaleRequest->addCreditCardTransaction()
        ->setAmountInCents(10000)
        ->setPaymentMethodCode(\Gateway\One\DataContract\Enum\PaymentMethodEnum::SIMULATOR)
        ->setCreditCardOperation(\Gateway\One\DataContract\Enum\CreditCardOperationEnum::AUTH_AND_CAPTURE)
        ->getCreditCard()
				->setCreditCardBrand(\Gateway\One\DataContract\Enum\CreditCardBrandEnum::VISA)
				->setCreditCardNumber("4111111111111111")
				->setExpMonth(10)
				->setExpYear(2022)
				->setHolderName("LUKE SKYWALKER")
				->setSecurityCode("123");

    //Define dados do pedido
    $createSaleRequest->getOrder()
    ->setOrderReference('NumeroDopedido');

    // Cria um objeto ApiClient
    $apiClient = new \Gateway\ApiClient();

    // Faz a chamada para criação
    $response = $apiClient->createSale($createSaleRequest);

    // Mapeia resposta
    $httpStatusCode = $response->isSuccess() ? 201 : 401;
    
}
catch (\Gateway\One\DataContract\Report\CreditCardError $error)
{
    $httpStatusCode = 400;
    $response = array("message" => $error->getMessage());
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (\Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    // Devolve resposta
    http_response_code($httpStatusCode);
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
?>
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# create credit card transaction object
creditCardTransaction = Gateway::CreditCardTransaction.new

# 100 reais in cents 
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
creditCardTransaction.CreditCard.ExpMonth = 10
creditCardTransaction.CreditCard.ExpYear = 22
creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
creditCardTransaction.CreditCard.SecurityCode = '123'
creditCardTransaction.InstallmentCount = 1

# creates request object for transaction creation
createSaleRequest = Gateway::CreateSaleRequest.new
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# coding=utf-8

from uuid import UUID
from data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum

#Coleta os dados do cartão.
creditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,
                             security_code='123', holder_name='LUKE SKYWALKER')

#Cria a transação.
transaction_collection = [creditcard_transaction(10000, creditcard_data)]

#Cria o numero do pedido
options_request = order(order_reference='NumeroDoPedido')

#Cria a request.
request = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.create_with_request(request)

json_response = http_response.json()
// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria um cartão de crédito e define endereço de cobrança
CreditCard creditCard = new CreditCard();
creditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);
creditCard.setCreditCardNumber("4111111111111111");
creditCard.setExpMonth(10);
creditCard.setExpYear(22);
creditCard.setHolderName("LUKE SKYWALKER");
creditCard.setSecurityCode("123");

// Cria a transação de cartão de crédito e define cartão criado anteriormente
CreditCardTransaction creditCardTransaction = new CreditCardTransaction();
creditCardTransaction.setAmountInCents(10000L);
creditCardTransaction.setCreditCard(creditCard);
creditCardTransaction.setInstallmentCount(1);

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NumeroDoPedido");

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());
createSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);
createSaleRequest.setOrder(order);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);
{
    "CreditCardTransactionCollection": [
        {
            "AmountInCents": 10000,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "CreditCardNumber": "4111111111111111",
                "ExpMonth": 10,
                "ExpYear": 22,
                "HolderName": "LUKE SKYWALKER",
                "SecurityCode": "123"
            },
            "InstallmentCount": 1
        }
    ],
    "Order": {
        "OrderReference": "NumeroDoPedido"
    }
}

Apesar de ser um campo não obrigatório, o OrderReference é uma informação importante para a sua gestão. Assim, aconselhamos que você sempre nos envie esse campo.

Você também pode acrescentar as informações do seu cliente na requisição e já ficar preparado caso passe a utilizar um sistema antifraude, basta olhar aqui.

Diferença entre pedido e transação

Um pedido pode ter "n" transações. Este número varia de acordo com a forma de pagamento selecionado. Ex: Um pedido pode ter seu valor total dividido em dois cartões diferente, gerando duas transações. Ou seja, o OrderReference é o mesmo para as duas transações porém o TransactionReference (Número de cada transação dentro de um pedido) deve ser diferente.

Com os exemplos acima você já consegue enviar uma transação para nosso sandbox.

É importante lembrar que alguns campos são indispensáveis em uma transação, assim, caso você não nos envie, os valores default serão utilizados. Os campos são: o número de parcelas InstallmentCount (default: 1), o tipo de operação que você deseja fazer CreditCardOperation (pré-autorização ou autorização e captura instantânea - default: AuthAndCapture), dentre outras.

Retentativa Automática

A Mundi é um gateway que possui todas as suas ferramentas voltadas para aumentar a sua conversão de pagamentos. Dentre elas, temos a retentativa automática, ou seja, em tempo real tentamos autorizar a transação na mesma ou em outra processadora de cartão, caso a transação não seja autorizada. Se você quiser ativar essa funcionalidade fale com a nossa equipe de relacionamento.

Ao receber a resposta da requisição, você poderá receber dois tipos de status de transação: Captured caso a sua transação tenha sido autorizada e capturada ou NotAuthorized para casos que a transação não obteve sucesso na autorização.

Lembre que estamos fazendo uma transação na qual o default é CreditCardOperation = AuthAndCapture.

Adaptando para a sua necessidade

Esse é o request de uma transação básica, ou seja, o mínimo necessário para que você conclua uma venda ou cobrança com poucas informações. Dedicamos a seção referências para detalhar os outros campos que podem ser enviados.

Na Mundi, você também pode integrar seu antifraude, realizar transações recorrentes (para modelos de assinatura), disponibilizar compras com múltiplos cartões e até mesmo guardar o cartão do seu cliente para utilizá-lo na compra com um clique.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 137,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "857a5a07-ff3c-46e3-946e-452e25f149eb",
  "BoletoTransactionResultCollection": [],
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": [
    {
      "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
      "AcquirerName": "Simulator",
      "AcquirerReturnCode": "0",
      "AffiliationCode": "000000000",
      "AmountInCents": 10000,
      "AuthorizationCode": "168147",
      "AuthorizedAmountInCents": 10000,
      "CapturedAmountInCents": 10000,
      "CapturedDate": "2015-12-04T19:51:11",
      "CreditCard": {
        "CreditCardBrand": "Visa",
        "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
        "IsExpiredCreditCard": false,
        "MaskedCreditCardNumber": "411111****1111"
      },
      "CreditCardOperation": "AuthAndCapture",
      "CreditCardTransactionStatus": "Captured",
      "DueDate": null,
      "ExternalTime": 0,
      "PaymentMethodName": "Simulator",
      "RefundedAmountInCents": null,
      "Success": true,
      "TransactionIdentifier": "246844",
      "TransactionKey": "20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
      "TransactionKeyToAcquirer": "20ba05207d0944f8",
      "TransactionReference": "1c65eaf7-df3c-4c7f-af63-f90fb6200996",
      "UniqueSequentialNumber": "636606",
      "VoidedAmountInCents": null
    }
  ],
  "OrderResult": {
    "CreateDate": "2015-12-04T19:51:11",
    "OrderKey": "219d7581-78e2-4aa9-b708-b7c585780bfc",
    "OrderReference": "NúmeroDoPedido"
  }
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "A bandeira Invalida atualmente não é suportada.",
        "ErrorCode": 400,
        "ErrorField": "CreditCardBrand",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 0,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "86765577-3600-40b5-b801-0aab23228566",
  "BoletoTransactionResultCollection": null,
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": null,
  "OrderResult": null
}


{"__v":21,"_id":"55b80bd5aea7c8190058bb76","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55b80b3caea7c8190058bb73","ref":"","in":"body","required":true,"desc":"Valor do boleto em centavos. R$ 1,00 = 100","default":"","type":"int","name":"BoletoTransactionCollection[AmountInCents]"},{"_id":"55b80b3caea7c8190058bb72","ref":"","in":"body","required":false,"desc":"[Número do banco](#banknumber)","default":"","type":"string","name":"BoletoTransactionCollection[BankNumber]"},{"_id":"55b80b3caea7c8190058bb6a","ref":"","in":"body","required":false,"desc":"Instruções que serão impressas no boleto. Esse campo é utilizado para instruir o caixa do banco ao receber o pagamento do boleto. Podem ser registradas por exemplo cobranças de multa e juros","default":"","type":"string","name":"BoletoTransactionCollection[Instructions]"},{"_id":"55b80b3caea7c8190058bb69","ref":"","in":"body","required":false,"desc":"Identificador do pedido na sua base","default":"","type":"datetime","name":"BoletoTransactionCollection[Options[TransactionDateInMerchant]]"},{"_id":"55b80b3caea7c8190058bb68","ref":"","in":"body","required":false,"desc":"Dias para o vencimento do boleto","default":"","type":"int","name":"BoletoTransactionCollectionOptions[DaysToAddInBoletoExpirationDate]]"},{"_id":"55b8ecb884034a0d00e731a5","ref":"","in":"body","required":false,"desc":"Identificador do pedido na sua base","default":"","type":"string","name":"Order[OrderReference]"},{"_id":"5804ce111642890f0080361c","ref":"","in":"body","required":true,"desc":"Tipo de endereço - Residencial","default":"","type":"string","name":"AddressCollection [AddressType]"},{"_id":"5804cec41642890f0080361e","ref":"","in":"body","required":false,"desc":"Complemento do endereço","default":"","type":"string","name":"AddressCollection [Complement]"},{"_id":"5804ce111642890f0080361b","ref":"","in":"body","required":true,"desc":"Cidade do comprador","default":"","type":"string","name":"AddressCollection [City]"},{"_id":"5804ce111642890f0080361a","ref":"","in":"body","required":true,"desc":"País do comprador","default":"","type":"string","name":"AddressCollection [Country]"},{"_id":"5804ce111642890f00803619","ref":"","in":"body","required":true,"desc":"Bairro do comprador","default":"","type":"string","name":"AddressCollection [District]"},{"_id":"5804ce111642890f00803618","ref":"","in":"body","required":true,"desc":"Número da residência do comprador","default":"","type":"string","name":"AddressCollection [Number]"},{"_id":"5804ce111642890f00803617","ref":"","in":"body","required":true,"desc":"Estado do comprador","default":"","type":"string","name":"AddressCollection [State]"},{"_id":"5804ce111642890f00803616","ref":"","in":"body","required":true,"desc":"Rua do comprador","default":"","type":"string","name":"AddressCollection [Street]"},{"_id":"5804ce111642890f00803615","ref":"","in":"body","required":true,"desc":"CEP do comprador","default":"","type":"string","name":"AddressCollection [ZipCode]"},{"_id":"5804ce111642890f00803614","ref":"","in":"body","required":true,"desc":"CPF ou CNPJ do comprador","default":"","type":"string","name":"Buyer [DocumentNumber]"},{"_id":"5804ce111642890f00803613","ref":"","in":"body","required":true,"desc":"Tipo de documento - CPF ou CNPJ","default":"","type":"string","name":"Buyer [DocumentType]"},{"_id":"5804ce111642890f00803612","ref":"","in":"body","required":true,"desc":"Nome do comprador","default":"","type":"string","name":"Buyer [Name]"},{"_id":"5804ce111642890f00803611","ref":"","in":"body","required":true,"desc":"Tipo de comprador - Pessoa Física ou Jurídica","default":"","type":"string","name":"Buyer [PersonType]"}],"results":{"codes":[{"status":201,"language":"json","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 81,\n  \"MerchantKey\": \"87328324-8DA6-459E-9948-5431F5A183FA\",\n  \"RequestKey\": \"302f50f0-a653d-43f3-bf3a-5812ddfe6a5c\",\n  \"BoletoTransactionResultCollection\": [\n    {\n      \"AcquirerReturnCode\": null,\n      \"AcquirerReturnMessage\": null,\n      \"AmountInCents\": 29800,\n      \"Barcode\": \"34191.09065 20674.712938 83456.900009 6 69240000029800\",\n      \"BoletoTransactionStatus\": \"Generated\",\n      \"BoletoUrl\": \"https://transactionv2.mundipaggone.com/Boleto/ViewBoleto.aspx?5b85dda5-d1bb-4bcd-a5f3-0db4ced8d45e\",\n      \"DocumentNumber\": \"315273\",\n      \"NossoNumero\": \"06206847\",\n      \"Success\": true,\n      \"TransactionKey\": \"5b85dda5-d1bb-4bcd-a3f3-0db3ced3d79e\",\n      \"TransactionReference\": \"57dc301e62687\"\n    }\n  ],\n  \"BuyerKey\": \"53870539-ed33-4743-a593-add77bd0630c\",\n  \"CreditCardTransactionResultCollection\": [],\n  \"OrderResult\": {\n    \"CreateDate\": \"2016-09-16T17:47:28\",\n    \"OrderKey\": \"20cfa51f-3333-4136-93b3-220cd433fae2\",\n    \"OrderReference\": \"656500b8\"\n  }\n}","name":""},{"status":400,"language":"json","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"O valor do boleto deve ser maior que zero\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"BoletoTransaction.AmountInCents\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 1,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"02fe6110-8197-447d-9f9f-a252707f63d8\",\n  \"BoletoTransactionResultCollection\": null,\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": null,\n  \"OrderResult\": null\n}","name":""}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Cria a transação.\\nvar transaction = new BoletoTransaction() {\\n    AmountInCents = 10000,\\n    BankNumber = \\\"237\\\",\\n    DocumentNumber = \\\"12345678901\\\",\\n    Instructions = \\\"Pagar antes do vencimento\\\",\\n    Options = new BoletoTransactionOptions() {\\n        DaysToAddInBoletoExpirationDate = 5\\n    }\\n};\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona a transação na requisição.\\n    BoletoTransactionCollection = new Collection<BoletoTransaction>(new BoletoTransaction[] { transaction }),\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    }\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.BoletoTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Url do boleto: {0}\\\", httpResponse.Response.BoletoTransactionResultCollection.FirstOrDefault().BoletoUrl);\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '\\\\vendor\\\\autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria a requisição\\n    $createSaleRequest = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Cria objeto de transação de boleto\\n    $boletoTransaction = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequestData\\\\BoletoTransaction();\\n    $createSaleRequest->addBoletoTransaction($boletoTransaction);\\n    $boletoTransaction\\n    ->setAmountInCents(10000)\\n    //A SDK já referência o número do banco a partir de um ENUM\\n    ->setBankNumber(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\BankEnum::BRADESCO)\\n    ->setDocumentNumber(\\\"12345678901\\\")\\n    ->setInstructions(\\\"Pagar antes do vencimento\\\")\\n    ->getOptions()\\n    ->setDaysToAddInBoletoExpirationDate(5);\\n\\n    //Define dados do pedido\\n    $createSaleRequest->getOrder()\\n    ->setOrderReference('NumeroDoPedido');\\n    \\n    // Cria um objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para a criação da transação\\n    $response = $client->createSale($createSaleRequest);\\n\\n    // Mapeia resposta\\n    $httpStatusCode = $response->isSuccess() ? 201 : 401;\\n  \\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = 400;\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally {\\n    // Devolve resposta\\n    http_response_code($httpStatusCode);\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\\n?>\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates boleto transaction object\\nboletoTransaction = Gateway::BoletoTransaction.new\\n\\n# 100 reais in cents\\nboletoTransaction.AmountInCents = 10000\\nboletoTransaction.BankNumber = '237'\\nboletoTransaction.DocumentNumber = '12345678901'\\nboletoTransaction.Instructions = 'Pagar antes do vencimento'\\nboletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\n\\n# adds to the boleto transaction collection\\ncreateSaleRequest.BoletoTransactionCollection << boletoTransaction\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# coding=utf-8\\n\\nfrom uuid import UUID\\nfrom data_contracts import create_sale_request, boleto_transaction_options, boleto_transaction, order\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n# Define o tipo de moeda e a quantidade de dias para a expiracao do boleto\\nboleto_options = boleto_transaction_options('BRL', 5)\\n\\ntransaction_collection = [ boleto_transaction(10000, bank_number = '237', document_number='12345678901', instructions='Pagar antes do vencimento', options = boleto_options)]\\n\\n#Cria o numero do pedido\\noptions_request = order(order_reference='NumeroDoPedido')\\n\\nrequest = create_sale_request(boleto_transaction_collection=transaction_collection, order=options_request)\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.create_with_request(create_sale_request=request)\\n\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria um objeto de transação de boleto\\nBoletoTransaction boletoTransaction = new BoletoTransaction();\\nboletoTransaction.setAmountInCents(10000L);\\nboletoTransaction.setBankNumber(\\\"237\\\");\\nboletoTransaction.setDocumentNumber(\\\"12345678901\\\");\\nboletoTransaction.setInstructions(\\\"Pagar antes do vencimento\\\");\\n\\n// Cria o objeto de options\\nBoletoTransactionOptions boletoTransactionOptions = new BoletoTransactionOptions();\\nboletoTransactionOptions.setDaysToAddInBoletoExpirationDate(5);\\nboletoTransaction.setOptions(boletoTransactionOptions);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NumeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setBoletoTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getBoletoTransactionCollection().add(boletoTransaction);\\ncreateSaleRequest.setOrder(order);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);\\n\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"BoletoTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"BankNumber\\\": \\\"237\\\",\\n            \\\"Instructions\\\": \\\"Pagar antes do vencimento\\\",\\n            \\\"Options\\\": {\\n                \\\"DaysToAddInBoletoExpirationDate\\\": 5\\n            },\\n            \\\"TransactionReference\\\": \\\"BoletoComBuyerRemessa\\\"\\n        }\\n    ],\\n    \\\"Buyer\\\": {\\n        \\\"AddressCollection\\\": [\\n            {\\n                \\\"AddressType\\\": \\\"Residential\\\",\\n                \\\"City\\\": \\\"Tatooine\\\",\\n                \\\"Complement\\\": \\\"\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Mos Eisley\\\",\\n                \\\"Number\\\": \\\"123\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                \\\"ZipCode\\\": \\\"20001000\\\"\\n            }\\n        ],\\n        \\\"DocumentNumber\\\": \\\"12345678901\\\",\\n        \\\"DocumentType\\\": \\\"CPF\\\",\\n        \\\"Name\\\": \\\"Luke Skywalker\\\",\\n        \\\"PersonType\\\": \\\"Person\\\"\\n    },\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"BoletoComBuyerRemessa\\\"\\n    }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nCom os exemplos acima você já consegue enviar uma requisição de boleto para nosso ambiente de produção.\n[block:callout]\n{\n  \"type\": \"success\",\n  \"title\": \"Registro de Boleto\",\n  \"body\": \"Na novas carteiras com registro, ao gerar um boleto, o envio desses dados é uma exigência do banco. Para saber mais sobre boletos registrados clique [aqui](https://mundipagg.zendesk.com/hc/pt-br/articles/214103126-Registro-de-boletos).\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"success\",\n  \"title\": \"Conciliação de Boleto\",\n  \"body\": \"Ao gerar um boleto na MundiPagg, o status de pago não será atualizado automaticamente. É necessário habilitar o serviço de conciliação de boletos junto ao banco. A nossa equipe de atendimento auxiliará em todo o processo basta entrar em contato.\"\n}\n[/block]\nApós a conciliação, você poderá receber três tipos de status de transação: `Paid` caso o seu boleto tenha sido pago, `OverPaid` para casos em que foi pago um valor superior ao do boleto, ou `UnderPaid` para casos em que foi pago um valor inferior ao do boleto. \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Medidas de Segurança para Boletos\",\n  \"body\": \"Fraudadores criaram mecanismos para alterar os dados em boletos online. Para evitar esse tipo de problema é possível emitir o boleto em imagem. Se você deseja utilizar essa função envie um e-mail para a nossa equipe de relacionamento.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Boletos com antifraude\",\n  \"body\": \"Caso sua loja tenha o antifraude ativo, ao serem criados os pedidos passarão pela validação dos mesmos campos que as transações de cartão, sendo obrigatório o envio dos campos do Buyer, ShoppingCart e BuyerAddress.\"\n}\n[/block]","category":"555fb08928249c1900618a66","createdAt":"2015-07-28T23:10:13.019Z","editedParams":true,"editedParams2":true,"excerpt":"Muitos ecommerces também utilizam boletos como meio de pagamento para seus clientes.\nColocamos aqui um exemplo de como criar um boleto na nossa API! Lembrando que você precisa cadastrar sua agência e conta com a nossa área de relacionamento com clientes!","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":3,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"boleto","sync_unique":"","title":"Como criar boletos","type":"post","updates":["55f70125a7ceef0d00251c17","560049880c703d1900953057","5605908ad895120d00a40b31","5609843aa7b2590d0089ebfc","560c181cb3e65b2300a120b9","560cb0e3ac2859170013fabf","5619211388fdee0d00fb9c4e","56461701da14e70d0027cde0","566215738036b40d0073883c","5665b79e3889610d0008a286","5669907fc3de130d004417a9","566b1cfc47ebaf1900fe6661","56bc9097e0b1580d00b5d0ea"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postComo criar boletos

Muitos ecommerces também utilizam boletos como meio de pagamento para seus clientes. Colocamos aqui um exemplo de como criar um boleto na nossa API! Lembrando que você precisa cadastrar sua agência e conta com a nossa área de relacionamento com clientes!

Body Params

BoletoTransactionCollection[AmountInCents]:
required
integer
Valor do boleto em centavos. R$ 1,00 = 100
BoletoTransactionCollection[BankNumber]:
string
[Número do banco](#banknumber)
BoletoTransactionCollection[Instructions]:
string
Instruções que serão impressas no boleto. Esse campo é utilizado para instruir o caixa do banco ao receber o pagamento do boleto. Podem ser registradas por exemplo cobranças de multa e juros
BoletoTransactionCollection[Options[TransactionDateInMerchant]:
datetime
Identificador do pedido na sua base
BoletoTransactionCollectionOptions[DaysToAddInBoletoExpirationDate]:
integer
Dias para o vencimento do boleto
Order[OrderReference]:
string
Identificador do pedido na sua base
AddressCollection [AddressType]:
required
string
Tipo de endereço - Residencial
AddressCollection [Complement]:
string
Complemento do endereço
AddressCollection [City]:
required
string
Cidade do comprador
AddressCollection [Country]:
required
string
País do comprador
AddressCollection [District]:
required
string
Bairro do comprador
AddressCollection [Number]:
required
string
Número da residência do comprador
AddressCollection [State]:
required
string
Estado do comprador
AddressCollection [Street]:
required
string
Rua do comprador
AddressCollection [ZipCode]:
required
string
CEP do comprador
Buyer [DocumentNumber]:
required
string
CPF ou CNPJ do comprador
Buyer [DocumentType]:
required
string
Tipo de documento - CPF ou CNPJ
Buyer [Name]:
required
string
Nome do comprador
Buyer [PersonType]:
required
string
Tipo de comprador - Pessoa Física ou Jurídica
// Cria a transação.
var transaction = new BoletoTransaction() {
    AmountInCents = 10000,
    BankNumber = "237",
    DocumentNumber = "12345678901",
    Instructions = "Pagar antes do vencimento",
    Options = new BoletoTransactionOptions() {
        DaysToAddInBoletoExpirationDate = 5
    }
};

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona a transação na requisição.
    BoletoTransactionCollection = new Collection<BoletoTransaction>(new BoletoTransaction[] { transaction }),
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    }
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.BoletoTransactionResultCollection != null) {
    Console.WriteLine("Url do boleto: {0}", httpResponse.Response.BoletoTransactionResultCollection.FirstOrDefault().BoletoUrl);
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '\vendor\autoload.php');

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria a requisição
    $createSaleRequest = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Cria objeto de transação de boleto
    $boletoTransaction = new \Gateway\One\DataContract\Request\CreateSaleRequestData\BoletoTransaction();
    $createSaleRequest->addBoletoTransaction($boletoTransaction);
    $boletoTransaction
    ->setAmountInCents(10000)
    //A SDK já referência o número do banco a partir de um ENUM
    ->setBankNumber(\Gateway\One\DataContract\Enum\BankEnum::BRADESCO)
    ->setDocumentNumber("12345678901")
    ->setInstructions("Pagar antes do vencimento")
    ->getOptions()
    ->setDaysToAddInBoletoExpirationDate(5);

    //Define dados do pedido
    $createSaleRequest->getOrder()
    ->setOrderReference('NumeroDoPedido');
    
    // Cria um objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada para a criação da transação
    $response = $client->createSale($createSaleRequest);

    // Mapeia resposta
    $httpStatusCode = $response->isSuccess() ? 201 : 401;
  
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = 400;
    $response = array("message" => $error->getMessage());
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally {
    // Devolve resposta
    http_response_code($httpStatusCode);
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
?>
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates boleto transaction object
boletoTransaction = Gateway::BoletoTransaction.new

# 100 reais in cents
boletoTransaction.AmountInCents = 10000
boletoTransaction.BankNumber = '237'
boletoTransaction.DocumentNumber = '12345678901'
boletoTransaction.Instructions = 'Pagar antes do vencimento'
boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5

# creates request object for transaction creation
createSaleRequest = Gateway::CreateSaleRequest.new

# adds to the boleto transaction collection
createSaleRequest.BoletoTransactionCollection << boletoTransaction
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# coding=utf-8

from uuid import UUID
from data_contracts import create_sale_request, boleto_transaction_options, boleto_transaction, order
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum

# Define o tipo de moeda e a quantidade de dias para a expiracao do boleto
boleto_options = boleto_transaction_options('BRL', 5)

transaction_collection = [ boleto_transaction(10000, bank_number = '237', document_number='12345678901', instructions='Pagar antes do vencimento', options = boleto_options)]

#Cria o numero do pedido
options_request = order(order_reference='NumeroDoPedido')

request = create_sale_request(boleto_transaction_collection=transaction_collection, order=options_request)

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.create_with_request(create_sale_request=request)

json_response = http_response.json()
// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria um objeto de transação de boleto
BoletoTransaction boletoTransaction = new BoletoTransaction();
boletoTransaction.setAmountInCents(10000L);
boletoTransaction.setBankNumber("237");
boletoTransaction.setDocumentNumber("12345678901");
boletoTransaction.setInstructions("Pagar antes do vencimento");

// Cria o objeto de options
BoletoTransactionOptions boletoTransactionOptions = new BoletoTransactionOptions();
boletoTransactionOptions.setDaysToAddInBoletoExpirationDate(5);
boletoTransaction.setOptions(boletoTransactionOptions);

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NumeroDoPedido");

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setBoletoTransactionCollection(new ArrayList<>());
createSaleRequest.getBoletoTransactionCollection().add(boletoTransaction);
createSaleRequest.setOrder(order);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);
{
    "BoletoTransactionCollection": [
        {
            "AmountInCents": 10000,
            "BankNumber": "237",
            "Instructions": "Pagar antes do vencimento",
            "Options": {
                "DaysToAddInBoletoExpirationDate": 5
            },
            "TransactionReference": "BoletoComBuyerRemessa"
        }
    ],
    "Buyer": {
        "AddressCollection": [
            {
                "AddressType": "Residential",
                "City": "Tatooine",
                "Complement": "",
                "Country": "Brazil",
                "District": "Mos Eisley",
                "Number": "123",
                "State": "RJ",
                "Street": "Mos Eisley Cantina",
                "ZipCode": "20001000"
            }
        ],
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF",
        "Name": "Luke Skywalker",
        "PersonType": "Person"
    },
    "Order": {
        "OrderReference": "BoletoComBuyerRemessa"
    }
}

Com os exemplos acima você já consegue enviar uma requisição de boleto para nosso ambiente de produção.

Registro de Boleto

Na novas carteiras com registro, ao gerar um boleto, o envio desses dados é uma exigência do banco. Para saber mais sobre boletos registrados clique aqui.

Conciliação de Boleto

Ao gerar um boleto na MundiPagg, o status de pago não será atualizado automaticamente. É necessário habilitar o serviço de conciliação de boletos junto ao banco. A nossa equipe de atendimento auxiliará em todo o processo basta entrar em contato.

Após a conciliação, você poderá receber três tipos de status de transação: Paid caso o seu boleto tenha sido pago, OverPaid para casos em que foi pago um valor superior ao do boleto, ou UnderPaid para casos em que foi pago um valor inferior ao do boleto.

Medidas de Segurança para Boletos

Fraudadores criaram mecanismos para alterar os dados em boletos online. Para evitar esse tipo de problema é possível emitir o boleto em imagem. Se você deseja utilizar essa função envie um e-mail para a nossa equipe de relacionamento.

Boletos com antifraude

Caso sua loja tenha o antifraude ativo, ao serem criados os pedidos passarão pela validação dos mesmos campos que as transações de cartão, sendo obrigatório o envio dos campos do Buyer, ShoppingCart e BuyerAddress.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 81,
  "MerchantKey": "87328324-8DA6-459E-9948-5431F5A183FA",
  "RequestKey": "302f50f0-a653d-43f3-bf3a-5812ddfe6a5c",
  "BoletoTransactionResultCollection": [
    {
      "AcquirerReturnCode": null,
      "AcquirerReturnMessage": null,
      "AmountInCents": 29800,
      "Barcode": "34191.09065 20674.712938 83456.900009 6 69240000029800",
      "BoletoTransactionStatus": "Generated",
      "BoletoUrl": "https://transactionv2.mundipaggone.com/Boleto/ViewBoleto.aspx?5b85dda5-d1bb-4bcd-a5f3-0db4ced8d45e",
      "DocumentNumber": "315273",
      "NossoNumero": "06206847",
      "Success": true,
      "TransactionKey": "5b85dda5-d1bb-4bcd-a3f3-0db3ced3d79e",
      "TransactionReference": "57dc301e62687"
    }
  ],
  "BuyerKey": "53870539-ed33-4743-a593-add77bd0630c",
  "CreditCardTransactionResultCollection": [],
  "OrderResult": {
    "CreateDate": "2016-09-16T17:47:28",
    "OrderKey": "20cfa51f-3333-4136-93b3-220cd433fae2",
    "OrderReference": "656500b8"
  }
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "O valor do boleto deve ser maior que zero",
        "ErrorCode": 400,
        "ErrorField": "BoletoTransaction.AmountInCents",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 1,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "02fe6110-8197-447d-9f9f-a252707f63d8",
  "BoletoTransactionResultCollection": null,
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": null,
  "OrderResult": null
}


{"__v":1,"_id":"5852c21a60eb6a2300f56b8c","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55b80b3caea7c8190058bb73","ref":"","in":"body","required":true,"desc":"Valor da transação em centavos. R$ 100,00 = 10000","default":"","type":"int","name":"OnlineDebitTransaction[AmountInCents]"},{"_id":"55b80b3caea7c8190058bb72","ref":"","in":"body","required":true,"desc":"Banco do comprador","default":"","type":"string","name":"OnlineDebitTransaction[Bank]"},{"_id":"585a8b70a710352300edb904","ref":"","in":"body","required":true,"desc":"CPF ou CNPJ do comprador","default":"","type":"string","name":"Buyer[DocumentNumber]"},{"_id":"585a8b70a710352300edb903","ref":"","in":"body","required":true,"desc":"Tipo de documento - CPF ou CNPJ","default":"","type":"string","name":"Buyer[DocumentType]"},{"_id":"585a8b70a710352300edb902","ref":"","in":"body","required":true,"desc":"Nome do Comprador","default":"","type":"string","name":"Buyer[Name]"},{"_id":"585a8b70a710352300edb901","ref":"","in":"body","required":true,"desc":"Tipo de endereço - Residencial","default":"","type":"string","name":"AddressCollection[AddressType]"},{"_id":"585a8b70a710352300edb900","ref":"","in":"body","required":true,"desc":"Complemento do endereço","default":"","type":"string","name":"AddressCollection[Complement]"},{"_id":"585a8b70a710352300edb8ff","ref":"","in":"body","required":true,"desc":"Cidade do comprador","default":"","type":"string","name":"AddressCollection[City]"},{"_id":"585a8b70a710352300edb8fe","ref":"","in":"body","required":true,"desc":"País do comprador","default":"","type":"string","name":"AddressCollection[Country]"},{"_id":"585a8b70a710352300edb8fd","ref":"","in":"body","required":true,"desc":"Bairro do comprador","default":"","type":"string","name":"AddressCollection[District]"},{"_id":"585a8b70a710352300edb8fc","ref":"","in":"body","required":true,"desc":"Número da residência do comprador","default":"","type":"string","name":"AddressCollection[Number]"},{"_id":"585a8b70a710352300edb8fb","ref":"","in":"body","required":true,"desc":"Estado do comprador","default":"","type":"string","name":"AddressCollection[State]"},{"_id":"585a8b70a710352300edb8fa","ref":"","in":"body","required":true,"desc":"Rua do comprador","default":"","type":"string","name":"AddressCollection[Street]"},{"_id":"585a8b70a710352300edb8f9","ref":"","in":"body","required":true,"desc":"Cep do comprador","default":"","type":"string","name":"AddressCollection[ZipCode]"}],"results":{"codes":[{"language":"json","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 154,\n  \"MerchantKey\": \"8a2dd57f-1ed9-4153-b4ce-69683efadad5\",\n  \"RequestKey\": \"1c289ab3-e7df-4c25-8b73-fe2dae361a7b\",\n  \"BoletoTransactionResultCollection\": [],\n  \"BuyerKey\": \"454496d4-5905-43c9-9afd-a988ac237af0\",\n  \"CreditCardTransactionResultCollection\": [],\n  \"OnlineDebitTransactionResult\": null {\n    \"AmountInCents\": 123,\n    \"OnlineDebitTransactionStatus\": \"OpenedPendingPayment\",\n    \"PaymentUrl\": \"https://stgonlinedebit.mundipaggone.com/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388\",\n    \"Success\": true,\n    \"TransactionKey\": \"d33a0b3d-cafc-4e65-b7a9-5f3e72259388\",\n    \"TransactionKeyToBank\": \"9\"\n  },\n  \"OrderResult\": {\n    \"CreateDate\": \"2016-12-15T16:16:57\",\n    \"OrderKey\": \"1ca26c41-3c2b-410b-94d7-868d3a15c66e\",\n    \"OrderReference\": \"NumeroDoPedido\"\n  }\n}","status":201},{"code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"86765577-3600-40b5-b801-0aab23228566\",\n  \"BoletoTransactionResultCollection\": null,\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": null,\n  \"OrderResult\": null\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Atualização das SDKs em desenvolvimento\",\n  \"body\": \"A MundiPagg disponibilizará em breve as SDKs atualizadas para transações de débito.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n\\t    \\\"Buyer\\\": {\\n        \\\"AddressCollection\\\": [\\n            {\\n                \\\"AddressType\\\": \\\"Residential\\\",\\n                \\\"City\\\": \\\"Cidade de Nome enorme para dar erro\\\",\\n                \\\"Complement\\\": \\\"\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Mos Eisley\\\",\\n                \\\"Number\\\": \\\"123\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                \\\"ZipCode\\\": \\\"20001000\\\"\\n            }\\n        ],\\n        \\\"DocumentNumber\\\": \\\"12345678901\\\",\\n        \\\"DocumentType\\\": \\\"CPF\\\",\\n        \\\"Name\\\": \\\"Luke Skywalker\\\"\\n    },\\n    \\\"OnlineDebitTransaction\\\":\\n    {\\n        \\\"AmountInCents\\\": 654,\\n        \\\"Bank\\\": \\\"Itau\\\"\\n    },\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"201612201205\\\"\\n    }\\n}\\n\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nApesar de ser um campo não obrigatório, o ``OrderReference`` é uma informação importante para a sua gestão. Assim, aconselhamos que você **sempre** nos envie esse campo.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Débito para Sandbox em desenvolvimento\",\n  \"body\": \"A MundiPagg está desenvolvendo uma forma de testar o débito em no nosso Sandbox. \\nEm breve estará disponível para você.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Redirecionando o comprador para o pagamento\"\n}\n[/block]\nA Mundi oferece algumas formas para que o comprador seja redirecionado para tela de pagamento do banco escolhido:\n\n- Opção 1: JavaScript\nLojista utiliza o nosso \"Mundipagg.one.onlindedebit.js\" para oferecer uma experiência sem telas intermediárias entre o site dele e o internet banking do comprador.\n\nPara isso, é necessário atribuir o TransactionKey da transação ao atributo \"data-MundiOnlineDebit-transaction\"\n\nPara que a navegação comece, o lojista deve chamar a função \"MundipaggOnlineDebit.init()\" do nosso script;\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<div style=\\\"align-self:center; text-align:center; vertical-align:central; border:solid; width: 320px; height: 400px; margin:0 auto;\\\">\\n        Seu pagamento está sendo processado. <br />Ao terminar a transação, no seu internet banking, e fechar a janela do pagamento você será redirecionado para o site da loja.        <br /> \\n        \\n        <div style=\\\"text-align:center; vertical-align:central; \\\" data-MundiOnlineDebit-message>< / div>       \\n\\n    < / div>\\n      \\n    <script src=\\\"https://onlinedebit.mundipaggone.com:4443/Scripts/mundipagg.one.onlinedebit.js\\\" data-MundiOnlineDebit-transaction=\\\"TransactionKey\\\"></script>\\n    <script>\\n      //\\n      // Qualquer 'trigger' p/ iniciar a aplicação\\n      //\\n      (function () {\\n          MundipaggOnlineDebit.init();\\n      })();\\n    < / script>\",\n      \"language\": \"html\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Tratamento de bloqueio de pop-up\",\n  \"body\": \"Caso o bloqueador de pop-up do browser do cliente esteja ativo, nosso script irá identificar e tornar visível a div  marcada com o atributo \\\"data-MundiOnlineDebit-message\\\" que possui um aviso sobre a Pop-up e um link para que o cliente continue o pagamento sem a necessidade de desbloquear Pop-up.\"\n}\n[/block]\n- Opção 2: Redirecionamento\nLojista irá redirecionar o Browser do cliente para a URL que veio na resposta da criação da transação de débito ``OnlineDebitTransactionResult.PaymentUrl``\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<a href=\\\"https://onlinedebit.mundipaggone.com:4443/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388\\\"> Clique Aqui< / a>para continuar com o pagamento.\",\n      \"language\": \"html\"\n    }\n  ]\n}\n[/block]\n- Opção 3: Nova Aba\nLojista irá abrir uma nova janela com a Url que veio na resposta da criação da transação de débito ``OnlineDebitTransactionResult.PaymentUrl``\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<FORM ACTION=\\\"https://onlinedebit.mundipaggone.com:4443/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388\\\" method=\\\"get\\\" target=\\\"_blank\\\" id=\\\"paymentForm\\\">         \\n< / FORM>\\n\\n<script>\\n  document.getElementById('paymentForm').submit();\\n< / script>\",\n      \"language\": \"html\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Finalização da Transação\"\n}\n[/block]\nApós o fechamento da tela do banco, a Mundipagg irá redirecionar o cliente para a página de sucesso ou falha cadastrada junto a Mundi:\n\n- Pagina de falha: Será chamada quando identificarmos qualquer inconsistência na transação que impeça ela de ter sido paga corretamente. Dando ao lojista a chance de oferecer outro meio de pagamento para o cliente concluir a compra.\n\n- Pagina de sucesso: será chamada quando a Mundi não identificar inconsistência na transação e a mesma esteja em um estado de espera pela confirmação do pagamento junto ao banco. Recomendamos que esta seja uma tela de agradecimento pela compra com um aviso de \"Aguarde enquanto seu pagamento está sendo processado\".\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Tratamento do Status da transação\",\n  \"body\": \"A transação só deve ser considerada finalizada pelo lojista após recebimento do post de notificação da Mundi informando que a mesma está Paga (status ``Paid``) ou Não Paga (Status ``NotPaid``).\\n\\nNo caso de status Paid, o fluxo normal de liberação do pedido deve ser seguido. Sendo o Status NotPaid ou WithError, caso o cliente acesse a URL de pagamento posteriormente ele será redirecionado para a página de falha. Sugerimos, assim, que sua página de falha apresente pro cliente uma nova opção de pagamento para o pedido. \\n\\nA transação permanecerá com o Status `OpenedPendingPayment` até que o cliente efetue o pagamento ou a mesma seja marcada para `NotPaid`\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"A transferência bancária só pode ser feita entre duas contas de um mesmo banco. Oferecendo débito online do Itaú em seu ecommerce, por exemplo, somente clientes Itaú poderão utilizá-lo. Se você deseja aceitar esta forma de pagamento em mais de um banco é preciso abrir uma conta em cada um deles e cadastrá-los separadamente na Mundi.\",\n  \"title\": \"Aceitando débito online em mais de um banco\"\n}\n[/block]","category":"555fb08928249c1900618a66","createdAt":"2016-12-15T16:17:30.780Z","excerpt":"Transferência bancária entre contas, também tida como opção de débito online nos sites, é um meio de pagamento que possibilita ao lojista receber o pagamento direto em sua conta bancária com o crédito acontecendo no momento em que o pagamento é feito pelo comprador.","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":5,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"transferencia-entre-contas","sync_unique":"","title":"Realizando transações Transferência Bancária","type":"post","updates":[],"user":"5591c3065781ae0d002367a9","version":"555fb08828249c1900618a65","childrenPages":[]}

postRealizando transações Transferência Bancária

Transferência bancária entre contas, também tida como opção de débito online nos sites, é um meio de pagamento que possibilita ao lojista receber o pagamento direto em sua conta bancária com o crédito acontecendo no momento em que o pagamento é feito pelo comprador.

Body Params

OnlineDebitTransaction[AmountInCents]:
required
integer
Valor da transação em centavos. R$ 100,00 = 10000
OnlineDebitTransaction[Bank]:
required
string
Banco do comprador
Buyer[DocumentNumber]:
required
string
CPF ou CNPJ do comprador
Buyer[DocumentType]:
required
string
Tipo de documento - CPF ou CNPJ
Buyer[Name]:
required
string
Nome do Comprador
AddressCollection[AddressType]:
required
string
Tipo de endereço - Residencial
AddressCollection[Complement]:
required
string
Complemento do endereço
AddressCollection[City]:
required
string
Cidade do comprador
AddressCollection[Country]:
required
string
País do comprador
AddressCollection[District]:
required
string
Bairro do comprador
AddressCollection[Number]:
required
string
Número da residência do comprador
AddressCollection[State]:
required
string
Estado do comprador
AddressCollection[Street]:
required
string
Rua do comprador
AddressCollection[ZipCode]:
required
string
Cep do comprador

Atualização das SDKs em desenvolvimento

A MundiPagg disponibilizará em breve as SDKs atualizadas para transações de débito.

{
	    "Buyer": {
        "AddressCollection": [
            {
                "AddressType": "Residential",
                "City": "Cidade de Nome enorme para dar erro",
                "Complement": "",
                "Country": "Brazil",
                "District": "Mos Eisley",
                "Number": "123",
                "State": "RJ",
                "Street": "Mos Eisley Cantina",
                "ZipCode": "20001000"
            }
        ],
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF",
        "Name": "Luke Skywalker"
    },
    "OnlineDebitTransaction":
    {
        "AmountInCents": 654,
        "Bank": "Itau"
    },
    "Order": {
        "OrderReference": "201612201205"
    }
}

Apesar de ser um campo não obrigatório, o OrderReference é uma informação importante para a sua gestão. Assim, aconselhamos que você sempre nos envie esse campo.

Débito para Sandbox em desenvolvimento

A MundiPagg está desenvolvendo uma forma de testar o débito em no nosso Sandbox.
Em breve estará disponível para você.

Redirecionando o comprador para o pagamento

A Mundi oferece algumas formas para que o comprador seja redirecionado para tela de pagamento do banco escolhido:

  • Opção 1: JavaScript
    Lojista utiliza o nosso "Mundipagg.one.onlindedebit.js" para oferecer uma experiência sem telas intermediárias entre o site dele e o internet banking do comprador.

Para isso, é necessário atribuir o TransactionKey da transação ao atributo "data-MundiOnlineDebit-transaction"

Para que a navegação comece, o lojista deve chamar a função "MundipaggOnlineDebit.init()" do nosso script;

<div style="align-self:center; text-align:center; vertical-align:central; border:solid; width: 320px; height: 400px; margin:0 auto;">
        Seu pagamento está sendo processado. <br />Ao terminar a transação, no seu internet banking, e fechar a janela do pagamento você será redirecionado para o site da loja.        <br /> 
        
        <div style="text-align:center; vertical-align:central; " data-MundiOnlineDebit-message>< / div>       

    < / div>
      
    <script src="https://onlinedebit.mundipaggone.com:4443/Scripts/mundipagg.one.onlinedebit.js" data-MundiOnlineDebit-transaction="TransactionKey"></script>
    <script>
      //
      // Qualquer 'trigger' p/ iniciar a aplicação
      //
      (function () {
          MundipaggOnlineDebit.init();
      })();
    < / script>

Tratamento de bloqueio de pop-up

Caso o bloqueador de pop-up do browser do cliente esteja ativo, nosso script irá identificar e tornar visível a div marcada com o atributo "data-MundiOnlineDebit-message" que possui um aviso sobre a Pop-up e um link para que o cliente continue o pagamento sem a necessidade de desbloquear Pop-up.

  • Opção 2: Redirecionamento
    Lojista irá redirecionar o Browser do cliente para a URL que veio na resposta da criação da transação de débito OnlineDebitTransactionResult.PaymentUrl
<a href="https://onlinedebit.mundipaggone.com:4443/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388"> Clique Aqui< / a>para continuar com o pagamento.
  • Opção 3: Nova Aba
    Lojista irá abrir uma nova janela com a Url que veio na resposta da criação da transação de débito OnlineDebitTransactionResult.PaymentUrl
<FORM ACTION="https://onlinedebit.mundipaggone.com:4443/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388" method="get" target="_blank" id="paymentForm">         
< / FORM>

<script>
  document.getElementById('paymentForm').submit();
< / script>

Finalização da Transação

Após o fechamento da tela do banco, a Mundipagg irá redirecionar o cliente para a página de sucesso ou falha cadastrada junto a Mundi:

  • Pagina de falha: Será chamada quando identificarmos qualquer inconsistência na transação que impeça ela de ter sido paga corretamente. Dando ao lojista a chance de oferecer outro meio de pagamento para o cliente concluir a compra.

  • Pagina de sucesso: será chamada quando a Mundi não identificar inconsistência na transação e a mesma esteja em um estado de espera pela confirmação do pagamento junto ao banco. Recomendamos que esta seja uma tela de agradecimento pela compra com um aviso de "Aguarde enquanto seu pagamento está sendo processado".

Tratamento do Status da transação

A transação só deve ser considerada finalizada pelo lojista após recebimento do post de notificação da Mundi informando que a mesma está Paga (status Paid) ou Não Paga (Status NotPaid).

No caso de status Paid, o fluxo normal de liberação do pedido deve ser seguido. Sendo o Status NotPaid ou WithError, caso o cliente acesse a URL de pagamento posteriormente ele será redirecionado para a página de falha. Sugerimos, assim, que sua página de falha apresente pro cliente uma nova opção de pagamento para o pedido.

A transação permanecerá com o Status OpenedPendingPayment até que o cliente efetue o pagamento ou a mesma seja marcada para NotPaid

Aceitando débito online em mais de um banco

A transferência bancária só pode ser feita entre duas contas de um mesmo banco. Oferecendo débito online do Itaú em seu ecommerce, por exemplo, somente clientes Itaú poderão utilizá-lo. Se você deseja aceitar esta forma de pagamento em mais de um banco é preciso abrir uma conta em cada um deles e cadastrá-los separadamente na Mundi.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 154,
  "MerchantKey": "8a2dd57f-1ed9-4153-b4ce-69683efadad5",
  "RequestKey": "1c289ab3-e7df-4c25-8b73-fe2dae361a7b",
  "BoletoTransactionResultCollection": [],
  "BuyerKey": "454496d4-5905-43c9-9afd-a988ac237af0",
  "CreditCardTransactionResultCollection": [],
  "OnlineDebitTransactionResult": null {
    "AmountInCents": 123,
    "OnlineDebitTransactionStatus": "OpenedPendingPayment",
    "PaymentUrl": "https://stgonlinedebit.mundipaggone.com/OnlineDebit/Checkout/d33a0b3d-cafc-4e65-b7a9-5f3e72259388",
    "Success": true,
    "TransactionKey": "d33a0b3d-cafc-4e65-b7a9-5f3e72259388",
    "TransactionKeyToBank": "9"
  },
  "OrderResult": {
    "CreateDate": "2016-12-15T16:16:57",
    "OrderKey": "1ca26c41-3c2b-410b-94d7-868d3a15c66e",
    "OrderReference": "NumeroDoPedido"
  }
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "A bandeira Invalida atualmente não é suportada.",
        "ErrorCode": 400,
        "ErrorField": "CreditCardBrand",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 0,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "86765577-3600-40b5-b801-0aab23228566",
  "BoletoTransactionResultCollection": null,
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": null,
  "OrderResult": null
}


{"__v":46,"_id":"559c4ede4ac6411700d856dd","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"Agora que você já construiu sua integração, vamos passar do ambiente de teste para o ambiente de produção e criar transações reais!\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"MerchantKey de Produção\"\n}\n[/block]\nA MerchantKey de produção só é criada quando você vira um cliente Mundi! Entre em contato com a nossa área comercial para conhecer nossos planos: **comercial@mundipagg.com**.\n\nSe você já é nosso cliente, solicite a MerchantKey à nossa área de Relacionamento com o Cliente, pelo email: **suporte@mundipagg.com**.\n\nVocê deve substituir no cabeçalho das suas requisições a MerchantKey do Sandbox para a de Produção.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Configurando os meios de pagamento\"\n}\n[/block]\nNo Sandbox você estava simulando transações reais. Ao mudar para o ambiente de produção, precisamos cadastrar em nossa ferramenta as afiliações dos meios de pagamento que você utilizará (cartão de crédito, boleto, débito online, dentre outros). Ao requisitar sua MerchantKey de produção, você receberá um login para o Portal de produção da MundiPagg. \n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Seu Sandbox não possui nenhuma conexão com a sua conta em produção. Nada criado nele será transferido para o ambiente de produção.\",\n  \"title\": \"Sandbox\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Endpoint de Produção\"\n}\n[/block]\nLembre-se de apontar suas requisições para o nosso endpoint de produção.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"https://transactionv2.mundipaggone.com\",\n  \"title\": \"Endpoint de Produção\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Testando transações em produção\"\n}\n[/block]\nVocê deve fazer testes no ambiente de produção, criando transações com valores baixos para cada meio de pagamento configurado\n\nEnvie diferentes transações, com diferentes faixas de parcelamento, bandeiras, bancos, etc. Confirme também o recebimento das mesmas, normalmente elas são depositadas 30 dias depois da captura.\n\nVale ressaltar que os seus recebimentos são repassados pelas adquirentes, quando forem transações de cartões de crédito, e pelo banco quando forem transações de boleto ou débito online (transferência bancária).\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Custo das transações em ambiente de produção\",\n  \"body\": \"Como no ambiente de produção você deve usar formas de pagamento reais, as transações feitas em produção serão realmente cobradas. Isso significa que cada transação que você fizer será debitada do meio de pagamento utilizado e as taxas dos serviços envolvidos serão cobradas. Certifique-se do envio de valores baixos e de poucas transações.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Boas vendas!\"\n}\n[/block]\n**Agora você** já está pronto para realizar suas vendas! =)\n\nFizemos seções avançadas para você construir seu ecommerce conforme suas necessidades com diferentes ferramentas, meios de pagamentos e funcionalidades!\n\nAproveite!","category":"555fb08928249c1900618a66","createdAt":"2015-07-07T22:12:46.605Z","excerpt":"Colocando a MundiPagg no ar!","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":6,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"vamos-entrar-em-producao","sync_unique":"","title":"Vamos entrar em produção!?","type":"basic","updates":["559fce294a80980d00523430","567aea6641a69d0d00cdfd40"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Vamos entrar em produção!?

Colocando a MundiPagg no ar!

Agora que você já construiu sua integração, vamos passar do ambiente de teste para o ambiente de produção e criar transações reais!

MerchantKey de Produção

A MerchantKey de produção só é criada quando você vira um cliente Mundi! Entre em contato com a nossa área comercial para conhecer nossos planos: comercial@mundipagg.com.

Se você já é nosso cliente, solicite a MerchantKey à nossa área de Relacionamento com o Cliente, pelo email: suporte@mundipagg.com.

Você deve substituir no cabeçalho das suas requisições a MerchantKey do Sandbox para a de Produção.

Configurando os meios de pagamento

No Sandbox você estava simulando transações reais. Ao mudar para o ambiente de produção, precisamos cadastrar em nossa ferramenta as afiliações dos meios de pagamento que você utilizará (cartão de crédito, boleto, débito online, dentre outros). Ao requisitar sua MerchantKey de produção, você receberá um login para o Portal de produção da MundiPagg.

Sandbox

Seu Sandbox não possui nenhuma conexão com a sua conta em produção. Nada criado nele será transferido para o ambiente de produção.

Endpoint de Produção

Lembre-se de apontar suas requisições para o nosso endpoint de produção.

Testando transações em produção

Você deve fazer testes no ambiente de produção, criando transações com valores baixos para cada meio de pagamento configurado

Envie diferentes transações, com diferentes faixas de parcelamento, bandeiras, bancos, etc. Confirme também o recebimento das mesmas, normalmente elas são depositadas 30 dias depois da captura.

Vale ressaltar que os seus recebimentos são repassados pelas adquirentes, quando forem transações de cartões de crédito, e pelo banco quando forem transações de boleto ou débito online (transferência bancária).

Custo das transações em ambiente de produção

Como no ambiente de produção você deve usar formas de pagamento reais, as transações feitas em produção serão realmente cobradas. Isso significa que cada transação que você fizer será debitada do meio de pagamento utilizado e as taxas dos serviços envolvidos serão cobradas. Certifique-se do envio de valores baixos e de poucas transações.

Boas vendas!

Agora você já está pronto para realizar suas vendas! =)

Fizemos seções avançadas para você construir seu ecommerce conforme suas necessidades com diferentes ferramentas, meios de pagamentos e funcionalidades!

Aproveite!

{"__v":50,"_id":"55809bbc35c9ba1900afc304","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"A nossa API valida cada um dos campos enviados na requisição (*request*) antes de prosseguir com a criação, consulta ou gerenciamento dos pedidos, transações e recursos.\n\nUtilizamos os códigos de resposta convencionais do HTTP para indicar o sucesso ou a falha de uma requisição. \n\nSendo assim, códigos **2xx** indicam sucesso, **4xx ** indicam erro por algum dado informado incorretamente (por exemplo, algum campo obrigatório não enviado ou um cartão sem data de validade) e **5xx** indicando erro nos servidores da MundiPagg.\n\n**Tabela dos HTTP Status Code:**\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"`200`\",\n    \"1-0\": \"`400`\",\n    \"2-0\": \"`404`\",\n    \"0-1\": \"OK\",\n    \"0-2\": \"Sucesso\",\n    \"1-1\": \"Bad Request\",\n    \"h-0\": \"Código\",\n    \"h-1\": \"Nome\",\n    \"h-2\": \"Descrição\",\n    \"3-0\": \"`500`\",\n    \"4-0\": \"`504`\",\n    \"1-2\": \"Algum campo obrigatório não foi enviado ou foi enviado de maneira incorreta\",\n    \"2-2\": \"Recurso não encontrado\",\n    \"3-2\": \"Erro nos servidores da MundiPagg\",\n    \"4-2\": \"Erro de comunicação entre a MundiPagg e a adquirente em questão\",\n    \"2-1\": \"Not Found\",\n    \"3-1\": \"Internal Server Error\",\n    \"4-1\": \"Timeout\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\nToda resposta (*response*) contém os campos Success e ErrorReport. \n\nO campo Success é um booleano que informa se a operação foi executada com sucesso (true) ou não (false). \n\nJá o campo ErrorReport pode conter diferentes tipos de erros. Cada item de erro tem os seguintes campos:\n\n**ErrorCode:** Código identificador do erro\n**ErrorField:** Campo que originou o erro\n**Description:** Descrição do erro\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Se a sua loja possui algum sistema antifraude habilitado na MundiPagg, os dados do carrinho de compras e do comprador são validados pela nossa API.\",\n  \"title\": \"Sistemas Antifraude\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Header da requisição\"\n}\n[/block]\nNo header da requisição você deve informar a MerchantKey, o conteúdo do POST e como você quer receber a resposta:\n\nMerchantKey: '87328324-8DA6-459E-9948-5431F5A183FA'\nContent-Type: application/json\nAccept: application/json\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Erros 400\"\n}\n[/block]\nAbaixo colocamos uma lista com os possíveis erros da família 400 que podem ser ocasionados em uma requisição. A sua aplicação deve estar preparada para tratar esses erros, evitando problemas em requisições e perdas no carrinho de compras.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Campo\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"MerchantKey\",\n    \"0-1\": \"Chave de loja inválida\",\n    \"1-0\": \"OrderReference\",\n    \"1-1\": \"Pedido duplicado: '123456'. Configuração da loja não permite pedidos duplicados\",\n    \"2-0\": \"OrderReference\",\n    \"2-1\": \"Tamanho máximo permitido para o campo OrderReference é de 56 caracteres\",\n    \"3-1\": \"O Pedido deve conter uma transação de cartão ou boleto\",\n    \"3-0\": \"Caso não seja informando nenhuma transação de cartão nem de boleto\",\n    \"4-0\": \"CreditCardTransaction.AmountInCents\",\n    \"4-1\": \"O valor da transação deve ser maior que zero\",\n    \"5-0\": \"CreditCardTransaction.TransactionReference\",\n    \"5-1\": \"O campo TransactionReference deve ter no máximo 40 caracteres.\",\n    \"6-0\": \"CreditCardTransaction.CreditCardBrandEnum\",\n    \"6-1\": \"Esta loja não possui um meio de pagamento configurado para a bandeira XYZ\",\n    \"7-0\": \"CreditCardTransaction.PaymentMethodCode\",\n    \"7-1\": \"O código de meio de pagamento X não tem suporte para a bandeira Y\",\n    \"8-0\": \"CreditCardTransaction.InstantBuyKey\",\n    \"8-1\": \"A chave de compra não é válida\",\n    \"9-0\": \"CreditCardTransaction.ExpMonth\",\n    \"9-1\": \"O mês de expiração do cartão deve ser maior que 0 e menor que 13\",\n    \"10-0\": \"CreditCardTransaction.ExpYear\",\n    \"10-1\": \"O ano de expiração do cartão deve conter 2 ou 4 dígitos\",\n    \"11-0\": \"CreditCardTransaction.ExpYear\",\n    \"11-1\": \"Data de vencimento do cartão inválida\",\n    \"12-0\": \"CreditCardTransaction.CreditCardNumber\",\n    \"12-1\": \"O cartão da Havan deve possuir de 18 digitos\",\n    \"13-0\": \"CreditCardTransaction.CreditCardNumber\",\n    \"13-1\": \"O número do cartão deve ter no mínimo 10 dígitos e no máximo 24 digitos\",\n    \"14-0\": \"CreditCardTransaction.HolderName\",\n    \"14-1\": \"O nome do portador deve conter mais de um caracter\",\n    \"15-0\": \"CreditCardTransaction.InstallmentCount\",\n    \"15-1\": \"A quantidade de parcelas da transação deve ser um valor válido\",\n    \"16-0\": \"CreditCardTransaction.SecurityCode\",\n    \"16-1\": \"O campo SecurityCode deve ser preenchido\",\n    \"17-0\": \"CreditCardTransaction.SecurityCode\",\n    \"18-0\": \"CreditCardTransaction.SecurityCode\",\n    \"19-0\": \"CreditCardTransaction.SecurityCode\",\n    \"17-1\": \"O campo código de segurança para a bandeira Visa deve conter 3 dígitos\",\n    \"18-1\": \"O campo código de segurança para a bandeira Mastercard deve conter 3 dígitos\",\n    \"19-1\": \"O campo código de segurança para a bandeira Amex deve conter 4 dígitos\",\n    \"21-0\": \"Recurrency.DateToStartBilling\",\n    \"21-1\": \"A data de início da cobrança deve ser maior ou igual a data de hoje\",\n    \"22-0\": \"Recurrency.Interval\",\n    \"22-1\": \"O intervalo entre cada recorrência deve ser maior que zero\",\n    \"23-0\": \"BoletoTransaction.AmountInCents\",\n    \"23-1\": \"O valor do boleto deve ser maior que zero\",\n    \"24-0\": \"BoletoTransaction.NossoNumero\",\n    \"24-1\": \"O campo nosso número não pode conter letras\",\n    \"25-0\": \"BoletoTransaction.Instructions\",\n    \"25-1\": \"O campo Instructions deve possuir até 352 caracteres\",\n    \"26-0\": \"BoletoTransaction.BankNumber\",\n    \"26-1\": \"O campo BankNumber deve possuir até 8 caracteres\",\n    \"27-0\": \"BoletoTransaction.TransactionReference\",\n    \"27-1\": \"O campo TransactionReference deve possuir até 40 caracteres\",\n    \"28-0\": \"Buyer.HomePhone\",\n    \"28-1\": \"O número de telefone deve possuir no máximo 32 dígitos\",\n    \"29-0\": \"Buyer.MobilePhone\",\n    \"29-1\": \"O número de telefone deve possuir no máximo 32 dígitos\",\n    \"30-0\": \"Buyer.WorkPhone\",\n    \"30-1\": \"O número de telefone deve possuir no máximo 32 dígitos\",\n    \"20-1\": \"Tamanho máximo permitido para o campo CreditCardTransaction.SoftDescriptorText é de 35 caractéres.\",\n    \"20-0\": \"CreditCardTransaction.SoftDescriptorText\"\n  },\n  \"cols\": 2,\n  \"rows\": 31\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Erros 400 nas tags para o antifraude\"\n}\n[/block]\nEstendemos a lista com os possíveis erros 400 na validação do carrinho caso o seu ecommerce tenha antifraude integrado na Mundi. O mapeamento desses erros é extremamente importante em sua aplicação, pois a ferramenta antifraude deve receber os parâmetros corretamente para analisar as transações.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Campo\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"Buyer\",\n    \"0-1\": \"Informe os dados do comprador\",\n    \"2-0\": \"Buyer.HomePhone/MobilePhone/WorkPhone\",\n    \"2-1\": \"Informe os dados de ao menos um telefone de contato\",\n    \"3-0\": \"Buyer.HomePhone/MobilePhone/WorkPhone\",\n    \"3-1\": \"Número de telefone com formato inesperado. Formatos aceitos: (DDD)999999999 ou DDI(DDD)999999999\",\n    \"4-0\": \"Buyer.Email\",\n    \"4-1\": \"Informe o endereço de e-mail do comprador\",\n    \"5-0\": \"Buyer.PersonType\",\n    \"5-1\": \"Informe o tipo do comprador\",\n    \"6-0\": \"Buyer.TaxDocumentTypeEnum\",\n    \"6-1\": \"Informe o tipo do documento\",\n    \"7-0\": \"Buyer.TaxDocumentNumber\",\n    \"7-1\": \"O campo do documento do cliente deve ter 11 dígitos para CPF ou 14 dígitos para CNPJ\",\n    \"8-0\": \"Buyer.BuyerKey\",\n    \"8-1\": \"A chave de comprador não é válida\",\n    \"9-0\": \"Buyer.BuyerAddressCollection\",\n    \"9-1\": \"Informe os dados de ao menos um endereço de cobrança\",\n    \"10-0\": \"BuyerAddressCollection.Street\",\n    \"10-1\": \"Informe o nome da rua\",\n    \"11-0\": \"BuyerAddressCollection.Street\",\n    \"11-1\": \"Tamanho máximo permitido para o campo Street é de 256 caractéres.\",\n    \"12-0\": \"BuyerAddressCollection.Number\",\n    \"13-0\": \"BuyerAddressCollection.Number\",\n    \"12-1\": \"Informe o número do endereço\",\n    \"13-1\": \"Tamanho máximo permitido para o campo Number é de 56 caractéres\",\n    \"14-0\": \"BuyerAddressCollection.Complement\",\n    \"14-1\": \"Tamanho máximo permitido para o campo Complement é de 256 caractéres\",\n    \"15-0\": \"BuyerAddressCollection.District\",\n    \"16-0\": \"BuyerAddressCollection.District\",\n    \"15-1\": \"Informe o nome do bairro\",\n    \"16-1\": \"Tamanho máximo permitido para o campo District é de 256 caractéres\",\n    \"17-0\": \"BuyerAddressCollection.City\",\n    \"18-0\": \"BuyerAddressCollection.City\",\n    \"17-1\": \"Informe o nome da cidade\",\n    \"18-1\": \"Tamanho máximo permitido para o campo City é de 256 caractéres\",\n    \"19-0\": \"BuyerAddressCollection.State\",\n    \"19-1\": \"Informe a UF do estado corretamente\",\n    \"20-0\": \"BuyerAddressCollection.ZipCode\",\n    \"20-1\": \"O campo código postal deve conter 8 dígitos\",\n    \"21-0\": \"ShoppingCartCollection\",\n    \"21-1\": \"Informe os dados do carrinho de compras\",\n    \"22-0\": \"ShoppingCart.ShoppingCartItemCollection\",\n    \"22-1\": \"Informe os dados dos produtos existentes no carrinho de compras\",\n    \"23-0\": \"ShoppingCart.ShoppingCartItem.ItemReference\",\n    \"23-1\": \"Informe o identificador do produto\",\n    \"24-0\": \"ShoppingCart.ShoppingCartItem.ItemReference\",\n    \"24-1\": \"O tamanho máximo permitido para o campo ItemReference é de 120 caractéres\",\n    \"25-0\": \"ShoppingCart.ShoppingCartItem.Name\",\n    \"25-1\": \"Informe o nome do produto\",\n    \"26-0\": \"ShoppingCart.ShoppingCartItem.Name\",\n    \"26-1\": \"O tamanho máximo permitido para o campo Name é de 256 caractéres\",\n    \"27-0\": \"ShoppingCart.ShoppingCartItem.Quantity\",\n    \"27-1\": \"Informe a quantidade do produto\",\n    \"28-0\": \"ShoppingCart.ShoppingCartItem.UnitCostInCents\",\n    \"28-1\": \"Informe o valor unitário do produto\",\n    \"1-0\": \"Buyer.Name\",\n    \"1-1\": \"Informe o nome do comprador\"\n  },\n  \"cols\": 2,\n  \"rows\": 29\n}\n[/block]","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-06-16T21:57:16.447Z","excerpt":"Como evitar erros em requisições...","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":0,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"erros","sync_unique":"","title":"Enviando requisições válidas","type":"basic","updates":[],"user":"555fb063336c041700a9b861","version":"555fb08828249c1900618a65","childrenPages":[]}

Enviando requisições válidas

Como evitar erros em requisições...

A nossa API valida cada um dos campos enviados na requisição (request) antes de prosseguir com a criação, consulta ou gerenciamento dos pedidos, transações e recursos.

Utilizamos os códigos de resposta convencionais do HTTP para indicar o sucesso ou a falha de uma requisição.

Sendo assim, códigos 2xx indicam sucesso, 4xx indicam erro por algum dado informado incorretamente (por exemplo, algum campo obrigatório não enviado ou um cartão sem data de validade) e 5xx indicando erro nos servidores da MundiPagg.

Tabela dos HTTP Status Code:

Código
Nome
Descrição

200

OK

Sucesso

400

Bad Request

Algum campo obrigatório não foi enviado ou foi enviado de maneira incorreta

404

Not Found

Recurso não encontrado

500

Internal Server Error

Erro nos servidores da MundiPagg

504

Timeout

Erro de comunicação entre a MundiPagg e a adquirente em questão

Toda resposta (response) contém os campos Success e ErrorReport.

O campo Success é um booleano que informa se a operação foi executada com sucesso (true) ou não (false).

Já o campo ErrorReport pode conter diferentes tipos de erros. Cada item de erro tem os seguintes campos:

ErrorCode: Código identificador do erro
ErrorField: Campo que originou o erro
Description: Descrição do erro

Sistemas Antifraude

Se a sua loja possui algum sistema antifraude habilitado na MundiPagg, os dados do carrinho de compras e do comprador são validados pela nossa API.

Header da requisição

No header da requisição você deve informar a MerchantKey, o conteúdo do POST e como você quer receber a resposta:

MerchantKey: '87328324-8DA6-459E-9948-5431F5A183FA'
Content-Type: application/json
Accept: application/json

Erros 400

Abaixo colocamos uma lista com os possíveis erros da família 400 que podem ser ocasionados em uma requisição. A sua aplicação deve estar preparada para tratar esses erros, evitando problemas em requisições e perdas no carrinho de compras.

Campo
Descrição

MerchantKey

Chave de loja inválida

OrderReference

Pedido duplicado: '123456'. Configuração da loja não permite pedidos duplicados

OrderReference

Tamanho máximo permitido para o campo OrderReference é de 56 caracteres

Caso não seja informando nenhuma transação de cartão nem de boleto

O Pedido deve conter uma transação de cartão ou boleto

CreditCardTransaction.AmountInCents

O valor da transação deve ser maior que zero

CreditCardTransaction.TransactionReference

O campo TransactionReference deve ter no máximo 40 caracteres.

CreditCardTransaction.CreditCardBrandEnum

Esta loja não possui um meio de pagamento configurado para a bandeira XYZ

CreditCardTransaction.PaymentMethodCode

O código de meio de pagamento X não tem suporte para a bandeira Y

CreditCardTransaction.InstantBuyKey

A chave de compra não é válida

CreditCardTransaction.ExpMonth

O mês de expiração do cartão deve ser maior que 0 e menor que 13

CreditCardTransaction.ExpYear

O ano de expiração do cartão deve conter 2 ou 4 dígitos

CreditCardTransaction.ExpYear

Data de vencimento do cartão inválida

CreditCardTransaction.CreditCardNumber

O cartão da Havan deve possuir de 18 digitos

CreditCardTransaction.CreditCardNumber

O número do cartão deve ter no mínimo 10 dígitos e no máximo 24 digitos

CreditCardTransaction.HolderName

O nome do portador deve conter mais de um caracter

CreditCardTransaction.InstallmentCount

A quantidade de parcelas da transação deve ser um valor válido

CreditCardTransaction.SecurityCode

O campo SecurityCode deve ser preenchido

CreditCardTransaction.SecurityCode

O campo código de segurança para a bandeira Visa deve conter 3 dígitos

CreditCardTransaction.SecurityCode

O campo código de segurança para a bandeira Mastercard deve conter 3 dígitos

CreditCardTransaction.SecurityCode

O campo código de segurança para a bandeira Amex deve conter 4 dígitos

CreditCardTransaction.SoftDescriptorText

Tamanho máximo permitido para o campo CreditCardTransaction.SoftDescriptorText é de 35 caractéres.

Recurrency.DateToStartBilling

A data de início da cobrança deve ser maior ou igual a data de hoje

Recurrency.Interval

O intervalo entre cada recorrência deve ser maior que zero

BoletoTransaction.AmountInCents

O valor do boleto deve ser maior que zero

BoletoTransaction.NossoNumero

O campo nosso número não pode conter letras

BoletoTransaction.Instructions

O campo Instructions deve possuir até 352 caracteres

BoletoTransaction.BankNumber

O campo BankNumber deve possuir até 8 caracteres

BoletoTransaction.TransactionReference

O campo TransactionReference deve possuir até 40 caracteres

Buyer.HomePhone

O número de telefone deve possuir no máximo 32 dígitos

Buyer.MobilePhone

O número de telefone deve possuir no máximo 32 dígitos

Buyer.WorkPhone

O número de telefone deve possuir no máximo 32 dígitos

Erros 400 nas tags para o antifraude

Estendemos a lista com os possíveis erros 400 na validação do carrinho caso o seu ecommerce tenha antifraude integrado na Mundi. O mapeamento desses erros é extremamente importante em sua aplicação, pois a ferramenta antifraude deve receber os parâmetros corretamente para analisar as transações.

Campo
Descrição

Buyer

Informe os dados do comprador

Buyer.Name

Informe o nome do comprador

Buyer.HomePhone/MobilePhone/WorkPhone

Informe os dados de ao menos um telefone de contato

Buyer.HomePhone/MobilePhone/WorkPhone

Número de telefone com formato inesperado. Formatos aceitos: (DDD)999999999 ou DDI(DDD)999999999

Buyer.Email

Informe o endereço de e-mail do comprador

Buyer.PersonType

Informe o tipo do comprador

Buyer.TaxDocumentTypeEnum

Informe o tipo do documento

Buyer.TaxDocumentNumber

O campo do documento do cliente deve ter 11 dígitos para CPF ou 14 dígitos para CNPJ

Buyer.BuyerKey

A chave de comprador não é válida

Buyer.BuyerAddressCollection

Informe os dados de ao menos um endereço de cobrança

BuyerAddressCollection.Street

Informe o nome da rua

BuyerAddressCollection.Street

Tamanho máximo permitido para o campo Street é de 256 caractéres.

BuyerAddressCollection.Number

Informe o número do endereço

BuyerAddressCollection.Number

Tamanho máximo permitido para o campo Number é de 56 caractéres

BuyerAddressCollection.Complement

Tamanho máximo permitido para o campo Complement é de 256 caractéres

BuyerAddressCollection.District

Informe o nome do bairro

BuyerAddressCollection.District

Tamanho máximo permitido para o campo District é de 256 caractéres

BuyerAddressCollection.City

Informe o nome da cidade

BuyerAddressCollection.City

Tamanho máximo permitido para o campo City é de 256 caractéres

BuyerAddressCollection.State

Informe a UF do estado corretamente

BuyerAddressCollection.ZipCode

O campo código postal deve conter 8 dígitos

ShoppingCartCollection

Informe os dados do carrinho de compras

ShoppingCart.ShoppingCartItemCollection

Informe os dados dos produtos existentes no carrinho de compras

ShoppingCart.ShoppingCartItem.ItemReference

Informe o identificador do produto

ShoppingCart.ShoppingCartItem.ItemReference

O tamanho máximo permitido para o campo ItemReference é de 120 caractéres

ShoppingCart.ShoppingCartItem.Name

Informe o nome do produto

ShoppingCart.ShoppingCartItem.Name

O tamanho máximo permitido para o campo Name é de 256 caractéres

ShoppingCart.ShoppingCartItem.Quantity

Informe a quantidade do produto

ShoppingCart.ShoppingCartItem.UnitCostInCents

Informe o valor unitário do produto

{"__v":5,"_id":"55b7fc19568be2230092bc69","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"Além de criar transações na Mundi, você pode cancelá-las, capturá-las (caso tenha feito apenas uma pré-autorização), retentá-las ou até mesmo consultá-las.\n\nCom isso você pode adaptar a nossa ferramenta ao seu modelo de negócio e sua necessidade. \n\nAbaixo descrevemos cada uma das operações que podem ser realizadas e como elas devem ser enviadas para nós!","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-07-28T22:03:05.056Z","excerpt":"Como gerenciar suas transações com os métodos da Mundi","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":1,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"operacoes-com-transacoes","sync_unique":"","title":"Operações com transações","type":"basic","updates":[],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Operações com transações

Como gerenciar suas transações com os métodos da Mundi

Além de criar transações na Mundi, você pode cancelá-las, capturá-las (caso tenha feito apenas uma pré-autorização), retentá-las ou até mesmo consultá-las.

Com isso você pode adaptar a nossa ferramenta ao seu modelo de negócio e sua necessidade.

Abaixo descrevemos cada uma das operações que podem ser realizadas e como elas devem ser enviadas para nós!

{"__v":10,"_id":"55cb67714153080d00446765","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55b80b3caea7c8190058bb73","default":"","desc":"Valor da transação em centavos. R$ 100,00 = 10000","name":"CreditCardTransactionCollection[AmountInCents]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb72","default":"","desc":"Bandeira do cartão do cliente","name":"CreditCardTransactionCollection[CreditCard[CreditCardBrand]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb71","default":"","desc":"Número do cartão do cliente. Informar apenas números.","name":"CreditCardTransactionCollection[CreditCard[CreditCardNumber]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb70","default":"","desc":"Mês de expiração do cartão","name":"CreditCardTransactionCollection[CreditCard[ExpMonth]]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6f","default":"","desc":"Ano de expiração do cartão","name":"CreditCardTransactionCollection[CreditCard[ExpYear]]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6e","default":"","desc":"Código de segurança do cartão","name":"CreditCardTransactionCollection[CreditCard[SecurityCode]]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6d","default":"","desc":"Nome do portador do cartão","name":"CreditCardTransactionCollection[CreditCard[HolderName]]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6c","default":"","desc":"Tipo de operação a ser realizada","name":"CreditCardTransactionCollection[CreditCardOperation]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6b","default":"","desc":"Número de Parcelas","name":"CreditCardTransactionCollection[InstallmentCount]","ref":"","required":false,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb69","default":"","desc":"Identificador do pedido na sua base","name":"Order[OrderReference]","ref":"","required":false,"type":"string","in":"body"}],"results":{"codes":[{"status":201,"code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 315,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"87d859ff-67ad-489e-9e16-0a016e897113\",\n  \"BoletoTransactionResultCollection\": [],\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": [\n    {\n      \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n      \"AcquirerName\": \"Simulator\",\n      \"AcquirerReturnCode\": \"0\",\n      \"AffiliationCode\": \"000000000\",\n      \"AmountInCents\": 10000,\n      \"AuthorizationCode\": \"491045\",\n      \"AuthorizedAmountInCents\": 10000,\n      \"CapturedAmountInCents\": null,\n      \"CapturedDate\": null,\n      \"CreditCard\": {\n        \"CreditCardBrand\": \"Visa\",\n        \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n        \"IsExpiredCreditCard\": false,\n        \"MaskedCreditCardNumber\": \"411111****1111\"\n      },\n      \"CreditCardOperation\": \"AuthOnly\",\n      \"CreditCardTransactionStatus\": \"AuthorizedPendingCapture\",\n      \"DueDate\": null,\n      \"ExternalTime\": 0,\n      \"PaymentMethodName\": \"Simulator\",\n      \"RefundedAmountInCents\": null,\n      \"Success\": true,\n      \"TransactionIdentifier\": \"598878\",\n      \"TransactionKey\": \"804fe65f-dc54-4081-96da-c0aa160a44a3\",\n      \"TransactionKeyToAcquirer\": \"804fe65fdc544081\",\n      \"TransactionReference\": \"5cab1174-7340-4baa-bbea-9e26a51e303b\",\n      \"UniqueSequentialNumber\": \"733000\",\n      \"VoidedAmountInCents\": null\n    }\n  ],\n  \"OrderResult\": {\n    \"CreateDate\": \"2015-12-07T21:02:59\",\n    \"OrderKey\": \"d091a782-28c6-45ed-a340-4985330a0fcd\",\n    \"OrderReference\": \"NumeroDoPedido\"\n  }\n}","language":"json"},{"status":400,"language":"json","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"32f52b38-fb46-4228-b216-eb292bc0953d\",\n  \"BoletoTransactionResultCollection\": null,\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"CreditCardTransactionResultCollection\": null,\n  \"OrderResult\": null\n}"}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Cria a transação.\\nvar transaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        CreditCardBrand = CreditCardBrandEnum.Visa,\\n        CreditCardNumber = \\\"4111111111111111\\\",\\n        ExpMonth = 10,\\n        ExpYear = 22,\\n        HolderName = \\\"LUKE SKYWALKER\\\",\\n        SecurityCode = \\\"123\\\"\\n    },\\n\\t\\tCreditCardOperation = CreditCardOperationEnum.AuthOnly,\\n    InstallmentCount = 1\\n};\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona a transação na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    }\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Status da transação: {0}\\\", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave da loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $createSaleRequest = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Cria objeto do cartão de crédito\\n    $creditCard = \\\\Gateway\\\\One\\\\Helper\\\\CreditCardHelper::createCreditCard(\\\"4111 1111 1111 1111\\\", \\\"LUKE SKYWALKER\\\", \\\"10/2022\\\", \\\"123\\\");\\n\\n    // Define dados da transação\\n    $createSaleRequest->addCreditCardTransaction()\\n        ->setAmountInCents(10000)\\n        ->setPaymentMethodCode(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\PaymentMethodEnum::SIMULATOR)\\n        ->setCreditCardOperation(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardOperationEnum::AUTH_ONLY)\\n        ->setCreditCard($creditCard);\\n        ;\\n\\n    //Define dados do pedido\\n    $createSaleRequest->getOrder()\\n    ->setOrderReference('NumeroDoPedido');\\n\\n    // Cria um objeto ApiClient\\n    $apiClient = new \\\\Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $apiClient->createSale($createSaleRequest);\\n\\n    // Mapeia resposta\\n    $httpStatusCode = $response->isSuccess() ? 201 : 401;\\n    \\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $httpStatusCode = 400;\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    // Devolve resposta\\n    http_response_code($httpStatusCode);\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\\n?>\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates credit card transaction object\\ncreditCardTransaction = Gateway::CreditCardTransaction.new\\n\\n# 100 reais in cents\\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.CreditCard.CreditCardBrand = 'Visa'\\ncreditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'\\ncreditCardTransaction.CreditCard.ExpMonth = 10\\ncreditCardTransaction.CreditCard.ExpYear = 22\\ncreditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'\\ncreditCardTransaction.CreditCard.SecurityCode = '123'\\ncreditCardTransaction.CreditCardOperation = 'AuthOnly'\\ncreditCardTransaction.InstallmentCount = 1\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# -*- coding: utf-8 -*-\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n#Coleta os dados do cartão.\\ncreditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,\\n                             security_code='123', holder_name='LUKE SKYWALKER')\\n\\n#Cria a transação.\\ntransaction_collection = [creditcard_transaction(10000, creditcard_data, 'AuthOnly')]\\n\\n#Cria o numero do pedido\\noptions_request = order(order_reference='NumeroDoPedido')\\n\\n#Cria a request.\\nrequest = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.create_with_request(request)\\n\\njson_response = http_response.json()\\n\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);\\ncreditCard.setCreditCardNumber(\\\"4111111111111111\\\");\\ncreditCard.setExpMonth(10);\\ncreditCard.setExpYear(22);\\ncreditCard.setHolderName(\\\"LUKE SKYWALKER\\\");\\ncreditCard.setSecurityCode(\\\"123\\\");\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setCreditCardOperation(CreditCardOperationEnum.AuthOnly);\\ncreditCardTransaction.setInstallmentCount(1);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NumeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setOrder(order);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"CreditCardBrand\\\": \\\"Visa\\\",\\n                \\\"CreditCardNumber\\\": \\\"4111111111111111\\\",\\n                \\\"ExpMonth\\\": 10,\\n                \\\"ExpYear\\\": 22,\\n                \\\"HolderName\\\": \\\"LUKE SKYWALKER\\\",\\n                \\\"SecurityCode\\\": \\\"123\\\"\\n            },\\n            \\\"CreditCardOperation\\\":\\\"AuthOnly\\\",\\n            \\\"InstallmentCount\\\": 1\\n        }\\n    ],\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nMuitos ecommerces possuem modelos de negócio que necessitam reservar o valor no cartão do cliente para depois realizar uma análise antifraude ou até mesmo para ativar outros agentes antes de cobrar efetivamente o consumidor.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"A pré-autorização só pode ser efetuada para transações de cartões de crédito. Boletos e débito online não possuem essa funcionalidade.\",\n  \"title\": \"Cartão de crédito (Pré-autorização)\"\n}\n[/block]\nPara esses modelos, a Mundi dedicou um método específico, a pré-autorização. Ele é bem simples, igual a uma requisição normal de cartão de crédito que vimos lá em cima. Lembra daquela tag que falamos, a CreditCardOperation? Então, basta mudá-la de `AuthAndCapture` para `AuthOnly`.\n\nCom isso, nosso sistema somente autorizará a transação na adquirente e te retornará o status `AuthorizedPendingCapture`. \n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Período de pré-autorização\",\n  \"body\": \"Normalmente as adquirentes permitem que a transação fique pré-autorização por um período máximo de 5 dias. Caso você necessite de um período maior você deve entrar em contato com a adquirente para negociá-lo.\"\n}\n[/block]\nFique atento, pois após a pré-autorização você deve capturar a transação com o [método de captura](doc:captura). Caso você extrapole esse período a adquirente não permitirá que você faça essa operação. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Pré-autorização com antifraude integrado\"\n}\n[/block]\nQuando o antifraude está habilitado na Mundi, o nosso sistema força a transação a ser pré-autorizada `AuthOnly`, mesmo que você envie uma operação de `AuthAndCapture`. Fazemos isso, pois a ferramenta de antifraude deve ter um SLA para poder analisar a transação e retorna a resposta de aprovação ou não.\n\nCaso a transação seja aprovada pelo antifraude, você não precisa nos enviar a captura, nós cuidamos disso para você fazendo a captura automática. A transação capturada ficará com o status `Captured`. Por outro lado, caso ela seja reprovada, nós cancelaremos ela automaticamente e ela terá o status `Voided` ou `Refunded`.","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-08-12T15:34:09.349Z","editedParams":true,"editedParams2":true,"excerpt":"Enviando uma requisição de transação de cartão de crédito","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":2,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"pre-autorizacao","sync_unique":"","title":"Pré-autorização","type":"post","updates":["5609a0f88aedf50d0004d182","56186d0888fdee0d00fb9bde","56187293f908460d00daf3da","561d3b0d4a4b140d0080db05","56461736da14e70d0027cde1","5662172d8036b40d0073883d","5665b9551b6559190020ae16","566f1f7fc1b00f1900ffd41f","56bc911ce1e7590d0058d9fa"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postPré-autorização

Enviando uma requisição de transação de cartão de crédito

Body Params

CreditCardTransactionCollection[AmountInCents]:
required
integer
Valor da transação em centavos. R$ 100,00 = 10000
CreditCardTransactionCollection[CreditCard[CreditCardBrand]:
required
string
Bandeira do cartão do cliente
CreditCardTransactionCollection[CreditCard[CreditCardNumber]:
required
string
Número do cartão do cliente. Informar apenas números.
CreditCardTransactionCollection[CreditCard[ExpMonth]:
required
integer
Mês de expiração do cartão
CreditCardTransactionCollection[CreditCard[ExpYear]:
required
integer
Ano de expiração do cartão
CreditCardTransactionCollection[CreditCard[SecurityCode]:
string
Código de segurança do cartão
CreditCardTransactionCollection[CreditCard[HolderName]:
required
string
Nome do portador do cartão
CreditCardTransactionCollection[CreditCardOperation]:
required
string
Tipo de operação a ser realizada
CreditCardTransactionCollection[InstallmentCount]:
integer
Número de Parcelas
Order[OrderReference]:
string
Identificador do pedido na sua base
// Cria a transação.
var transaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        CreditCardBrand = CreditCardBrandEnum.Visa,
        CreditCardNumber = "4111111111111111",
        ExpMonth = 10,
        ExpYear = 22,
        HolderName = "LUKE SKYWALKER",
        SecurityCode = "123"
    },
		CreditCardOperation = CreditCardOperationEnum.AuthOnly,
    InstallmentCount = 1
};

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona a transação na requisição.
    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    }
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.CreditCardTransactionResultCollection != null) {
    Console.WriteLine("Status da transação: {0}", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave da loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto requisição
    $createSaleRequest = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Cria objeto do cartão de crédito
    $creditCard = \Gateway\One\Helper\CreditCardHelper::createCreditCard("4111 1111 1111 1111", "LUKE SKYWALKER", "10/2022", "123");

    // Define dados da transação
    $createSaleRequest->addCreditCardTransaction()
        ->setAmountInCents(10000)
        ->setPaymentMethodCode(\Gateway\One\DataContract\Enum\PaymentMethodEnum::SIMULATOR)
        ->setCreditCardOperation(\Gateway\One\DataContract\Enum\CreditCardOperationEnum::AUTH_ONLY)
        ->setCreditCard($creditCard);
        ;

    //Define dados do pedido
    $createSaleRequest->getOrder()
    ->setOrderReference('NumeroDoPedido');

    // Cria um objeto ApiClient
    $apiClient = new \Gateway\ApiClient();

    // Faz a chamada para criação
    $response = $apiClient->createSale($createSaleRequest);

    // Mapeia resposta
    $httpStatusCode = $response->isSuccess() ? 201 : 401;
    
}
catch (\Gateway\One\DataContract\Report\CreditCardError $error)
{
    $httpStatusCode = 400;
    $response = array("message" => $error->getMessage());
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (\Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    // Devolve resposta
    http_response_code($httpStatusCode);
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
?>
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates credit card transaction object
creditCardTransaction = Gateway::CreditCardTransaction.new

# 100 reais in cents
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
creditCardTransaction.CreditCard.ExpMonth = 10
creditCardTransaction.CreditCard.ExpYear = 22
creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
creditCardTransaction.CreditCard.SecurityCode = '123'
creditCardTransaction.CreditCardOperation = 'AuthOnly'
creditCardTransaction.InstallmentCount = 1

# creates request object for transaction creation
createSaleRequest = Gateway::CreateSaleRequest.new
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# -*- coding: utf-8 -*-

from uuid import UUID
from data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum

#Coleta os dados do cartão.
creditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,
                             security_code='123', holder_name='LUKE SKYWALKER')

#Cria a transação.
transaction_collection = [creditcard_transaction(10000, creditcard_data, 'AuthOnly')]

#Cria o numero do pedido
options_request = order(order_reference='NumeroDoPedido')

#Cria a request.
request = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.create_with_request(request)

json_response = http_response.json()

// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria um cartão de crédito e define endereço de cobrança
CreditCard creditCard = new CreditCard();
creditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);
creditCard.setCreditCardNumber("4111111111111111");
creditCard.setExpMonth(10);
creditCard.setExpYear(22);
creditCard.setHolderName("LUKE SKYWALKER");
creditCard.setSecurityCode("123");

// Cria a transação de cartão de crédito e define cartão criado anteriormente
CreditCardTransaction creditCardTransaction = new CreditCardTransaction();
creditCardTransaction.setAmountInCents(10000L);
creditCardTransaction.setCreditCard(creditCard);
creditCardTransaction.setCreditCardOperation(CreditCardOperationEnum.AuthOnly);
creditCardTransaction.setInstallmentCount(1);

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NumeroDoPedido");

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());
createSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);
createSaleRequest.setOrder(order);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse = serviceClient.getSale().Create(createSaleRequest);
{
    "CreditCardTransactionCollection": [
        {
            "AmountInCents": 10000,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "CreditCardNumber": "4111111111111111",
                "ExpMonth": 10,
                "ExpYear": 22,
                "HolderName": "LUKE SKYWALKER",
                "SecurityCode": "123"
            },
            "CreditCardOperation":"AuthOnly",
            "InstallmentCount": 1
        }
    ],
    "Order": {
        "OrderReference": "NumeroDoPedido"
    }
}

Muitos ecommerces possuem modelos de negócio que necessitam reservar o valor no cartão do cliente para depois realizar uma análise antifraude ou até mesmo para ativar outros agentes antes de cobrar efetivamente o consumidor.

Cartão de crédito (Pré-autorização)

A pré-autorização só pode ser efetuada para transações de cartões de crédito. Boletos e débito online não possuem essa funcionalidade.

Para esses modelos, a Mundi dedicou um método específico, a pré-autorização. Ele é bem simples, igual a uma requisição normal de cartão de crédito que vimos lá em cima. Lembra daquela tag que falamos, a CreditCardOperation? Então, basta mudá-la de AuthAndCapture para AuthOnly.

Com isso, nosso sistema somente autorizará a transação na adquirente e te retornará o status AuthorizedPendingCapture.

Período de pré-autorização

Normalmente as adquirentes permitem que a transação fique pré-autorização por um período máximo de 5 dias. Caso você necessite de um período maior você deve entrar em contato com a adquirente para negociá-lo.

Fique atento, pois após a pré-autorização você deve capturar a transação com o método de captura. Caso você extrapole esse período a adquirente não permitirá que você faça essa operação.

Pré-autorização com antifraude integrado

Quando o antifraude está habilitado na Mundi, o nosso sistema força a transação a ser pré-autorizada AuthOnly, mesmo que você envie uma operação de AuthAndCapture. Fazemos isso, pois a ferramenta de antifraude deve ter um SLA para poder analisar a transação e retorna a resposta de aprovação ou não.

Caso a transação seja aprovada pelo antifraude, você não precisa nos enviar a captura, nós cuidamos disso para você fazendo a captura automática. A transação capturada ficará com o status Captured. Por outro lado, caso ela seja reprovada, nós cancelaremos ela automaticamente e ela terá o status Voided ou Refunded.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 315,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "87d859ff-67ad-489e-9e16-0a016e897113",
  "BoletoTransactionResultCollection": [],
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": [
    {
      "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
      "AcquirerName": "Simulator",
      "AcquirerReturnCode": "0",
      "AffiliationCode": "000000000",
      "AmountInCents": 10000,
      "AuthorizationCode": "491045",
      "AuthorizedAmountInCents": 10000,
      "CapturedAmountInCents": null,
      "CapturedDate": null,
      "CreditCard": {
        "CreditCardBrand": "Visa",
        "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
        "IsExpiredCreditCard": false,
        "MaskedCreditCardNumber": "411111****1111"
      },
      "CreditCardOperation": "AuthOnly",
      "CreditCardTransactionStatus": "AuthorizedPendingCapture",
      "DueDate": null,
      "ExternalTime": 0,
      "PaymentMethodName": "Simulator",
      "RefundedAmountInCents": null,
      "Success": true,
      "TransactionIdentifier": "598878",
      "TransactionKey": "804fe65f-dc54-4081-96da-c0aa160a44a3",
      "TransactionKeyToAcquirer": "804fe65fdc544081",
      "TransactionReference": "5cab1174-7340-4baa-bbea-9e26a51e303b",
      "UniqueSequentialNumber": "733000",
      "VoidedAmountInCents": null
    }
  ],
  "OrderResult": {
    "CreateDate": "2015-12-07T21:02:59",
    "OrderKey": "d091a782-28c6-45ed-a340-4985330a0fcd",
    "OrderReference": "NumeroDoPedido"
  }
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "A bandeira Invalida atualmente não é suportada.",
        "ErrorCode": 400,
        "ErrorField": "CreditCardBrand",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 0,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "32f52b38-fb46-4228-b216-eb292bc0953d",
  "BoletoTransactionResultCollection": null,
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
  "CreditCardTransactionResultCollection": null,
  "OrderResult": null
}


{"__v":126,"_id":"55805bb0be698419008f2c59","api":{"auth":"required","examples":{"codes":[{"language":"text","code":""}]},"params":[{"_id":"55ca6f2e91af780d006b36c9","default":"","desc":"Valor que será cancelado em centavos","name":"CreditCardTransactionCollection[AmountInCents]","ref":"","required":false,"type":"int","in":"body"},{"_id":"55ca71c4b205cb0d006db950","default":"","desc":"Chave da transação na MundiPagg","name":"CreditCardTransactionCollection[TransactionKey]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55ca6f2e91af780d006b36cb","default":"","desc":"Chave do pedido da MundiPagg","name":"OrderKey","ref":"","required":true,"type":"string","in":"body"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 107,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"8229a921-64db-476a-a898-edbb398fbde3\",\n  \"CreditCardTransactionResultCollection\": [\n    {\n      \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n      \"AcquirerName\": \"Simulator\",\n      \"AcquirerReturnCode\": \"0\",\n      \"AffiliationCode\": \"000000000\",\n      \"AmountInCents\": 10000,\n      \"AuthorizationCode\": \"811337\",\n      \"AuthorizedAmountInCents\": 10000,\n      \"CapturedAmountInCents\": null,\n      \"CapturedDate\": null,\n      \"CreditCard\": {\n        \"CreditCardBrand\": \"Visa\",\n        \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n        \"IsExpiredCreditCard\": false,\n        \"MaskedCreditCardNumber\": \"411111****1111\"\n      },\n      \"CreditCardOperation\": \"AuthOnly\",\n      \"CreditCardTransactionStatus\": \"Voided\",\n      \"DueDate\": null,\n      \"ExternalTime\": 0,\n      \"PaymentMethodName\": \"Simulator\",\n      \"RefundedAmountInCents\": null,\n      \"Success\": true,\n      \"TransactionIdentifier\": \"481700\",\n      \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n      \"TransactionKeyToAcquirer\": \"5f9f75da283c4492\",\n      \"TransactionReference\": \"a59a9a42-d824-4694-892c-d9a993718348\",\n      \"UniqueSequentialNumber\": \"483207\",\n      \"VoidedAmountInCents\": 10000\n    }\n  ]\n}"},{"status":400,"language":"json","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"Identificação do pedido inválida.\",\n        \"ErrorCode\": 404,\n        \"ErrorField\": \"ManageSaleRequest.OrderKey\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 20,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"2a077c70-514b-430c-b267-8c064ddebff0\",\n  \"CreditCardTransactionResultCollection\": []\n}"}]},"settings":"561f139acfc3610d00567176","url":"/Sale/Cancel"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para cancelar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Cancela as transações de cartão de crédito do pedido.\\nvar httpResponse = client.Sale.Manage(ManageOperationEnum.Cancel, orderKey);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações canceladas.\\\");\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CancelRequest();\\n\\n    // Define dados da requisição\\n    $request->setOrderKey(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n    //Cria um objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $client->cancel($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates request object for transaction\\ncancelSaleRequest = Gateway::ManageSaleRequest.new\\ncancelSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\n\\n# make the request and returns a response hash\\nputs response = gateway.Cancel(cancelSaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"from uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import manage_creditcard_transaction, manage_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com/\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# cria o request de cancelamento.\\nmanage_request = manage_sale_request(order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nhttp_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Cancel, manage_sale_request = manage_request)\\n\\n# obtem o json da resposta.\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Define a chave do pedido que será cancelado\\nUUID orderKey = UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"); // Chave do pedido\\n\\n// Submete a requisição de cancelamento\\nHttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse\\n= serviceClient.getSale().Manage(ManageOperationEnum.Cancel, orderKey);\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"OrderKey\\\":\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"\\n} \",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nMuitos consumidores desejam cancelar compras realizadas devido a problemas com o produto, insatisfação com o serviço, dentre outras razões.\n\nPara isso a Mundi criou o método **Cancel**. Com ele é possível você realizar cancelamentos de pedidos e transações.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Cartão de crédito (Cancelamentos)\",\n  \"body\": \"Cancelamentos só podem ser efetuados para transações de cartões de crédito. Boletos e débito online não podem ser cancelados pela nossa API. Para esses casos, a sua área financeira deve retornar os fundos do consumidor final via depósito bancário.\"\n}\n[/block]\nO método de cancelamento pode ser utilizado para:\n  *  Cancelar um pedido, ou seja, ao cancelá-lo você estará cancelando todas as transações dentro do pedido. Basta informar na requisição o `OrderKey`. **Exemplo acima!**\n  *  Cancelar uma transação específica, ou seja, ao cancelá-la você estará cancelando uma única transação dentro do pedido. Basta informar na requisição o `OrderKey` e o `TransactionKey` ou somente o `TransactionKey`. **Exemplo a seguir:**\n  *  Cancelar parcialmente um pedido ou transação. Dedicamos a abaixo seção para isso.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para cancelar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Transação específica que será cancelada.\\nvar transactionToCancel = new ManageCreditCardTransaction() {\\n    AmountInCents = 10000,\\n    TransactionKey = Guid.Parse(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\")\\n};\\n\\n// Cancela as transações de cartão de crédito do pedido.\\nvar httpResponse = client.Sale.Manage(ManageOperationEnum.Cancel, orderKey, transactionToCancel);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações canceladas.\\\");\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CancelRequest();\\n\\n    // Define dados da requisição\\n    $request->addCreditCardTransaction()\\n            ->setAmountInCents(10000)\\n            ->setTransactionkey(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\");\\n    \\n    $request->setOrderKey(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n    //Cria um objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $client->cancel($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card manage transaction object\\ncreditCardTransaction = Gateway::ManageCreditCardTransaction.new\\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'\\n\\n# creates request object for transaction\\ncancelSaleRequest = Gateway::ManageSaleRequest.new\\ncancelSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\ncancelSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\n\\n# make the request and returns a response hash\\nputs response = gateway.Cancel(cancelSaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"from uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import manage_creditcard_transaction, manage_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com/\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# dados da transacao que sera cancelada\\nmanage_creditcard_collection_data = [manage_creditcard_transaction(transaction_key = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5', amount_in_cents = 10000)]\\n\\n# cria o request de cancelamento.\\nmanage_request = manage_sale_request(creditcard_transaction_collection = manage_creditcard_collection_data, order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nhttp_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Cancel, manage_sale_request = manage_request)\\n\\n# obtem o json da resposta.\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\nManageSaleRequest manageSaleRequest = new ManageSaleRequest();\\n\\n// Define os detalhes da transação de cartão de crédito\\nManageCreditCardTransaction manageCreditCardTransaction = new ManageCreditCardTransaction();\\nmanageCreditCardTransaction.setAmountInCents(10000L);\\nmanageCreditCardTransaction.setTransactionKey(UUID.fromString(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"));\\n            \\n// Cria a lista de transações de cartão e adiciona a transação criada a lista\\nList<ManageCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<ManageCreditCardTransaction>();\\nmanageCreditCardTransactionList.add(manageCreditCardTransaction);\\n            \\n// Define a chave do pedido que será cancelado\\nmanageSaleRequest.setOrderKey(UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"));\\nmanageSaleRequest.setCreditCardTransactionCollection(manageCreditCardTransactionList);\\n\\n// Submete a requisição de cancelamento\\nHttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse\\n        = serviceClient.getSale().Manage(ManageOperationEnum.Cancel, manageSaleRequest);\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\":[{\\n        \\\"AmountInCents\\\":10000,\\n        \\\"TransactionKey\\\":\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"\\n    }],\\n    \\\"OrderKey\\\":\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"\\n} \",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Não se preocupe! Esses dois conceitos são bem parecidos! \\nO cancelamento é realizado até 23 hs e 59 min do dia da transação. Após este período é realizado o estorno da transação. Em termos práticos, o cancelamento não aparece na fatura do consumidor enquanto o estorno aparecerá. Aqui na Mundi ambos são feitos pelo mesmo método, pois queremos deixar tudo mais simples para você!\",\n  \"title\": \"Qual a diferença entre cancelamento e estorno?\"\n}\n[/block]\nAlgumas das adquirentes não permitem a realização de estornos via API. Da mesma maneira, não podemos realizar essas operações. Colocamos abaixo a lista das adquirentes e as funcionalidades permitidas.\n[block:parameters]\n{\n  \"data\": {\n    \"h-1\": \"Cancelamento\",\n    \"h-2\": \"Estorno\",\n    \"h-0\": \"Adquirente\",\n    \"0-0\": \"Cielo\",\n    \"1-0\": \"Rede\",\n    \"2-0\": \"Stone\",\n    \"3-0\": \"Elavon\",\n    \"4-0\": \"GetNet\",\n    \"0-1\": \"Sim\",\n    \"0-2\": \"Sim\",\n    \"1-1\": \"Sim\",\n    \"1-2\": \"Não\",\n    \"2-1\": \"Sim\",\n    \"2-2\": \"Sim\",\n    \"3-1\": \"Sim\",\n    \"4-1\": \"Sim\",\n    \"4-2\": \"Sim\",\n    \"3-2\": \"Sim\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\nNa resposta da requisição de cancelamento, você receberá dois tipos de status de transação: `Voided` caso a sua transação tenha sido cancelada ou `Refunded` para casos nos quais a transação foi estornada.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Cancelamento parcial\"\n}\n[/block]\nAlgumas adquirentes permitem que o ecommerce realize cancelamentos parciais. Pensando nisso, também colocamos na requisição uma opção para que você possa realizar essas operações. Colocamos abaixo a lista das adquirentes nas quais essas funcionalidades são permitidas.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Adquirente\",\n    \"h-1\": \"Cancelamento parcial\",\n    \"0-0\": \"Cielo\",\n    \"1-0\": \"Redecard\",\n    \"2-0\": \"Stone\",\n    \"3-0\": \"GetNet\",\n    \"4-0\": \"Elavon\",\n    \"0-1\": \"Sim\",\n    \"1-1\": \"Sim\",\n    \"2-1\": \"Sim\",\n    \"h-2\": \"Estorno parcial\",\n    \"0-2\": \"Sim\",\n    \"1-2\": \"Não\",\n    \"2-2\": \"Sim\",\n    \"3-1\": \"Sim\",\n    \"3-2\": \"Sim\",\n    \"4-1\": \"Sim\",\n    \"4-2\": \"Sim\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\nPara realizar um cancelamento parcial basta acrescentar na requisição o valor que deve ser cancelado na transação no campo `AmountInCents`. Caso você não nos informe esse valor, o default é que o **valor total** seja cancelado.\n \nNa resposta da requisição de cancelamento, você poderá receber dois tipos de status de transação: `PartialVoid` caso a sua transação tenha sido parcialmente cancelada ou `PartialRefund` para casos nos quais a transação foi parcialmente estornada.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Cancelamento pendente\"\n}\n[/block]\nAs adquirentes possuem instabilidades que refletem diretamente na realização de algumas operações. Em alguns cenários, fazemos a requisição de cancelamento e a mesma não é processada ou não é válida. Nesses casos, as transações podem assumir os status, `PendingVoid` cancelamento pendente ou `PendingRefund` estorno pendente.\n\nNesses casos, o ecommerce deve entrar em contato com a adquirente para realizar o cancelamento ou estorno da transação desejada. Basta informar os identificadores das transações nas adquirentes, a Mundi os disponibiliza tanto na resposta da requisição quanto no Portal.","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-06-16T17:24:00.461Z","editedParams":true,"editedParams2":true,"excerpt":"Como cancelar transações na Mundi","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":3,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"cancelamento","sync_unique":"","title":"Cancelamento","type":"post","updates":["55f3783b2d3bae21009c47b3","55f6f5d4d892ea37008f996a","56005b610c703d1900953112","56005bb58c0c9d0d00dcae43","56059571d895120d00a40b45","560cb135875361210021425a","56191fb1fa2a6d0d002a132e","5669e22a55e4b32100935ef3","567008c4cbb2fb0d00f7c6ca","567066743d29830d00376217","567068df81801f0d00802f4a","567069ea81801f0d00802f4d","56bc92545e104b0d00e7afb5"],"user":"555fb063336c041700a9b861","version":"555fb08828249c1900618a65","childrenPages":[]}

postCancelamento

Como cancelar transações na Mundi

Body Params

CreditCardTransactionCollection[AmountInCents]:
integer
Valor que será cancelado em centavos
CreditCardTransactionCollection[TransactionKey]:
string
Chave da transação na MundiPagg
OrderKey:
required
string
Chave do pedido da MundiPagg
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para cancelar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Cancela as transações de cartão de crédito do pedido.
var httpResponse = client.Sale.Manage(ManageOperationEnum.Cancel, orderKey);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações canceladas.");
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto requisição
    $request = new \Gateway\One\DataContract\Request\CancelRequest();

    // Define dados da requisição
    $request->setOrderKey("219d7581-78e2-4aa9-b708-b7c585780bfc");

    //Cria um objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada para criação
    $response = $client->cancel($request);

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates request object for transaction
cancelSaleRequest = Gateway::ManageSaleRequest.new
cancelSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'

# make the request and returns a response hash
puts response = gateway.Cancel(cancelSaleRequest)
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import manage_creditcard_transaction, manage_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com/"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# cria o request de cancelamento.
manage_request = manage_sale_request(order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')

http_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Cancel, manage_sale_request = manage_request)

# obtem o json da resposta.
json_response = http_response.json()
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Define a chave do pedido que será cancelado
UUID orderKey = UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"); // Chave do pedido

// Submete a requisição de cancelamento
HttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse
= serviceClient.getSale().Manage(ManageOperationEnum.Cancel, orderKey);
{
    "OrderKey":"219d7581-78e2-4aa9-b708-b7c585780bfc"
} 

Muitos consumidores desejam cancelar compras realizadas devido a problemas com o produto, insatisfação com o serviço, dentre outras razões.

Para isso a Mundi criou o método Cancel. Com ele é possível você realizar cancelamentos de pedidos e transações.

Cartão de crédito (Cancelamentos)

Cancelamentos só podem ser efetuados para transações de cartões de crédito. Boletos e débito online não podem ser cancelados pela nossa API. Para esses casos, a sua área financeira deve retornar os fundos do consumidor final via depósito bancário.

O método de cancelamento pode ser utilizado para:

  • Cancelar um pedido, ou seja, ao cancelá-lo você estará cancelando todas as transações dentro do pedido. Basta informar na requisição o OrderKey. Exemplo acima!
  • Cancelar uma transação específica, ou seja, ao cancelá-la você estará cancelando uma única transação dentro do pedido. Basta informar na requisição o OrderKey e o TransactionKey ou somente o TransactionKey. Exemplo a seguir:
  • Cancelar parcialmente um pedido ou transação. Dedicamos a abaixo seção para isso.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para cancelar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Transação específica que será cancelada.
var transactionToCancel = new ManageCreditCardTransaction() {
    AmountInCents = 10000,
    TransactionKey = Guid.Parse("20ba0520-7d09-44f8-8fbc-e4329e2b18d5")
};

// Cancela as transações de cartão de crédito do pedido.
var httpResponse = client.Sale.Manage(ManageOperationEnum.Cancel, orderKey, transactionToCancel);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações canceladas.");
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto requisição
    $request = new \Gateway\One\DataContract\Request\CancelRequest();

    // Define dados da requisição
    $request->addCreditCardTransaction()
            ->setAmountInCents(10000)
            ->setTransactionkey("20ba0520-7d09-44f8-8fbc-e4329e2b18d5");
    
    $request->setOrderKey("219d7581-78e2-4aa9-b708-b7c585780bfc");

    //Cria um objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada para criação
    $response = $client->cancel($request);

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# create credit card manage transaction object
creditCardTransaction = Gateway::ManageCreditCardTransaction.new
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'

# creates request object for transaction
cancelSaleRequest = Gateway::ManageSaleRequest.new
cancelSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'
cancelSaleRequest.CreditCardTransactionCollection << creditCardTransaction

# make the request and returns a response hash
puts response = gateway.Cancel(cancelSaleRequest)
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import manage_creditcard_transaction, manage_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com/"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# dados da transacao que sera cancelada
manage_creditcard_collection_data = [manage_creditcard_transaction(transaction_key = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5', amount_in_cents = 10000)]

# cria o request de cancelamento.
manage_request = manage_sale_request(creditcard_transaction_collection = manage_creditcard_collection_data, order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')

http_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Cancel, manage_sale_request = manage_request)

# obtem o json da resposta.
json_response = http_response.json()
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

ManageSaleRequest manageSaleRequest = new ManageSaleRequest();

// Define os detalhes da transação de cartão de crédito
ManageCreditCardTransaction manageCreditCardTransaction = new ManageCreditCardTransaction();
manageCreditCardTransaction.setAmountInCents(10000L);
manageCreditCardTransaction.setTransactionKey(UUID.fromString("20ba0520-7d09-44f8-8fbc-e4329e2b18d5"));
            
// Cria a lista de transações de cartão e adiciona a transação criada a lista
List<ManageCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<ManageCreditCardTransaction>();
manageCreditCardTransactionList.add(manageCreditCardTransaction);
            
// Define a chave do pedido que será cancelado
manageSaleRequest.setOrderKey(UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"));
manageSaleRequest.setCreditCardTransactionCollection(manageCreditCardTransactionList);

// Submete a requisição de cancelamento
HttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse
        = serviceClient.getSale().Manage(ManageOperationEnum.Cancel, manageSaleRequest);
{
    "CreditCardTransactionCollection":[{
        "AmountInCents":10000,
        "TransactionKey":"20ba0520-7d09-44f8-8fbc-e4329e2b18d5"
    }],
    "OrderKey":"219d7581-78e2-4aa9-b708-b7c585780bfc"
} 

Qual a diferença entre cancelamento e estorno?

Não se preocupe! Esses dois conceitos são bem parecidos!
O cancelamento é realizado até 23 hs e 59 min do dia da transação. Após este período é realizado o estorno da transação. Em termos práticos, o cancelamento não aparece na fatura do consumidor enquanto o estorno aparecerá. Aqui na Mundi ambos são feitos pelo mesmo método, pois queremos deixar tudo mais simples para você!

Algumas das adquirentes não permitem a realização de estornos via API. Da mesma maneira, não podemos realizar essas operações. Colocamos abaixo a lista das adquirentes e as funcionalidades permitidas.

Adquirente
Cancelamento
Estorno

Cielo

Sim

Sim

Rede

Sim

Não

Stone

Sim

Sim

Elavon

Sim

Sim

GetNet

Sim

Sim

Na resposta da requisição de cancelamento, você receberá dois tipos de status de transação: Voided caso a sua transação tenha sido cancelada ou Refunded para casos nos quais a transação foi estornada.

Cancelamento parcial

Algumas adquirentes permitem que o ecommerce realize cancelamentos parciais. Pensando nisso, também colocamos na requisição uma opção para que você possa realizar essas operações. Colocamos abaixo a lista das adquirentes nas quais essas funcionalidades são permitidas.

Adquirente
Cancelamento parcial
Estorno parcial

Cielo

Sim

Sim

Redecard

Sim

Não

Stone

Sim

Sim

GetNet

Sim

Sim

Elavon

Sim

Sim

Para realizar um cancelamento parcial basta acrescentar na requisição o valor que deve ser cancelado na transação no campo AmountInCents. Caso você não nos informe esse valor, o default é que o valor total seja cancelado.

Na resposta da requisição de cancelamento, você poderá receber dois tipos de status de transação: PartialVoid caso a sua transação tenha sido parcialmente cancelada ou PartialRefund para casos nos quais a transação foi parcialmente estornada.

Cancelamento pendente

As adquirentes possuem instabilidades que refletem diretamente na realização de algumas operações. Em alguns cenários, fazemos a requisição de cancelamento e a mesma não é processada ou não é válida. Nesses casos, as transações podem assumir os status, PendingVoid cancelamento pendente ou PendingRefund estorno pendente.

Nesses casos, o ecommerce deve entrar em contato com a adquirente para realizar o cancelamento ou estorno da transação desejada. Basta informar os identificadores das transações nas adquirentes, a Mundi os disponibiliza tanto na resposta da requisição quanto no Portal.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 107,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "8229a921-64db-476a-a898-edbb398fbde3",
  "CreditCardTransactionResultCollection": [
    {
      "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
      "AcquirerName": "Simulator",
      "AcquirerReturnCode": "0",
      "AffiliationCode": "000000000",
      "AmountInCents": 10000,
      "AuthorizationCode": "811337",
      "AuthorizedAmountInCents": 10000,
      "CapturedAmountInCents": null,
      "CapturedDate": null,
      "CreditCard": {
        "CreditCardBrand": "Visa",
        "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
        "IsExpiredCreditCard": false,
        "MaskedCreditCardNumber": "411111****1111"
      },
      "CreditCardOperation": "AuthOnly",
      "CreditCardTransactionStatus": "Voided",
      "DueDate": null,
      "ExternalTime": 0,
      "PaymentMethodName": "Simulator",
      "RefundedAmountInCents": null,
      "Success": true,
      "TransactionIdentifier": "481700",
      "TransactionKey": "20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
      "TransactionKeyToAcquirer": "5f9f75da283c4492",
      "TransactionReference": "a59a9a42-d824-4694-892c-d9a993718348",
      "UniqueSequentialNumber": "483207",
      "VoidedAmountInCents": 10000
    }
  ]
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "Identificação do pedido inválida.",
        "ErrorCode": 404,
        "ErrorField": "ManageSaleRequest.OrderKey",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 20,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "2a077c70-514b-430c-b267-8c064ddebff0",
  "CreditCardTransactionResultCollection": []
}


{"__v":23,"_id":"55b7fcb2aea7c8190058bb17","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55cb886c37edd823001a854d","default":"","desc":"Valor que será capturado em centavos","name":"CreditCardTransactionCollection[AmountInCents]","ref":"","required":false,"type":"int","in":"body"},{"_id":"55cb886c37edd823001a854c","default":"","desc":"Chave da transação na MundiPagg","name":"CreditCardTransactionCollection[TransactionKey]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55cb886c37edd823001a854a","default":"","desc":"Chave do pedido da MundiPagg","name":"OrderKey","ref":"","required":true,"type":"string","in":"body"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n\t\"ErrorReport\":null,\n\t\"InternalTime\":95,\n\t\"MerchantKey\":\"85328786-8ba6-420f-9948-5352f5a183eb\",\n\t\"RequestKey\":\"aec9e6cf-6b00-4686-81cf-6fa93c8b159f\",\n\t\"CreditCardTransactionResultCollection\":[\n\t\t{\n\t\t\t\"AcquirerMessage\":\"Simulator|Transação de simulação autorizada com sucesso\",\n\t\t\t\"AcquirerName\":\"Simulator\",\n\t\t\t\"AcquirerReturnCode\":\"0\",\n\t\t\t\"AffiliationCode\":\"000000000\",\n\t\t\t\"AmountInCents\":10000,\n\t\t\t\"AuthorizationCode\":\"811337\",\n\t\t\t\"AuthorizedAmountInCents\":10000,\n\t\t\t\"CapturedAmountInCents\":10000,\n\t\t\t\"CapturedDate\":\"2015-12-10T21:28:40\",\n\t\t\t\"CreditCard\":{\n\t\t\t\t\"CreditCardBrand\":\"Mastercard\",\n\t\t\t\t\"InstantBuyKey\":\"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n\t\t\t\t\"IsExpiredCreditCard\":false,\n\t\t\t\t\"MaskedCreditCardNumber\":\"411111****1111\"\n\t\t\t},\n\t\t\t\"CreditCardOperation\":\"AuthOnly\",\n\t\t\t\"CreditCardTransactionStatus\":\"Captured\",\n\t\t\t\"DueDate\":null,\n\t\t\t\"ExternalTime\":0,\n\t\t\t\"PaymentMethodName\":\"Simulator\",\n\t\t\t\"RefundedAmountInCents\":null,\n\t\t\t\"Success\":true,\n\t\t\t\"TransactionIdentifier\":\"481700\",\n\t\t\t\"TransactionKey\":\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n\t\t\t\"TransactionKeyToAcquirer\":\"5f9f75da283c4492\",\n\t\t\t\"TransactionReference\":\"a59a9a42-d824-4694-892c-d9a993718348\",\n\t\t\t\"UniqueSequentialNumber\":\"483207\",\n\t\t\t\"VoidedAmountInCents\":null\n\t\t}\n\t]\n}"},{"status":400,"language":"json","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"Identificação do pedido inválida.\",\n        \"ErrorCode\": 404,\n        \"ErrorField\": \"ManageSaleRequest.OrderKey\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 7,\n  \"MerchantKey\": \"85328786-8BA6-420F-9948-5352F5A183EB\",\n  \"RequestKey\": \"e06989ca-6ec6-463d-9c98-b603e3f96f15\",\n  \"CreditCardTransactionResultCollection\": []\n}"}]},"settings":"561f139acfc3610d00567176","url":"/Sale/Capture"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para capturar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Captura as transações de cartão de crédito do pedido.\\nvar httpResponse = client.Sale.Manage(ManageOperationEnum.Capture, orderKey);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações capturadas.\\\");\\n}\",\n      \"language\": \"csharp\",\n      \"name\": \"C#\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto da requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CaptureRequest();\\n\\n    // Define dados da requisição\\n    $request->setOrderKey(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n    // Cria novo objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada\\n    $response = $client->capture($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally {\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\",\n      \"name\": \"PHP\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates request object for transaction capture\\ncaptureSaleRequest = Gateway::ManageSaleRequest.new\\ncaptureSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\n\\n# make the request and returns a response hash\\nputs response = gateway.Capture(captureSaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"from uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import manage_creditcard_transaction, manage_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com/\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# cria o request de cancelamento.\\nmanage_request = manage_sale_request(order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nhttp_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Capture, manage_sale_request = manage_request)\\n\\n# obtem o json da resposta.\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Define a chave do pedido\\nUUID orderKey = UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"); // Chave do pedido\\n\\n// Submete a requisição\\nHttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse\\n        = serviceClient.getSale().Manage(ManageOperationEnum.Capture, orderKey);\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"OrderKey\\\":\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nApós uma pré-autorização, caso você não esteja utilizando antifraude, é necessário que sua transação seja capturada.\n\nApós o envio a transação capturada terá o status `Captured`.\n\nVocê pode capturar múltiplas transações dentro de um pedido, o exemplo a seguir mostra como fazer isso!\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para capturar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Transação específica que será cancelada.\\nvar transactionToCapture = new ManageCreditCardTransaction() {\\n    AmountInCents = 10000,\\n    TransactionKey = Guid.Parse(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\")\\n};\\n\\n// Captura as transações de cartão de crédito do pedido.\\nvar httpResponse = client.Sale.Manage(ManageOperationEnum.Capture, orderKey, transactionToCapture);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações capturadas.\\\");\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto da requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CaptureRequest();\\n\\n    $request->addCreditCardTransaction()\\n            ->setAmountInCents(10000)\\n            ->setTransactionkey(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\");\\n\\n    // Define dados da requisição\\n    $request->setOrderKey(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n    // Cria novo objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada\\n    $response = $client->capture($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally {\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card manage transaction object\\ncreditCardTransaction = Gateway::ManageCreditCardTransaction.new\\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'\\n\\n# creates request object for transaction capture\\ncaptureSaleRequest = Gateway::ManageSaleRequest.new\\ncaptureSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\ncaptureSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\n\\n# make the request and returns a response hash\\nputs response = gateway.Capture(captureSaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"from uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import manage_creditcard_transaction, manage_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com/\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# dados da transacao que sera cancelada\\nmanage_creditcard_collection_data = [manage_creditcard_transaction(transaction_key = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5', amount_in_cents = 10000)]\\n\\n# cria o request de cancelamento.\\nmanage_request = manage_sale_request(creditcard_transaction_collection = manage_creditcard_collection_data, order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nhttp_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Capture, manage_sale_request = manage_request)\\n\\n# obtem o json da resposta.\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\nManageSaleRequest manageSaleRequest = new ManageSaleRequest();\\n\\n// Define os detalhes da transação de cartão de crédito\\nManageCreditCardTransaction manageCreditCardTransaction = new ManageCreditCardTransaction();\\nmanageCreditCardTransaction.setAmountInCents(10000L);\\nmanageCreditCardTransaction.setTransactionKey(UUID.fromString(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"));\\n\\n// Cria a lista de transações de cartão e adiciona a transação criada a lista\\nList<ManageCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<ManageCreditCardTransaction>();\\nmanageCreditCardTransactionList.add(manageCreditCardTransaction);\\n\\n// Define a chave do pedido\\nmanageSaleRequest.setOrderKey(UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"));\\nmanageSaleRequest.setCreditCardTransactionCollection(manageCreditCardTransactionList);\\n\\n // Submete a requisição\\nHttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse\\n= serviceClient.getSale().Manage(ManageOperationEnum.Capture, manageSaleRequest);\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\":[{\\n        \\\"AmountInCents\\\":10000,\\n        \\\"TransactionKey\\\":\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"\\n    }],\\n    \\\"OrderKey\\\":\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Captura Parcial\"\n}\n[/block]\nAlgumas adquirentes permitem que uma transação seja capturada com o valor menor do que o autorizado. \n\nNormalmente esse cenário aparece quando um dos itens de uma compra não estão em estoque mas os outros podem ser entregues ao cliente. Basta capturar o valor dos itens que serão entregues.\n\nAbaixo colocamos a tabela das adquirentes que permitem a captura parcial.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Adquirente\",\n    \"h-1\": \"Captura parcial\",\n    \"0-1\": \"Sim\",\n    \"0-0\": \"Cielo\",\n    \"1-0\": \"Rede\",\n    \"2-0\": \"Stone\",\n    \"3-0\": \"Elavon\",\n    \"4-0\": \"GetNet\",\n    \"1-1\": \"Sim\",\n    \"2-1\": \"Sim\",\n    \"3-1\": \"Sim\",\n    \"4-1\": \"Sim\"\n  },\n  \"cols\": 2,\n  \"rows\": 5\n}\n[/block]\nApós uma captura parcial o status da transação será `PartialCapture`.","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-07-28T22:05:38.690Z","editedParams":true,"editedParams2":true,"excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":4,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"captura","sync_unique":"","title":"Captura","type":"post","updates":["55f6fc2be5740b3900a75f3b","56059860f6b86e0d00284b78","560cb1837048021700e180fa","5619201888fdee0d00fb9c4d","5646181a75c83f0d00e9d524","5646183f75c83f0d00e9d525","5660a01989e82f0d008f67c9","5661abddf5a87e0d00db3269","5669e43dc3de130d00441846","566ad12e1e08750d00a0c53f","56700a281dabd80d00b1212b","5670686e81801f0d00802f48","5672e0b51e18b60d00b04a39","56bc92f4b745dc0d00c1ee68"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postCaptura


Body Params

CreditCardTransactionCollection[AmountInCents]:
integer
Valor que será capturado em centavos
CreditCardTransactionCollection[TransactionKey]:
string
Chave da transação na MundiPagg
OrderKey:
required
string
Chave do pedido da MundiPagg
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para capturar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Captura as transações de cartão de crédito do pedido.
var httpResponse = client.Sale.Manage(ManageOperationEnum.Capture, orderKey);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações capturadas.");
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto da requisição
    $request = new \Gateway\One\DataContract\Request\CaptureRequest();

    // Define dados da requisição
    $request->setOrderKey("219d7581-78e2-4aa9-b708-b7c585780bfc");

    // Cria novo objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada
    $response = $client->capture($request);

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally {
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates request object for transaction capture
captureSaleRequest = Gateway::ManageSaleRequest.new
captureSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'

# make the request and returns a response hash
puts response = gateway.Capture(captureSaleRequest)
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import manage_creditcard_transaction, manage_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com/"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# cria o request de cancelamento.
manage_request = manage_sale_request(order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')

http_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Capture, manage_sale_request = manage_request)

# obtem o json da resposta.
json_response = http_response.json()

print json_response
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Define a chave do pedido
UUID orderKey = UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"); // Chave do pedido

// Submete a requisição
HttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse
        = serviceClient.getSale().Manage(ManageOperationEnum.Capture, orderKey);
{
    "OrderKey":"219d7581-78e2-4aa9-b708-b7c585780bfc"
}

Após uma pré-autorização, caso você não esteja utilizando antifraude, é necessário que sua transação seja capturada.

Após o envio a transação capturada terá o status Captured.

Você pode capturar múltiplas transações dentro de um pedido, o exemplo a seguir mostra como fazer isso!

Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para capturar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Transação específica que será cancelada.
var transactionToCapture = new ManageCreditCardTransaction() {
    AmountInCents = 10000,
    TransactionKey = Guid.Parse("20ba0520-7d09-44f8-8fbc-e4329e2b18d5")
};

// Captura as transações de cartão de crédito do pedido.
var httpResponse = client.Sale.Manage(ManageOperationEnum.Capture, orderKey, transactionToCapture);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações capturadas.");
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto da requisição
    $request = new \Gateway\One\DataContract\Request\CaptureRequest();

    $request->addCreditCardTransaction()
            ->setAmountInCents(10000)
            ->setTransactionkey("20ba0520-7d09-44f8-8fbc-e4329e2b18d5");

    // Define dados da requisição
    $request->setOrderKey("219d7581-78e2-4aa9-b708-b7c585780bfc");

    // Cria novo objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada
    $response = $client->capture($request);

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally {
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# create credit card manage transaction object
creditCardTransaction = Gateway::ManageCreditCardTransaction.new
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'

# creates request object for transaction capture
captureSaleRequest = Gateway::ManageSaleRequest.new
captureSaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'
captureSaleRequest.CreditCardTransactionCollection << creditCardTransaction

# make the request and returns a response hash
puts response = gateway.Capture(captureSaleRequest)
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import manage_creditcard_transaction, manage_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum, ManageOperationEnum

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com/"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# dados da transacao que sera cancelada
manage_creditcard_collection_data = [manage_creditcard_transaction(transaction_key = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5', amount_in_cents = 10000)]

# cria o request de cancelamento.
manage_request = manage_sale_request(creditcard_transaction_collection = manage_creditcard_collection_data, order_key = '219d7581-78e2-4aa9-b708-b7c585780bfc')

http_response = service_client.sale.manage_with_request(manage_operation = ManageOperationEnum.Capture, manage_sale_request = manage_request)

# obtem o json da resposta.
json_response = http_response.json()

print json_response
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

ManageSaleRequest manageSaleRequest = new ManageSaleRequest();

// Define os detalhes da transação de cartão de crédito
ManageCreditCardTransaction manageCreditCardTransaction = new ManageCreditCardTransaction();
manageCreditCardTransaction.setAmountInCents(10000L);
manageCreditCardTransaction.setTransactionKey(UUID.fromString("20ba0520-7d09-44f8-8fbc-e4329e2b18d5"));

// Cria a lista de transações de cartão e adiciona a transação criada a lista
List<ManageCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<ManageCreditCardTransaction>();
manageCreditCardTransactionList.add(manageCreditCardTransaction);

// Define a chave do pedido
manageSaleRequest.setOrderKey(UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"));
manageSaleRequest.setCreditCardTransactionCollection(manageCreditCardTransactionList);

 // Submete a requisição
HttpResponseGenerics<ManageSaleResponse, ManageSaleRequest> httpResponse
= serviceClient.getSale().Manage(ManageOperationEnum.Capture, manageSaleRequest);
{
    "CreditCardTransactionCollection":[{
        "AmountInCents":10000,
        "TransactionKey":"20ba0520-7d09-44f8-8fbc-e4329e2b18d5"
    }],
    "OrderKey":"219d7581-78e2-4aa9-b708-b7c585780bfc"
}

Captura Parcial

Algumas adquirentes permitem que uma transação seja capturada com o valor menor do que o autorizado.

Normalmente esse cenário aparece quando um dos itens de uma compra não estão em estoque mas os outros podem ser entregues ao cliente. Basta capturar o valor dos itens que serão entregues.

Abaixo colocamos a tabela das adquirentes que permitem a captura parcial.

Adquirente
Captura parcial

Cielo

Sim

Rede

Sim

Stone

Sim

Elavon

Sim

GetNet

Sim

Após uma captura parcial o status da transação será PartialCapture.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
	"ErrorReport":null,
	"InternalTime":95,
	"MerchantKey":"85328786-8ba6-420f-9948-5352f5a183eb",
	"RequestKey":"aec9e6cf-6b00-4686-81cf-6fa93c8b159f",
	"CreditCardTransactionResultCollection":[
		{
			"AcquirerMessage":"Simulator|Transação de simulação autorizada com sucesso",
			"AcquirerName":"Simulator",
			"AcquirerReturnCode":"0",
			"AffiliationCode":"000000000",
			"AmountInCents":10000,
			"AuthorizationCode":"811337",
			"AuthorizedAmountInCents":10000,
			"CapturedAmountInCents":10000,
			"CapturedDate":"2015-12-10T21:28:40",
			"CreditCard":{
				"CreditCardBrand":"Mastercard",
				"InstantBuyKey":"3b3b5b62-6660-428d-905e-96f49d46ae28",
				"IsExpiredCreditCard":false,
				"MaskedCreditCardNumber":"411111****1111"
			},
			"CreditCardOperation":"AuthOnly",
			"CreditCardTransactionStatus":"Captured",
			"DueDate":null,
			"ExternalTime":0,
			"PaymentMethodName":"Simulator",
			"RefundedAmountInCents":null,
			"Success":true,
			"TransactionIdentifier":"481700",
			"TransactionKey":"20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
			"TransactionKeyToAcquirer":"5f9f75da283c4492",
			"TransactionReference":"a59a9a42-d824-4694-892c-d9a993718348",
			"UniqueSequentialNumber":"483207",
			"VoidedAmountInCents":null
		}
	]
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "Identificação do pedido inválida.",
        "ErrorCode": 404,
        "ErrorField": "ManageSaleRequest.OrderKey",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 7,
  "MerchantKey": "85328786-8BA6-420F-9948-5352F5A183EB",
  "RequestKey": "e06989ca-6ec6-463d-9c98-b603e3f96f15",
  "CreditCardTransactionResultCollection": []
}


{"__v":27,"_id":"5581d99c8625220d00429e96","api":{"auth":"required","examples":{"codes":[{"language":"text","code":""}]},"params":[{"_id":"55cbc3754153080d00446900","required":true,"desc":"Chave do pedido da MundiPagg","default":"","type":"string","name":"OrderKey","in":"body"},{"_id":"55cbc3754153080d004468ff","required":false,"desc":"Código de segurança do cartão","default":"","type":"int","name":"RetrySaleCreditCardTransactionCollection[SecurityCode]","in":"body"},{"_id":"55cbc3754153080d004468fe","required":false,"desc":"Chave da transação na MundiPagg","default":"","type":"string","name":"RetrySaleCreditCardTransactionCollection[TransactionKey]","in":"body"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n    \"ErrorReport\":{\n        \"Category\":\"String content\",\n        \"ErrorItemCollection\":[{\n            \"Description\":\"String content\",\n            \"ErrorCode\":2147483647,\n            \"ErrorField\":\"String content\",\n            \"SeverityCode\":\"String content\"\n        }]\n    },\n    \"InternalTime\":123,\n    \"MerchantKey\":\"85328786-8BA6-420F-9948-5352F5A183EB\",\n    \"RequestKey\":\"1627aea5-8e0a-4371-9022-9b504344e724\",\n    \"CreditCardTransactionResultCollection\":[{\n        \"AcquirerMessage\":\"Simulator|Transação de simulação autorizada com sucesso\",\n        \"AcquirerName\":\"Simulator\",\n        \"AcquirerReturnCode\":\"0\",\n        \"AffiliationCode\":\"000000\",\n        \"AmountInCents\":10000,\n        \"AuthorizationCode\":\"1234\",\n        \"AuthorizedAmountInCents\":10000,\n        \"CapturedAmountInCents\":10000,\n        \"CreditCard\":{\n            \"CreditCardBrand\":\"Visa\",\n            \"InstantBuyKey\":\"1627aea5-8e0a-4371-9022-9b504344e724\",\n            \"IsExpiredCreditCard\":false,\n            \"MaskedCreditCardNumber\":\"411111*****1111\"\n        },\n        \"CreditCardOperation\":\"AuthAndCapture\",\n        \"CreditCardTransactionStatus\":\"Captured\",\n        \"DueDate\":\"\",\n        \"ExternalTime\":0,\n        \"PaymentMethodName\":\"Simulator\",\n        \"RefundedAmountInCents\":00,\n        \"Success\":true,\n        \"TransactionIdentifier\":\"123456\",\n        \"TransactionKey\":\"1627aea5-8e0a-4371-9022-9b504344e724\",\n        \"TransactionKeyToAcquirer\":\"1234566\",\n        \"TransactionReference\":\"CreditCardTest#0001\",\n        \"UniqueSequentialNumber\":\"123456\",\n        \"VoidedAmountInCents\":0\n    }]\n}","name":"OK"},{"status":400,"language":"json","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"Identificação do pedido inválida.\",\n        \"ErrorCode\": 404,\n        \"ErrorField\": \"RetrySaleRequest.OrderKey\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 32,\n  \"MerchantKey\": \"00000000-0000-0000-0000-000000000000\",\n  \"RequestKey\": \"fab918db-e22d-46ed-86e6-8fe37061f156\",\n  \"CreditCardTransactionResultCollection\": null\n}","name":"Bad Request"}]},"settings":"561f139acfc3610d00567176","url":"/Sale/Retry"},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Criar uma retentativa\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para retentar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Retenta as transações não autorizadas de cartão de crédito no pedido.\\nvar httpResponse = client.Sale.Retry(orderKey);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações autorizadas.\\\");\\n}\\nelse {\\n    Console.WriteLine(\\\"Uma ou mais transações não foram autorizadas.\\\");\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Create request object\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\RetryRequest();\\n\\n    // Define all request data\\n    $request->setOrderKey('219d7581-78e2-4aa9-b708-b7c585780bfc');\\n\\n    // Create new ApiClient object\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Make the call\\n    $response = $client->Retry($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally {\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\nretrySaleRequest = Gateway::RetrySaleRequest.new\\n\\n# fill retry object\\nretrySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\n\\n# make the request and returns a response hash\\nputs response = gateway.Retry(retrySaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# coding=utf-8\\nfrom uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import retry_sale_options, retry_sale_creditcard_transaction, retry_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n# Cria a request.\\nrequest = retry_sale_request(order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.retry_with_request(retry_sale_request=request)\\n\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Define a chave do pedido\\nUUID orderKey = UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"); // Chave do pedido\\n\\n// Submete a requisição\\nHttpResponseGenerics<RetrySaleResponse, RetrySaleRequest> httpResponse\\n    = serviceClient.getSale().Retry(orderKey);\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"OrderKey\\\":\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nO método de retentativa é uma ferramenta exclusiva da Mundi. Além da retentativa automática que disponibilizamos em tempo real, você pode retentar suas transações quando quiser, inclusive transações de [recorrência](doc:recorrencia).\n\nCom esse método você pode recuperar vendas mas lembre-se de adequar o seu fluxo de negócio à retentativa ou vice-versa.\n\nVocê pode retentar múltiplas transações dentro de um único pedido! O exemplo abaixo mostra como fazer isso:\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n// Chave do pedido\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para retentar as transações.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Transação específica que será retentada.\\nRetrySaleCreditCardTransaction transactionToRetry = new RetrySaleCreditCardTransaction() {\\n    SecurityCode = \\\"123\\\",\\n    TransactionKey = Guid.Parse(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"),\\n};\\n\\n// Retenta as transações não autorizadas de cartão de crédito no pedido.\\nvar httpResponse = client.Sale.Retry(orderKey, transactionToRetry);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK\\n    && httpResponse.Response.CreditCardTransactionResultCollection.Any()\\n    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {\\n    Console.WriteLine(\\\"Transações autorizadas.\\\");\\n}\\nelse {\\n    Console.WriteLine(\\\"Uma ou mais transações não foram autorizadas.\\\");\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card manage transaction object\\ncreditCardTransaction = Gateway::RetrySaleCreditCardTransaction.new\\ncreditCardTransaction.SecurityCode = '123'\\ncreditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'\\n\\nretrySaleRequest = Gateway::RetrySaleRequest.new\\n\\n# fill retry object\\nretrySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\nretrySaleRequest.RetrySaleCreditCardTransactionCollection << creditCardTransaction\\n\\n# make the request and returns a response hash\\nputs response = gateway.Retry(retrySaleRequest)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\\\\\Gateway\\\\\\\\ApiClient::setBaseUrl(\\\\\\\"https://sandbox.mundipaggone.com\\\\\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\\\\\Gateway\\\\\\\\ApiClient::setMerchantKey(\\\\\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\\\\\");\\n\\n    // Create request object\\n    $request = new \\\\\\\\Gateway\\\\\\\\One\\\\\\\\DataContract\\\\\\\\Request\\\\\\\\RetryRequest();\\n\\n    // Define all request data\\n    $request->setOrderKey(\\\\\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\\\\\");\\n    $creditCardTransaction = new \\\\\\\\Gateway\\\\\\\\One\\\\\\\\DataContract\\\\\\\\Request\\\\\\\\RetryRequestData\\\\\\\\RetrySaleCreditCardTransaction();\\n    $creditCardTransaction->setSecurityCode(\\\\\\\"123\\\\\\\");\\n    $creditCardTransaction->setTransactionKey(\\\\\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\\\\\");\\n\\n    $request->addRetrySaleCreditCardTransactionCollection($creditCardTransaction);\\n\\n    // Create new ApiClient object\\n    $client = new Gateway\\\\\\\\ApiClient();\\n\\n    // Make the call\\n    $response = $client->Retry($request);\\n\\n}\\ncatch (\\\\\\\\Gateway\\\\\\\\One\\\\\\\\DataContract\\\\\\\\Report\\\\\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\\\\\"message\\\\\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\\\\\"message\\\\\\\" => \\\\\\\"Ocorreu um erro inesperado.\\\\\\\");\\n}\\nfinally {\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"# coding=utf-8\\nfrom uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom data_contracts import retry_sale_options, retry_sale_creditcard_transaction, retry_sale_request\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n# Cria a transação.\\ntransaction_collection = [\\n    retry_sale_creditcard_transaction(security_code='123', transaction_key='20ba0520-7d09-44f8-8fbc-e4329e2b18d5')]\\n# Cria a request.\\nrequest = retry_sale_request(creditcard_transaction_collection=transaction_collection,\\n                             order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.retry_with_request(retry_sale_request=request)\\n\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\nRetrySaleRequest retrySaleRequest = new RetrySaleRequest();\\n\\n// Define os detalhes da transação de cartão de crédito\\nRetrySaleCreditCardTransaction retrySaleCreditCardTransaction = new RetrySaleCreditCardTransaction();\\nretrySaleCreditCardTransaction.setSecurityCode(\\\"123\\\");\\nretrySaleCreditCardTransaction.setTransactionKey(UUID.fromString(\\\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\\\"));\\n\\n// Cria a lista de transações de cartão e adiciona a transação criada a lista\\nList<RetrySaleCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<RetrySaleCreditCardTransaction>();\\nmanageCreditCardTransactionList.add(retrySaleCreditCardTransaction);\\n\\n// Define a chave do pedido\\nretrySaleRequest.setOrderKey(UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"));\\nretrySaleRequest.setRetrySaleCreditCardTransactionCollection(manageCreditCardTransactionList);\\n\\n// Submete a requisição\\nHttpResponseGenerics<RetrySaleResponse, RetrySaleRequest> httpResponse\\n\\t= serviceClient.getSale().Retry(retrySaleRequest);\",\n      \"language\": \"java\",\n      \"name\": \"Java\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"A retentativa manual sem o código de segurança (CVV)\",\n  \"body\": \"No método de retentativa existe uma tag que corresponde ao CVV do cartão. Ela não é obrigatória, porém, para não precisar nos enviar você deve desabilitar transações com o código de segurança na adquirente. Caso você permaneça com a funcionalidade habilitada é importante que você nos envie na requisição de uma retentativa.\"\n}\n[/block]\nUma transação retentada pode continuar com o status `NotAuthorized` ou podemos recuperá-la e ela ficar com o status `Captured`. Caso você tenha feito uma pré-autorização ou utilize antifraude ela ficará com o status `AuthorizedPendingCaptured`.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"RetryOrder e o status WithError\"\n}\n[/block]\nComo falamos anteriormente, algumas transações podem assumir o status `WithError`. Nesse cenários, o método de retentativa pode te ajudar da seguinte maneira:\n  \n  *  Retentando a transação, ou seja, se a adquirente não processou a transação, o método tenta recuperar a venda perdida.","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-06-17T20:33:32.845Z","editedParams":true,"editedParams2":true,"excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":5,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"retentativa","sync_unique":"","title":"Retentativa","type":"post","updates":["55f33a61f58d8c0d007ca37d","55f33d430b6c4b370095cc7e","55f6f543985a902b00c1441b","56005caa0c703d1900953120","5605983f7c8e580d0001b09f","560cb1a77048021700e180fb","56192069f908460d00daf420","561d33ec4ce6923500b0b93d","564619c3bb7ad50d00e9c58f","566ad4dc1e08750d00a0c545","56700d203a32d20d00c45b50","5672e2b8e3b6bb0d00b5af76","56bc93c85e104b0d00e7afb6"],"user":"555fb063336c041700a9b861","version":"555fb08828249c1900618a65","childrenPages":[]}

postRetentativa


Body Params

OrderKey:
required
string
Chave do pedido da MundiPagg
RetrySaleCreditCardTransactionCollection[SecurityCode]:
integer
Código de segurança do cartão
RetrySaleCreditCardTransactionCollection[TransactionKey]:
string
Chave da transação na MundiPagg

Criar uma retentativa

Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para retentar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Retenta as transações não autorizadas de cartão de crédito no pedido.
var httpResponse = client.Sale.Retry(orderKey);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações autorizadas.");
}
else {
    Console.WriteLine("Uma ou mais transações não foram autorizadas.");
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Create request object
    $request = new \Gateway\One\DataContract\Request\RetryRequest();

    // Define all request data
    $request->setOrderKey('219d7581-78e2-4aa9-b708-b7c585780bfc');

    // Create new ApiClient object
    $client = new Gateway\ApiClient();

    // Make the call
    $response = $client->Retry($request);

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally {
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

retrySaleRequest = Gateway::RetrySaleRequest.new

# fill retry object
retrySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'

# make the request and returns a response hash
puts response = gateway.Retry(retrySaleRequest)
# coding=utf-8
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import retry_sale_options, retry_sale_creditcard_transaction, retry_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum

# Cria a request.
request = retry_sale_request(order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.retry_with_request(retry_sale_request=request)

json_response = http_response.json()

print json_response
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Define a chave do pedido
UUID orderKey = UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"); // Chave do pedido

// Submete a requisição
HttpResponseGenerics<RetrySaleResponse, RetrySaleRequest> httpResponse
    = serviceClient.getSale().Retry(orderKey);
{
    "OrderKey":"219d7581-78e2-4aa9-b708-b7c585780bfc"
}

O método de retentativa é uma ferramenta exclusiva da Mundi. Além da retentativa automática que disponibilizamos em tempo real, você pode retentar suas transações quando quiser, inclusive transações de recorrência.

Com esse método você pode recuperar vendas mas lembre-se de adequar o seu fluxo de negócio à retentativa ou vice-versa.

Você pode retentar múltiplas transações dentro de um único pedido! O exemplo abaixo mostra como fazer isso:

Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
// Chave do pedido
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para retentar as transações.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Transação específica que será retentada.
RetrySaleCreditCardTransaction transactionToRetry = new RetrySaleCreditCardTransaction() {
    SecurityCode = "123",
    TransactionKey = Guid.Parse("20ba0520-7d09-44f8-8fbc-e4329e2b18d5"),
};

// Retenta as transações não autorizadas de cartão de crédito no pedido.
var httpResponse = client.Sale.Retry(orderKey, transactionToRetry);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK
    && httpResponse.Response.CreditCardTransactionResultCollection.Any()
    && httpResponse.Response.CreditCardTransactionResultCollection.All(p => p.Success == true)) {
    Console.WriteLine("Transações autorizadas.");
}
else {
    Console.WriteLine("Uma ou mais transações não foram autorizadas.");
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# create credit card manage transaction object
creditCardTransaction = Gateway::RetrySaleCreditCardTransaction.new
creditCardTransaction.SecurityCode = '123'
creditCardTransaction.TransactionKey = '20ba0520-7d09-44f8-8fbc-e4329e2b18d5'

retrySaleRequest = Gateway::RetrySaleRequest.new

# fill retry object
retrySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'
retrySaleRequest.RetrySaleCreditCardTransactionCollection << creditCardTransaction

# make the request and returns a response hash
puts response = gateway.Retry(retrySaleRequest)
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \\Gateway\\ApiClient::setBaseUrl(\"https://sandbox.mundipaggone.com\");

    // Define a chave de loja a ser utilizada
    \\Gateway\\ApiClient::setMerchantKey(\"85328786-8BA6-420F-9948-5352F5A183EB\");

    // Create request object
    $request = new \\Gateway\\One\\DataContract\\Request\\RetryRequest();

    // Define all request data
    $request->setOrderKey(\"219d7581-78e2-4aa9-b708-b7c585780bfc\");
    $creditCardTransaction = new \\Gateway\\One\\DataContract\\Request\\RetryRequestData\\RetrySaleCreditCardTransaction();
    $creditCardTransaction->setSecurityCode(\"123\");
    $creditCardTransaction->setTransactionKey(\"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\");

    $request->addRetrySaleCreditCardTransactionCollection($creditCardTransaction);

    // Create new ApiClient object
    $client = new Gateway\\ApiClient();

    // Make the call
    $response = $client->Retry($request);

}
catch (\\Gateway\\One\\DataContract\\Report\\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array(\"message\" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array(\"message\" => \"Ocorreu um erro inesperado.\");
}
finally {
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
# coding=utf-8
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from data_contracts import retry_sale_options, retry_sale_creditcard_transaction, retry_sale_request
from enum_types import PlatformEnvironment, HttpContentTypeEnum

# Cria a transação.
transaction_collection = [
    retry_sale_creditcard_transaction(security_code='123', transaction_key='20ba0520-7d09-44f8-8fbc-e4329e2b18d5')]
# Cria a request.
request = retry_sale_request(creditcard_transaction_collection=transaction_collection,
                             order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.retry_with_request(retry_sale_request=request)

json_response = http_response.json()

print json_response
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

RetrySaleRequest retrySaleRequest = new RetrySaleRequest();

// Define os detalhes da transação de cartão de crédito
RetrySaleCreditCardTransaction retrySaleCreditCardTransaction = new RetrySaleCreditCardTransaction();
retrySaleCreditCardTransaction.setSecurityCode("123");
retrySaleCreditCardTransaction.setTransactionKey(UUID.fromString("20ba0520-7d09-44f8-8fbc-e4329e2b18d5"));

// Cria a lista de transações de cartão e adiciona a transação criada a lista
List<RetrySaleCreditCardTransaction> manageCreditCardTransactionList = new ArrayList<RetrySaleCreditCardTransaction>();
manageCreditCardTransactionList.add(retrySaleCreditCardTransaction);

// Define a chave do pedido
retrySaleRequest.setOrderKey(UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"));
retrySaleRequest.setRetrySaleCreditCardTransactionCollection(manageCreditCardTransactionList);

// Submete a requisição
HttpResponseGenerics<RetrySaleResponse, RetrySaleRequest> httpResponse
	= serviceClient.getSale().Retry(retrySaleRequest);

A retentativa manual sem o código de segurança (CVV)

No método de retentativa existe uma tag que corresponde ao CVV do cartão. Ela não é obrigatória, porém, para não precisar nos enviar você deve desabilitar transações com o código de segurança na adquirente. Caso você permaneça com a funcionalidade habilitada é importante que você nos envie na requisição de uma retentativa.

Uma transação retentada pode continuar com o status NotAuthorized ou podemos recuperá-la e ela ficar com o status Captured. Caso você tenha feito uma pré-autorização ou utilize antifraude ela ficará com o status AuthorizedPendingCaptured.

RetryOrder e o status WithError

Como falamos anteriormente, algumas transações podem assumir o status WithError. Nesse cenários, o método de retentativa pode te ajudar da seguinte maneira:

  • Retentando a transação, ou seja, se a adquirente não processou a transação, o método tenta recuperar a venda perdida.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
    "ErrorReport":{
        "Category":"String content",
        "ErrorItemCollection":[{
            "Description":"String content",
            "ErrorCode":2147483647,
            "ErrorField":"String content",
            "SeverityCode":"String content"
        }]
    },
    "InternalTime":123,
    "MerchantKey":"85328786-8BA6-420F-9948-5352F5A183EB",
    "RequestKey":"1627aea5-8e0a-4371-9022-9b504344e724",
    "CreditCardTransactionResultCollection":[{
        "AcquirerMessage":"Simulator|Transação de simulação autorizada com sucesso",
        "AcquirerName":"Simulator",
        "AcquirerReturnCode":"0",
        "AffiliationCode":"000000",
        "AmountInCents":10000,
        "AuthorizationCode":"1234",
        "AuthorizedAmountInCents":10000,
        "CapturedAmountInCents":10000,
        "CreditCard":{
            "CreditCardBrand":"Visa",
            "InstantBuyKey":"1627aea5-8e0a-4371-9022-9b504344e724",
            "IsExpiredCreditCard":false,
            "MaskedCreditCardNumber":"411111*****1111"
        },
        "CreditCardOperation":"AuthAndCapture",
        "CreditCardTransactionStatus":"Captured",
        "DueDate":"",
        "ExternalTime":0,
        "PaymentMethodName":"Simulator",
        "RefundedAmountInCents":00,
        "Success":true,
        "TransactionIdentifier":"123456",
        "TransactionKey":"1627aea5-8e0a-4371-9022-9b504344e724",
        "TransactionKeyToAcquirer":"1234566",
        "TransactionReference":"CreditCardTest#0001",
        "UniqueSequentialNumber":"123456",
        "VoidedAmountInCents":0
    }]
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "Identificação do pedido inválida.",
        "ErrorCode": 404,
        "ErrorField": "RetrySaleRequest.OrderKey",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 32,
  "MerchantKey": "00000000-0000-0000-0000-000000000000",
  "RequestKey": "fab918db-e22d-46ed-86e6-8fe37061f156",
  "CreditCardTransactionResultCollection": null
}


{"__v":38,"_id":"55b7ff89568be2230092bc7a","api":{"auth":"required","examples":{"codes":[]},"params":[],"results":{"codes":[{"name":"","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 39,\n  \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n  \"RequestKey\": \"9d973047-f0e1-42cf-9437-4890e112d233\",\n  \"SaleDataCollection\": [\n    {\n      \"AntiFraudAnalysisData\": null,\n      \"BoletoTransactionDataCollection\": null,\n      \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n      \"CreditCardTransactionDataCollection\": [\n        {\n          \"AcquirerAuthorizationCode\": \"168147\",\n          \"AcquirerName\": \"Simulator\",\n          \"AcquirerReturnCode\": \"0\",\n          \"AffiliationCode\": \"000000000\",\n          \"AmountInCents\": 10000,\n          \"AuthorizedAmountInCents\": 10000,\n          \"CaptureExpirationDate\": null,\n          \"CapturedAmountInCents\": 10000,\n          \"CapturedDate\": \"2015-12-04T19:51:11\",\n          \"CreateDate\": \"2015-12-04T19:51:11\",\n          \"CreditCard\": {\n            \"CreditCardBrand\": \"Visa\",\n            \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n            \"IsExpiredCreditCard\": false,\n            \"MaskedCreditCardNumber\": \"411111****1111\"\n          },\n          \"CreditCardTransactionStatus\": \"Refunded\",\n          \"DueDate\": null,\n          \"InstallmentCount\": 1,\n          \"IsReccurency\": false,\n          \"PaymentMethodName\": \"Simulator\",\n          \"RefundedAmountInCents\": 10000,\n          \"TransactionIdentifier\": \"653355\",\n          \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n          \"TransactionKeyToAcquirer\": \"20ba05207d0944f8\",\n          \"TransactionReference\": \"1c65eaf7-df3c-4c7f-af63-f90fb6200996\",\n          \"UniqueSequentialNumber\": \"831691\",\n          \"VoidedAmountInCents\": null\n        }\n      ],\n      \"OrderData\": {\n        \"CreateDate\": \"2015-12-04T19:51:11\",\n        \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n        \"OrderReference\": \"NumeroDoPedido\"\n      }\n    }\n  ],\n  \"SaleDataCount\": 1\n}","language":"json","status":200},{"name":"","code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"Identificação do pedido inválida.\",\n        \"ErrorCode\": 404,\n        \"ErrorField\": \"QuerySaleRequest.OrderKey\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 17,\n  \"MerchantKey\": \"00000000-0000-0000-0000-000000000000,\n  \"RequestKey\": \"36462c6f-6b44-4a8d-85dd-b2ebdf865d6e\",\n  \"SaleDataCollection\": [],\n  \"SaleDataCount\": 0\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale/Query/OrderKey={OrderKey}"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Guid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\nGuid orderKey = Guid.Parse(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n// Cria o cliente para consultar o pedido no gateway.\\nIGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Consulta o pedido.\\nvar httpResponse = client.Sale.QueryOrder(orderKey);\\n\\nif (httpResponse.HttpStatusCode == HttpStatusCode.OK) {\\n    foreach (var sale in httpResponse.Response.SaleDataCollection) {\\n        Console.WriteLine(\\\"Número do pedido: {0}\\\", sale.OrderData.OrderReference);\\n    }\\n}\",\n      \"language\": \"csharp\",\n      \"name\": \"C#\"\n    },\n    {\n      \"code\": \"<?php\\n\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a URL a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja a ser utilizada\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Create new ApiClient object\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Make the call\\n    $response = $client->searchSaleByOrderKey(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\");\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (Exception $ex)\\n{\\n    $httpStatusCode = 500;\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally {\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates request object for transaction\\nquerySaleRequest = Gateway::QuerySaleRequest.new\\n\\n# fill with order key from the transaction you wish to seek\\nquerySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'\\n\\n# the request must be made using the enumerator Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey]\\n# make the request and returns a response hash\\nputs responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"from uuid import UUID\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.query_order_with_key(order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')\\n\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja \\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria o cliente que vai efetuar a operação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Define a chave do pedido\\nUUID orderKey = UUID.fromString(\\\"219d7581-78e2-4aa9-b708-b7c585780bfc\\\"); // Chave do pedido\\n\\n// Submete a requisição\\nHttpResponseGenericResponse<QuerySaleResponse> httpResponse\\n\\t= serviceClient.getSale().QueryOrder(orderKey);\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nDisponibilizamos um método para você pesquisar transações. Com ele você pode consultar o status além de outras informações importantes sobre ela.\n\nBasta especificar na URL do GET o `OrderKey` o ou o `OrderReference` da transação. Os exemplos estão abaixo:\n\n  * https://sandbox.mundipaggone.com/Sale/Query/OrderKey=219d7581-78e2-4aa9-b708-b7c585780bfc\n  * https://sandbox.mundipaggone.com/Sale/Query/OrderReference=NumeroDoPedido\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"O método QueryOrder retorna apenas os últimos 5 pedidos associados a um OrderReference.\",\n  \"title\": \"Limite de consulta\"\n}\n[/block]","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-07-28T22:17:45.649Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":6,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"consulta","sync_unique":"","title":"Consulta","type":"get","updates":["55feef24cc468e0d008dce16","560598aaf6b86e0d00284b79","560cb1e199bb5a0d0044f24e","561d345273f1a01700141632","56461a1483218f19006e7dac","56700e813d29830d003760fe","56701dd23a32d20d00c45b62","56bc9441fb9be80d00328036"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

getConsulta


Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");
Guid orderKey = Guid.Parse("219d7581-78e2-4aa9-b708-b7c585780bfc");

// Cria o cliente para consultar o pedido no gateway.
IGatewayServiceClient client = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Consulta o pedido.
var httpResponse = client.Sale.QueryOrder(orderKey);

if (httpResponse.HttpStatusCode == HttpStatusCode.OK) {
    foreach (var sale in httpResponse.Response.SaleDataCollection) {
        Console.WriteLine("Número do pedido: {0}", sale.OrderData.OrderReference);
    }
}
<?php

try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a URL a ser utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja a ser utilizada
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Create new ApiClient object
    $client = new Gateway\ApiClient();

    // Make the call
    $response = $client->searchSaleByOrderKey("219d7581-78e2-4aa9-b708-b7c585780bfc");

}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $httpStatusCode = $error->errorCollection->ErrorItemCollection[0]->ErrorCode;
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (Exception $ex)
{
    $httpStatusCode = 500;
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally {
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates request object for transaction
querySaleRequest = Gateway::QuerySaleRequest.new

# fill with order key from the transaction you wish to seek
querySaleRequest.OrderKey = '219d7581-78e2-4aa9-b708-b7c585780bfc'

# the request must be made using the enumerator Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey]
# make the request and returns a response hash
puts responseQuery = gateway.Query(Gateway::QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)
from uuid import UUID
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.query_order_with_key(order_key='219d7581-78e2-4aa9-b708-b7c585780bfc')

json_response = http_response.json()
// Define loja 
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria o cliente que vai efetuar a operação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Define a chave do pedido
UUID orderKey = UUID.fromString("219d7581-78e2-4aa9-b708-b7c585780bfc"); // Chave do pedido

// Submete a requisição
HttpResponseGenericResponse<QuerySaleResponse> httpResponse
	= serviceClient.getSale().QueryOrder(orderKey);

Disponibilizamos um método para você pesquisar transações. Com ele você pode consultar o status além de outras informações importantes sobre ela.

Basta especificar na URL do GET o OrderKey o ou o OrderReference da transação. Os exemplos estão abaixo:

Limite de consulta

O método QueryOrder retorna apenas os últimos 5 pedidos associados a um OrderReference.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 39,
  "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
  "RequestKey": "9d973047-f0e1-42cf-9437-4890e112d233",
  "SaleDataCollection": [
    {
      "AntiFraudAnalysisData": null,
      "BoletoTransactionDataCollection": null,
      "BuyerKey": "00000000-0000-0000-0000-000000000000",
      "CreditCardTransactionDataCollection": [
        {
          "AcquirerAuthorizationCode": "168147",
          "AcquirerName": "Simulator",
          "AcquirerReturnCode": "0",
          "AffiliationCode": "000000000",
          "AmountInCents": 10000,
          "AuthorizedAmountInCents": 10000,
          "CaptureExpirationDate": null,
          "CapturedAmountInCents": 10000,
          "CapturedDate": "2015-12-04T19:51:11",
          "CreateDate": "2015-12-04T19:51:11",
          "CreditCard": {
            "CreditCardBrand": "Visa",
            "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
            "IsExpiredCreditCard": false,
            "MaskedCreditCardNumber": "411111****1111"
          },
          "CreditCardTransactionStatus": "Refunded",
          "DueDate": null,
          "InstallmentCount": 1,
          "IsReccurency": false,
          "PaymentMethodName": "Simulator",
          "RefundedAmountInCents": 10000,
          "TransactionIdentifier": "653355",
          "TransactionKey": "20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
          "TransactionKeyToAcquirer": "20ba05207d0944f8",
          "TransactionReference": "1c65eaf7-df3c-4c7f-af63-f90fb6200996",
          "UniqueSequentialNumber": "831691",
          "VoidedAmountInCents": null
        }
      ],
      "OrderData": {
        "CreateDate": "2015-12-04T19:51:11",
        "OrderKey": "219d7581-78e2-4aa9-b708-b7c585780bfc",
        "OrderReference": "NumeroDoPedido"
      }
    }
  ],
  "SaleDataCount": 1
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "Identificação do pedido inválida.",
        "ErrorCode": 404,
        "ErrorField": "QuerySaleRequest.OrderKey",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 17,
  "MerchantKey": "00000000-0000-0000-0000-000000000000,
  "RequestKey": "36462c6f-6b44-4a8d-85dd-b2ebdf865d6e",
  "SaleDataCollection": [],
  "SaleDataCount": 0
}


{"__v":7,"_id":"566eec9be61c1917005aa225","api":{"auth":"required","examples":{"codes":[]},"params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"Criamos também uma funcionalidade que realiza posts de notificação proativamente. Dessa maneira não é necessário que você consulte as transações o tempo todo.\n\nO post de notificação é enviado a cada vez que há uma mudança no status de uma transação. Você deve habilitá-lo com a nossa área de relacionamento fornecendo uma URL que possamos postar a mensagem.\n\nAo recebê-lo você deve interpretar as informações da transação. Caso não consigamos notificá-lo de primeira, nosso post é reenviado mais duas vezes.\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"A resposta da loja ao POST de notificação deve conter a mensagem “OK” no body para indicar que  a requisição foi processada com sucesso.\",\n  \"title\": \"Resposta\"\n}\n[/block]\nAbaixo colocamos um exemplo de post para que você interprete! Para usar essa funcionalidade você deve solicitar a nossa equipe de atendimento que habilite o post Json na sua loja. \n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Post de cartão de crédito\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n\\t\\\"CreditCardTransaction\\\": {\\n\\t\\t\\\"StatusChangedDate\\\": \\\"2016-10-17T12:23:37.320\\\",\\n\\t\\t\\\"TransactionKey\\\": \\\"a00a5445-f9d9-45bc-86d6-4bfeb0d9419b\\\",\\n\\t\\t\\\"TransactionReference\\\": \\\"teste\\\",\\n\\t\\t\\\"TransactionIdentifier\\\": \\\"315773\\\",\\n\\t\\t\\\"UniqueSequentialNumber\\\": \\\"851194\\\",\\n\\t\\t\\\"AmountInCents\\\": 100,\\n\\t\\t\\\"Acquirer\\\": \\\"Simulator\\\",\\n\\t\\t\\\"CreditCardBrand\\\": \\\"Visa\\\",\\n\\t\\t\\\"AuthorizedAmountInCents\\\": 100,\\n\\t\\t\\\"CapturedAmountInCents\\\": 100,\\n\\t\\t\\\"AuthorizationCode\\\": \\\"937696\\\",\\n\\t\\t\\\"PreviousCreditCardTransactionStatus\\\": \\\"AuthorizedPendingCapture\\\",\\n\\t\\t\\\"CreditCardTransactionStatus\\\": \\\"Captured\\\"\\n\\t},\\n\\t\\\"MerchantKey\\\": \\\"5a2dd57f-1ed9-4153-b4ce-69683efada55\\\",\\n\\t\\\"OrderReference\\\": \\\"0c00c681\\\",\\n\\t\\\"OrderKey\\\": \\\"f4ad35ca-819f-445a-b73d-f0f5dde0b115\\\",\\n\\t\\\"AmountInCents\\\": 100,\\n\\t\\\"AmountPaidInCents\\\": 0,\\n\\t\\\"OrderStatus\\\": \\\"Paid\\\"\\n}\\n\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Post de boleto\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n\\t\\\"BoletoTransaction\\\": {\\n\\t\\t\\\"StatusChangedDate\\\": \\\"2016-10-13T15:53:17.413\\\",\\n\\t\\t\\\"TransactionKey\\\": \\\"178a44eb-b015-4f29-83b7-11f50d023d6e\\\",\\n\\t\\t\\\"TransactionReference\\\": \\\"Boleto test\\\",\\n\\t\\t\\\"BoletoExpirationDate\\\": \\\"2016-10-18T15:47:49.690\\\",\\n\\t\\t\\\"NossoNumero\\\": \\\"00002879\\\",\\n\\t\\t\\\"AmountInCents\\\": 100,\\n\\t\\t\\\"AmountPaidInCents\\\": 0,\\n\\t\\t\\\"Bank\\\": \\\"341\\\",\\n\\t\\t\\\"PreviousBoletoTransactionStatus\\\": \\\"Generated\\\",\\n\\t\\t\\\"BoletoTransactionStatus\\\": \\\"Paid\\\"\\n\\t},\\n\\t\\\"MerchantKey\\\": \\\"112dd57f-1ed9-4153-b4ce-69683efada22\\\",\\n\\t\\\"OrderReference\\\": \\\"15db3a2f\\\",\\n\\t\\\"OrderKey\\\": \\\"ad3b7f85-298f-41bd-bdfe-96ed8c0a8f22\\\",\\n\\t\\\"AmountInCents\\\": 200,\\n\\t\\\"AmountPaidInCents\\\": 0,\\n\\t\\\"OrderStatus\\\": \\\"Paid\\\"\\n}\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Post de transferência bancária\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n \\\"StatusNotification\\\": {\\n   \\\"AmountInCents\\\": \\\"4000\\\",\\n   \\\"AmountPaidInCents\\\": \\\"0\\\",\\n   \\\"MerchantKey\\\": \\\"8f84cc41-2c82-47d0-9178-1e8fd5d9c687\\\",\\n   \\\"OnlineDebitTransaction\\\": {\\n     \\\"AmountInCents\\\": \\\"4000\\\",\\n     \\\"AmountPaidInCents\\\": \\\"4000\\\",\\n     \\\"BankName\\\": \\\"Bradesco\\\",\\n     \\\"BankPaymentDate\\\": \\\"05/01/2017 01:11:07\\\",\\n     \\\"StatusChangedDate\\\": \\\"2017-01-05T01:30:28.907\\\",\\n     \\\"TransactionKey\\\": \\\"3fecb735-78e1-4395-874c-84c017dfdfab\\\",\\n     \\\"TransactionKeyToBank\\\": \\\"27244\\\",\\n     \\\"TransactionReference\\\": \\\"367ac202-1197-463c-913d-58ba6540049b\\\",\\n     \\\"PreviousOnlineDebitTransactionStatus\\\": \\\"OpenedPendingPayment\\\",\\n     \\\"OnlineDebitTransactionStatus\\\": \\\"Paid\\\"\\n   },\\n   \\\"OrderKey\\\": \\\"8db57298-9ba8-4947-9489-15e0456e5c6e\\\",\\n   \\\"OrderReference\\\": \\\"500256845\\\",\\n   \\\"OrderStatus\\\": \\\"Paid\\\"\\n }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Enviando a URL na requisição\"\n}\n[/block]\nSe você preferir é possível na criação do pedido, dentro do nó BoletoTransaction e CreditCardTransaction, enviar no campo Options, a URL para onde o post deve ser enviado.\n\nAlém disso, é possível enviar também mais de uma URL, separando-as por \"|\".\n\nExemplo:http://requestb.in/1bxdvfu1**|**http://requestb.in/1593be81\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"Options\\\":{\\n            \\\"NotificationUrl\\\":\\\"http://requestb.in/1bxdvfu1\\\"\\n        }\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Autenticação de post\"\n}\n[/block]\nPara uma maior segurança é possível criar um usuário e senha para recebimento do post. Caso você opte por utilizar essa funcionalidade nós enviaremos o usuário e a senha no header, sendo uma autenticação básica (Base64).\n\nExemplo: Para o **usuário:** MundiTest e **senha:** MundiSenha o header será:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Content-Type: application/json\\nHost: requestb.in\\nAccept-Encoding: gzip\\nCf-Visitor: {\\\"scheme\\\":\\\"http\\\"}\\nX-Request-Id: 9be267ed-ba0f-4986-aaed-096d9713b6e7\\nTotal-Route-Time: 0\\nContent-Length: 566\\nCf-Ipcountry: US\\nCf-Connecting-Ip: 40.84.188.147\\nConnection: close\\nConnect-Time: 0\\nCf-Ray: 2f15eb3280b7261d-DFW\\nAuthorization: Basic TXVuZGlUZXN0Ok11bmRpU2VuaGE=\\nVia: 1.1 vegur\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-12-14T16:21:47.683Z","excerpt":"Não faça consultas! Utilize nossas notificações!","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":7,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"posts-de-notificacao","sync_unique":"","title":"Post de notificação","type":"basic","updates":["56706a663d29830d0037621f"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Post de notificação

Não faça consultas! Utilize nossas notificações!

Criamos também uma funcionalidade que realiza posts de notificação proativamente. Dessa maneira não é necessário que você consulte as transações o tempo todo.

O post de notificação é enviado a cada vez que há uma mudança no status de uma transação. Você deve habilitá-lo com a nossa área de relacionamento fornecendo uma URL que possamos postar a mensagem.

Ao recebê-lo você deve interpretar as informações da transação. Caso não consigamos notificá-lo de primeira, nosso post é reenviado mais duas vezes.

Resposta

A resposta da loja ao POST de notificação deve conter a mensagem “OK” no body para indicar que a requisição foi processada com sucesso.

Abaixo colocamos um exemplo de post para que você interprete! Para usar essa funcionalidade você deve solicitar a nossa equipe de atendimento que habilite o post Json na sua loja.

Post de cartão de crédito

{
	"CreditCardTransaction": {
		"StatusChangedDate": "2016-10-17T12:23:37.320",
		"TransactionKey": "a00a5445-f9d9-45bc-86d6-4bfeb0d9419b",
		"TransactionReference": "teste",
		"TransactionIdentifier": "315773",
		"UniqueSequentialNumber": "851194",
		"AmountInCents": 100,
		"Acquirer": "Simulator",
		"CreditCardBrand": "Visa",
		"AuthorizedAmountInCents": 100,
		"CapturedAmountInCents": 100,
		"AuthorizationCode": "937696",
		"PreviousCreditCardTransactionStatus": "AuthorizedPendingCapture",
		"CreditCardTransactionStatus": "Captured"
	},
	"MerchantKey": "5a2dd57f-1ed9-4153-b4ce-69683efada55",
	"OrderReference": "0c00c681",
	"OrderKey": "f4ad35ca-819f-445a-b73d-f0f5dde0b115",
	"AmountInCents": 100,
	"AmountPaidInCents": 0,
	"OrderStatus": "Paid"
}

Post de boleto

{
	"BoletoTransaction": {
		"StatusChangedDate": "2016-10-13T15:53:17.413",
		"TransactionKey": "178a44eb-b015-4f29-83b7-11f50d023d6e",
		"TransactionReference": "Boleto test",
		"BoletoExpirationDate": "2016-10-18T15:47:49.690",
		"NossoNumero": "00002879",
		"AmountInCents": 100,
		"AmountPaidInCents": 0,
		"Bank": "341",
		"PreviousBoletoTransactionStatus": "Generated",
		"BoletoTransactionStatus": "Paid"
	},
	"MerchantKey": "112dd57f-1ed9-4153-b4ce-69683efada22",
	"OrderReference": "15db3a2f",
	"OrderKey": "ad3b7f85-298f-41bd-bdfe-96ed8c0a8f22",
	"AmountInCents": 200,
	"AmountPaidInCents": 0,
	"OrderStatus": "Paid"
}

Post de transferência bancária

{
 "StatusNotification": {
   "AmountInCents": "4000",
   "AmountPaidInCents": "0",
   "MerchantKey": "8f84cc41-2c82-47d0-9178-1e8fd5d9c687",
   "OnlineDebitTransaction": {
     "AmountInCents": "4000",
     "AmountPaidInCents": "4000",
     "BankName": "Bradesco",
     "BankPaymentDate": "05/01/2017 01:11:07",
     "StatusChangedDate": "2017-01-05T01:30:28.907",
     "TransactionKey": "3fecb735-78e1-4395-874c-84c017dfdfab",
     "TransactionKeyToBank": "27244",
     "TransactionReference": "367ac202-1197-463c-913d-58ba6540049b",
     "PreviousOnlineDebitTransactionStatus": "OpenedPendingPayment",
     "OnlineDebitTransactionStatus": "Paid"
   },
   "OrderKey": "8db57298-9ba8-4947-9489-15e0456e5c6e",
   "OrderReference": "500256845",
   "OrderStatus": "Paid"
 }
}

Enviando a URL na requisição

Se você preferir é possível na criação do pedido, dentro do nó BoletoTransaction e CreditCardTransaction, enviar no campo Options, a URL para onde o post deve ser enviado.

Além disso, é possível enviar também mais de uma URL, separando-as por "|".

Exemplo:http://requestb.in/1bxdvfu1|http://requestb.in/1593be81

"Options":{
            "NotificationUrl":"http://requestb.in/1bxdvfu1"
        }

Autenticação de post

Para uma maior segurança é possível criar um usuário e senha para recebimento do post. Caso você opte por utilizar essa funcionalidade nós enviaremos o usuário e a senha no header, sendo uma autenticação básica (Base64).

Exemplo: Para o usuário: MundiTest e senha: MundiSenha o header será:

Content-Type: application/json
Host: requestb.in
Accept-Encoding: gzip
Cf-Visitor: {"scheme":"http"}
X-Request-Id: 9be267ed-ba0f-4986-aaed-096d9713b6e7
Total-Route-Time: 0
Content-Length: 566
Cf-Ipcountry: US
Cf-Connecting-Ip: 40.84.188.147
Connection: close
Connect-Time: 0
Cf-Ray: 2f15eb3280b7261d-DFW
Authorization: Basic TXVuZGlUZXN0Ok11bmRpU2VuaGE=
Via: 1.1 vegur
{"__v":63,"_id":"55b803ee7df9ce2f008dfa59","api":{"auth":"required","examples":{"codes":[]},"params":[],"results":{"codes":[{"name":"","code":"{\n  \"ErrorReport\": null,\n  \"InternalTime\": 193,\n  \"MerchantKey\": \"1b2dd57f-1ed9-4153-b4ce-69683efadad5\",\n  \"RequestKey\": \"bfb4ccb4-0c41-4de0-8e10-6457181318a4\",\n  \"CreditCardTransactionResultCollection\": [\n    {\n      \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n      \"AcquirerName\": \"Simulator\",\n      \"AcquirerReturnCode\": \"0\",\n      \"AffiliationCode\": \"000000000\",\n      \"AmountInCents\": 100,\n      \"AuthorizationCode\": \"448584\",\n      \"AuthorizedAmountInCents\": 100,\n      \"CapturedAmountInCents\": 100,\n      \"CreditCard\": {\n        \"CreditCardBrand\": \"Mastercard\",\n        \"InstantBuyKey\": \"7a34bc3f-daa0-4e37-ac6b-cf99867ec197\",\n        \"IsExpiredCreditCard\": false,\n        \"MaskedCreditCardNumber\": \"231011****1111\"\n      },\n      \"CreditCardOperation\": \"AuthAndCapture\",\n      \"CreditCardTransactionStatus\": \"Captured\",\n      \"ExternalTime\": 0,\n      \"PaymentMethodName\": \"Simulator\",\n      \"Success\": true,\n      \"TransactionIdentifier\": \"61014\",\n      \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n      \"TransactionKeyToAcquirer\": \"bd8bf2f8507c42bb\",\n      \"TransactionReference\": \"ef0b2798-e90c-464f-a9ed-cde575ca69e2\",\n      \"UniqueSequentialNumber\": \"360012\",\n    }\n  ],\n  \"OrderResult\": {\n    \"CreateDate\": \"2015-07-24T22:09:45\",\n    \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n    \"OrderReference\": \"NumeroDoPedido\"\n  }\n}","language":"json","status":201},{"name":null,"code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"1b2dd57f-1ed9-4153-b4ce-69683efadad5\",\n  \"RequestKey\": \"fb0f6d14-3564-4ac2-bc88-9d319816b966\",\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#region Monta a requisicao\\n\\nvar boletoTransaction = new BoletoTransaction() {\\n    AmountInCents = 10000,\\n    BankNumber = \\\"237\\\",\\n    BillingAddress = new BillingAddress() {\\n        City = \\\"Tatooine\\\",\\n        Complement = \\\"\\\",\\n        Country = CountryEnum.Brazil.ToString(),\\n        Number = \\\"123\\\",\\n        District = \\\"Mos Eisley\\\",\\n        State = \\\"RJ\\\",\\n        Street = \\\"Mos Eisley Cantina\\\",\\n        ZipCode = \\\"20001000\\\"\\n    },\\n    DocumentNumber = \\\"12345678901\\\",\\n    Instructions = \\\"Pagar antes do vencimento\\\",\\n    Options = new BoletoTransactionOptions() {\\n        CurrencyIso = CurrencyIsoEnum.BRL,\\n        DaysToAddInBoletoExpirationDate = 5\\n    },\\n    TransactionReference = \\\"NumeroDaTransacao\\\"\\n};\\n\\n// Cria o comprador.\\nBuyer buyer = new Buyer() {\\n    AddressCollection = new Collection<BuyerAddress>(),\\n    Birthdate = new DateTime(1990, 8, 20),\\n    BuyerCategory = BuyerCategoryEnum.Normal,\\n    BuyerReference = \\\"C3PO\\\",\\n    CreateDateInMerchant = DateTime.Now,\\n    DocumentNumber = \\\"12345678901\\\",\\n    DocumentType = DocumentTypeEnum.CPF,\\n    Email = \\\"lskywalker@r2d2.com\\\",\\n    EmailType = EmailTypeEnum.Personal,\\n    FacebookId = \\\"lukeskywalker8917\\\",\\n    Gender = GenderEnum.M,\\n    HomePhone = \\\"(21)123456789\\\",\\n    MobilePhone = \\\"(21)987654321\\\",\\n    Name = \\\"Luke Skywalker\\\",\\n    PersonType = PersonTypeEnum.Person,\\n    TwitterId = \\\"@lukeskywalker8917\\\",\\n    WorkPhone = \\\"(21)28467902\\\"\\n};\\n// Adiciona um endereço para o comprador.\\nbuyer.AddressCollection.Add(new BuyerAddress() {\\n    AddressType = AddressTypeEnum.Residential,\\n    City = \\\"Tatooine\\\",\\n    Complement = \\\"\\\",\\n    Country = CountryEnum.Brazil.ToString(),\\n    District = \\\"Mos Eisley\\\",\\n    Number = \\\"123\\\",\\n    State = \\\"RJ\\\",\\n    Street = \\\"Mos Eisley Cantina\\\",\\n    ZipCode = \\\"20001000\\\"\\n});\\n\\n// Cria a transação de cartão de crédito.\\nvar creditCardTransaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        BillingAddress = new BillingAddress() {\\n            City = \\\"Tatooine\\\",\\n            Complement = \\\"\\\",\\n            Country = CountryEnum.Brazil.ToString(),\\n            District = \\\"Mos Eisley\\\",\\n            Number = \\\"123\\\",\\n            State = \\\"RJ\\\",\\n            Street = \\\"Mos Eisley Cantina\\\",\\n            ZipCode = \\\"20001000\\\"\\n        },\\n        CreditCardBrand = CreditCardBrandEnum.Visa,\\n        CreditCardNumber = \\\"4111111111111111\\\",\\n        ExpMonth = 10,\\n        ExpYear = 22,\\n        HolderName = \\\"LUKE SKYWALKER\\\",\\n        SecurityCode = \\\"123\\\"\\n    },\\n    CreditCardOperation = CreditCardOperationEnum.AuthOnly,\\n    InstallmentCount = 1,\\n    Options = new CreditCardTransactionOptions() {\\n        CurrencyIso = CurrencyIsoEnum.BRL,\\n        PaymentMethodCode = 1,\\n        SoftDescriptorText = \\\"Jedi Mega Store\\\"\\n    },\\n    TransactionReference = \\\"NumeroDaTransacao\\\"\\n};\\n\\n// Dados da loja.\\nMerchant merchant = new Merchant() {\\n    MerchantReference = \\\"IdDaLojaPlataforma\\\"\\n};\\n\\n// Opções da requisição.\\nSaleOptions saleOptions = new SaleOptions() {\\n    AntiFraudServiceCode = 0,\\n    CurrencyIso = CurrencyIsoEnum.BRL,\\n    IsAntiFraudEnabled = true, // Habilita a integração com o serviço de anti fraude\\n    Retries = 1 // Quantidade máxima de retentativas para o cartão de crédito.\\n};\\n\\n// Dados da requisição no site da loja.\\nRequestData requestData = new RequestData() {\\n    EcommerceCategory = EcommerceCategoryEnum.B2C,\\n    IpAddress = \\\"127.0.0.1\\\",\\n    Origin = \\\"SiteDeCompra\\\",\\n    SessionId = \\\"IdSesssaoNoSite\\\"\\n};\\n\\n// Cria o carrinho de compras.\\nShoppingCart shoppintCart = new ShoppingCart() {\\n    DeliveryAddress = new DeliveryAddress() {\\n        City = \\\"Galaxy far far away\\\",\\n        Complement = \\\"Bridge\\\",\\n        Country = CountryEnum.Brazil.ToString(),\\n        District = \\\"Command Room\\\",\\n        Number = \\\"321\\\",\\n        State = \\\"RJ\\\",\\n        Street = \\\"Death Star\\\",\\n        ZipCode = \\\"10002000\\\"\\n    },\\n    DeliveryDeadline = DateTime.Now.AddDays(3),\\n    EstimatedDeliveryDate = DateTime.Now.AddDays(3),\\n    FreightCostInCents = 2000,\\n    ShippingCompany = \\\"Empire\\\",\\n    ShoppingCartItemCollection = new Collection<ShoppingCartItem>()\\n};\\n\\n// Adiciona um produto no carrinho de compras.\\nshoppintCart.ShoppingCartItemCollection.Add(new ShoppingCartItem() {\\n    Description = \\\"Red Lightsaber\\\",\\n    DiscountAmountInCents = 0,\\n    ItemReference = \\\"NumeroDoProduto\\\",\\n    Name = \\\"Lightsaber\\\",\\n    Quantity = 1,\\n    TotalCostInCents = 18000,\\n    UnitCostInCents = 18000\\n});\\n\\n#endregion\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona o boleto na requisição.\\n    BoletoTransactionCollection = new Collection<BoletoTransaction>(new BoletoTransaction[] { boletoTransaction }),\\n    Buyer = buyer,\\n    // Adiciona a transação de cartão de crédito na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { creditCardTransaction }),\\n    Merchant = merchant,\\n    Options = saleOptions,\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    },\\n    RequestData = requestData,\\n    ShoppingCartCollection = new Collection<ShoppingCart>(new ShoppingCart[] { shoppintCart })\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Status transação de cartão: {0}\\\", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);\\n}\\nif (httpResponse.Response.BoletoTransactionResultCollection != null) {\\n                Console.WriteLine(\\\"Status transação de boleto: {0}\\\", httpResponse.Response.BoletoTransactionResultCollection.FirstOrDefault().BoletoTransactionStatus);\\n            }\",\n      \"language\": \"csharp\",\n      \"name\": \"C#\"\n    },\n    {\n      \"code\": \"<?php\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '\\\\vendor\\\\autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto da requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Dados da transação de boleto\\n    $boletoTransaction = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequestData\\\\BoletoTransaction();\\n    \\n    $boletoTransaction\\n    ->setAmountInCents(10000)\\n    ->setBankNumber(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\BankEnum::BRADESCO)\\n    ->setDocumentNumber(\\\"12345678901\\\")\\n    ->setInstructions(\\\"Pagar antes do vencimento\\\")\\n    ->setTransactionReference(\\\"NumeroDaTransacao\\\")\\n    ->getOptions()\\n    ->setCurrencyIso(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CurrencyIsoEnum::BRL)\\n    ->setDaysToAddInBoletoExpirationDate(5);\\n\\n    // Endereço de cobrança da transação de boleto\\n    $boletoTransaction->getBillingAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::BILLING)\\n    ->setStreet(\\\"Mos Eisley Cantina\\\")\\n    ->setNumber(\\\"123\\\")\\n    ->setComplement(\\\"\\\")\\n    ->setDistrict(\\\"Mos Eisley\\\")\\n    ->setCity(\\\"Tatooine\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"20001000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    $request->addBoletoTransaction($boletoTransaction);\\n\\n    // Dados do comprador\\n    $request->getBuyer()\\n    ->setName(\\\"Luke Skywalker\\\")\\n    ->setPersonType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\PersonTypeEnum::PERSON)\\n    ->setBuyerReference(\\\"C3PO\\\")\\n    ->setDocumentNumber(\\\"12345678901\\\")\\n    ->setDocumentType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\DocumentTypeEnum::CPF)\\n    ->setEmail(\\\"lskywalker@r2d2.com\\\")\\n    ->setEmailType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\EmailTypeEnum::PERSONAL)\\n    ->setGender(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\GenderEnum::MALE)\\n    ->setHomePhone(\\\"(21)123456789\\\")\\n    ->setMobilePhone(\\\"(21)987654321\\\")\\n    ->setWorkPhone(\\\"(21)28467902\\\")\\n    ->setBirthDate(\\\\DateTime::createFromFormat('d/m/Y', '20/08/1990'))\\n    ->setFacebookId(\\\"lukeskywalker8917\\\")\\n    ->setTwitterId(\\\"@lukeskywalker8917\\\")\\n    ->setCreateDateInMerchant(new \\\\DateTime())\\n    ->addAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::RESIDENTIAL)\\n    ->setStreet(\\\"Mos Eisley Cantina\\\")\\n    ->setNumber(\\\"123\\\")\\n    ->setComplement(\\\"\\\")\\n    ->setDistrict(\\\"Mos Eisley\\\")\\n    ->setCity(\\\"Tatooine\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"20001000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    // Dados da transação de cartão de crédito\\n    $creditCardTransaction = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequestData\\\\CreditCardTransaction();\\n    $request->addCreditCardTransaction($creditCardTransaction);\\n    $creditCardTransaction\\n    ->setAmountInCents(10000)\\n    ->setInstallmentCount(1)\\n    ->setCreditCardOperation(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardOperationEnum::AUTH_ONLY)\\n    ->setTransactionDateInMerchant(new DateTime())\\n    ->setTransactionReference(\\\"NumeroDaTransacao\\\")\\n    ->getCreditCard()\\n    ->setCreditCardBrand(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardBrandEnum::VISA)\\n    ->setCreditCardNumber(\\\"4111111111111111\\\")\\n    ->setExpMonth(10)\\n    ->setExpYear(2022)\\n    ->setHolderName(\\\"LUKE SKYWALKER\\\")\\n    ->setSecurityCode(\\\"123\\\")\\n    ->getBillingAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::BILLING)\\n    ->setStreet(\\\"Mos Eisley Cantina\\\")\\n    ->setNumber(\\\"123\\\")\\n    ->setComplement(\\\"\\\")\\n    ->setDistrict(\\\"Mos Eisley\\\")\\n    ->setCity(\\\"Tatooine\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"20001000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    // Opções da transação de cartão de crédito\\n    $creditCardTransaction->getOptions()\\n    ->setCurrencyIso(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CurrencyIsoEnum::BRL)\\n    ->setPaymentMethodCode(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\PaymentMethodEnum::SIMULATOR)\\n    ->setSoftDescriptorText(\\\"Jedi Mega Store\\\");\\n\\n    $request->getMerchant()\\n    ->setMerchantReference(\\\"IdDaLojaPlataforma\\\");\\n\\n    //Opções do pedido\\n    $request->getOptions()\\n    ->setAntiFraudServiceCode(0)\\n    ->setCurrencyIso(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CurrencyIsoEnum::BRL)\\n    ->enableAntiFraud()\\n    ->setRetries(1);\\n\\n    //Dados do pedido\\n    $request->getOrder()\\n    ->setOrderReference(\\\"NumeroDoPedido\\\");            \\n\\n    //Dados da requisição\\n    $request->getRequestData()\\n    ->setEcommerceCategory(\\\"B2C\\\")\\n    ->setIpAddress(\\\"127.0.0.1\\\")\\n    ->setOrigin(\\\"SiteDeCompra\\\")\\n    ->setSessionId(\\\"IdSessaoNoSite\\\");\\n\\n    //Dados do Carrinho de compras\\n    $shoppingCart = $request->addShoppingCart();\\n    $shoppingCart->setDeliveryDeadline(DateTime::createFromFormat(\\\"Y-m-d H:i:s\\\", '2015-12-14 18:36:45'));\\n    $shoppingCart->setEstimatedDeliveryDate(DateTime::createFromFormat(\\\"Y-m-d H:i:s\\\", '2015-12-14 18:36:45'));\\n    $shoppingCart->setFreightCostInCents(2000);\\n    $shoppingCart->setShippingCompany(\\\"Empire\\\");\\n    $shoppingCart->getDeliveryAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::SHIPPING)\\n    ->setStreet(\\\"Death Star\\\")\\n    ->setNumber(\\\"321\\\")\\n    ->setComplement(\\\"Bridge\\\")\\n    ->setDistrict(\\\"Command Room\\\")\\n    ->setCity(\\\"Galaxy far far away\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"10002000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    //Adiciona um item ao carrinho\\n    $shoppingCart->addShoppingCartItem()\\n    ->setDescription(\\\"Red Lightsaber\\\")\\n    ->setDiscountAmountInCents(0)\\n    ->setItemReference(\\\"NumeroDoProduto\\\")\\n    ->setName(\\\"Lightsaber\\\")\\n    ->setQuantity(1)\\n    ->setUnitCostInCents(18000)\\n    ->setTotalCostInCents(18000);\\n\\n    // Cria um novo objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada de criação\\n    $response = $client->createSale($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    print json_encode($response->getData());\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# creates boleto transaction object\\nboletoTransaction = Gateway::BoletoTransaction.new\\n\\n# 100 reais in cents\\nboletoTransaction.AmountInCents = 10000\\nboletoTransaction.BankNumber = '237'\\nboletoTransaction.BillingAddress.City = 'Tatooine'\\nboletoTransaction.BillingAddress.Complement = ''\\nboletoTransaction.BillingAddress.Country = 'Brazil'\\nboletoTransaction.BillingAddress.District = 'Mos Eisley'\\nboletoTransaction.BillingAddress.Number = '123'\\nboletoTransaction.BillingAddress.State = 'RJ'\\nboletoTransaction.BillingAddress.Street = 'Mos Eisley Cantina'\\nboletoTransaction.BillingAddress.ZipCode = '20001000'\\nboletoTransaction.DocumentNumber = '12345678901'\\nboletoTransaction.Instructions = 'Pagar antes do vencimento'\\nboletoTransaction.Options.CurrencyIso = 'BRL'\\nboletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5\\nboletoTransaction.TransactionReference = 'NumeroDaTransacao'\\n\\n\\n# create credit card transaction object\\ncreditCardTransaction = Gateway::CreditCardTransaction.new\\n\\n# 100 reais in cents \\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'\\ncreditCardTransaction.CreditCard.BillingAddress.Complement = ''\\ncreditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'\\ncreditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'\\ncreditCardTransaction.CreditCard.BillingAddress.Number = '123'\\ncreditCardTransaction.CreditCard.BillingAddress.State = 'RJ'\\ncreditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'\\ncreditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'\\ncreditCardTransaction.CreditCard.CreditCardBrand = 'Visa'\\ncreditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'\\ncreditCardTransaction.CreditCard.ExpMonth = 10\\ncreditCardTransaction.CreditCard.ExpYear = 22\\ncreditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'\\ncreditCardTransaction.CreditCard.SecurityCode = '123'\\ncreditCardTransaction.CreditCardOperation = 'AuthOnly'\\ncreditCardTransaction.InstallmentCount = 1\\ncreditCardTransaction.Options.CurrencyIso = 'BRL'\\ncreditCardTransaction.Options.PaymentMethodCode = 1\\ncreditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'\\n\\nshoppingCartItem = Gateway::ShoppingCartItemCollection.new\\nshoppingCartItem.Description = 'Red Lightsaber'\\nshoppingCartItem.DiscountAmountInCents = 0\\nshoppingCartItem.ItemReference = 'NumeroDoProduto'\\nshoppingCartItem.Name = 'Lightsaber'\\nshoppingCartItem.Quantity = 1\\nshoppingCartItem.TotalCostInCents = 18000\\nshoppingCartItem.UnitCostInCents = 18000\\n\\nshoppingCartCollection = Gateway::ShoppingCartCollection.new\\nshoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'\\nshoppingCartCollection.DeliveryAddress.Complement = 'Bridge'\\nshoppingCartCollection.DeliveryAddress.Country = 'Brazil'\\nshoppingCartCollection.DeliveryAddress.District = 'Command Room'\\nshoppingCartCollection.DeliveryAddress.Number = '321'\\nshoppingCartCollection.DeliveryAddress.State = 'RJ'\\nshoppingCartCollection.DeliveryAddress.Street = 'Death Star'\\nshoppingCartCollection.DeliveryAddress.ZipCode = '10002000'\\nshoppingCartCollection.DeliveryDeadline = DateTime.new(2015, 12, 14, 18, 36, 45).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\nshoppingCartCollection.EstimatedDeliveryDate = DateTime.new(2015, 12, 14, 18, 36, 45).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\nshoppingCartCollection.FreighCostInCents = 2000\\nshoppingCartCollection.ShippingCompany = 'Empire'\\nshoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\n\\n# adds to the boleto transaction collection\\ncreateSaleRequest.BoletoTransactionCollection << boletoTransaction\\n\\nbuyerAddress = Gateway::BuyerAddress.new\\nbuyerAddress.AddressType = 'Residential'\\nbuyerAddress.City = 'Tatooine'\\nbuyerAddress.Complement = ''\\nbuyerAddress.Country = 'Brazil'\\nbuyerAddress.District = 'Mos Eisley'\\nbuyerAddress.Number = '123'\\nbuyerAddress.State = 'RJ'\\nbuyerAddress.Street = 'Mos Eisley Cantina'\\nbuyerAddress.ZipCode = '20001000'\\n\\ncreateSaleRequest.Buyer.AddressCollection << buyerAddress\\ncreateSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\ncreateSaleRequest.Buyer.BuyerCategory = 'Normal'\\ncreateSaleRequest.Buyer.BuyerReference = 'C3PO'\\ncreateSaleRequest.Buyer.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\ncreateSaleRequest.Buyer.DocumentNumber = '12345678901'\\ncreateSaleRequest.Buyer.DocumentType = 'CPF'\\ncreateSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'\\ncreateSaleRequest.Buyer.EmailType = 'Personal'\\ncreateSaleRequest.Buyer.FacebookId = 'lukeskywalker8917'\\ncreateSaleRequest.Buyer.Gender = 'M'\\ncreateSaleRequest.Buyer.HomePhone = '(21)123456789'\\ncreateSaleRequest.Buyer.MobilePhone = '(21)987654321'\\ncreateSaleRequest.Buyer.Name = 'Luke Skywalker'\\ncreateSaleRequest.Buyer.PersonType = 'Person'\\ncreateSaleRequest.Buyer.TwitterId = '@lukeskywalker8917'\\ncreateSaleRequest.Buyer.WorkPhone = '(21)28467902'\\n\\n# adds to the credit card transaction collection\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\ncreateSaleRequest.Merchant.MerchantReference = 'IdDaLojaPlataforma'\\ncreateSaleRequest.Options.AntiFraudServiceCode = 0\\ncreateSaleRequest.Options.CurrencyIso = 'BRL'\\ncreateSaleRequest.Options.IsAntiFraudEnabled = true\\ncreateSaleRequest.Options.Retries = 1\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\ncreateSaleRequest.RequestData.EcommerceCategory = 'B2C'\\ncreateSaleRequest.RequestData.IpAddress = '127.0.0.1'\\ncreateSaleRequest.RequestData.Origin = 'SiteDeCompra'\\ncreateSaleRequest.RequestData.SessionId = 'IdSesssaoNoSite'\\n\\n# adds shopping cart collection in the request\\ncreateSaleRequest.ShoppingCartCollection << shoppingCartCollection\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# -*- coding: utf-8 -*-\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, buyer_address, buyer, billing_address,sale_options, delivery_address, shopping_cart_item, shopping_cart, boleto_transaction_options, boleto_transaction, merchant, request_data\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\nfrom datetime import datetime\\n\\n# Cria o endereco do comprador\\nbuyer_address_collection_data = [buyer_address(address_type = 'Residential', city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')]\\n\\n#Cria o comprador\\nbuyer_data = buyer(address_collection = buyer_address_collection_data, birth_date = '1990-08-20T00:00:00',buyer_category = 'Normal', buyer_reference = 'C3PO', create_date_in_merchant = datetime.now().strftime(\\\"%Y-%m-%dT%H:%M:%S\\\"), document_number = '12345678901' , document_type = 'CPF', email = 'lskywalker@r2d2.com', email_type = 'Personal',facebook_id = 'lukeskywalker8917', gender = 'M', home_phone = '(21)123456789', mobile_phone = '(21)987654321', name = 'Luke Skywalker', person_type = 'Person', twitter_id = '@lukeskywalker8917', work_phone = '(21)28467902')\\n\\n# Cria o endereco de cobranca\\nbilling_address_data = billing_address(city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')\\n\\n# Criando a transacao de cartao de credito.\\n##Coleta os dados do cartão.\\ncreditcard_data = creditcard(billing_address= billing_address_data, creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=22,\\n                             security_code='123', holder_name='LUKE SKYWALKER')\\n\\n## Cria as opcoes do cartao de credito\\ncreditcard_transaction_options_data = creditcard_transaction_options(payment_method_code = 1, soft_descriptor_text = 'Jedi Mega Store', currency_iso = 'BRL')\\n\\n## Cria a transação de cartao de credito.\\ncredit_card_transaction_collection_data = [creditcard_transaction(10000, creditcard_data, 'AuthOnly', installment_count = 1, options = creditcard_transaction_options_data, transaction_reference = 'NumeroDaTransacao')]\\n\\n# Criando a transacao de boleto\\nboleto_options = boleto_transaction_options(currency_iso = 'BRL', days_to_add_in_boleto_expiration_date = 5)\\n\\nboleto_transaction_collection_data = [ boleto_transaction(10000, bank_number = '237', document_number='12345678901', instructions='Pagar antes do vencimento', options = boleto_options,billing_address = billing_address_data )]\\n\\n# Habilita o antiFraud\\nsale_options_data = sale_options(is_anti_fraud_enabled = True, anti_fraud_service_code = 0, retries = 1, currency_iso_field = 'BRL')\\n\\n##Cria o numero do pedido\\norder_data = order(order_reference='NumeroDoPedido')\\n\\n# Criando o carrinho de compra\\n## Cria o endereco de entrega para o carrinho de compras\\ndelivery_address_data = delivery_address(city = 'Galaxy far far away', complement = 'Bridge', country = 'Brazil', district = 'Command Room', number = '321', state = 'RJ', street = 'Death Star', zip_code = '10002000')\\n\\n## Cria a colecao de item do carrinho de compras \\nshopping_cart_item_collection_data = [shopping_cart_item(description = 'Red Lightsaber', discount_amount_in_cents = 0, item_reference = 'NumeroDoProduto', name = 'Lightsaber', quantity = 1, total_cost_in_cents = 18000, unit_cost_in_cents = 18000)]\\n\\n## Cria o carrinho de compra\\nshopping_cart_collection_data = [shopping_cart(delivery_address = delivery_address_data, delivery_deadline = datetime.now().strftime(\\\"%Y-%m-%dT%H:%M:%S\\\"), estimated_delivery_date = datetime.now().strftime(\\\"%Y-%m-%dT%H:%M:%S\\\"), freight_cost_in_cents = 2000,shipping_company = 'Empire',  shopping_cart_item_collection = shopping_cart_item_collection_data)]\\n\\n# Cria o merchant\\nmerchant_data = merchant(merchant_reference = 'IdDaLojaPlataforma')\\n\\n# Cria os dados da requisição\\nrequest_data_data = request_data(ecommerce_category = 'B2C', ip_address = '127.0.0.1', origin = 'SiteDeCompra', session_id = 'IdSesssaoNoSite')\\n\\n# Cria a requisicao\\nrequest = create_sale_request(creditcard_transaction_collection = credit_card_transaction_collection_data, boleto_transaction_collection = boleto_transaction_collection_data, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data, options = sale_options_data, merchant = merchant_data, request_data = request_data_data)\\n\\n# Coloque sua MerchantKey aqui.\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# envia a transação e recebe a resposta do gateway.\\nhttp_response = service_client.sale.create_with_request(request)\\n\\n#Obtem a resposta em json.\\njson_response = http_response.json()\\n\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria objeto do endereço\\nBillingAddress billingAddress= new BillingAddress();\\nbillingAddress.setCity(\\\"Tatooine\\\");\\nbillingAddress.setComplement(\\\"\\\");\\nbillingAddress.setCountry(CountryEnum.Brazil);\\nbillingAddress.setDistrict(\\\"Mos Eisley\\\");\\nbillingAddress.setNumber(\\\"123\\\");\\nbillingAddress.setState(\\\"RJ\\\");\\nbillingAddress.setStreet(\\\"Mos Eisley Cantina\\\");\\nbillingAddress.setZipCode(\\\"20001000\\\");\\n\\n// Cria um objeto de transação de boleto\\nBoletoTransaction boletoTransaction = new BoletoTransaction();\\nboletoTransaction.setAmountInCents(10000L);\\nboletoTransaction.setBankNumber(\\\"237\\\");\\nboletoTransaction.setBillingAddress(billingAddress);\\nboletoTransaction.setDocumentNumber(\\\"12345678901\\\");\\nboletoTransaction.setInstructions(\\\"Pagar antes do vencimento\\\");\\nboletoTransaction.setTransactionReference(\\\"NumeroDaTransacao\\\");\\n\\n// Cria o objeto de options\\nBoletoTransactionOptions boletoTransactionOptions = new BoletoTransactionOptions();\\nboletoTransactionOptions.setCurrencyIso(CurrencyIsoEnum.BRL);\\nboletoTransactionOptions.setDaysToAddInBoletoExpirationDate(5);\\nboletoTransaction.setOptions(boletoTransactionOptions);\\n\\n// Cria objeto de endereço do Buyer\\nBuyerAddress buyerAddress = new BuyerAddress();\\nbuyerAddress.setAddressType(AddressTypeEnum.Residential);\\nbuyerAddress.setCity(\\\"Tatooine\\\");\\nbuyerAddress.setComplement(\\\"\\\");\\nbuyerAddress.setCountry(CountryEnum.Brazil);\\nbuyerAddress.setDistrict(\\\"Mos Eisley\\\");\\nbuyerAddress.setNumber(\\\"123\\\");\\nbuyerAddress.setState(\\\"RJ\\\");\\nbuyerAddress.setStreet(\\\"Mos Eisley Cantina\\\");\\nbuyerAddress.setZipCode(\\\"20001000\\\");\\n\\n// Cria coleção de endereços do buyer\\nArrayList<BuyerAddress> buyerAddressCollection = new ArrayList<BuyerAddress>();\\nbuyerAddressCollection.add(buyerAddress);\\n\\n// Cria objeto do buyer\\nBuyer buyer = new Buyer();\\nbuyer.setAddressCollection(buyerAddressCollection);\\nbuyer.setBirthdate(Date.valueOf(\\\"1990-12-11\\\"));\\nbuyer.setBuyerCategory(BuyerCategoryEnum.Normal);\\nbuyer.setBuyerReference(\\\"C3PO\\\");\\nbuyer.setCreateDateInMerchant(Date.valueOf(\\\"2015-12-11\\\"));\\nbuyer.setDocumentNumber(\\\"12345678901\\\");\\nbuyer.setDocumentType(DocumentTypeEnum.CPF);\\nbuyer.setEmail(\\\"lskywalker@r2d2.com\\\");\\nbuyer.setEmailType(EmailTypeEnum.Personal);\\nbuyer.setFacebookId(\\\"lukeskywalker8917\\\");\\nbuyer.setGender(GenderEnum.M);\\nbuyer.setHomePhone(\\\"(21)123456789\\\");\\nbuyer.setMobilePhone(\\\"(21)987654321\\\");\\nbuyer.setName(\\\"Luke Skywalker\\\");\\nbuyer.setPersonType(PersonTypeEnum.Person);\\nbuyer.setTwitterId(\\\"@lukeskywalker8917\\\");\\nbuyer.setWorkPhone(\\\"(21)28467902\\\");\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setBillingAddress(billingAddress);\\ncreditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);\\ncreditCard.setCreditCardNumber(\\\"4111111111111111\\\");\\ncreditCard.setExpMonth(10);\\ncreditCard.setExpYear(22);\\ncreditCard.setHolderName(\\\"LUKE SKYWALKER\\\");\\ncreditCard.setSecurityCode(\\\"123\\\");\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setCreditCardOperation(CreditCardOperationEnum.AuthOnly);\\ncreditCardTransaction.setInstallmentCount(1);\\ncreditCardTransaction.setOptions(new CreditCardTransactionOptions());\\ncreditCardTransaction.getOptions().setCurrencyIso(CurrencyIsoEnum.BRL);\\ncreditCardTransaction.getOptions().setPaymentMethodCode(1);\\ncreditCardTransaction.getOptions().setSoftDescriptorText(\\\"Jedi Mega Store\\\");\\ncreditCardTransaction.setTransactionReference(\\\"NumeroDaTransacao\\\");\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NúmeroDoPedido\\\");\\n\\n// Cria item o shopping cart\\nShoppingCartItem shoppingCartItem = new ShoppingCartItem();\\nshoppingCartItem.setDescription(\\\"Red Lightsaber\\\");\\nshoppingCartItem.setDiscountAmountInCents(0L);\\nshoppingCartItem.setItemReference(\\\"NumeroDoProduto\\\");\\nshoppingCartItem.setName(\\\"Lightsaber\\\");\\nshoppingCartItem.setQuantity(1);\\nshoppingCartItem.setTotalCostInCents(18000);\\nshoppingCartItem.setUnitCostInCents(18000);\\n\\n// Cria shopping cart\\nShoppingCart shoppingCart = new ShoppingCart();\\nshoppingCart.setDeliveryAddress(new DeliveryAddress());\\nshoppingCart.getDeliveryAddress().setCity(\\\"Galaxy Far Far Away\\\");\\nshoppingCart.getDeliveryAddress().setComplement(\\\"Bridge\\\");\\nshoppingCart.getDeliveryAddress().setCountry(CountryEnum.Brazil);\\nshoppingCart.getDeliveryAddress().setDistrict(\\\"Command Room\\\");\\nshoppingCart.getDeliveryAddress().setNumber(\\\"321\\\");\\nshoppingCart.getDeliveryAddress().setState(\\\"RJ\\\");\\nshoppingCart.getDeliveryAddress().setStreet(\\\"Death Star\\\");\\nshoppingCart.getDeliveryAddress().setZipCode(\\\"10002000\\\");\\nshoppingCart.setDeliveryDeadline(Date.valueOf(\\\"2015-12-14\\\"));\\nshoppingCart.setEstimatedDeliveryDate(Date.valueOf(\\\"2015-12-14\\\"));\\nshoppingCart.setFreightCostInCents(2000);\\nshoppingCart.setShippingCompany(\\\"Empire\\\");\\nshoppingCart.setShoppingCartItemCollection(new ArrayList<>());\\nshoppingCart.getShoppingCartItemCollection().add(shoppingCartItem);\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setBoletoTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getBoletoTransactionCollection().add(boletoTransaction);\\ncreateSaleRequest.setMerchant(new Merchant());\\ncreateSaleRequest.getMerchant().setMerchantReference(\\\"IdDaLojaPlataforma\\\");\\ncreateSaleRequest.setOptions(new SaleOptions());\\ncreateSaleRequest.getOptions().setAntiFraudServiceCode(0);\\ncreateSaleRequest.getOptions().setCurrencyIso(CurrencyIsoEnum.BRL);\\ncreateSaleRequest.getOptions().setIsAntiFraudEnabled(Boolean.TRUE);\\ncreateSaleRequest.getOptions().setRetries(1);\\ncreateSaleRequest.setOrder(order);\\ncreateSaleRequest.setRequestData(new RequestData());\\ncreateSaleRequest.getRequestData().setEcommerceCategory(EcommerceCategoryEnum.B2C);\\ncreateSaleRequest.getRequestData().setIpAddress(\\\"127.0.0.1\\\");\\ncreateSaleRequest.getRequestData().setOrigin(\\\"SiteDeCompra\\\");\\ncreateSaleRequest.getRequestData().setSessionId(\\\"IdSessaoNoSite\\\");\\ncreateSaleRequest.setShoppingCartCollection(new ArrayList<>());\\ncreateSaleRequest.getShoppingCartCollection().add(shoppingCart);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse\\n        = serviceClient.getSale().Create(createSaleRequest);\\n\\nreturn httpResponse.getRawResponse();\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"BoletoTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"BankNumber\\\": \\\"237\\\",\\n            \\\"BillingAddress\\\": {\\n                \\\"City\\\": \\\"Tatooine\\\",\\n                \\\"Complement\\\": \\\"\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Mos Eisley\\\",\\n                \\\"Number\\\": \\\"123\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                \\\"ZipCode\\\": \\\"20001000\\\"\\n            },\\n            \\\"DocumentNumber\\\": \\\"12345678901\\\",\\n            \\\"Instructions\\\": \\\"Pagar antes do vencimento\\\",\\n            \\\"Options\\\": {\\n                \\\"CurrencyIso\\\": \\\"BRL\\\",\\n                \\\"DaysToAddInBoletoExpirationDate\\\": 5\\n            },\\n            \\\"TransactionReference\\\": \\\"NumeroDaTransacao\\\"\\n        }\\n    ],\\n    \\\"Buyer\\\": {\\n        \\\"AddressCollection\\\": [\\n            {\\n                \\\"AddressType\\\": \\\"Residential\\\",\\n                \\\"City\\\": \\\"Tatooine\\\",\\n                \\\"Complement\\\": \\\"\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Mos Eisley\\\",\\n                \\\"Number\\\": \\\"123\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                \\\"ZipCode\\\": \\\"20001000\\\"\\n            }\\n        ],\\n        \\\"Birthdate\\\": \\\"1990-08-20T00:00:00\\\",\\n        \\\"BuyerCategory\\\": \\\"Normal\\\",\\n        \\\"BuyerReference\\\": \\\"C3PO\\\",\\n        \\\"CreateDateInMerchant\\\": \\\"2015-12-11T18:36:45\\\",\\n        \\\"DocumentNumber\\\": \\\"12345678901\\\",\\n        \\\"DocumentType\\\": \\\"CPF\\\",\\n        \\\"Email\\\": \\\"lskywalker@r2d2.com\\\",\\n        \\\"EmailType\\\": \\\"Personal\\\",\\n        \\\"FacebookId\\\": \\\"lukeskywalker8917\\\",\\n        \\\"Gender\\\": \\\"M\\\",\\n        \\\"HomePhone\\\": \\\"(21)123456789\\\",\\n        \\\"MobilePhone\\\": \\\"(21)987654321\\\",\\n        \\\"Name\\\": \\\"Luke Skywalker\\\",\\n        \\\"PersonType\\\": \\\"Person\\\",\\n        \\\"TwitterId\\\":\\\"@lukeskywalker8917\\\",\\n        \\\"WorkPhone\\\": \\\"(21)28467902\\\"\\n    },\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"BillingAddress\\\": {\\n                    \\\"City\\\": \\\"Tatooine\\\",\\n                    \\\"Complement\\\": \\\"\\\",\\n                    \\\"Country\\\": \\\"Brazil\\\",\\n                    \\\"District\\\": \\\"Mos Eisley\\\",\\n                    \\\"Number\\\": \\\"123\\\",\\n                    \\\"State\\\": \\\"RJ\\\",\\n                    \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                    \\\"ZipCode\\\": \\\"20001000\\\"\\n                },\\n                \\\"CreditCardBrand\\\": \\\"Visa\\\",\\n                \\\"CreditCardNumber\\\": \\\"4111111111111111\\\",\\n                \\\"ExpMonth\\\": 10,\\n                \\\"ExpYear\\\": 22,\\n                \\\"HolderName\\\": \\\"LUKE SKYWALKER\\\",\\n                \\\"SecurityCode\\\": \\\"123\\\"\\n            },\\n            \\\"CreditCardOperation\\\": \\\"AuthOnly\\\",\\n            \\\"InstallmentCount\\\": 1,\\n            \\\"Options\\\": {\\n                \\\"CurrencyIso\\\": \\\"BRL\\\",\\n                \\\"PaymentMethodCode\\\": 1,\\n                \\\"SoftDescriptorText\\\": \\\"Jedi Mega Store\\\"\\n            },\\n            \\\"TransactionReference\\\": \\\"NumeroDaTransacao\\\"\\n        }\\n    ],\\n    \\\"Merchant\\\": {\\n        \\\"MerchantReference\\\": \\\"IdDaLojaPlataforma\\\"\\n    },\\n    \\\"Options\\\": {\\n        \\\"AntiFraudServiceCode\\\": 0,\\n        \\\"CurrencyIso\\\": \\\"BRL\\\",\\n        \\\"IsAntiFraudEnabled\\\": true,\\n        \\\"Retries\\\": 1\\n    },\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    },\\n    \\\"RequestData\\\": {\\n        \\\"EcommerceCategory\\\": \\\"B2C\\\",\\n        \\\"IpAddress\\\": \\\"127.0.0.1\\\",\\n        \\\"Origin\\\": \\\"SiteDeCompra\\\",\\n        \\\"SessionId\\\": \\\"IdSesssaoNoSite\\\"\\n    },\\n    \\\"ShoppingCartCollection\\\": [\\n        {\\n            \\\"DeliveryAddress\\\": {\\n                \\\"City\\\": \\\"Galaxy far far away\\\",\\n                \\\"Complement\\\": \\\"Bridge\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Command Room\\\",\\n                \\\"Number\\\": \\\"321\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Death Star\\\",\\n                \\\"ZipCode\\\": \\\"10002000\\\"\\n            },\\n            \\\"DeliveryDeadline\\\": \\\"2015-12-14T18:36:45\\\",\\n            \\\"EstimatedDeliveryDate\\\": \\\"2015-12-14T18:36:45\\\",\\n            \\\"FreightCostInCents\\\": 2000,\\n            \\\"ShippingCompany\\\": \\\"Empire\\\",\\n            \\\"ShoppingCartItemCollection\\\": [\\n                {\\n                    \\\"Description\\\": \\\"Red Lightsaber\\\",\\n                    \\\"DiscountAmountInCents\\\": 0,\\n                    \\\"ItemReference\\\": \\\"NumeroDoProduto\\\",\\n                    \\\"Name\\\": \\\"Lightsaber\\\",\\n                    \\\"Quantity\\\": 1,\\n                    \\\"TotalCostInCents\\\": 18000,\\n                    \\\"UnitCostInCents\\\": 18000\\n                }\\n            ]\\n        }\\n    ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","category":"559c51b1da9f6d0d00c342e8","createdAt":"2015-07-28T22:36:30.867Z","excerpt":"Como mandar uma requisição completa!","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":8,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"referencias","sync_unique":"","title":"Requisição completa","type":"post","updates":["567811dacdb94219009a3e9e","5678a548239fac0d00c7ded1","5678a7d884397c0d00fe12e6","568d56ae6b3c3c0d00838b99","56bc951c5e104b0d00e7afb8"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postRequisição completa

Como mandar uma requisição completa!

#region Monta a requisicao

var boletoTransaction = new BoletoTransaction() {
    AmountInCents = 10000,
    BankNumber = "237",
    BillingAddress = new BillingAddress() {
        City = "Tatooine",
        Complement = "",
        Country = CountryEnum.Brazil.ToString(),
        Number = "123",
        District = "Mos Eisley",
        State = "RJ",
        Street = "Mos Eisley Cantina",
        ZipCode = "20001000"
    },
    DocumentNumber = "12345678901",
    Instructions = "Pagar antes do vencimento",
    Options = new BoletoTransactionOptions() {
        CurrencyIso = CurrencyIsoEnum.BRL,
        DaysToAddInBoletoExpirationDate = 5
    },
    TransactionReference = "NumeroDaTransacao"
};

// Cria o comprador.
Buyer buyer = new Buyer() {
    AddressCollection = new Collection<BuyerAddress>(),
    Birthdate = new DateTime(1990, 8, 20),
    BuyerCategory = BuyerCategoryEnum.Normal,
    BuyerReference = "C3PO",
    CreateDateInMerchant = DateTime.Now,
    DocumentNumber = "12345678901",
    DocumentType = DocumentTypeEnum.CPF,
    Email = "lskywalker@r2d2.com",
    EmailType = EmailTypeEnum.Personal,
    FacebookId = "lukeskywalker8917",
    Gender = GenderEnum.M,
    HomePhone = "(21)123456789",
    MobilePhone = "(21)987654321",
    Name = "Luke Skywalker",
    PersonType = PersonTypeEnum.Person,
    TwitterId = "@lukeskywalker8917",
    WorkPhone = "(21)28467902"
};
// Adiciona um endereço para o comprador.
buyer.AddressCollection.Add(new BuyerAddress() {
    AddressType = AddressTypeEnum.Residential,
    City = "Tatooine",
    Complement = "",
    Country = CountryEnum.Brazil.ToString(),
    District = "Mos Eisley",
    Number = "123",
    State = "RJ",
    Street = "Mos Eisley Cantina",
    ZipCode = "20001000"
});

// Cria a transação de cartão de crédito.
var creditCardTransaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        BillingAddress = new BillingAddress() {
            City = "Tatooine",
            Complement = "",
            Country = CountryEnum.Brazil.ToString(),
            District = "Mos Eisley",
            Number = "123",
            State = "RJ",
            Street = "Mos Eisley Cantina",
            ZipCode = "20001000"
        },
        CreditCardBrand = CreditCardBrandEnum.Visa,
        CreditCardNumber = "4111111111111111",
        ExpMonth = 10,
        ExpYear = 22,
        HolderName = "LUKE SKYWALKER",
        SecurityCode = "123"
    },
    CreditCardOperation = CreditCardOperationEnum.AuthOnly,
    InstallmentCount = 1,
    Options = new CreditCardTransactionOptions() {
        CurrencyIso = CurrencyIsoEnum.BRL,
        PaymentMethodCode = 1,
        SoftDescriptorText = "Jedi Mega Store"
    },
    TransactionReference = "NumeroDaTransacao"
};

// Dados da loja.
Merchant merchant = new Merchant() {
    MerchantReference = "IdDaLojaPlataforma"
};

// Opções da requisição.
SaleOptions saleOptions = new SaleOptions() {
    AntiFraudServiceCode = 0,
    CurrencyIso = CurrencyIsoEnum.BRL,
    IsAntiFraudEnabled = true, // Habilita a integração com o serviço de anti fraude
    Retries = 1 // Quantidade máxima de retentativas para o cartão de crédito.
};

// Dados da requisição no site da loja.
RequestData requestData = new RequestData() {
    EcommerceCategory = EcommerceCategoryEnum.B2C,
    IpAddress = "127.0.0.1",
    Origin = "SiteDeCompra",
    SessionId = "IdSesssaoNoSite"
};

// Cria o carrinho de compras.
ShoppingCart shoppintCart = new ShoppingCart() {
    DeliveryAddress = new DeliveryAddress() {
        City = "Galaxy far far away",
        Complement = "Bridge",
        Country = CountryEnum.Brazil.ToString(),
        District = "Command Room",
        Number = "321",
        State = "RJ",
        Street = "Death Star",
        ZipCode = "10002000"
    },
    DeliveryDeadline = DateTime.Now.AddDays(3),
    EstimatedDeliveryDate = DateTime.Now.AddDays(3),
    FreightCostInCents = 2000,
    ShippingCompany = "Empire",
    ShoppingCartItemCollection = new Collection<ShoppingCartItem>()
};

// Adiciona um produto no carrinho de compras.
shoppintCart.ShoppingCartItemCollection.Add(new ShoppingCartItem() {
    Description = "Red Lightsaber",
    DiscountAmountInCents = 0,
    ItemReference = "NumeroDoProduto",
    Name = "Lightsaber",
    Quantity = 1,
    TotalCostInCents = 18000,
    UnitCostInCents = 18000
});

#endregion

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona o boleto na requisição.
    BoletoTransactionCollection = new Collection<BoletoTransaction>(new BoletoTransaction[] { boletoTransaction }),
    Buyer = buyer,
    // Adiciona a transação de cartão de crédito na requisição.
    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { creditCardTransaction }),
    Merchant = merchant,
    Options = saleOptions,
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    },
    RequestData = requestData,
    ShoppingCartCollection = new Collection<ShoppingCart>(new ShoppingCart[] { shoppintCart })
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.CreditCardTransactionResultCollection != null) {
    Console.WriteLine("Status transação de cartão: {0}", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);
}
if (httpResponse.Response.BoletoTransactionResultCollection != null) {
                Console.WriteLine("Status transação de boleto: {0}", httpResponse.Response.BoletoTransactionResultCollection.FirstOrDefault().BoletoTransactionStatus);
            }
<?php
try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '\vendor\autoload.php');

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto da requisição
    $request = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Dados da transação de boleto
    $boletoTransaction = new \Gateway\One\DataContract\Request\CreateSaleRequestData\BoletoTransaction();
    
    $boletoTransaction
    ->setAmountInCents(10000)
    ->setBankNumber(\Gateway\One\DataContract\Enum\BankEnum::BRADESCO)
    ->setDocumentNumber("12345678901")
    ->setInstructions("Pagar antes do vencimento")
    ->setTransactionReference("NumeroDaTransacao")
    ->getOptions()
    ->setCurrencyIso(\Gateway\One\DataContract\Enum\CurrencyIsoEnum::BRL)
    ->setDaysToAddInBoletoExpirationDate(5);

    // Endereço de cobrança da transação de boleto
    $boletoTransaction->getBillingAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::BILLING)
    ->setStreet("Mos Eisley Cantina")
    ->setNumber("123")
    ->setComplement("")
    ->setDistrict("Mos Eisley")
    ->setCity("Tatooine")
    ->setState("RJ")
    ->setZipCode("20001000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    $request->addBoletoTransaction($boletoTransaction);

    // Dados do comprador
    $request->getBuyer()
    ->setName("Luke Skywalker")
    ->setPersonType(\Gateway\One\DataContract\Enum\PersonTypeEnum::PERSON)
    ->setBuyerReference("C3PO")
    ->setDocumentNumber("12345678901")
    ->setDocumentType(\Gateway\One\DataContract\Enum\DocumentTypeEnum::CPF)
    ->setEmail("lskywalker@r2d2.com")
    ->setEmailType(\Gateway\One\DataContract\Enum\EmailTypeEnum::PERSONAL)
    ->setGender(\Gateway\One\DataContract\Enum\GenderEnum::MALE)
    ->setHomePhone("(21)123456789")
    ->setMobilePhone("(21)987654321")
    ->setWorkPhone("(21)28467902")
    ->setBirthDate(\DateTime::createFromFormat('d/m/Y', '20/08/1990'))
    ->setFacebookId("lukeskywalker8917")
    ->setTwitterId("@lukeskywalker8917")
    ->setCreateDateInMerchant(new \DateTime())
    ->addAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::RESIDENTIAL)
    ->setStreet("Mos Eisley Cantina")
    ->setNumber("123")
    ->setComplement("")
    ->setDistrict("Mos Eisley")
    ->setCity("Tatooine")
    ->setState("RJ")
    ->setZipCode("20001000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    // Dados da transação de cartão de crédito
    $creditCardTransaction = new \Gateway\One\DataContract\Request\CreateSaleRequestData\CreditCardTransaction();
    $request->addCreditCardTransaction($creditCardTransaction);
    $creditCardTransaction
    ->setAmountInCents(10000)
    ->setInstallmentCount(1)
    ->setCreditCardOperation(\Gateway\One\DataContract\Enum\CreditCardOperationEnum::AUTH_ONLY)
    ->setTransactionDateInMerchant(new DateTime())
    ->setTransactionReference("NumeroDaTransacao")
    ->getCreditCard()
    ->setCreditCardBrand(\Gateway\One\DataContract\Enum\CreditCardBrandEnum::VISA)
    ->setCreditCardNumber("4111111111111111")
    ->setExpMonth(10)
    ->setExpYear(2022)
    ->setHolderName("LUKE SKYWALKER")
    ->setSecurityCode("123")
    ->getBillingAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::BILLING)
    ->setStreet("Mos Eisley Cantina")
    ->setNumber("123")
    ->setComplement("")
    ->setDistrict("Mos Eisley")
    ->setCity("Tatooine")
    ->setState("RJ")
    ->setZipCode("20001000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    // Opções da transação de cartão de crédito
    $creditCardTransaction->getOptions()
    ->setCurrencyIso(\Gateway\One\DataContract\Enum\CurrencyIsoEnum::BRL)
    ->setPaymentMethodCode(\Gateway\One\DataContract\Enum\PaymentMethodEnum::SIMULATOR)
    ->setSoftDescriptorText("Jedi Mega Store");

    $request->getMerchant()
    ->setMerchantReference("IdDaLojaPlataforma");

    //Opções do pedido
    $request->getOptions()
    ->setAntiFraudServiceCode(0)
    ->setCurrencyIso(\Gateway\One\DataContract\Enum\CurrencyIsoEnum::BRL)
    ->enableAntiFraud()
    ->setRetries(1);

    //Dados do pedido
    $request->getOrder()
    ->setOrderReference("NumeroDoPedido");            

    //Dados da requisição
    $request->getRequestData()
    ->setEcommerceCategory("B2C")
    ->setIpAddress("127.0.0.1")
    ->setOrigin("SiteDeCompra")
    ->setSessionId("IdSessaoNoSite");

    //Dados do Carrinho de compras
    $shoppingCart = $request->addShoppingCart();
    $shoppingCart->setDeliveryDeadline(DateTime::createFromFormat("Y-m-d H:i:s", '2015-12-14 18:36:45'));
    $shoppingCart->setEstimatedDeliveryDate(DateTime::createFromFormat("Y-m-d H:i:s", '2015-12-14 18:36:45'));
    $shoppingCart->setFreightCostInCents(2000);
    $shoppingCart->setShippingCompany("Empire");
    $shoppingCart->getDeliveryAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::SHIPPING)
    ->setStreet("Death Star")
    ->setNumber("321")
    ->setComplement("Bridge")
    ->setDistrict("Command Room")
    ->setCity("Galaxy far far away")
    ->setState("RJ")
    ->setZipCode("10002000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    //Adiciona um item ao carrinho
    $shoppingCart->addShoppingCartItem()
    ->setDescription("Red Lightsaber")
    ->setDiscountAmountInCents(0)
    ->setItemReference("NumeroDoProduto")
    ->setName("Lightsaber")
    ->setQuantity(1)
    ->setUnitCostInCents(18000)
    ->setTotalCostInCents(18000);

    // Cria um novo objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada de criação
    $response = $client->createSale($request);

}
catch (\Gateway\One\DataContract\Report\CreditCardError $error)
{
    $response = array("message" => $error->getMessage());
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (\Exception $ex)
{
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    header('Content-Type: application/json');
    print json_encode($response->getData());
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# creates boleto transaction object
boletoTransaction = Gateway::BoletoTransaction.new

# 100 reais in cents
boletoTransaction.AmountInCents = 10000
boletoTransaction.BankNumber = '237'
boletoTransaction.BillingAddress.City = 'Tatooine'
boletoTransaction.BillingAddress.Complement = ''
boletoTransaction.BillingAddress.Country = 'Brazil'
boletoTransaction.BillingAddress.District = 'Mos Eisley'
boletoTransaction.BillingAddress.Number = '123'
boletoTransaction.BillingAddress.State = 'RJ'
boletoTransaction.BillingAddress.Street = 'Mos Eisley Cantina'
boletoTransaction.BillingAddress.ZipCode = '20001000'
boletoTransaction.DocumentNumber = '12345678901'
boletoTransaction.Instructions = 'Pagar antes do vencimento'
boletoTransaction.Options.CurrencyIso = 'BRL'
boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5
boletoTransaction.TransactionReference = 'NumeroDaTransacao'


# create credit card transaction object
creditCardTransaction = Gateway::CreditCardTransaction.new

# 100 reais in cents 
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
creditCardTransaction.CreditCard.BillingAddress.Complement = ''
creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
creditCardTransaction.CreditCard.BillingAddress.Number = '123'
creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
creditCardTransaction.CreditCard.ExpMonth = 10
creditCardTransaction.CreditCard.ExpYear = 22
creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
creditCardTransaction.CreditCard.SecurityCode = '123'
creditCardTransaction.CreditCardOperation = 'AuthOnly'
creditCardTransaction.InstallmentCount = 1
creditCardTransaction.Options.CurrencyIso = 'BRL'
creditCardTransaction.Options.PaymentMethodCode = 1
creditCardTransaction.Options.SoftDescriptorText = 'Jedi Mega Store'

shoppingCartItem = Gateway::ShoppingCartItemCollection.new
shoppingCartItem.Description = 'Red Lightsaber'
shoppingCartItem.DiscountAmountInCents = 0
shoppingCartItem.ItemReference = 'NumeroDoProduto'
shoppingCartItem.Name = 'Lightsaber'
shoppingCartItem.Quantity = 1
shoppingCartItem.TotalCostInCents = 18000
shoppingCartItem.UnitCostInCents = 18000

shoppingCartCollection = Gateway::ShoppingCartCollection.new
shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
shoppingCartCollection.DeliveryAddress.District = 'Command Room'
shoppingCartCollection.DeliveryAddress.Number = '321'
shoppingCartCollection.DeliveryAddress.State = 'RJ'
shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
shoppingCartCollection.DeliveryDeadline = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
shoppingCartCollection.EstimatedDeliveryDate = DateTime.new(2015, 12, 14, 18, 36, 45).strftime("%Y-%m-%dT%H:%M:%S")
shoppingCartCollection.FreighCostInCents = 2000
shoppingCartCollection.ShippingCompany = 'Empire'
shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem

# creates request object for transaction creation
createSaleRequest = Gateway::CreateSaleRequest.new

# adds to the boleto transaction collection
createSaleRequest.BoletoTransactionCollection << boletoTransaction

buyerAddress = Gateway::BuyerAddress.new
buyerAddress.AddressType = 'Residential'
buyerAddress.City = 'Tatooine'
buyerAddress.Complement = ''
buyerAddress.Country = 'Brazil'
buyerAddress.District = 'Mos Eisley'
buyerAddress.Number = '123'
buyerAddress.State = 'RJ'
buyerAddress.Street = 'Mos Eisley Cantina'
buyerAddress.ZipCode = '20001000'

createSaleRequest.Buyer.AddressCollection << buyerAddress
createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
createSaleRequest.Buyer.BuyerCategory = 'Normal'
createSaleRequest.Buyer.BuyerReference = 'C3PO'
createSaleRequest.Buyer.CreateDateInMerchant = DateTime.new(2015,12,11,18,36,45).strftime("%Y-%m-%dT%H:%M:%S")
createSaleRequest.Buyer.DocumentNumber = '12345678901'
createSaleRequest.Buyer.DocumentType = 'CPF'
createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
createSaleRequest.Buyer.EmailType = 'Personal'
createSaleRequest.Buyer.FacebookId = 'lukeskywalker8917'
createSaleRequest.Buyer.Gender = 'M'
createSaleRequest.Buyer.HomePhone = '(21)123456789'
createSaleRequest.Buyer.MobilePhone = '(21)987654321'
createSaleRequest.Buyer.Name = 'Luke Skywalker'
createSaleRequest.Buyer.PersonType = 'Person'
createSaleRequest.Buyer.TwitterId = '@lukeskywalker8917'
createSaleRequest.Buyer.WorkPhone = '(21)28467902'

# adds to the credit card transaction collection
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
createSaleRequest.Merchant.MerchantReference = 'IdDaLojaPlataforma'
createSaleRequest.Options.AntiFraudServiceCode = 0
createSaleRequest.Options.CurrencyIso = 'BRL'
createSaleRequest.Options.IsAntiFraudEnabled = true
createSaleRequest.Options.Retries = 1
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'
createSaleRequest.RequestData.EcommerceCategory = 'B2C'
createSaleRequest.RequestData.IpAddress = '127.0.0.1'
createSaleRequest.RequestData.Origin = 'SiteDeCompra'
createSaleRequest.RequestData.SessionId = 'IdSesssaoNoSite'

# adds shopping cart collection in the request
createSaleRequest.ShoppingCartCollection << shoppingCartCollection

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# -*- coding: utf-8 -*-

from uuid import UUID
from data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, buyer_address, buyer, billing_address,sale_options, delivery_address, shopping_cart_item, shopping_cart, boleto_transaction_options, boleto_transaction, merchant, request_data
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum
from datetime import datetime

# Cria o endereco do comprador
buyer_address_collection_data = [buyer_address(address_type = 'Residential', city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')]

#Cria o comprador
buyer_data = buyer(address_collection = buyer_address_collection_data, birth_date = '1990-08-20T00:00:00',buyer_category = 'Normal', buyer_reference = 'C3PO', create_date_in_merchant = datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), document_number = '12345678901' , document_type = 'CPF', email = 'lskywalker@r2d2.com', email_type = 'Personal',facebook_id = 'lukeskywalker8917', gender = 'M', home_phone = '(21)123456789', mobile_phone = '(21)987654321', name = 'Luke Skywalker', person_type = 'Person', twitter_id = '@lukeskywalker8917', work_phone = '(21)28467902')

# Cria o endereco de cobranca
billing_address_data = billing_address(city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')

# Criando a transacao de cartao de credito.
##Coleta os dados do cartão.
creditcard_data = creditcard(billing_address= billing_address_data, creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=22,
                             security_code='123', holder_name='LUKE SKYWALKER')

## Cria as opcoes do cartao de credito
creditcard_transaction_options_data = creditcard_transaction_options(payment_method_code = 1, soft_descriptor_text = 'Jedi Mega Store', currency_iso = 'BRL')

## Cria a transação de cartao de credito.
credit_card_transaction_collection_data = [creditcard_transaction(10000, creditcard_data, 'AuthOnly', installment_count = 1, options = creditcard_transaction_options_data, transaction_reference = 'NumeroDaTransacao')]

# Criando a transacao de boleto
boleto_options = boleto_transaction_options(currency_iso = 'BRL', days_to_add_in_boleto_expiration_date = 5)

boleto_transaction_collection_data = [ boleto_transaction(10000, bank_number = '237', document_number='12345678901', instructions='Pagar antes do vencimento', options = boleto_options,billing_address = billing_address_data )]

# Habilita o antiFraud
sale_options_data = sale_options(is_anti_fraud_enabled = True, anti_fraud_service_code = 0, retries = 1, currency_iso_field = 'BRL')

##Cria o numero do pedido
order_data = order(order_reference='NumeroDoPedido')

# Criando o carrinho de compra
## Cria o endereco de entrega para o carrinho de compras
delivery_address_data = delivery_address(city = 'Galaxy far far away', complement = 'Bridge', country = 'Brazil', district = 'Command Room', number = '321', state = 'RJ', street = 'Death Star', zip_code = '10002000')

## Cria a colecao de item do carrinho de compras 
shopping_cart_item_collection_data = [shopping_cart_item(description = 'Red Lightsaber', discount_amount_in_cents = 0, item_reference = 'NumeroDoProduto', name = 'Lightsaber', quantity = 1, total_cost_in_cents = 18000, unit_cost_in_cents = 18000)]

## Cria o carrinho de compra
shopping_cart_collection_data = [shopping_cart(delivery_address = delivery_address_data, delivery_deadline = datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), estimated_delivery_date = datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), freight_cost_in_cents = 2000,shipping_company = 'Empire',  shopping_cart_item_collection = shopping_cart_item_collection_data)]

# Cria o merchant
merchant_data = merchant(merchant_reference = 'IdDaLojaPlataforma')

# Cria os dados da requisição
request_data_data = request_data(ecommerce_category = 'B2C', ip_address = '127.0.0.1', origin = 'SiteDeCompra', session_id = 'IdSesssaoNoSite')

# Cria a requisicao
request = create_sale_request(creditcard_transaction_collection = credit_card_transaction_collection_data, boleto_transaction_collection = boleto_transaction_collection_data, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data, options = sale_options_data, merchant = merchant_data, request_data = request_data_data)

# Coloque sua MerchantKey aqui.
merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"
service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# envia a transação e recebe a resposta do gateway.
http_response = service_client.sale.create_with_request(request)

#Obtem a resposta em json.
json_response = http_response.json()

// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria objeto do endereço
BillingAddress billingAddress= new BillingAddress();
billingAddress.setCity("Tatooine");
billingAddress.setComplement("");
billingAddress.setCountry(CountryEnum.Brazil);
billingAddress.setDistrict("Mos Eisley");
billingAddress.setNumber("123");
billingAddress.setState("RJ");
billingAddress.setStreet("Mos Eisley Cantina");
billingAddress.setZipCode("20001000");

// Cria um objeto de transação de boleto
BoletoTransaction boletoTransaction = new BoletoTransaction();
boletoTransaction.setAmountInCents(10000L);
boletoTransaction.setBankNumber("237");
boletoTransaction.setBillingAddress(billingAddress);
boletoTransaction.setDocumentNumber("12345678901");
boletoTransaction.setInstructions("Pagar antes do vencimento");
boletoTransaction.setTransactionReference("NumeroDaTransacao");

// Cria o objeto de options
BoletoTransactionOptions boletoTransactionOptions = new BoletoTransactionOptions();
boletoTransactionOptions.setCurrencyIso(CurrencyIsoEnum.BRL);
boletoTransactionOptions.setDaysToAddInBoletoExpirationDate(5);
boletoTransaction.setOptions(boletoTransactionOptions);

// Cria objeto de endereço do Buyer
BuyerAddress buyerAddress = new BuyerAddress();
buyerAddress.setAddressType(AddressTypeEnum.Residential);
buyerAddress.setCity("Tatooine");
buyerAddress.setComplement("");
buyerAddress.setCountry(CountryEnum.Brazil);
buyerAddress.setDistrict("Mos Eisley");
buyerAddress.setNumber("123");
buyerAddress.setState("RJ");
buyerAddress.setStreet("Mos Eisley Cantina");
buyerAddress.setZipCode("20001000");

// Cria coleção de endereços do buyer
ArrayList<BuyerAddress> buyerAddressCollection = new ArrayList<BuyerAddress>();
buyerAddressCollection.add(buyerAddress);

// Cria objeto do buyer
Buyer buyer = new Buyer();
buyer.setAddressCollection(buyerAddressCollection);
buyer.setBirthdate(Date.valueOf("1990-12-11"));
buyer.setBuyerCategory(BuyerCategoryEnum.Normal);
buyer.setBuyerReference("C3PO");
buyer.setCreateDateInMerchant(Date.valueOf("2015-12-11"));
buyer.setDocumentNumber("12345678901");
buyer.setDocumentType(DocumentTypeEnum.CPF);
buyer.setEmail("lskywalker@r2d2.com");
buyer.setEmailType(EmailTypeEnum.Personal);
buyer.setFacebookId("lukeskywalker8917");
buyer.setGender(GenderEnum.M);
buyer.setHomePhone("(21)123456789");
buyer.setMobilePhone("(21)987654321");
buyer.setName("Luke Skywalker");
buyer.setPersonType(PersonTypeEnum.Person);
buyer.setTwitterId("@lukeskywalker8917");
buyer.setWorkPhone("(21)28467902");

// Cria um cartão de crédito e define endereço de cobrança
CreditCard creditCard = new CreditCard();
creditCard.setBillingAddress(billingAddress);
creditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);
creditCard.setCreditCardNumber("4111111111111111");
creditCard.setExpMonth(10);
creditCard.setExpYear(22);
creditCard.setHolderName("LUKE SKYWALKER");
creditCard.setSecurityCode("123");

// Cria a transação de cartão de crédito e define cartão criado anteriormente
CreditCardTransaction creditCardTransaction = new CreditCardTransaction();
creditCardTransaction.setAmountInCents(10000L);
creditCardTransaction.setCreditCard(creditCard);
creditCardTransaction.setCreditCardOperation(CreditCardOperationEnum.AuthOnly);
creditCardTransaction.setInstallmentCount(1);
creditCardTransaction.setOptions(new CreditCardTransactionOptions());
creditCardTransaction.getOptions().setCurrencyIso(CurrencyIsoEnum.BRL);
creditCardTransaction.getOptions().setPaymentMethodCode(1);
creditCardTransaction.getOptions().setSoftDescriptorText("Jedi Mega Store");
creditCardTransaction.setTransactionReference("NumeroDaTransacao");

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NúmeroDoPedido");

// Cria item o shopping cart
ShoppingCartItem shoppingCartItem = new ShoppingCartItem();
shoppingCartItem.setDescription("Red Lightsaber");
shoppingCartItem.setDiscountAmountInCents(0L);
shoppingCartItem.setItemReference("NumeroDoProduto");
shoppingCartItem.setName("Lightsaber");
shoppingCartItem.setQuantity(1);
shoppingCartItem.setTotalCostInCents(18000);
shoppingCartItem.setUnitCostInCents(18000);

// Cria shopping cart
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.setDeliveryAddress(new DeliveryAddress());
shoppingCart.getDeliveryAddress().setCity("Galaxy Far Far Away");
shoppingCart.getDeliveryAddress().setComplement("Bridge");
shoppingCart.getDeliveryAddress().setCountry(CountryEnum.Brazil);
shoppingCart.getDeliveryAddress().setDistrict("Command Room");
shoppingCart.getDeliveryAddress().setNumber("321");
shoppingCart.getDeliveryAddress().setState("RJ");
shoppingCart.getDeliveryAddress().setStreet("Death Star");
shoppingCart.getDeliveryAddress().setZipCode("10002000");
shoppingCart.setDeliveryDeadline(Date.valueOf("2015-12-14"));
shoppingCart.setEstimatedDeliveryDate(Date.valueOf("2015-12-14"));
shoppingCart.setFreightCostInCents(2000);
shoppingCart.setShippingCompany("Empire");
shoppingCart.setShoppingCartItemCollection(new ArrayList<>());
shoppingCart.getShoppingCartItemCollection().add(shoppingCartItem);

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());
createSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);
createSaleRequest.setBoletoTransactionCollection(new ArrayList<>());
createSaleRequest.getBoletoTransactionCollection().add(boletoTransaction);
createSaleRequest.setMerchant(new Merchant());
createSaleRequest.getMerchant().setMerchantReference("IdDaLojaPlataforma");
createSaleRequest.setOptions(new SaleOptions());
createSaleRequest.getOptions().setAntiFraudServiceCode(0);
createSaleRequest.getOptions().setCurrencyIso(CurrencyIsoEnum.BRL);
createSaleRequest.getOptions().setIsAntiFraudEnabled(Boolean.TRUE);
createSaleRequest.getOptions().setRetries(1);
createSaleRequest.setOrder(order);
createSaleRequest.setRequestData(new RequestData());
createSaleRequest.getRequestData().setEcommerceCategory(EcommerceCategoryEnum.B2C);
createSaleRequest.getRequestData().setIpAddress("127.0.0.1");
createSaleRequest.getRequestData().setOrigin("SiteDeCompra");
createSaleRequest.getRequestData().setSessionId("IdSessaoNoSite");
createSaleRequest.setShoppingCartCollection(new ArrayList<>());
createSaleRequest.getShoppingCartCollection().add(shoppingCart);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse
        = serviceClient.getSale().Create(createSaleRequest);

return httpResponse.getRawResponse();
{
    "BoletoTransactionCollection": [
        {
            "AmountInCents": 10000,
            "BankNumber": "237",
            "BillingAddress": {
                "City": "Tatooine",
                "Complement": "",
                "Country": "Brazil",
                "District": "Mos Eisley",
                "Number": "123",
                "State": "RJ",
                "Street": "Mos Eisley Cantina",
                "ZipCode": "20001000"
            },
            "DocumentNumber": "12345678901",
            "Instructions": "Pagar antes do vencimento",
            "Options": {
                "CurrencyIso": "BRL",
                "DaysToAddInBoletoExpirationDate": 5
            },
            "TransactionReference": "NumeroDaTransacao"
        }
    ],
    "Buyer": {
        "AddressCollection": [
            {
                "AddressType": "Residential",
                "City": "Tatooine",
                "Complement": "",
                "Country": "Brazil",
                "District": "Mos Eisley",
                "Number": "123",
                "State": "RJ",
                "Street": "Mos Eisley Cantina",
                "ZipCode": "20001000"
            }
        ],
        "Birthdate": "1990-08-20T00:00:00",
        "BuyerCategory": "Normal",
        "BuyerReference": "C3PO",
        "CreateDateInMerchant": "2015-12-11T18:36:45",
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF",
        "Email": "lskywalker@r2d2.com",
        "EmailType": "Personal",
        "FacebookId": "lukeskywalker8917",
        "Gender": "M",
        "HomePhone": "(21)123456789",
        "MobilePhone": "(21)987654321",
        "Name": "Luke Skywalker",
        "PersonType": "Person",
        "TwitterId":"@lukeskywalker8917",
        "WorkPhone": "(21)28467902"
    },
    "CreditCardTransactionCollection": [
        {
            "AmountInCents": 10000,
            "CreditCard": {
                "BillingAddress": {
                    "City": "Tatooine",
                    "Complement": "",
                    "Country": "Brazil",
                    "District": "Mos Eisley",
                    "Number": "123",
                    "State": "RJ",
                    "Street": "Mos Eisley Cantina",
                    "ZipCode": "20001000"
                },
                "CreditCardBrand": "Visa",
                "CreditCardNumber": "4111111111111111",
                "ExpMonth": 10,
                "ExpYear": 22,
                "HolderName": "LUKE SKYWALKER",
                "SecurityCode": "123"
            },
            "CreditCardOperation": "AuthOnly",
            "InstallmentCount": 1,
            "Options": {
                "CurrencyIso": "BRL",
                "PaymentMethodCode": 1,
                "SoftDescriptorText": "Jedi Mega Store"
            },
            "TransactionReference": "NumeroDaTransacao"
        }
    ],
    "Merchant": {
        "MerchantReference": "IdDaLojaPlataforma"
    },
    "Options": {
        "AntiFraudServiceCode": 0,
        "CurrencyIso": "BRL",
        "IsAntiFraudEnabled": true,
        "Retries": 1
    },
    "Order": {
        "OrderReference": "NumeroDoPedido"
    },
    "RequestData": {
        "EcommerceCategory": "B2C",
        "IpAddress": "127.0.0.1",
        "Origin": "SiteDeCompra",
        "SessionId": "IdSesssaoNoSite"
    },
    "ShoppingCartCollection": [
        {
            "DeliveryAddress": {
                "City": "Galaxy far far away",
                "Complement": "Bridge",
                "Country": "Brazil",
                "District": "Command Room",
                "Number": "321",
                "State": "RJ",
                "Street": "Death Star",
                "ZipCode": "10002000"
            },
            "DeliveryDeadline": "2015-12-14T18:36:45",
            "EstimatedDeliveryDate": "2015-12-14T18:36:45",
            "FreightCostInCents": 2000,
            "ShippingCompany": "Empire",
            "ShoppingCartItemCollection": [
                {
                    "Description": "Red Lightsaber",
                    "DiscountAmountInCents": 0,
                    "ItemReference": "NumeroDoProduto",
                    "Name": "Lightsaber",
                    "Quantity": 1,
                    "TotalCostInCents": 18000,
                    "UnitCostInCents": 18000
                }
            ]
        }
    ]
}

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
  "ErrorReport": null,
  "InternalTime": 193,
  "MerchantKey": "1b2dd57f-1ed9-4153-b4ce-69683efadad5",
  "RequestKey": "bfb4ccb4-0c41-4de0-8e10-6457181318a4",
  "CreditCardTransactionResultCollection": [
    {
      "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
      "AcquirerName": "Simulator",
      "AcquirerReturnCode": "0",
      "AffiliationCode": "000000000",
      "AmountInCents": 100,
      "AuthorizationCode": "448584",
      "AuthorizedAmountInCents": 100,
      "CapturedAmountInCents": 100,
      "CreditCard": {
        "CreditCardBrand": "Mastercard",
        "InstantBuyKey": "7a34bc3f-daa0-4e37-ac6b-cf99867ec197",
        "IsExpiredCreditCard": false,
        "MaskedCreditCardNumber": "231011****1111"
      },
      "CreditCardOperation": "AuthAndCapture",
      "CreditCardTransactionStatus": "Captured",
      "ExternalTime": 0,
      "PaymentMethodName": "Simulator",
      "Success": true,
      "TransactionIdentifier": "61014",
      "TransactionKey": "20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
      "TransactionKeyToAcquirer": "bd8bf2f8507c42bb",
      "TransactionReference": "ef0b2798-e90c-464f-a9ed-cde575ca69e2",
      "UniqueSequentialNumber": "360012",
    }
  ],
  "OrderResult": {
    "CreateDate": "2015-07-24T22:09:45",
    "OrderKey": "219d7581-78e2-4aa9-b708-b7c585780bfc",
    "OrderReference": "NumeroDoPedido"
  }
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "A bandeira Invalida atualmente não é suportada.",
        "ErrorCode": 400,
        "ErrorField": "CreditCardBrand",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 0,
  "MerchantKey": "1b2dd57f-1ed9-4153-b4ce-69683efadad5",
  "RequestKey": "fb0f6d14-3564-4ac2-bc88-9d319816b966",
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
}


{"__v":18,"_id":"559c52244ac6411700d856ef","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"O ecommerce está sempre no radar de fraudadores. Esses utilizam diversas técnicas para realizar transações fraudulentas.\n\nPara te ajudar com a fraude, a Mundi integrou as melhores ferramentas antifraude do mercado, assim você terá tudo de maneira simples, rápida e automatizada em um único lugar.\n\nAtualmente, a Mundi possui integração com as seguintes ferramentas antifraude presentes no mercado:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Ferramentas\",\n    \"0-0\": \"**Clearsale**\\n(Total e Total Garantido, nas versões 2.8 e 4.0)\",\n    \"h-1\": \"Integrado\",\n    \"1-0\": \"**FControl**\",\n    \"2-0\": \"**Konduto**\",\n    \"0-1\": \"Sim\",\n    \"1-1\": \"Não\",\n    \"2-1\": \"Não\"\n  },\n  \"cols\": 2,\n  \"rows\": 3\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"A integração para ecommerces com antifraude\"\n}\n[/block]\nOs sistemas antifraude necessitam de informações para poder analisar as transações com precisão. \n\nPrecisamos que você nos envie novos campos (tags) além daqueles básicos. Esses campos contemplam as informações do comprador (o consumidor que está realizando a compra) e do carrinho de compras (os itens que ele está comprando).\n\nNo exemplo inicial, você enviou uma transação simples, sem os dados do comprador e do carrinho de compras, agora vamos mostrar um exemplo de transação com os dados completos para o antifraude!","category":"55b7fef3568be2230092bc78","createdAt":"2015-07-07T22:26:44.165Z","excerpt":"Como utilizar a ferramenta de antifraude na Mundi","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":0,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"antifraude","sync_unique":"","title":"O antifraude","type":"basic","updates":[],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

O antifraude

Como utilizar a ferramenta de antifraude na Mundi

O ecommerce está sempre no radar de fraudadores. Esses utilizam diversas técnicas para realizar transações fraudulentas.

Para te ajudar com a fraude, a Mundi integrou as melhores ferramentas antifraude do mercado, assim você terá tudo de maneira simples, rápida e automatizada em um único lugar.

Atualmente, a Mundi possui integração com as seguintes ferramentas antifraude presentes no mercado:

Ferramentas
Integrado

Clearsale
(Total e Total Garantido, nas versões 2.8 e 4.0)

Sim

FControl

Não

Konduto

Não

A integração para ecommerces com antifraude

Os sistemas antifraude necessitam de informações para poder analisar as transações com precisão.

Precisamos que você nos envie novos campos (tags) além daqueles básicos. Esses campos contemplam as informações do comprador (o consumidor que está realizando a compra) e do carrinho de compras (os itens que ele está comprando).

No exemplo inicial, você enviou uma transação simples, sem os dados do comprador e do carrinho de compras, agora vamos mostrar um exemplo de transação com os dados completos para o antifraude!

{"__v":15,"_id":"55cce5eefc82cd2300243985","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55d64719114e3e0d00462a7f","default":"","desc":"Tipo do endereço","name":"AddressCollection[AddressType]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64719114e3e0d00462a7e","default":"","desc":"Cidade","name":"AddressCollection[City]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64719114e3e0d00462a7d","default":"","desc":"Complemento do endereço","name":"AddressCollection[Complement]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55d64719114e3e0d00462a7c","default":"","desc":"País","name":"AddressCollection[Country]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64719114e3e0d00462a7b","default":"","desc":"Bairro","name":"AddressCollection[District]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64719114e3e0d00462a7a","default":"","desc":"Número","name":"AddressCollection[Number]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e42","default":"","desc":"Estado (Enviar a sigla do estado)","name":"AddressCollection[State]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e41","default":"","desc":"Rua","name":"AddressCollection[Street]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e40","default":"","desc":"CEP","name":"AddressCollection[ZipCode]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3f","default":"","desc":"Número do documento informado (apenas números)","name":"DocumentNumber","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3e","default":"","desc":"Tipo do documento informado","name":"DocumentType","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3d","default":"","desc":"Email do cliente","name":"Email","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3c","default":"","desc":"Tipo do email","name":"EmailType","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3b","default":"","desc":"Gênero do cliente","name":"Gender","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e3a","default":"","desc":"Telefone residencial do cliente. Padrão obrigatório: 55(0xx)00000000","name":"HomePhone","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e39","default":"","desc":"Nome do cliente","name":"Name","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e38","default":"","desc":"Tipo de cliente","name":"PersonType","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb73","default":"","desc":"Valor da transação em centavos. R$ 1,00 = 100","name":"AmountInCents","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb72","default":"","desc":"Bandeira do cartão do cliente","name":"CreditCard[CreditCardBrand]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb71","default":"","desc":"Número do cartão do cliente. Informar apenas números.","name":"CreditCard[CreditCardNumber]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb70","default":"","desc":"Mês de expiração do cartão","name":"CreditCard[ExpMonth]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6f","default":"","desc":"Ano de expiração do cartão","name":"CreditCard[ExpYear]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6e","default":"","desc":"Código de segurança do cartão","name":"CreditCard[SecurityCode]","ref":"","required":true,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb6d","default":"","desc":"Nome do portador do cartão","name":"CreditCard[HolderName]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6c","default":"AuthAndCapture","desc":"Tipo de operação a ser realizada","name":"CreditCardOperation","ref":"","required":false,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6b","default":"1","desc":"Número de Parcelas","name":"InstallmentCount","ref":"","required":false,"type":"int","in":"body"},{"_id":"55b80b3caea7c8190058bb69","default":"","desc":"Identificador do pedido na sua base","name":"OrderReference","ref":"","required":false,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb6a","default":"","desc":"Identificador da transação na sua base","name":"TransactionReference","ref":"","required":false,"type":"string","in":"body"},{"_id":"55b80b3caea7c8190058bb68","default":"0","desc":"Meio de pagamento que deve ser utilizado para a transação","name":"PaymentMethodCode","ref":"","required":false,"type":"int","in":"body"},{"_id":"55d654cb114e3e0d00462adb","default":"","desc":"Endereço de entrega do cliente","name":"DeliveryAddress[AddressType]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ada","default":"","desc":"Cidade","name":"DeliveryAddress[City]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad9","default":"","desc":"Complemento do endereço","name":"DeliveryAddress[Complement]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad8","default":"","desc":"País","name":"DeliveryAddress[Country]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad7","default":"","desc":"Bairro","name":"DeliveryAddress[District]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad6","default":"","desc":"Número","name":"DeliveryAddress[Number]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad5","default":"","desc":"Estado","name":"DeliveryAddress[State]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad4","default":"","desc":"Rua","name":"DeliveryAddress[Street]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d654cb114e3e0d00462ad3","default":"","desc":"CEP","name":"DeliveryAddress[ZipCode]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e37","default":"","desc":"Descrição do produto","name":"ShoppingCartItemCollection[Description]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e36","default":"","desc":"Desconto do produto em centavos","name":"ShoppingCartItemCollection[DiscountAmountInCents]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e35","default":"","desc":"Identificação do produto na plataforma da loja","name":"ShoppingCartItemCollection[ItemReference]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e34","default":"","desc":"Nome do produto","name":"ShoppingCartItemCollection[Name]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e33","default":"","desc":"Quantidade comprada pelo cliente","name":"ShoppingCartItemCollection[Quantity]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e32","default":"","desc":"Valor total desse item no carrinho","name":"ShoppingCartItemCollection[TotalCostInCents]","ref":"","required":true,"type":"string","in":"body"},{"_id":"55d64e8eae529e0d00d34e31","default":"","desc":"Valor unitário desse item no carrinho","name":"ShoppingCartItemCollection[UnitCostInCents]","ref":"","required":true,"type":"string","in":"body"}],"results":{"codes":[{"language":"json","code":"{\n    \"BoletoTransactionResultCollection\": [],\n    \"BuyerKey\": \"4f26b38f-02f7-4d7f-879b-f5b08957e27f\",\n    \"CreditCardTransactionResultCollection\": [\n        {\n            \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": \"0\",\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": \"60056\",\n            \"AuthorizedAmountInCents\": 10000,\n            \"CapturedAmountInCents\": null,\n            \"CapturedDate\": null,\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"b44691e0-ef18-476b-b4e1-42da866ab12f\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthOnly\",\n            \"CreditCardTransactionStatus\": \"AuthorizedPendingCapture\",\n            \"DueDate\": null,\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": \"340674\",\n            \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n            \"TransactionKeyToAcquirer\": \"3fc3e1046ff0416d\",\n            \"TransactionReference\": \"136a3d1f-56e0-4f34-b401-0d58694fd6ea\",\n            \"UniqueSequentialNumber\": \"776516\",\n            \"VoidedAmountInCents\": null\n        }\n    ],\n    \"ErrorReport\": null,\n    \"InternalTime\": 2222,\n    \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n    \"OrderResult\": {\n        \"CreateDate\": \"2015-12-14T20:14:15\",\n        \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n        \"OrderReference\": \"NumeroDoPedido\"\n    },\n    \"RequestKey\": \"3edbe704-90f4-4dc9-91b2-071170172e47\"\n}","status":201},{"code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"85328786-8BA6-420F-9948-5352F5A183EB\",\n  \"RequestKey\": \"fb0f6d14-3564-4ac2-bc88-9d319816b966\",\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#region Monta a requisicao\\n\\n// Cria o comprador.\\nBuyer buyer = new Buyer() {\\n    AddressCollection = new Collection<BuyerAddress>(),\\n    Birthdate = new DateTime(1990, 8, 20),\\n    BuyerReference = \\\"C3PO\\\",\\n    DocumentNumber = \\\"12345678901\\\",\\n    DocumentType = DocumentTypeEnum.CPF,\\n    Email = \\\"lskywalker@r2d2.com\\\",\\n    EmailType = EmailTypeEnum.Personal,\\n    Gender = GenderEnum.M,\\n    HomePhone = \\\"(21)123456789\\\",\\n    MobilePhone = \\\"(21)987654321\\\",\\n    Name = \\\"Luke Skywalker\\\",\\n    PersonType = PersonTypeEnum.Person,\\n    WorkPhone = \\\"(21)28467902\\\"\\n};\\n// Adiciona um endereço para o comprador.\\nbuyer.AddressCollection.Add(new BuyerAddress() {\\n    AddressType = AddressTypeEnum.Residential,\\n    City = \\\"Tatooine\\\",\\n    Complement = \\\"\\\",\\n    Country = CountryEnum.Brazil.ToString(),\\n    District = \\\"Mos Eisley\\\",\\n    Number = \\\"123\\\",\\n    State = \\\"RJ\\\",\\n    Street = \\\"Mos Eisley Cantina\\\",\\n    ZipCode = \\\"20001000\\\"\\n});\\n\\n// Cria a transação de cartão de crédito.\\nvar creditCardTransaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        BillingAddress = new BillingAddress() {\\n            City = \\\"Tatooine\\\",\\n            Complement = \\\"\\\",\\n            Country = CountryEnum.Brazil.ToString(),\\n            District = \\\"Mos Eisley\\\",\\n            Number = \\\"123\\\",\\n            State = \\\"RJ\\\",\\n            Street = \\\"Mos Eisley Cantina\\\",\\n            ZipCode = \\\"20001000\\\"\\n        },\\n        CreditCardBrand = CreditCardBrandEnum.Visa,\\n        CreditCardNumber = \\\"4111111111111111\\\",\\n        ExpMonth = 10,\\n        ExpYear = 22,\\n        HolderName = \\\"LUKE SKYWALKER\\\",\\n        SecurityCode = \\\"123\\\"\\n    },\\n    InstallmentCount = 1\\n};\\n\\n// Opções da requisição (Opcional)\\n/*\\nSaleOptions saleOptions = new SaleOptions() {\\n    IsAntiFraudEnabled = true, // Habilita a integração com o serviço de anti fraude\\n};\\n*/\\n\\n// Cria o carrinho de compras.\\nShoppingCart shoppintCart = new ShoppingCart() {\\n    DeliveryAddress = new DeliveryAddress() {\\n        City = \\\"Galaxy far far away\\\",\\n        Complement = \\\"Bridge\\\",\\n        Country = CountryEnum.Brazil.ToString(),\\n        District = \\\"Command Room\\\",\\n        Number = \\\"321\\\",\\n        State = \\\"RJ\\\",\\n        Street = \\\"Death Star\\\",\\n        ZipCode = \\\"10002000\\\"\\n    },\\n    FreightCostInCents = 2000,\\n    ShoppingCartItemCollection = new Collection<ShoppingCartItem>()\\n};\\n\\n// Adiciona um produto no carrinho de compras.\\nshoppintCart.ShoppingCartItemCollection.Add(new ShoppingCartItem() {\\n    Description = \\\"Red Lightsaber\\\",\\n    ItemReference = \\\"NumeroDoProduto\\\",\\n    Name = \\\"Lightsaber\\\",\\n    Quantity = 1,\\n    TotalCostInCents = 18000,\\n});\\n\\n#endregion\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    Buyer = buyer,\\n    // Adiciona a transação de cartão de crédito na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { creditCardTransaction }),\\n    //Options = saleOptions, //Caso tenha sido criado, adicionar o objeto saleOptions\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    },\\n    ShoppingCartCollection = new Collection<ShoppingCart>(new ShoppingCart[] { shoppintCart })\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Status transação: {0}\\\", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '\\\\vendor\\\\autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave de loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto da requisição\\n    $request = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Dados do comprador\\n    $request->getBuyer()\\n    ->setName(\\\"Luke Skywalker\\\")\\n    ->setPersonType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\PersonTypeEnum::PERSON)\\n    ->setBuyerReference(\\\"C3PO\\\")\\n    ->setDocumentNumber(\\\"12345678901\\\")\\n    ->setDocumentType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\DocumentTypeEnum::CPF)\\n    ->setEmail(\\\"lskywalker@r2d2.com\\\")\\n    ->setEmailType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\EmailTypeEnum::PERSONAL)\\n    ->setGender(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\GenderEnum::MALE)\\n    ->setHomePhone(\\\"(21)123456789\\\")\\n    ->setMobilePhone(\\\"(21)987654321\\\")\\n    ->setWorkPhone(\\\"(21)28467902\\\")\\n    ->setBirthDate(\\\\DateTime::createFromFormat('d/m/Y', '20/08/1990'))\\n    ->setFacebookId(\\\"lukeskywalker8917\\\")\\n    ->setTwitterId(\\\"@lukeskywalker8917\\\")\\n    ->setCreateDateInMerchant(new \\\\DateTime())\\n    ->addAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::RESIDENTIAL)\\n    ->setStreet(\\\"Mos Eisley Cantina\\\")\\n    ->setNumber(\\\"123\\\")\\n    ->setComplement(\\\"\\\")\\n    ->setDistrict(\\\"Mos Eisley\\\")\\n    ->setCity(\\\"Tatooine\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"20001000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    // Dados da transação de cartão de crédito\\n    $creditCardTransaction = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequestData\\\\CreditCardTransaction();\\n    $request->addCreditCardTransaction($creditCardTransaction);\\n    $creditCardTransaction\\n    ->setAmountInCents(10000)\\n    ->setInstallmentCount(1)\\n    ->setCreditCardOperation(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardOperationEnum::AUTH_ONLY)\\n    ->setTransactionDateInMerchant(new DateTime())\\n    ->setTransactionReference(\\\"NumeroDaTransacao\\\")\\n    ->getCreditCard()\\n    ->setCreditCardBrand(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CreditCardBrandEnum::VISA)\\n    ->setCreditCardNumber(\\\"4111111111111111\\\")\\n    ->setExpMonth(10)\\n    ->setExpYear(2022)\\n    ->setHolderName(\\\"LUKE SKYWALKER\\\")\\n    ->setSecurityCode(\\\"123\\\")\\n    ->getBillingAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::BILLING)\\n    ->setStreet(\\\"Mos Eisley Cantina\\\")\\n    ->setNumber(\\\"123\\\")\\n    ->setComplement(\\\"\\\")\\n    ->setDistrict(\\\"Mos Eisley\\\")\\n    ->setCity(\\\"Tatooine\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"20001000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    //Opções do pedido (Opcional)\\n    //$request->getOptions()\\n    //->enableAntiFraud();\\n\\n    //Dados do pedido\\n    $request->getOrder()\\n    ->setOrderReference(\\\"NumeroDoPedido\\\");            \\n\\n    //Dados do Carrinho de compras\\n    $shoppingCart = $request->addShoppingCart();\\n    $shoppingCart->setDeliveryDeadline(DateTime::createFromFormat(\\\"Y-m-d H:i:s\\\", '2015-12-14 18:36:45'));\\n    $shoppingCart->setEstimatedDeliveryDate(DateTime::createFromFormat(\\\"Y-m-d H:i:s\\\", '2015-12-14 18:36:45'));\\n    $shoppingCart->setFreightCostInCents(2000);\\n    $shoppingCart->setShippingCompany(\\\"Empire\\\");\\n    $shoppingCart->getDeliveryAddress()\\n    ->setAddressType(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\AddressTypeEnum::SHIPPING)\\n    ->setStreet(\\\"Death Star\\\")\\n    ->setNumber(\\\"321\\\")\\n    ->setComplement(\\\"Bridge\\\")\\n    ->setDistrict(\\\"Command Room\\\")\\n    ->setCity(\\\"Galaxy far far away\\\")\\n    ->setState(\\\"RJ\\\")\\n    ->setZipCode(\\\"10002000\\\")\\n    ->setCountry(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\CountryEnum::BRAZIL);\\n\\n    //Adiciona um item ao carrinho\\n    $shoppingCart->addShoppingCartItem()\\n    ->setDescription(\\\"Red Lightsaber\\\")\\n    ->setDiscountAmountInCents(0)\\n    ->setItemReference(\\\"NumeroDoProduto\\\")\\n    ->setName(\\\"Lightsaber\\\")\\n    ->setQuantity(1)\\n    ->setUnitCostInCents(18000)\\n    ->setTotalCostInCents(18000);\\n\\n    // Cria um novo objeto ApiClient\\n    $client = new Gateway\\\\ApiClient();\\n\\n    // Faz a chamada de criação\\n    $response = $client->createSale($request);\\n\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    var_dump($response);\\n}\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card transaction object\\ncreditCardTransaction = Gateway::CreditCardTransaction.new\\n\\n# 100 reais in cents \\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'\\ncreditCardTransaction.CreditCard.BillingAddress.Complement = ''\\ncreditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'\\ncreditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'\\ncreditCardTransaction.CreditCard.BillingAddress.Number = '123'\\ncreditCardTransaction.CreditCard.BillingAddress.State = 'RJ'\\ncreditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'\\ncreditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'\\ncreditCardTransaction.CreditCard.CreditCardBrand = 'Visa'\\ncreditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'\\ncreditCardTransaction.CreditCard.ExpMonth = 10\\ncreditCardTransaction.CreditCard.ExpYear = 22\\ncreditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'\\ncreditCardTransaction.CreditCard.SecurityCode = '123'\\ncreditCardTransaction.InstallmentCount = 1\\n\\nshoppingCartItem = Gateway::ShoppingCartItemCollection.new\\nshoppingCartItem.Description = 'Red Lightsaber'\\nshoppingCartItem.DiscountAmountInCents = 0\\nshoppingCartItem.ItemReference = 'NumeroDoProduto'\\nshoppingCartItem.Name = 'Lightsaber'\\nshoppingCartItem.Quantity = 1\\nshoppingCartItem.TotalCostInCents = 18000\\nshoppingCartItem.UnitCostInCents = 0\\n\\nshoppingCartCollection = Gateway::ShoppingCartCollection.new\\nshoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'\\nshoppingCartCollection.DeliveryAddress.Complement = 'Bridge'\\nshoppingCartCollection.DeliveryAddress.Country = 'Brazil'\\nshoppingCartCollection.DeliveryAddress.District = 'Command Room'\\nshoppingCartCollection.DeliveryAddress.Number = '321'\\nshoppingCartCollection.DeliveryAddress.State = 'RJ'\\nshoppingCartCollection.DeliveryAddress.Street = 'Death Star'\\nshoppingCartCollection.DeliveryAddress.ZipCode = '10002000'\\nshoppingCartCollection.FreighCostInCents = 2000\\nshoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\n\\nbuyerAddress = Gateway::BuyerAddress.new\\nbuyerAddress.AddressType = 'Residential'\\nbuyerAddress.City = 'Tatooine'\\nbuyerAddress.Complement = ''\\nbuyerAddress.Country = 'Brazil'\\nbuyerAddress.District = 'Mos Eisley'\\nbuyerAddress.Number = '123'\\nbuyerAddress.State = 'RJ'\\nbuyerAddress.Street = 'Mos Eisley Cantina'\\nbuyerAddress.ZipCode = '20001000'\\n\\ncreateSaleRequest.Buyer.AddressCollection << buyerAddress\\ncreateSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\ncreateSaleRequest.Buyer.BuyerReference = 'C3PO'\\ncreateSaleRequest.Buyer.DocumentNumber = '12345678901'\\ncreateSaleRequest.Buyer.DocumentType = 'CPF'\\ncreateSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'\\ncreateSaleRequest.Buyer.EmailType = 'Personal'\\ncreateSaleRequest.Buyer.Gender = 'M'\\ncreateSaleRequest.Buyer.HomePhone = '(21)123456789'\\ncreateSaleRequest.Buyer.MobilePhone = '(21)987654321'\\ncreateSaleRequest.Buyer.Name = 'Luke Skywalker'\\ncreateSaleRequest.Buyer.PersonType = 'Person'\\ncreateSaleRequest.Buyer.WorkPhone = '(21)28467902'\\n\\n# adds to the credit card transaction collection\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n#Enable antifraud analysis (Optional)\\n#createSaleRequest.Options.IsAntiFraudEnabled = true \\n\\n# adds shopping cart collection in the request\\ncreateSaleRequest.ShoppingCartCollection << shoppingCartCollection\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# -*- coding: utf-8 -*-\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, buyer_address, buyer, billing_address,sale_options, delivery_address, shopping_cart_item, shopping_cart\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n# Cria o endereco do comprador\\nbuyer_address_collection_data = [buyer_address(address_type = 'Residential', city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')]\\n\\n#Cria o comprador\\nbuyer_data = buyer(address_collection = buyer_address_collection_data, birth_date = '1990-08-20T00:00:00', buyer_reference = 'C3PO', document_number = '12345678901' , document_type = 'CPF', email = 'lskywalker@r2d2.com', email_type = 'Personal', gender = 'M', home_phone = '(21)123456789', mobile_phone = '(21)987654321', name = 'Luke Skywalker', person_type = 'Person', work_phone = '(21)28467902')\\n\\n# Criando a transacao de cartao de credito.\\n\\nbilling_address_data = billing_address(city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')\\n##Coleta os dados do cartão.\\ncreditcard_data = creditcard(billing_address= billing_address_data, creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,\\n                             security_code='123', holder_name='LUKE SKYWALKER')\\n## Cria a transação de cartao de credito.\\ntransaction_collection = [creditcard_transaction(10000, creditcard_data, 'AuthOnly')]\\n\\n\\n# Habilita o antiFraud (Opcional)\\n# sale_options_data = sale_options(is_anti_fraud_enabled = True)\\n\\n##Cria o numero do pedido\\norder_data = order(order_reference='NumeroDoPedido')\\n\\n\\n# Criando o carrinho de compra\\n## Cria o endereco de entrega para o carrinho de compras\\ndelivery_address_data = delivery_address(city = 'Galaxy far far away', complement = 'Bridge', country = 'Brazil', district = 'Command Room', number = '321', state = 'RJ', street = 'Death Star', zip_code = '10002000')\\n\\n## Cria a colecao de item do carrinho de compras \\nshopping_cart_item_collection_data = [shopping_cart_item(description = 'Red Lightsaber', discount_amount_in_cents = 0, item_reference = 'NumeroDoProduto', name = 'Lightsaber', quantity = 1, total_cost_in_cents = 18000, unit_cost_in_cents = 0)]\\n\\n## Cria o carrinho de compra\\nshopping_cart_collection_data = [shopping_cart(delivery_address = delivery_address_data, freight_cost_in_cents = 2000, shopping_cart_item_collection = shopping_cart_item_collection_data)]\\n\\n# Cria a requisicao\\nrequest = create_sale_request(creditcard_transaction_collection=transaction_collection, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data)\\n\\n# Cria a requisicao (Com objeto de opções de antifraude)\\n#request = create_sale_request(creditcard_transaction_collection=transaction_collection, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data, options = sale_options_data)\\n\\n# Coloque sua MerchantKey aqui.\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\n# envia a transação e recebe a resposta do gateway.\\nhttp_response = service_client.sale.create_with_request(request)\\n\\n#Obtem a resposta em json.\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria objeto do endereço\\nBillingAddress billingAddress = new BillingAddress();\\nbillingAddress.setCity(\\\"Tatooine\\\");\\nbillingAddress.setComplement(\\\"\\\");\\nbillingAddress.setCountry(CountryEnum.Brazil);\\nbillingAddress.setDistrict(\\\"Mos Eisley\\\");\\nbillingAddress.setNumber(\\\"123\\\");\\nbillingAddress.setState(\\\"RJ\\\");\\nbillingAddress.setStreet(\\\"Mos Eisley Cantina\\\");\\nbillingAddress.setZipCode(\\\"20001000\\\");\\n\\n// Cria objeto de endereço do Buyer\\nBuyerAddress buyerAddress = new BuyerAddress();\\nbuyerAddress.setAddressType(AddressTypeEnum.Residential);\\nbuyerAddress.setCity(\\\"Tatooine\\\");\\nbuyerAddress.setComplement(\\\"\\\");\\nbuyerAddress.setCountry(CountryEnum.Brazil);\\nbuyerAddress.setDistrict(\\\"Mos Eisley\\\");\\nbuyerAddress.setNumber(\\\"123\\\");\\nbuyerAddress.setState(\\\"RJ\\\");\\nbuyerAddress.setStreet(\\\"Mos Eisley Cantina\\\");\\nbuyerAddress.setZipCode(\\\"20001000\\\");\\n\\n// Cria coleção de endereços do buyer\\nArrayList<BuyerAddress> buyerAddressCollection = new ArrayList<BuyerAddress>();\\nbuyerAddressCollection.add(buyerAddress);\\n\\n// Cria objeto do buyer\\nBuyer buyer = new Buyer();\\nbuyer.setAddressCollection(buyerAddressCollection);\\nbuyer.setBirthdate(Date.valueOf(\\\"1990-12-11\\\"));\\nbuyer.setBuyerReference(\\\"C3PO\\\");\\nbuyer.setDocumentNumber(\\\"12345678901\\\");\\nbuyer.setDocumentType(DocumentTypeEnum.CPF);\\nbuyer.setEmail(\\\"lskywalker@r2d2.com\\\");\\nbuyer.setEmailType(EmailTypeEnum.Personal);\\nbuyer.setGender(GenderEnum.M);\\nbuyer.setHomePhone(\\\"(21)123456789\\\");\\nbuyer.setMobilePhone(\\\"(21)987654321\\\");\\nbuyer.setName(\\\"Luke Skywalker\\\");\\nbuyer.setPersonType(PersonTypeEnum.Person);\\nbuyer.setWorkPhone(\\\"(21)28467902\\\");\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setBillingAddress(billingAddress);\\ncreditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);\\ncreditCard.setCreditCardNumber(\\\"4111111111111111\\\");\\ncreditCard.setExpMonth(10);\\ncreditCard.setExpYear(22);\\ncreditCard.setHolderName(\\\"LUKE SKYWALKER\\\");\\ncreditCard.setSecurityCode(\\\"123\\\");\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setInstallmentCount(1);\\n\\n// Cria item o shopping cart\\nShoppingCartItem shoppingCartItem = new ShoppingCartItem();\\nshoppingCartItem.setDescription(\\\"Red Lightsaber\\\");\\nshoppingCartItem.setDiscountAmountInCents(0L);\\nshoppingCartItem.setItemReference(\\\"NumeroDoProduto\\\");\\nshoppingCartItem.setName(\\\"Lightsaber\\\");\\nshoppingCartItem.setQuantity(1);\\nshoppingCartItem.setTotalCostInCents(18000);\\nshoppingCartItem.setUnitCostInCents(0);\\n\\n// Cria shopping cart\\nShoppingCart shoppingCart = new ShoppingCart();\\nshoppingCart.setDeliveryAddress(new DeliveryAddress());\\nshoppingCart.getDeliveryAddress().setCity(\\\"Galaxy Far Far Away\\\");\\nshoppingCart.getDeliveryAddress().setComplement(\\\"Bridge\\\");\\nshoppingCart.getDeliveryAddress().setCountry(CountryEnum.Brazil);\\nshoppingCart.getDeliveryAddress().setDistrict(\\\"Command Room\\\");\\nshoppingCart.getDeliveryAddress().setNumber(\\\"321\\\");\\nshoppingCart.getDeliveryAddress().setState(\\\"RJ\\\");\\nshoppingCart.getDeliveryAddress().setStreet(\\\"Death Star\\\");\\nshoppingCart.getDeliveryAddress().setZipCode(\\\"10002000\\\");\\nshoppingCart.setFreightCostInCents(2000);\\nshoppingCart.setShoppingCartItemCollection(new ArrayList<>());\\nshoppingCart.getShoppingCartItemCollection().add(shoppingCartItem);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NúmeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setOrder(order);\\ncreateSaleRequest.setShoppingCartCollection(new ArrayList<>());\\ncreateSaleRequest.getShoppingCartCollection().add(shoppingCart);\\n\\n//Parâmetros opcionais para análise antifraude\\n//createSaleRequest.setOptions(new SaleOptions());\\n//createSaleRequest.getOptions().setIsAntiFraudEnabled(Boolean.TRUE);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse\\n        = serviceClient.getSale().Create(createSaleRequest);\",\n      \"language\": \"java\",\n      \"name\": null\n    },\n    {\n      \"code\": \"{\\n    \\\"Buyer\\\": {\\n        \\\"AddressCollection\\\": [\\n            {\\n                \\\"AddressType\\\": \\\"Residential\\\",\\n                \\\"City\\\": \\\"Tatooine\\\",\\n                \\\"Complement\\\": \\\"\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Mos Eisley\\\",\\n                \\\"Number\\\": \\\"123\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                \\\"ZipCode\\\": \\\"20001000\\\"\\n            }\\n        ],\\n        \\\"Birthdate\\\": \\\"1990-08-20T00:00:00\\\",\\n        \\\"BuyerReference\\\": \\\"C3PO\\\",\\n        \\\"DocumentNumber\\\": \\\"12345678901\\\",\\n        \\\"DocumentType\\\": \\\"CPF\\\",\\n        \\\"Email\\\": \\\"lskywalker@r2d2.com\\\",\\n        \\\"EmailType\\\": \\\"Personal\\\",\\n        \\\"Gender\\\": \\\"M\\\",\\n        \\\"HomePhone\\\": \\\"(21)123456789\\\",\\n        \\\"MobilePhone\\\": \\\"(21)987654321\\\",\\n        \\\"Name\\\": \\\"Luke Skywalker\\\",\\n        \\\"PersonType\\\": \\\"Person\\\",\\n        \\\"WorkPhone\\\": \\\"(21)28467902\\\"\\n    },\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"BillingAddress\\\": {\\n                    \\\"City\\\": \\\"Tatooine\\\",\\n                    \\\"Complement\\\": \\\"\\\",\\n                    \\\"Country\\\": \\\"Brazil\\\",\\n                    \\\"District\\\": \\\"Mos Eisley\\\",\\n                    \\\"Number\\\": \\\"123\\\",\\n                    \\\"State\\\": \\\"RJ\\\",\\n                    \\\"Street\\\": \\\"Mos Eisley Cantina\\\",\\n                    \\\"ZipCode\\\": \\\"20001000\\\"\\n                },\\n                \\\"CreditCardBrand\\\": \\\"Visa\\\",\\n                \\\"CreditCardNumber\\\": \\\"4111111111111111\\\",\\n                \\\"ExpMonth\\\": 10,\\n                \\\"ExpYear\\\": 22,\\n                \\\"HolderName\\\": \\\"LUKE SKYWALKER\\\",\\n                \\\"SecurityCode\\\": \\\"123\\\"\\n            },\\n            \\\"InstallmentCount\\\": 1\\n        }\\n    ],\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    },\\n    \\\"ShoppingCartCollection\\\": [\\n        {\\n            \\\"DeliveryAddress\\\": {\\n                \\\"City\\\": \\\"Galaxy far far away\\\",\\n                \\\"Complement\\\": \\\"Bridge\\\",\\n                \\\"Country\\\": \\\"Brazil\\\",\\n                \\\"District\\\": \\\"Command Room\\\",\\n                \\\"Number\\\": \\\"321\\\",\\n                \\\"State\\\": \\\"RJ\\\",\\n                \\\"Street\\\": \\\"Death Star\\\",\\n                \\\"ZipCode\\\": \\\"10002000\\\"\\n            },\\n            \\\"FreightCostInCents\\\": 2000,\\n            \\\"ShoppingCartItemCollection\\\": [\\n                {\\n                    \\\"Description\\\": \\\"Red Lightsaber\\\",\\n                    \\\"DiscountAmountInCents\\\": 0,\\n                    \\\"ItemReference\\\": \\\"NumeroDoProduto\\\",\\n                    \\\"Name\\\": \\\"Lightsaber\\\",\\n                    \\\"Quantity\\\": 1,\\n                    \\\"TotalCostInCents\\\": 18000,\\n                    \\\"UnitCostInCents\\\": 0\\n                }\\n            ]\\n        }\\n    ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nAs tags e exemplos apresentados aqui em cima, mostram como você deve nos enviar uma transação caso utilize o antifraude.\n\nEssa requisição precisa que os dados do comprador sejam enviados, assim como os dados do carrinho de compras. Por isso, é importante que o seu ecommerce esteja preparado e tenha uma seção de cadastro completa na qual o cliente colocará todas as informações básicas.\n\nAo receber a resposta da requisição, você receberá o status de transação: `AuthorizePendingCapture` e o status do antifraude: `Análise Manual Pendente` ou `Solicitação de Análise de Fraude Pendente`. \n\nSe a sua transação for aprovada pelo antifraude ela será capturada automaticamente mudando o status para: `Captured`, se a sua transação for recusada ela será canelada automaticamente alterando o status para `Voided`ou `Refunded`.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Antifraude para boleto\",\n  \"body\": \"É possível passar boletos no antifraude. Porém, muitas lojas optam por não utilizar, se você deseja que os seus boletos não passem no antifraude, você deve solicitar isso a nossa equipe de Relacionamento com Cliente pelo e-mail suporte@mundipagg.com.\"\n}\n[/block]","category":"55b7fef3568be2230092bc78","createdAt":"2015-08-13T18:46:06.615Z","editedParams":true,"editedParams2":true,"excerpt":"Enviando uma requisição com dados para o antifraude","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":1,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"requisicao-para-o-antifraude","sync_unique":"","title":"Transação com antifraude","type":"post","updates":["5678121defb5ea0d005bbb1b","5678a89207bf6a0d0083edeb","568d4b0063fefd0d00d06979","568d570f22a4d4230041fdd7","56bc97ea3ad5140d0005528a"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postTransação com antifraude

Enviando uma requisição com dados para o antifraude

Body Params

AddressCollection[AddressType]:
required
string
Tipo do endereço
AddressCollection[City]:
required
string
Cidade
AddressCollection[Complement]:
string
Complemento do endereço
AddressCollection[Country]:
required
string
País
AddressCollection[District]:
required
string
Bairro
AddressCollection[Number]:
required
string
Número
AddressCollection[State]:
required
string
Estado (Enviar a sigla do estado)
AddressCollection[Street]:
required
string
Rua
AddressCollection[ZipCode]:
required
string
CEP
DocumentNumber:
required
string
Número do documento informado (apenas números)
DocumentType:
required
string
Tipo do documento informado
Email:
required
string
Email do cliente
EmailType:
required
string
Tipo do email
Gender:
required
string
Gênero do cliente
HomePhone:
required
string
Telefone residencial do cliente. Padrão obrigatório: 55(0xx)00000000
Name:
required
string
Nome do cliente
PersonType:
required
string
Tipo de cliente
AmountInCents:
required
integer
Valor da transação em centavos. R$ 1,00 = 100
CreditCard[CreditCardBrand]:
required
string
Bandeira do cartão do cliente
CreditCard[CreditCardNumber]:
required
string
Número do cartão do cliente. Informar apenas números.
CreditCard[ExpMonth]:
required
integer
Mês de expiração do cartão
CreditCard[ExpYear]:
required
integer
Ano de expiração do cartão
CreditCard[SecurityCode]:
required
integer
Código de segurança do cartão
CreditCard[HolderName]:
required
string
Nome do portador do cartão
CreditCardOperation:
stringAuthAndCapture
Tipo de operação a ser realizada
InstallmentCount:
integer1
Número de Parcelas
OrderReference:
string
Identificador do pedido na sua base
TransactionReference:
string
Identificador da transação na sua base
PaymentMethodCode:
integer0
Meio de pagamento que deve ser utilizado para a transação
DeliveryAddress[AddressType]:
required
string
Endereço de entrega do cliente
DeliveryAddress[City]:
required
string
Cidade
DeliveryAddress[Complement]:
string
Complemento do endereço
DeliveryAddress[Country]:
required
string
País
DeliveryAddress[District]:
required
string
Bairro
DeliveryAddress[Number]:
required
string
Número
DeliveryAddress[State]:
required
string
Estado
DeliveryAddress[Street]:
required
string
Rua
DeliveryAddress[ZipCode]:
required
string
CEP
ShoppingCartItemCollection[Description]:
required
string
Descrição do produto
ShoppingCartItemCollection[DiscountAmountInCents]:
string
Desconto do produto em centavos
ShoppingCartItemCollection[ItemReference]:
required
string
Identificação do produto na plataforma da loja
ShoppingCartItemCollection[Name]:
required
string
Nome do produto
ShoppingCartItemCollection[Quantity]:
required
string
Quantidade comprada pelo cliente
ShoppingCartItemCollection[TotalCostInCents]:
required
string
Valor total desse item no carrinho
ShoppingCartItemCollection[UnitCostInCents]:
required
string
Valor unitário desse item no carrinho
#region Monta a requisicao

// Cria o comprador.
Buyer buyer = new Buyer() {
    AddressCollection = new Collection<BuyerAddress>(),
    Birthdate = new DateTime(1990, 8, 20),
    BuyerReference = "C3PO",
    DocumentNumber = "12345678901",
    DocumentType = DocumentTypeEnum.CPF,
    Email = "lskywalker@r2d2.com",
    EmailType = EmailTypeEnum.Personal,
    Gender = GenderEnum.M,
    HomePhone = "(21)123456789",
    MobilePhone = "(21)987654321",
    Name = "Luke Skywalker",
    PersonType = PersonTypeEnum.Person,
    WorkPhone = "(21)28467902"
};
// Adiciona um endereço para o comprador.
buyer.AddressCollection.Add(new BuyerAddress() {
    AddressType = AddressTypeEnum.Residential,
    City = "Tatooine",
    Complement = "",
    Country = CountryEnum.Brazil.ToString(),
    District = "Mos Eisley",
    Number = "123",
    State = "RJ",
    Street = "Mos Eisley Cantina",
    ZipCode = "20001000"
});

// Cria a transação de cartão de crédito.
var creditCardTransaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        BillingAddress = new BillingAddress() {
            City = "Tatooine",
            Complement = "",
            Country = CountryEnum.Brazil.ToString(),
            District = "Mos Eisley",
            Number = "123",
            State = "RJ",
            Street = "Mos Eisley Cantina",
            ZipCode = "20001000"
        },
        CreditCardBrand = CreditCardBrandEnum.Visa,
        CreditCardNumber = "4111111111111111",
        ExpMonth = 10,
        ExpYear = 22,
        HolderName = "LUKE SKYWALKER",
        SecurityCode = "123"
    },
    InstallmentCount = 1
};

// Opções da requisição (Opcional)
/*
SaleOptions saleOptions = new SaleOptions() {
    IsAntiFraudEnabled = true, // Habilita a integração com o serviço de anti fraude
};
*/

// Cria o carrinho de compras.
ShoppingCart shoppintCart = new ShoppingCart() {
    DeliveryAddress = new DeliveryAddress() {
        City = "Galaxy far far away",
        Complement = "Bridge",
        Country = CountryEnum.Brazil.ToString(),
        District = "Command Room",
        Number = "321",
        State = "RJ",
        Street = "Death Star",
        ZipCode = "10002000"
    },
    FreightCostInCents = 2000,
    ShoppingCartItemCollection = new Collection<ShoppingCartItem>()
};

// Adiciona um produto no carrinho de compras.
shoppintCart.ShoppingCartItemCollection.Add(new ShoppingCartItem() {
    Description = "Red Lightsaber",
    ItemReference = "NumeroDoProduto",
    Name = "Lightsaber",
    Quantity = 1,
    TotalCostInCents = 18000,
});

#endregion

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    Buyer = buyer,
    // Adiciona a transação de cartão de crédito na requisição.
    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { creditCardTransaction }),
    //Options = saleOptions, //Caso tenha sido criado, adicionar o objeto saleOptions
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    },
    ShoppingCartCollection = new Collection<ShoppingCart>(new ShoppingCart[] { shoppintCart })
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.CreditCardTransactionResultCollection != null) {
    Console.WriteLine("Status transação: {0}", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);
}
<?php
try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '\vendor\autoload.php');

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave de loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto da requisição
    $request = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Dados do comprador
    $request->getBuyer()
    ->setName("Luke Skywalker")
    ->setPersonType(\Gateway\One\DataContract\Enum\PersonTypeEnum::PERSON)
    ->setBuyerReference("C3PO")
    ->setDocumentNumber("12345678901")
    ->setDocumentType(\Gateway\One\DataContract\Enum\DocumentTypeEnum::CPF)
    ->setEmail("lskywalker@r2d2.com")
    ->setEmailType(\Gateway\One\DataContract\Enum\EmailTypeEnum::PERSONAL)
    ->setGender(\Gateway\One\DataContract\Enum\GenderEnum::MALE)
    ->setHomePhone("(21)123456789")
    ->setMobilePhone("(21)987654321")
    ->setWorkPhone("(21)28467902")
    ->setBirthDate(\DateTime::createFromFormat('d/m/Y', '20/08/1990'))
    ->setFacebookId("lukeskywalker8917")
    ->setTwitterId("@lukeskywalker8917")
    ->setCreateDateInMerchant(new \DateTime())
    ->addAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::RESIDENTIAL)
    ->setStreet("Mos Eisley Cantina")
    ->setNumber("123")
    ->setComplement("")
    ->setDistrict("Mos Eisley")
    ->setCity("Tatooine")
    ->setState("RJ")
    ->setZipCode("20001000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    // Dados da transação de cartão de crédito
    $creditCardTransaction = new \Gateway\One\DataContract\Request\CreateSaleRequestData\CreditCardTransaction();
    $request->addCreditCardTransaction($creditCardTransaction);
    $creditCardTransaction
    ->setAmountInCents(10000)
    ->setInstallmentCount(1)
    ->setCreditCardOperation(\Gateway\One\DataContract\Enum\CreditCardOperationEnum::AUTH_ONLY)
    ->setTransactionDateInMerchant(new DateTime())
    ->setTransactionReference("NumeroDaTransacao")
    ->getCreditCard()
    ->setCreditCardBrand(\Gateway\One\DataContract\Enum\CreditCardBrandEnum::VISA)
    ->setCreditCardNumber("4111111111111111")
    ->setExpMonth(10)
    ->setExpYear(2022)
    ->setHolderName("LUKE SKYWALKER")
    ->setSecurityCode("123")
    ->getBillingAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::BILLING)
    ->setStreet("Mos Eisley Cantina")
    ->setNumber("123")
    ->setComplement("")
    ->setDistrict("Mos Eisley")
    ->setCity("Tatooine")
    ->setState("RJ")
    ->setZipCode("20001000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    //Opções do pedido (Opcional)
    //$request->getOptions()
    //->enableAntiFraud();

    //Dados do pedido
    $request->getOrder()
    ->setOrderReference("NumeroDoPedido");            

    //Dados do Carrinho de compras
    $shoppingCart = $request->addShoppingCart();
    $shoppingCart->setDeliveryDeadline(DateTime::createFromFormat("Y-m-d H:i:s", '2015-12-14 18:36:45'));
    $shoppingCart->setEstimatedDeliveryDate(DateTime::createFromFormat("Y-m-d H:i:s", '2015-12-14 18:36:45'));
    $shoppingCart->setFreightCostInCents(2000);
    $shoppingCart->setShippingCompany("Empire");
    $shoppingCart->getDeliveryAddress()
    ->setAddressType(\Gateway\One\DataContract\Enum\AddressTypeEnum::SHIPPING)
    ->setStreet("Death Star")
    ->setNumber("321")
    ->setComplement("Bridge")
    ->setDistrict("Command Room")
    ->setCity("Galaxy far far away")
    ->setState("RJ")
    ->setZipCode("10002000")
    ->setCountry(\Gateway\One\DataContract\Enum\CountryEnum::BRAZIL);

    //Adiciona um item ao carrinho
    $shoppingCart->addShoppingCartItem()
    ->setDescription("Red Lightsaber")
    ->setDiscountAmountInCents(0)
    ->setItemReference("NumeroDoProduto")
    ->setName("Lightsaber")
    ->setQuantity(1)
    ->setUnitCostInCents(18000)
    ->setTotalCostInCents(18000);

    // Cria um novo objeto ApiClient
    $client = new Gateway\ApiClient();

    // Faz a chamada de criação
    $response = $client->createSale($request);

}
catch (\Gateway\One\DataContract\Report\CreditCardError $error)
{
    $response = array("message" => $error->getMessage());
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (\Exception $ex)
{
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    header('Content-Type: application/json');
    var_dump($response);
}
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

# create credit card transaction object
creditCardTransaction = Gateway::CreditCardTransaction.new

# 100 reais in cents 
creditCardTransaction.AmountInCents = 10000
creditCardTransaction.CreditCard.BillingAddress.City = 'Tatooine'
creditCardTransaction.CreditCard.BillingAddress.Complement = ''
creditCardTransaction.CreditCard.BillingAddress.Country = 'Brazil'
creditCardTransaction.CreditCard.BillingAddress.District = 'Mos Eisley'
creditCardTransaction.CreditCard.BillingAddress.Number = '123'
creditCardTransaction.CreditCard.BillingAddress.State = 'RJ'
creditCardTransaction.CreditCard.BillingAddress.Street = 'Mos Eisley Cantina'
creditCardTransaction.CreditCard.BillingAddress.ZipCode = '20001000'
creditCardTransaction.CreditCard.CreditCardBrand = 'Visa'
creditCardTransaction.CreditCard.CreditCardNumber = '4111111111111111'
creditCardTransaction.CreditCard.ExpMonth = 10
creditCardTransaction.CreditCard.ExpYear = 22
creditCardTransaction.CreditCard.HolderName = 'LUKE SKYWALKER'
creditCardTransaction.CreditCard.SecurityCode = '123'
creditCardTransaction.InstallmentCount = 1

shoppingCartItem = Gateway::ShoppingCartItemCollection.new
shoppingCartItem.Description = 'Red Lightsaber'
shoppingCartItem.DiscountAmountInCents = 0
shoppingCartItem.ItemReference = 'NumeroDoProduto'
shoppingCartItem.Name = 'Lightsaber'
shoppingCartItem.Quantity = 1
shoppingCartItem.TotalCostInCents = 18000
shoppingCartItem.UnitCostInCents = 0

shoppingCartCollection = Gateway::ShoppingCartCollection.new
shoppingCartCollection.DeliveryAddress.City = 'Galaxy far far away'
shoppingCartCollection.DeliveryAddress.Complement = 'Bridge'
shoppingCartCollection.DeliveryAddress.Country = 'Brazil'
shoppingCartCollection.DeliveryAddress.District = 'Command Room'
shoppingCartCollection.DeliveryAddress.Number = '321'
shoppingCartCollection.DeliveryAddress.State = 'RJ'
shoppingCartCollection.DeliveryAddress.Street = 'Death Star'
shoppingCartCollection.DeliveryAddress.ZipCode = '10002000'
shoppingCartCollection.FreighCostInCents = 2000
shoppingCartCollection.ShoppingCartItemCollection << shoppingCartItem

# creates request object for transaction creation
createSaleRequest = Gateway::CreateSaleRequest.new

buyerAddress = Gateway::BuyerAddress.new
buyerAddress.AddressType = 'Residential'
buyerAddress.City = 'Tatooine'
buyerAddress.Complement = ''
buyerAddress.Country = 'Brazil'
buyerAddress.District = 'Mos Eisley'
buyerAddress.Number = '123'
buyerAddress.State = 'RJ'
buyerAddress.Street = 'Mos Eisley Cantina'
buyerAddress.ZipCode = '20001000'

createSaleRequest.Buyer.AddressCollection << buyerAddress
createSaleRequest.Buyer.Birthdate = DateTime.new(1990,8,20,0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
createSaleRequest.Buyer.BuyerReference = 'C3PO'
createSaleRequest.Buyer.DocumentNumber = '12345678901'
createSaleRequest.Buyer.DocumentType = 'CPF'
createSaleRequest.Buyer.Email = 'lskywalker@r2d2.com'
createSaleRequest.Buyer.EmailType = 'Personal'
createSaleRequest.Buyer.Gender = 'M'
createSaleRequest.Buyer.HomePhone = '(21)123456789'
createSaleRequest.Buyer.MobilePhone = '(21)987654321'
createSaleRequest.Buyer.Name = 'Luke Skywalker'
createSaleRequest.Buyer.PersonType = 'Person'
createSaleRequest.Buyer.WorkPhone = '(21)28467902'

# adds to the credit card transaction collection
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'

#Enable antifraud analysis (Optional)
#createSaleRequest.Options.IsAntiFraudEnabled = true 

# adds shopping cart collection in the request
createSaleRequest.ShoppingCartCollection << shoppingCartCollection

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# -*- coding: utf-8 -*-

from uuid import UUID
from data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, buyer_address, buyer, billing_address,sale_options, delivery_address, shopping_cart_item, shopping_cart
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum

# Cria o endereco do comprador
buyer_address_collection_data = [buyer_address(address_type = 'Residential', city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')]

#Cria o comprador
buyer_data = buyer(address_collection = buyer_address_collection_data, birth_date = '1990-08-20T00:00:00', buyer_reference = 'C3PO', document_number = '12345678901' , document_type = 'CPF', email = 'lskywalker@r2d2.com', email_type = 'Personal', gender = 'M', home_phone = '(21)123456789', mobile_phone = '(21)987654321', name = 'Luke Skywalker', person_type = 'Person', work_phone = '(21)28467902')

# Criando a transacao de cartao de credito.

billing_address_data = billing_address(city = 'Tatooine', complement = '', country = 'Brazil', district = 'Mos Eisley', number = '123', state = 'RJ', street = 'Mos Eisley Cantina', zip_code = '20001000')
##Coleta os dados do cartão.
creditcard_data = creditcard(billing_address= billing_address_data, creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,
                             security_code='123', holder_name='LUKE SKYWALKER')
## Cria a transação de cartao de credito.
transaction_collection = [creditcard_transaction(10000, creditcard_data, 'AuthOnly')]


# Habilita o antiFraud (Opcional)
# sale_options_data = sale_options(is_anti_fraud_enabled = True)

##Cria o numero do pedido
order_data = order(order_reference='NumeroDoPedido')


# Criando o carrinho de compra
## Cria o endereco de entrega para o carrinho de compras
delivery_address_data = delivery_address(city = 'Galaxy far far away', complement = 'Bridge', country = 'Brazil', district = 'Command Room', number = '321', state = 'RJ', street = 'Death Star', zip_code = '10002000')

## Cria a colecao de item do carrinho de compras 
shopping_cart_item_collection_data = [shopping_cart_item(description = 'Red Lightsaber', discount_amount_in_cents = 0, item_reference = 'NumeroDoProduto', name = 'Lightsaber', quantity = 1, total_cost_in_cents = 18000, unit_cost_in_cents = 0)]

## Cria o carrinho de compra
shopping_cart_collection_data = [shopping_cart(delivery_address = delivery_address_data, freight_cost_in_cents = 2000, shopping_cart_item_collection = shopping_cart_item_collection_data)]

# Cria a requisicao
request = create_sale_request(creditcard_transaction_collection=transaction_collection, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data)

# Cria a requisicao (Com objeto de opções de antifraude)
#request = create_sale_request(creditcard_transaction_collection=transaction_collection, order = order_data, buyer = buyer_data, shopping_cart_collection = shopping_cart_collection_data, options = sale_options_data)

# Coloque sua MerchantKey aqui.
merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"
service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

# envia a transação e recebe a resposta do gateway.
http_response = service_client.sale.create_with_request(request)

#Obtem a resposta em json.
json_response = http_response.json()

print json_response
// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria objeto do endereço
BillingAddress billingAddress = new BillingAddress();
billingAddress.setCity("Tatooine");
billingAddress.setComplement("");
billingAddress.setCountry(CountryEnum.Brazil);
billingAddress.setDistrict("Mos Eisley");
billingAddress.setNumber("123");
billingAddress.setState("RJ");
billingAddress.setStreet("Mos Eisley Cantina");
billingAddress.setZipCode("20001000");

// Cria objeto de endereço do Buyer
BuyerAddress buyerAddress = new BuyerAddress();
buyerAddress.setAddressType(AddressTypeEnum.Residential);
buyerAddress.setCity("Tatooine");
buyerAddress.setComplement("");
buyerAddress.setCountry(CountryEnum.Brazil);
buyerAddress.setDistrict("Mos Eisley");
buyerAddress.setNumber("123");
buyerAddress.setState("RJ");
buyerAddress.setStreet("Mos Eisley Cantina");
buyerAddress.setZipCode("20001000");

// Cria coleção de endereços do buyer
ArrayList<BuyerAddress> buyerAddressCollection = new ArrayList<BuyerAddress>();
buyerAddressCollection.add(buyerAddress);

// Cria objeto do buyer
Buyer buyer = new Buyer();
buyer.setAddressCollection(buyerAddressCollection);
buyer.setBirthdate(Date.valueOf("1990-12-11"));
buyer.setBuyerReference("C3PO");
buyer.setDocumentNumber("12345678901");
buyer.setDocumentType(DocumentTypeEnum.CPF);
buyer.setEmail("lskywalker@r2d2.com");
buyer.setEmailType(EmailTypeEnum.Personal);
buyer.setGender(GenderEnum.M);
buyer.setHomePhone("(21)123456789");
buyer.setMobilePhone("(21)987654321");
buyer.setName("Luke Skywalker");
buyer.setPersonType(PersonTypeEnum.Person);
buyer.setWorkPhone("(21)28467902");

// Cria um cartão de crédito e define endereço de cobrança
CreditCard creditCard = new CreditCard();
creditCard.setBillingAddress(billingAddress);
creditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);
creditCard.setCreditCardNumber("4111111111111111");
creditCard.setExpMonth(10);
creditCard.setExpYear(22);
creditCard.setHolderName("LUKE SKYWALKER");
creditCard.setSecurityCode("123");

// Cria a transação de cartão de crédito e define cartão criado anteriormente
CreditCardTransaction creditCardTransaction = new CreditCardTransaction();
creditCardTransaction.setAmountInCents(10000L);
creditCardTransaction.setCreditCard(creditCard);
creditCardTransaction.setInstallmentCount(1);

// Cria item o shopping cart
ShoppingCartItem shoppingCartItem = new ShoppingCartItem();
shoppingCartItem.setDescription("Red Lightsaber");
shoppingCartItem.setDiscountAmountInCents(0L);
shoppingCartItem.setItemReference("NumeroDoProduto");
shoppingCartItem.setName("Lightsaber");
shoppingCartItem.setQuantity(1);
shoppingCartItem.setTotalCostInCents(18000);
shoppingCartItem.setUnitCostInCents(0);

// Cria shopping cart
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.setDeliveryAddress(new DeliveryAddress());
shoppingCart.getDeliveryAddress().setCity("Galaxy Far Far Away");
shoppingCart.getDeliveryAddress().setComplement("Bridge");
shoppingCart.getDeliveryAddress().setCountry(CountryEnum.Brazil);
shoppingCart.getDeliveryAddress().setDistrict("Command Room");
shoppingCart.getDeliveryAddress().setNumber("321");
shoppingCart.getDeliveryAddress().setState("RJ");
shoppingCart.getDeliveryAddress().setStreet("Death Star");
shoppingCart.getDeliveryAddress().setZipCode("10002000");
shoppingCart.setFreightCostInCents(2000);
shoppingCart.setShoppingCartItemCollection(new ArrayList<>());
shoppingCart.getShoppingCartItemCollection().add(shoppingCartItem);

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NúmeroDoPedido");

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());
createSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);
createSaleRequest.setOrder(order);
createSaleRequest.setShoppingCartCollection(new ArrayList<>());
createSaleRequest.getShoppingCartCollection().add(shoppingCart);

//Parâmetros opcionais para análise antifraude
//createSaleRequest.setOptions(new SaleOptions());
//createSaleRequest.getOptions().setIsAntiFraudEnabled(Boolean.TRUE);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse
        = serviceClient.getSale().Create(createSaleRequest);
{
    "Buyer": {
        "AddressCollection": [
            {
                "AddressType": "Residential",
                "City": "Tatooine",
                "Complement": "",
                "Country": "Brazil",
                "District": "Mos Eisley",
                "Number": "123",
                "State": "RJ",
                "Street": "Mos Eisley Cantina",
                "ZipCode": "20001000"
            }
        ],
        "Birthdate": "1990-08-20T00:00:00",
        "BuyerReference": "C3PO",
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF",
        "Email": "lskywalker@r2d2.com",
        "EmailType": "Personal",
        "Gender": "M",
        "HomePhone": "(21)123456789",
        "MobilePhone": "(21)987654321",
        "Name": "Luke Skywalker",
        "PersonType": "Person",
        "WorkPhone": "(21)28467902"
    },
    "CreditCardTransactionCollection": [
        {
            "AmountInCents": 10000,
            "CreditCard": {
                "BillingAddress": {
                    "City": "Tatooine",
                    "Complement": "",
                    "Country": "Brazil",
                    "District": "Mos Eisley",
                    "Number": "123",
                    "State": "RJ",
                    "Street": "Mos Eisley Cantina",
                    "ZipCode": "20001000"
                },
                "CreditCardBrand": "Visa",
                "CreditCardNumber": "4111111111111111",
                "ExpMonth": 10,
                "ExpYear": 22,
                "HolderName": "LUKE SKYWALKER",
                "SecurityCode": "123"
            },
            "InstallmentCount": 1
        }
    ],
    "Order": {
        "OrderReference": "NumeroDoPedido"
    },
    "ShoppingCartCollection": [
        {
            "DeliveryAddress": {
                "City": "Galaxy far far away",
                "Complement": "Bridge",
                "Country": "Brazil",
                "District": "Command Room",
                "Number": "321",
                "State": "RJ",
                "Street": "Death Star",
                "ZipCode": "10002000"
            },
            "FreightCostInCents": 2000,
            "ShoppingCartItemCollection": [
                {
                    "Description": "Red Lightsaber",
                    "DiscountAmountInCents": 0,
                    "ItemReference": "NumeroDoProduto",
                    "Name": "Lightsaber",
                    "Quantity": 1,
                    "TotalCostInCents": 18000,
                    "UnitCostInCents": 0
                }
            ]
        }
    ]
}

As tags e exemplos apresentados aqui em cima, mostram como você deve nos enviar uma transação caso utilize o antifraude.

Essa requisição precisa que os dados do comprador sejam enviados, assim como os dados do carrinho de compras. Por isso, é importante que o seu ecommerce esteja preparado e tenha uma seção de cadastro completa na qual o cliente colocará todas as informações básicas.

Ao receber a resposta da requisição, você receberá o status de transação: AuthorizePendingCapture e o status do antifraude: Análise Manual Pendente ou Solicitação de Análise de Fraude Pendente.

Se a sua transação for aprovada pelo antifraude ela será capturada automaticamente mudando o status para: Captured, se a sua transação for recusada ela será canelada automaticamente alterando o status para Voidedou Refunded.

Antifraude para boleto

É possível passar boletos no antifraude. Porém, muitas lojas optam por não utilizar, se você deseja que os seus boletos não passem no antifraude, você deve solicitar isso a nossa equipe de Relacionamento com Cliente pelo e-mail suporte@mundipagg.com.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
    "BoletoTransactionResultCollection": [],
    "BuyerKey": "4f26b38f-02f7-4d7f-879b-f5b08957e27f",
    "CreditCardTransactionResultCollection": [
        {
            "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": "0",
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": "60056",
            "AuthorizedAmountInCents": 10000,
            "CapturedAmountInCents": null,
            "CapturedDate": null,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "b44691e0-ef18-476b-b4e1-42da866ab12f",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthOnly",
            "CreditCardTransactionStatus": "AuthorizedPendingCapture",
            "DueDate": null,
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": "340674",
            "TransactionKey": "20ba0520-7d09-44f8-8fbc-e4329e2b18d5",
            "TransactionKeyToAcquirer": "3fc3e1046ff0416d",
            "TransactionReference": "136a3d1f-56e0-4f34-b401-0d58694fd6ea",
            "UniqueSequentialNumber": "776516",
            "VoidedAmountInCents": null
        }
    ],
    "ErrorReport": null,
    "InternalTime": 2222,
    "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
    "OrderResult": {
        "CreateDate": "2015-12-14T20:14:15",
        "OrderKey": "219d7581-78e2-4aa9-b708-b7c585780bfc",
        "OrderReference": "NumeroDoPedido"
    },
    "RequestKey": "3edbe704-90f4-4dc9-91b2-071170172e47"
}
{
  "ErrorReport": {
    "Category": "RequestError",
    "ErrorItemCollection": [
      {
        "Description": "A bandeira Invalida atualmente não é suportada.",
        "ErrorCode": 400,
        "ErrorField": "CreditCardBrand",
        "SeverityCode": "Error"
      }
    ]
  },
  "InternalTime": 0,
  "MerchantKey": "85328786-8BA6-420F-9948-5352F5A183EB",
  "RequestKey": "fb0f6d14-3564-4ac2-bc88-9d319816b966",
  "BuyerKey": "00000000-0000-0000-0000-000000000000",
}


{"__v":10,"_id":"559c51db4ac6411700d856ed","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"A recorrência é um modelo cada vez mais utilizado no ecommerce. Lojas de assinaturas de bebidas, roupas até mesmo academias e escolas utilizam pagamentos recorrentes.\n\nPara criar um pedido recorrente na Mundi basta acrescentar dentro do ``CreditCardTransactionCollection``, as informações referentes à recorrência: ``Recurrency``.","category":"55b7fefaaea7c8190058bb27","createdAt":"2015-07-07T22:25:31.892Z","excerpt":"Como utilizar realizar pagamentos recorrentes com a Mundi","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":0,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"recorrencia","sync_unique":"","title":"Pagamentos recorrentes","type":"basic","updates":[],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Pagamentos recorrentes

Como utilizar realizar pagamentos recorrentes com a Mundi

A recorrência é um modelo cada vez mais utilizado no ecommerce. Lojas de assinaturas de bebidas, roupas até mesmo academias e escolas utilizam pagamentos recorrentes.

Para criar um pedido recorrente na Mundi basta acrescentar dentro do CreditCardTransactionCollection, as informações referentes à recorrência: Recurrency.

{"__v":14,"_id":"55b800c831bccb190081c188","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55f0642b10cacb23007bfcaf","default":"","desc":"Data do início da recorrência","name":"Recurrency[DateToStartBilling]","ref":"","required":false,"type":"datetime","in":"body"},{"_id":"55f07569da97fe2f007b4eb9","default":"Enum","desc":"Frequência","name":"Recurrency[Frequency]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55f07569da97fe2f007b4eb8","default":"","desc":"Intervalo de cobrança dada a frequência","name":"Recurrency[Interval]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55f07569da97fe2f007b4eb7","default":"false","desc":"Ativar a transação de R$ 1,00 para validar o cartão","name":"Recurrency[OneDollarAuth]","ref":"","required":false,"type":"string","in":"body"},{"_id":"55f07569da97fe2f007b4eb6","default":"0","desc":"Quantidade de vezes que será cobrado","name":"Recurrency[Recurrences]","ref":"","required":false,"type":"string","in":"body"}],"results":{"codes":[{"status":201,"language":"json","code":"{\n    \"BoletoTransactionResultCollection\": [],\n    \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n    \"CreditCardTransactionResultCollection\": [\n        {\n            \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": \"0\",\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": \"655247\",\n            \"AuthorizedAmountInCents\": 10000,\n            \"CapturedAmountInCents\": 10000,\n            \"CapturedDate\": \"2015-12-14T21:57:01\",\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"Captured\",\n            \"DueDate\": \"2015-12-14T19:57:02\",\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": \"842067\",\n            \"TransactionKey\": \"439d3042-7d90-4158-9322-6b1656781694\",\n            \"TransactionKeyToAcquirer\": \"439d30427d904158\",\n            \"TransactionReference\": \"768a9716-8347-4f15-8912-defd81a5f5df\",\n            \"UniqueSequentialNumber\": \"849131\",\n            \"VoidedAmountInCents\": null\n        },\n        {\n            \"AcquirerMessage\": null,\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": null,\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": null,\n            \"AuthorizedAmountInCents\": null,\n            \"CapturedAmountInCents\": null,\n            \"CapturedDate\": null,\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"PendingAuthorize\",\n            \"DueDate\": \"2016-01-14T19:57:02\",\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": null,\n            \"TransactionKey\": \"e88adc8b-1796-4cbf-8e96-524d9193b3c6\",\n            \"TransactionKeyToAcquirer\": \"e88adc8b17964cbf\",\n            \"TransactionReference\": \"768a9716-8347-4f15-8912-defd81a5f5df\",\n            \"UniqueSequentialNumber\": null,\n            \"VoidedAmountInCents\": null\n        },\n        {\n            \"AcquirerMessage\": null,\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": null,\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": null,\n            \"AuthorizedAmountInCents\": null,\n            \"CapturedAmountInCents\": null,\n            \"CapturedDate\": null,\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"PendingAuthorize\",\n            \"DueDate\": \"2016-02-14T19:57:02\",\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": null,\n            \"TransactionKey\": \"446b4176-79cd-4767-96e8-fa418b2ad2c3\",\n            \"TransactionKeyToAcquirer\": \"446b417679cd4767\",\n            \"TransactionReference\": \"768a9716-8347-4f15-8912-defd81a5f5df\",\n            \"UniqueSequentialNumber\": null,\n            \"VoidedAmountInCents\": null\n        },\n        {\n            \"AcquirerMessage\": null,\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": null,\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": null,\n            \"AuthorizedAmountInCents\": null,\n            \"CapturedAmountInCents\": null,\n            \"CapturedDate\": null,\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"PendingAuthorize\",\n            \"DueDate\": \"2016-03-14T19:57:02\",\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": null,\n            \"TransactionKey\": \"d1a03c9e-26c6-481f-9267-e01662e22a27\",\n            \"TransactionKeyToAcquirer\": \"d1a03c9e26c6481f\",\n            \"TransactionReference\": \"768a9716-8347-4f15-8912-defd81a5f5df\",\n            \"UniqueSequentialNumber\": null,\n            \"VoidedAmountInCents\": null\n        },\n        {\n            \"AcquirerMessage\": null,\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": null,\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": null,\n            \"AuthorizedAmountInCents\": null,\n            \"CapturedAmountInCents\": null,\n            \"CapturedDate\": null,\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"PendingAuthorize\",\n            \"DueDate\": \"2016-04-14T19:57:02\",\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": null,\n            \"TransactionKey\": \"2605eeee-0910-444a-8c8d-748557c1028c\",\n            \"TransactionKeyToAcquirer\": \"2605eeee0910444a\",\n            \"TransactionReference\": \"768a9716-8347-4f15-8912-defd81a5f5df\",\n            \"UniqueSequentialNumber\": null,\n            \"VoidedAmountInCents\": null\n        }\n    ],\n    \"ErrorReport\": null,\n    \"InternalTime\": 1116,\n    \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n    \"OrderResult\": {\n        \"CreateDate\": \"2015-12-14T21:57:01\",\n        \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n        \"OrderReference\": \"NumeroDoPedido\"\n    },\n    \"RequestKey\": \"f6435375-ff40-4eb9-96e6-01b0949c4e74\"\n}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"561f139acfc3610d00567176","url":"/sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Cria a transação.\\nvar transaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        CreditCardBrand = CreditCardBrandEnum.Visa,\\n        CreditCardNumber = \\\"4111111111111111\\\",\\n        ExpMonth = 10,\\n        ExpYear = 22,\\n        HolderName = \\\"LUKE SKYWALKER\\\",\\n        SecurityCode = \\\"123\\\"\\n    },\\n    InstallmentCount = 1,\\n    Recurrency = new Recurrency() {\\n        DateToStartBilling = DateTime.Now,\\n        Frequency = FrequencyEnum.Monthly,\\n        Interval = 1,\\n        Recurrences = 5\\n    }\\n};\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona a transação na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    }\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    foreach (var transactionResult in httpResponse.Response.CreditCardTransactionResultCollection) {\\n        Console.WriteLine(\\\"Status transação: {0} - Data cobrança: {1}\\\", transactionResult.CreditCardTransactionStatus, transactionResult.DueDate);\\n    }\\n}\",\n      \"language\": \"csharp\",\n      \"name\": \"C#\"\n    },\n    {\n      \"code\": \"<?php\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave da loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $createSaleRequest = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Cria objeto do cartão de crédito\\n    $creditCard = \\\\Gateway\\\\One\\\\Helper\\\\CreditCardHelper::createCreditCard(\\\"4111 1111 1111 1111\\\", \\\"LUKE SKYWALKER\\\", \\\"10/2022\\\", \\\"123\\\");\\n\\n    // Dados da transação de cartão de crédito\\n    $creditCardTransaction = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequestData\\\\CreditCardTransaction();\\n    $creditCardTransaction\\n    ->setAmountInCents(10000)\\n    ->setInstallmentCount(1)\\n    ->setCreditCard($creditCard)\\n    ;\\n\\n    // Dados da recorrência\\n    $creditCardTransaction->getRecurrency()\\n    ->setDateToStartBilling(new \\\\DateTime())\\n    ->setFrequency(\\\\Gateway\\\\One\\\\DataContract\\\\Enum\\\\FrequencyEnum::MONTHLY)\\n    ->setInterval(1)\\n    ->setRecurrences(5);\\n\\n    // Define dados da transação\\n    $createSaleRequest->addCreditCardTransaction($creditCardTransaction);\\n        \\n    //Define dados do pedido\\n    $createSaleRequest->getOrder()\\n    ->setOrderReference('NumeroDoPedido');\\n\\n    // Cria um objeto ApiClient\\n    $apiClient = new \\\\Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $apiClient->createSale($createSaleRequest);\\n\\n    // Mapeia resposta\\n    $httpStatusCode = $response->isSuccess() ? 201 : 401;\\n    \\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    var_dump($response);\\n}\\n?>\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\ncreditCardTransactionItem = Gateway::CreditCardTransaction.new\\ncreditCardTransactionItem.AmountInCents = 10000\\ncreditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'\\ncreditCardTransactionItem.CreditCard.CreditCardNumber = '4111111111111111'\\ncreditCardTransactionItem.CreditCard.ExpMonth = 10\\ncreditCardTransactionItem.CreditCard.ExpYear = 22\\ncreditCardTransactionItem.CreditCard.HolderName = 'LUKE SKYWALKER'\\ncreditCardTransactionItem.CreditCard.SecurityCode = '123'\\ncreditCardTransactionItem.InstallmentCount = 1\\ncreditCardTransactionItem.Recurrency.DateToStartBilling = DateTime.new(2015,12,14,19,57,2).strftime(\\\"%Y-%m-%dT%H:%M:%S\\\")\\ncreditCardTransactionItem.Recurrency.Frequency = 'Monthly'\\ncreditCardTransactionItem.Recurrency.Interval = 1\\ncreditCardTransactionItem.Recurrency.Recurrences = 5\\n\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# -*- coding: utf-8 -*-\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, recurrency\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\nfrom datetime import datetime\\n\\n#Coleta os dados do cartão.\\ncreditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,\\n                             security_code='123', holder_name='LUKE SKYWALKER')\\n\\n# Cria os dados da recorrência.\\nrecurrency_data = recurrency(frequency = 'Monthly', interval = 1, date_to_start_billing = datetime.now().strftime(\\\"%Y-%m-%dT%H:%M:%S\\\"), recurrences = 5, one_dollar_auth = True)\\n\\n#Cria a transação.\\ntransaction_collection = [creditcard_transaction(10000, creditcard_data, recurrency = recurrency_data)]\\n\\n#Cria o numero do pedido\\noptions_request = order(order_reference='NumeroDoPedido')\\n\\n###Cria a request.\\nrequest = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.create_with_request(request)\\n\\njson_response = http_response.json()\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);\\ncreditCard.setCreditCardNumber(\\\"4111111111111111\\\");\\ncreditCard.setExpMonth(10);\\ncreditCard.setExpYear(22);\\ncreditCard.setHolderName(\\\"LUKE SKYWALKER\\\");\\ncreditCard.setSecurityCode(\\\"123\\\");\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setInstallmentCount(1);\\ncreditCardTransaction.setRecurrency(new DataContracts.Recurrency.Recurrency());\\ncreditCardTransaction.getRecurrency().setDateToStartBilling(Date.valueOf(\\\"2015-12-14\\\"));\\ncreditCardTransaction.getRecurrency().setFrequency(FrequencyEnum.Monthly);\\ncreditCardTransaction.getRecurrency().setInterval(1);\\ncreditCardTransaction.getRecurrency().setRecurrences(5);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NúmeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setOrder(order);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse\\n        = serviceClient.getSale().Create(createSaleRequest);\\n\\nreturn httpResponse.getRawResponse();\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"CreditCardBrand\\\": \\\"Visa\\\",\\n                \\\"CreditCardNumber\\\": \\\"4111111111111111\\\",\\n                \\\"ExpMonth\\\": 10,\\n                \\\"ExpYear\\\": 22,\\n                \\\"HolderName\\\": \\\"LUKE SKYWALKER\\\",\\n                \\\"SecurityCode\\\": \\\"123\\\"\\n            },\\n            \\\"InstallmentCount\\\": 1,\\n            \\\"Recurrency\\\": {\\n                \\\"DateToStartBilling\\\": \\\"2015-12-14T19:57:02\\\",\\n                \\\"Frequency\\\": \\\"Monthly\\\",\\n                \\\"Interval\\\": 1,\\n              \\t\\\"OneDollarAuth\\\":true,\\n                \\\"Recurrences\\\": 5\\n            }\\n        }\\n    ],\\n    \\\"Options\\\": {},\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nA transação de recorrência nada mais é que um [transação normal](doc:realizando-transacoes) caracterizada como uma recorrência. Para isso, é só colocar o Recurrency na coleção de cartão de crédito.\n\nAo enviar, a recorrência você deve informar alguns campos específicos:\n\n**DateToStartBilling**, a data que a recorrência será iniciada;\n**Frequency**, a frequência que será cobrada, ``Daily`` (Diária), ``Weekly`` (Semanal),``Monthly``(Mensal), ``Yearly``(Anual)\n**Interval**, o intervalo entre a frequência (Nesse caso, se a frequência for mensal, e você enviar 2 no intervalo, será feita uma cobrança a cada dois meses.)\n**OneDollarAuth**, para transações de recorrência é comum realizar uma validação no cartão do cliente, portanto é só informar ``True``, caso queira essa transação de R$ 1,00 ou ``False`` caso não queira.\n**Recurrences** , corresponde ao número de recorrências que serão criadas, caso seja informado 0, será criada uma recorrência infinita.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Cartões expirados\",\n  \"body\": \"Caso uma recorrência seja criada com um número de recorrências (Recurrences) que ultrapasse a data de validade do cartão, não serão criadas as transações posteriores a data. Por exemplo, se você criar uma recorrência com 12 cobranças em 01/2015 e a data de validade do cartão é 06/2015, serão criadas apenas 6 transações.\"\n}\n[/block]\nAo criar a recorrência todas as transações serão criadas, por exemplo caso você envie Recurrences = 6, criaremos as 6 transações. \n\nNormalmente as lojas criam a recorrência no ato da compra, portanto a primeira transação será autorizada e seguirá o fluxo normal de status das transações, já as outras 5 transações ficarão pendentes com status ``PendingAuthorize``, pois serão cobradas somente no próximo agendamento (DueDate). \n\nCaso você tenha enviado a opção de OneDollarAuth, será criada inicialmente uma transação de R$ 1,00 além das seis, para validar o cartão.\n\nSe a primeira transação não for autorizada pelo adquirente, a recorrência não será criada e ficará com o status ``Invalid``, nesse caso você deve criá-la novamente.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Recorrências infinitas\",\n  \"body\": \"Quando é enviado 0 no campo Recurrences são criadas recorrências infinitas na Mundi. Porém, primeiramente são criadas 12 transações e na medida que as cobranças são realizadas uma nova transação é adicionada no sistema.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Cancelando uma recorrência\"\n}\n[/block]\nO cancelamento de uma recorrência é realizado pelo mesmo [método](doc:cancelamento)    de uma transação normal.\n\nAo cancelar uma dada recorrência, por exemplo, no mês de abril, todas as recorrências futuras são canceladas, porém as passadas se mantêm inclusive a do mês de abril.","category":"55b7fefaaea7c8190058bb27","createdAt":"2015-07-28T22:23:04.892Z","editedParams":true,"editedParams2":true,"excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":1,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"criando-uma-recorrencia","sync_unique":"","title":"Criando uma recorrência","type":"post","updates":["56186cb49420c40d00510821","5618774c4d867c0d008e2272","561d37c673f1a01700141639","56461cf37e875a0d00ee73a6","5646244dbb7ad50d00e9c5a1","5646245e83218f19006e7dbf","567130b35e49250d006647ae","567841323473bc0d008e12ff","5678aac43473bc0d008e139e","56bc9939752c130d008d190d"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postCriando uma recorrência


Body Params

Recurrency[DateToStartBilling]:
datetime
Data do início da recorrência
Recurrency[Frequency]:
stringEnum
Frequência
Recurrency[Interval]:
string
Intervalo de cobrança dada a frequência
Recurrency[OneDollarAuth]:
stringfalse
Ativar a transação de R$ 1,00 para validar o cartão
Recurrency[Recurrences]:
string0
Quantidade de vezes que será cobrado
// Cria a transação.
var transaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        CreditCardBrand = CreditCardBrandEnum.Visa,
        CreditCardNumber = "4111111111111111",
        ExpMonth = 10,
        ExpYear = 22,
        HolderName = "LUKE SKYWALKER",
        SecurityCode = "123"
    },
    InstallmentCount = 1,
    Recurrency = new Recurrency() {
        DateToStartBilling = DateTime.Now,
        Frequency = FrequencyEnum.Monthly,
        Interval = 1,
        Recurrences = 5
    }
};

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona a transação na requisição.
    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),
    Order = new Order() {
        OrderReference = "NumeroDoPedido"
    }
};

// Coloque a sua MerchantKey aqui.
Guid merchantKey = Guid.Parse("85328786-8BA6-420F-9948-5352F5A183EB");

// Cria o client que enviará a transação.
var serviceClient = new GatewayServiceClient(merchantKey, new Uri("https://sandbox.mundipaggone.com"));

// Autoriza a transação e recebe a resposta do gateway.
var httpResponse = serviceClient.Sale.Create(createSaleRequest);

Console.WriteLine("Código retorno: {0}", httpResponse.HttpStatusCode);
Console.WriteLine("Chave do pedido: {0}", httpResponse.Response.OrderResult.OrderKey);
if (httpResponse.Response.CreditCardTransactionResultCollection != null) {
    foreach (var transactionResult in httpResponse.Response.CreditCardTransactionResultCollection) {
        Console.WriteLine("Status transação: {0} - Data cobrança: {1}", transactionResult.CreditCardTransactionStatus, transactionResult.DueDate);
    }
}
<?php
try
{
    // Carrega dependências
    require_once(dirname(__FILE__) . '/vendor/autoload.php');

    // Define a url utilizada
    \Gateway\ApiClient::setBaseUrl("https://sandbox.mundipaggone.com");

    // Define a chave da loja
    \Gateway\ApiClient::setMerchantKey("85328786-8BA6-420F-9948-5352F5A183EB");

    // Cria objeto requisição
    $createSaleRequest = new \Gateway\One\DataContract\Request\CreateSaleRequest();

    // Cria objeto do cartão de crédito
    $creditCard = \Gateway\One\Helper\CreditCardHelper::createCreditCard("4111 1111 1111 1111", "LUKE SKYWALKER", "10/2022", "123");

    // Dados da transação de cartão de crédito
    $creditCardTransaction = new \Gateway\One\DataContract\Request\CreateSaleRequestData\CreditCardTransaction();
    $creditCardTransaction
    ->setAmountInCents(10000)
    ->setInstallmentCount(1)
    ->setCreditCard($creditCard)
    ;

    // Dados da recorrência
    $creditCardTransaction->getRecurrency()
    ->setDateToStartBilling(new \DateTime())
    ->setFrequency(\Gateway\One\DataContract\Enum\FrequencyEnum::MONTHLY)
    ->setInterval(1)
    ->setRecurrences(5);

    // Define dados da transação
    $createSaleRequest->addCreditCardTransaction($creditCardTransaction);
        
    //Define dados do pedido
    $createSaleRequest->getOrder()
    ->setOrderReference('NumeroDoPedido');

    // Cria um objeto ApiClient
    $apiClient = new \Gateway\ApiClient();

    // Faz a chamada para criação
    $response = $apiClient->createSale($createSaleRequest);

    // Mapeia resposta
    $httpStatusCode = $response->isSuccess() ? 201 : 401;
    
}
catch (\Gateway\One\DataContract\Report\CreditCardError $error)
{
    $response = array("message" => $error->getMessage());
}
catch (\Gateway\One\DataContract\Report\ApiError $error)
{
    $response = array("message" => $error->errorCollection->ErrorItemCollection[0]->Description);
}
catch (\Exception $ex)
{
    $response = array("message" => "Ocorreu um erro inesperado.");
}
finally
{
    header('Content-Type: application/json');
    var_dump($response);
}
?>
require 'mundipagg_sdk'

# variable with merchant key
merchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'

# instantiate class with request methods
# :sandbox for sandbox ambient 
# :production for production ambient
gateway = Gateway::Gateway.new(:sandbox, merchantKey)

creditCardTransactionItem = Gateway::CreditCardTransaction.new
creditCardTransactionItem.AmountInCents = 10000
creditCardTransactionItem.CreditCard.CreditCardBrand = 'Visa'
creditCardTransactionItem.CreditCard.CreditCardNumber = '4111111111111111'
creditCardTransactionItem.CreditCard.ExpMonth = 10
creditCardTransactionItem.CreditCard.ExpYear = 22
creditCardTransactionItem.CreditCard.HolderName = 'LUKE SKYWALKER'
creditCardTransactionItem.CreditCard.SecurityCode = '123'
creditCardTransactionItem.InstallmentCount = 1
creditCardTransactionItem.Recurrency.DateToStartBilling = DateTime.new(2015,12,14,19,57,2).strftime("%Y-%m-%dT%H:%M:%S")
creditCardTransactionItem.Recurrency.Frequency = 'Monthly'
creditCardTransactionItem.Recurrency.Interval = 1
creditCardTransactionItem.Recurrency.Recurrences = 5

createSaleRequest = Gateway::CreateSaleRequest.new
createSaleRequest.CreditCardTransactionCollection << creditCardTransactionItem
createSaleRequest.Order.OrderReference = 'NumeroDoPedido'

# make the request and returns a response hash
response = gateway.CreateSale(createSaleRequest)

# prints the response
puts response
# -*- coding: utf-8 -*-

from uuid import UUID
from data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, recurrency
from mundipaggOnePython import GatewayServiceClient
from enum_types import PlatformEnvironment, HttpContentTypeEnum
from datetime import datetime

#Coleta os dados do cartão.
creditcard_data = creditcard(creditcard_number='4111111111111111', creditcard_brand='Visa', exp_month=10, exp_year=2018,
                             security_code='123', holder_name='LUKE SKYWALKER')

# Cria os dados da recorrência.
recurrency_data = recurrency(frequency = 'Monthly', interval = 1, date_to_start_billing = datetime.now().strftime("%Y-%m-%dT%H:%M:%S"), recurrences = 5, one_dollar_auth = True)

#Cria a transação.
transaction_collection = [creditcard_transaction(10000, creditcard_data, recurrency = recurrency_data)]

#Cria o numero do pedido
options_request = order(order_reference='NumeroDoPedido')

###Cria a request.
request = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)

merchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')
end_point = "https://sandbox.mundipaggone.com"

service_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)

http_response = service_client.sale.create_with_request(request)

json_response = http_response.json()
// Define loja
UUID merchantKey = UUID.fromString("85328786-8BA6-420F-9948-5352F5A183EB"); // Chave da Loja - MerchantKey

// Cria um cartão de crédito e define endereço de cobrança
CreditCard creditCard = new CreditCard();
creditCard.setCreditCardBrand(CreditCardBrandEnum.Visa);
creditCard.setCreditCardNumber("4111111111111111");
creditCard.setExpMonth(10);
creditCard.setExpYear(22);
creditCard.setHolderName("LUKE SKYWALKER");
creditCard.setSecurityCode("123");

// Cria a transação de cartão de crédito e define cartão criado anteriormente
CreditCardTransaction creditCardTransaction = new CreditCardTransaction();
creditCardTransaction.setAmountInCents(10000L);
creditCardTransaction.setCreditCard(creditCard);
creditCardTransaction.setInstallmentCount(1);
creditCardTransaction.setRecurrency(new DataContracts.Recurrency.Recurrency());
creditCardTransaction.getRecurrency().setDateToStartBilling(Date.valueOf("2015-12-14"));
creditCardTransaction.getRecurrency().setFrequency(FrequencyEnum.Monthly);
creditCardTransaction.getRecurrency().setInterval(1);
creditCardTransaction.getRecurrency().setRecurrences(5);

// Cria o objeto order para adicionar o Order Reference
Order order = new Order();
order.setOrderReference("NúmeroDoPedido");

// Cria o Sale Request para enviar o objeto de request
CreateSaleRequest createSaleRequest = new CreateSaleRequest();
createSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());
createSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);
createSaleRequest.setOrder(order);

// Cria o cliente que vai enviar a transação
GatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, "https://sandbox.mundipaggone.com");

// Submete a transação e retorna a resposta do gateway
HttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse
        = serviceClient.getSale().Create(createSaleRequest);

return httpResponse.getRawResponse();
{
    "CreditCardTransactionCollection": [
        {
            "AmountInCents": 10000,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "CreditCardNumber": "4111111111111111",
                "ExpMonth": 10,
                "ExpYear": 22,
                "HolderName": "LUKE SKYWALKER",
                "SecurityCode": "123"
            },
            "InstallmentCount": 1,
            "Recurrency": {
                "DateToStartBilling": "2015-12-14T19:57:02",
                "Frequency": "Monthly",
                "Interval": 1,
              	"OneDollarAuth":true,
                "Recurrences": 5
            }
        }
    ],
    "Options": {},
    "Order": {
        "OrderReference": "NumeroDoPedido"
    }
}

A transação de recorrência nada mais é que um transação normal caracterizada como uma recorrência. Para isso, é só colocar o Recurrency na coleção de cartão de crédito.

Ao enviar, a recorrência você deve informar alguns campos específicos:

DateToStartBilling, a data que a recorrência será iniciada;
Frequency, a frequência que será cobrada, Daily (Diária), Weekly (Semanal),Monthly(Mensal), Yearly(Anual)
Interval, o intervalo entre a frequência (Nesse caso, se a frequência for mensal, e você enviar 2 no intervalo, será feita uma cobrança a cada dois meses.)
OneDollarAuth, para transações de recorrência é comum realizar uma validação no cartão do cliente, portanto é só informar True, caso queira essa transação de R$ 1,00 ou False caso não queira.
Recurrences , corresponde ao número de recorrências que serão criadas, caso seja informado 0, será criada uma recorrência infinita.

Cartões expirados

Caso uma recorrência seja criada com um número de recorrências (Recurrences) que ultrapasse a data de validade do cartão, não serão criadas as transações posteriores a data. Por exemplo, se você criar uma recorrência com 12 cobranças em 01/2015 e a data de validade do cartão é 06/2015, serão criadas apenas 6 transações.

Ao criar a recorrência todas as transações serão criadas, por exemplo caso você envie Recurrences = 6, criaremos as 6 transações.

Normalmente as lojas criam a recorrência no ato da compra, portanto a primeira transação será autorizada e seguirá o fluxo normal de status das transações, já as outras 5 transações ficarão pendentes com status PendingAuthorize, pois serão cobradas somente no próximo agendamento (DueDate).

Caso você tenha enviado a opção de OneDollarAuth, será criada inicialmente uma transação de R$ 1,00 além das seis, para validar o cartão.

Se a primeira transação não for autorizada pelo adquirente, a recorrência não será criada e ficará com o status Invalid, nesse caso você deve criá-la novamente.

Recorrências infinitas

Quando é enviado 0 no campo Recurrences são criadas recorrências infinitas na Mundi. Porém, primeiramente são criadas 12 transações e na medida que as cobranças são realizadas uma nova transação é adicionada no sistema.

Cancelando uma recorrência

O cancelamento de uma recorrência é realizado pelo mesmo método de uma transação normal.

Ao cancelar uma dada recorrência, por exemplo, no mês de abril, todas as recorrências futuras são canceladas, porém as passadas se mantêm inclusive a do mês de abril.

Definition

{{ api_url }}{{ page_api_url }}

Result Format

{
    "BoletoTransactionResultCollection": [],
    "BuyerKey": "00000000-0000-0000-0000-000000000000",
    "CreditCardTransactionResultCollection": [
        {
            "AcquirerMessage": "Simulator|Transação de simulação autorizada com sucesso",
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": "0",
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": "655247",
            "AuthorizedAmountInCents": 10000,
            "CapturedAmountInCents": 10000,
            "CapturedDate": "2015-12-14T21:57:01",
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthAndCapture",
            "CreditCardTransactionStatus": "Captured",
            "DueDate": "2015-12-14T19:57:02",
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": "842067",
            "TransactionKey": "439d3042-7d90-4158-9322-6b1656781694",
            "TransactionKeyToAcquirer": "439d30427d904158",
            "TransactionReference": "768a9716-8347-4f15-8912-defd81a5f5df",
            "UniqueSequentialNumber": "849131",
            "VoidedAmountInCents": null
        },
        {
            "AcquirerMessage": null,
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": null,
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": null,
            "AuthorizedAmountInCents": null,
            "CapturedAmountInCents": null,
            "CapturedDate": null,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthAndCapture",
            "CreditCardTransactionStatus": "PendingAuthorize",
            "DueDate": "2016-01-14T19:57:02",
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": null,
            "TransactionKey": "e88adc8b-1796-4cbf-8e96-524d9193b3c6",
            "TransactionKeyToAcquirer": "e88adc8b17964cbf",
            "TransactionReference": "768a9716-8347-4f15-8912-defd81a5f5df",
            "UniqueSequentialNumber": null,
            "VoidedAmountInCents": null
        },
        {
            "AcquirerMessage": null,
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": null,
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": null,
            "AuthorizedAmountInCents": null,
            "CapturedAmountInCents": null,
            "CapturedDate": null,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthAndCapture",
            "CreditCardTransactionStatus": "PendingAuthorize",
            "DueDate": "2016-02-14T19:57:02",
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": null,
            "TransactionKey": "446b4176-79cd-4767-96e8-fa418b2ad2c3",
            "TransactionKeyToAcquirer": "446b417679cd4767",
            "TransactionReference": "768a9716-8347-4f15-8912-defd81a5f5df",
            "UniqueSequentialNumber": null,
            "VoidedAmountInCents": null
        },
        {
            "AcquirerMessage": null,
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": null,
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": null,
            "AuthorizedAmountInCents": null,
            "CapturedAmountInCents": null,
            "CapturedDate": null,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthAndCapture",
            "CreditCardTransactionStatus": "PendingAuthorize",
            "DueDate": "2016-03-14T19:57:02",
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": null,
            "TransactionKey": "d1a03c9e-26c6-481f-9267-e01662e22a27",
            "TransactionKeyToAcquirer": "d1a03c9e26c6481f",
            "TransactionReference": "768a9716-8347-4f15-8912-defd81a5f5df",
            "UniqueSequentialNumber": null,
            "VoidedAmountInCents": null
        },
        {
            "AcquirerMessage": null,
            "AcquirerName": "Simulator",
            "AcquirerReturnCode": null,
            "AffiliationCode": "000000000",
            "AmountInCents": 10000,
            "AuthorizationCode": null,
            "AuthorizedAmountInCents": null,
            "CapturedAmountInCents": null,
            "CapturedDate": null,
            "CreditCard": {
                "CreditCardBrand": "Visa",
                "InstantBuyKey": "3b3b5b62-6660-428d-905e-96f49d46ae28",
                "IsExpiredCreditCard": false,
                "MaskedCreditCardNumber": "411111****1111"
            },
            "CreditCardOperation": "AuthAndCapture",
            "CreditCardTransactionStatus": "PendingAuthorize",
            "DueDate": "2016-04-14T19:57:02",
            "ExternalTime": 0,
            "PaymentMethodName": "Simulator",
            "RefundedAmountInCents": null,
            "Success": true,
            "TransactionIdentifier": null,
            "TransactionKey": "2605eeee-0910-444a-8c8d-748557c1028c",
            "TransactionKeyToAcquirer": "2605eeee0910444a",
            "TransactionReference": "768a9716-8347-4f15-8912-defd81a5f5df",
            "UniqueSequentialNumber": null,
            "VoidedAmountInCents": null
        }
    ],
    "ErrorReport": null,
    "InternalTime": 1116,
    "MerchantKey": "85328786-8ba6-420f-9948-5352f5a183eb",
    "OrderResult": {
        "CreateDate": "2015-12-14T21:57:01",
        "OrderKey": "219d7581-78e2-4aa9-b708-b7c585780bfc",
        "OrderReference": "NumeroDoPedido"
    },
    "RequestKey": "f6435375-ff40-4eb9-96e6-01b0949c4e74"
}
{}


{"__v":4,"_id":"559c51cd4ac6411700d856eb","api":{"auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":""},"body":"A Mundi permite que você guarde os dados do cartão de crédito do seu cliente para próximas compras ou até mesmo realizar a recorrência!\n\nPara isso, transformamos os dados do cartão em um token que você receberá em toda resposta de transação. Esse token é chamado de InstantBuyKey!","category":"55b7ff1131bccb190081c182","createdAt":"2015-07-07T22:25:17.565Z","excerpt":"Guarde o cartão do seu cliente com segurança!","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","order":0,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"instant-buy-tokenizacao","sync_unique":"","title":"Instant Buy (Tokenização)","type":"basic","updates":[],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

Instant Buy (Tokenização)

Guarde o cartão do seu cliente com segurança!

A Mundi permite que você guarde os dados do cartão de crédito do seu cliente para próximas compras ou até mesmo realizar a recorrência!

Para isso, transformamos os dados do cartão em um token que você receberá em toda resposta de transação. Esse token é chamado de InstantBuyKey!

{"__v":10,"_id":"55f87b705840d11900434692","api":{"auth":"required","examples":{"codes":[]},"params":[{"_id":"55b80b3caea7c8190058bb73","default":"","desc":"Valor da transação em centavos. R$ 1,00 = 100","in":"body","name":"AmountInCents","ref":"","required":true,"type":"int"},{"_id":"55f87defa3271b0d00498d96","default":"","desc":"InstantBuyKey do cliente","in":"body","name":"CreditCard[InstantBuyKey]","ref":"","required":true,"type":"string"},{"_id":"55b80b3caea7c8190058bb6e","default":"","desc":"Código de segurança do cartão","in":"body","name":"CreditCard[SecurityCode]","ref":"","required":true,"type":"int"},{"_id":"55b80b3caea7c8190058bb6c","default":"AuthAndCapture","desc":"Tipo de operação a ser realizada","in":"body","name":"CreditCardOperation","ref":"","required":false,"type":"string"},{"_id":"55b80b3caea7c8190058bb6b","default":"1","desc":"Número de Parcelas","in":"body","name":"InstallmentCount","ref":"","required":false,"type":"int"},{"_id":"55b80b3caea7c8190058bb68","default":"0","desc":"Meio de pagamento que deve ser utilizado para a transação","in":"body","name":"Options[PaymentMethodCode]","ref":"","required":false,"type":"int"},{"_id":"55b80b3caea7c8190058bb6a","default":"","desc":"Identificador da transação na sua base","in":"body","name":"TransactionReference","ref":"","required":false,"type":"string"},{"_id":"55b80b3caea7c8190058bb69","default":"","desc":"Identificador do pedido na sua base","in":"body","name":"Order[OrderReference]","ref":"","required":false,"type":"string"}],"results":{"codes":[{"language":"json","code":"{\n    \"BoletoTransactionResultCollection\": [],\n    \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n    \"CreditCardTransactionResultCollection\": [\n        {\n            \"AcquirerMessage\": \"Simulator|Transação de simulação autorizada com sucesso\",\n            \"AcquirerName\": \"Simulator\",\n            \"AcquirerReturnCode\": \"0\",\n            \"AffiliationCode\": \"000000000\",\n            \"AmountInCents\": 10000,\n            \"AuthorizationCode\": \"104901\",\n            \"AuthorizedAmountInCents\": 10000,\n            \"CapturedAmountInCents\": 10000,\n            \"CapturedDate\": \"2015-12-15T19:47:57\",\n            \"CreditCard\": {\n                \"CreditCardBrand\": \"Visa\",\n                \"InstantBuyKey\": \"3b3b5b62-6660-428d-905e-96f49d46ae28\",\n                \"IsExpiredCreditCard\": false,\n                \"MaskedCreditCardNumber\": \"411111****1111\"\n            },\n            \"CreditCardOperation\": \"AuthAndCapture\",\n            \"CreditCardTransactionStatus\": \"Captured\",\n            \"DueDate\": null,\n            \"ExternalTime\": 0,\n            \"PaymentMethodName\": \"Simulator\",\n            \"RefundedAmountInCents\": null,\n            \"Success\": true,\n            \"TransactionIdentifier\": \"356704\",\n            \"TransactionKey\": \"20ba0520-7d09-44f8-8fbc-e4329e2b18d5\",\n            \"TransactionKeyToAcquirer\": \"aec4acbd4f994cd3\",\n            \"TransactionReference\": \"d6adf879-9362-4e48-a2a1-a69d020c6641\",\n            \"UniqueSequentialNumber\": \"339701\",\n            \"VoidedAmountInCents\": null\n        }\n    ],\n    \"ErrorReport\": null,\n    \"InternalTime\": 124,\n    \"MerchantKey\": \"85328786-8ba6-420f-9948-5352f5a183eb\",\n    \"OrderResult\": {\n        \"CreateDate\": \"2015-12-15T19:47:56\",\n        \"OrderKey\": \"219d7581-78e2-4aa9-b708-b7c585780bfc\",\n        \"OrderReference\": \"NumeroDoPedido\"\n    },\n    \"RequestKey\": \"51cbe2ab-c925-47dd-b634-b4b4ee81eb2d\"\n}","status":201},{"code":"{\n  \"ErrorReport\": {\n    \"Category\": \"RequestError\",\n    \"ErrorItemCollection\": [\n      {\n        \"Description\": \"A bandeira Invalida atualmente não é suportada.\",\n        \"ErrorCode\": 400,\n        \"ErrorField\": \"CreditCardBrand\",\n        \"SeverityCode\": \"Error\"\n      }\n    ]\n  },\n  \"InternalTime\": 0,\n  \"MerchantKey\": \"1b2dd57f-1ed9-4153-b4ce-69683efadad5\",\n  \"RequestKey\": \"fb0f6d14-3564-4ac2-bc88-9d319816b966\",\n  \"BuyerKey\": \"00000000-0000-0000-0000-000000000000\",\n}","language":"json","status":400}]},"settings":"561f139acfc3610d00567176","url":"/Sale"},"body":"[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Cria a transação.\\nvar transaction = new CreditCardTransaction() {\\n    AmountInCents = 10000,\\n    CreditCard = new CreditCard() {\\n        // Chave do cartão (InstantBuyKey)\\n        InstantBuyKey = Guid.Parse(\\\"3b3b5b62-6660-428d-905e-96f49d46ae28\\\")\\n    },\\n    InstallmentCount = 1\\n};\\n\\n// Cria requisição.\\nvar createSaleRequest = new CreateSaleRequest() {\\n    // Adiciona a transação na requisição.\\n    CreditCardTransactionCollection = new Collection<CreditCardTransaction>(new CreditCardTransaction[] { transaction }),\\n    Order = new Order() {\\n        OrderReference = \\\"NumeroDoPedido\\\"\\n    }\\n};\\n\\n// Coloque a sua MerchantKey aqui.\\nGuid merchantKey = Guid.Parse(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n// Cria o client que enviará a transação.\\nvar serviceClient = new GatewayServiceClient(merchantKey, new Uri(\\\"https://sandbox.mundipaggone.com\\\"));\\n\\n// Autoriza a transação e recebe a resposta do gateway.\\nvar httpResponse = serviceClient.Sale.Create(createSaleRequest);\\n\\nConsole.WriteLine(\\\"Código retorno: {0}\\\", httpResponse.HttpStatusCode);\\nConsole.WriteLine(\\\"Chave do pedido: {0}\\\", httpResponse.Response.OrderResult.OrderKey);\\nif (httpResponse.Response.CreditCardTransactionResultCollection != null) {\\n    Console.WriteLine(\\\"Status transação: {0}\\\", httpResponse.Response.CreditCardTransactionResultCollection.FirstOrDefault().CreditCardTransactionStatus);\\n}\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"<?php\\ntry\\n{\\n    // Carrega dependências\\n    require_once(dirname(__FILE__) . '/vendor/autoload.php');\\n\\n    // Define a url utilizada\\n    \\\\Gateway\\\\ApiClient::setBaseUrl(\\\"https://sandbox.mundipaggone.com\\\");\\n\\n    // Define a chave da loja\\n    \\\\Gateway\\\\ApiClient::setMerchantKey(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\");\\n\\n    // Cria objeto requisição\\n    $createSaleRequest = new \\\\Gateway\\\\One\\\\DataContract\\\\Request\\\\CreateSaleRequest();\\n\\n    // Define dados da transação\\n    $createSaleRequest->addCreditCardTransaction()\\n        ->setAmountInCents(10000)\\n        ->setInstallmentCount(1)\\n        ->getCreditCard()\\n        ->setInstantBuyKey(\\\"3b3b5b62-6660-428d-905e-96f49d46ae28\\\")\\n        ;\\n\\n    //Define dados do pedido\\n    $createSaleRequest->getOrder()\\n    ->setOrderReference('NumeroDoPedido');\\n\\n    // Cria um objeto ApiClient\\n    $apiClient = new \\\\Gateway\\\\ApiClient();\\n\\n    // Faz a chamada para criação\\n    $response = $apiClient->createSale($createSaleRequest);\\n    \\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\CreditCardError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->getMessage());\\n}\\ncatch (\\\\Gateway\\\\One\\\\DataContract\\\\Report\\\\ApiError $error)\\n{\\n    $response = array(\\\"message\\\" => $error->errorCollection->ErrorItemCollection[0]->Description);\\n}\\ncatch (\\\\Exception $ex)\\n{\\n    $response = array(\\\"message\\\" => \\\"Ocorreu um erro inesperado.\\\");\\n}\\nfinally\\n{\\n    header('Content-Type: application/json');\\n    var_dump($response);\\n}\\n?>\",\n      \"language\": \"php\"\n    },\n    {\n      \"code\": \"require 'mundipagg_sdk'\\n\\n# variable with merchant key\\nmerchantKey = '85328786-8BA6-420F-9948-5352F5A183EB'\\n\\n# instantiate class with request methods\\n# :sandbox for sandbox ambient \\n# :production for production ambient\\ngateway = Gateway::Gateway.new(:sandbox, merchantKey)\\n\\n# create credit card transaction object\\ncreditCardTransaction = Gateway::CreditCardTransaction.new\\ncreditCardTransaction.AmountInCents = 10000\\ncreditCardTransaction.CreditCard.InstantBuyKey = '3b3b5b62-6660-428d-905e-96f49d46ae28'\\ncreditCardTransaction.InstallmentCount = 1\\n\\n# creates request object for transaction creation\\ncreateSaleRequest = Gateway::CreateSaleRequest.new\\ncreateSaleRequest.CreditCardTransactionCollection << creditCardTransaction\\ncreateSaleRequest.Order.OrderReference = 'NumeroDoPedido'\\n\\n# make the request and returns a response hash\\nresponse = gateway.CreateSale(createSaleRequest)\\n\\n# prints the response\\nputs response\",\n      \"language\": \"ruby\"\n    },\n    {\n      \"code\": \"# -*- coding: utf-8 -*-\\n\\nfrom uuid import UUID\\nfrom data_contracts import creditcard, creditcard_transaction, creditcard_transaction_options, create_sale_request, order, creditcard_instant_buy\\nfrom mundipaggOnePython import GatewayServiceClient\\nfrom enum_types import PlatformEnvironment, HttpContentTypeEnum\\n\\n#Coleta os dados do cartão.\\ncreditcard_data = creditcard_instant_buy(instant_buy_key = '3b3b5b62-6660-428d-905e-96f49d46ae28')\\n\\n#Cria a transação.\\ntransaction_collection = [creditcard_transaction(10000, creditcard_data)]\\n\\n#Cria o numero do pedido\\noptions_request = order(order_reference='NumeroDoPedido')\\n\\n#Cria a request.\\nrequest = create_sale_request(creditcard_transaction_collection=transaction_collection, order=options_request)\\n\\nmerchant_key = UUID('85328786-8BA6-420F-9948-5352F5A183EB')\\nend_point = \\\"https://sandbox.mundipaggone.com\\\"\\n\\nservice_client = GatewayServiceClient(merchant_key, PlatformEnvironment.sandbox, HttpContentTypeEnum.json, end_point)\\n\\nhttp_response = service_client.sale.create_with_request(request)\\n\\njson_response = http_response.json()\\n\\nprint json_response\\n\",\n      \"language\": \"python\"\n    },\n    {\n      \"code\": \"// Define loja\\nUUID merchantKey = UUID.fromString(\\\"85328786-8BA6-420F-9948-5352F5A183EB\\\"); // Chave da Loja - MerchantKey\\n\\n// Cria um cartão de crédito e define endereço de cobrança\\nCreditCard creditCard = new CreditCard();\\ncreditCard.setInstantBuyKey(UUID.fromString(\\\"3b3b5b62-6660-428d-905e-96f49d46ae28\\\"));\\n\\n// Cria a transação de cartão de crédito e define cartão criado anteriormente\\nCreditCardTransaction creditCardTransaction = new CreditCardTransaction();\\ncreditCardTransaction.setAmountInCents(10000L);\\ncreditCardTransaction.setCreditCard(creditCard);\\ncreditCardTransaction.setInstallmentCount(1);\\n\\n// Cria o objeto order para adicionar o Order Reference\\nOrder order = new Order();\\norder.setOrderReference(\\\"NúmeroDoPedido\\\");\\n\\n// Cria o Sale Request para enviar o objeto de request\\nCreateSaleRequest createSaleRequest = new CreateSaleRequest();\\ncreateSaleRequest.setCreditCardTransactionCollection(new ArrayList<>());\\ncreateSaleRequest.getCreditCardTransactionCollection().add(creditCardTransaction);\\ncreateSaleRequest.setOrder(order);\\n\\n// Cria o cliente que vai enviar a transação\\nGatewayServiceClient serviceClient = new GatewayServiceClient(merchantKey, \\\"https://sandbox.mundipaggone.com\\\");\\n\\n// Submete a transação e retorna a resposta do gateway\\nHttpResponseGenerics<CreateSaleResponse, CreateSaleRequest> httpResponse\\n        = serviceClient.getSale().Create(createSaleRequest);\\n\\nreturn httpResponse.getRawResponse();\",\n      \"language\": \"java\",\n      \"name\": null\n    },\n    {\n      \"code\": \"{\\n    \\\"CreditCardTransactionCollection\\\": [\\n        {\\n            \\\"AmountInCents\\\": 10000,\\n            \\\"CreditCard\\\": {\\n                \\\"InstantBuyKey\\\": \\\"3b3b5b62-6660-428d-905e-96f49d46ae28\\\"\\n            },\\n            \\\"InstallmentCount\\\": 1\\n        }\\n    ],\\n    \\\"Order\\\": {\\n        \\\"OrderReference\\\": \\\"NumeroDoPedido\\\"\\n    }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nA transação com o Instant Buy é semelhante a uma [transação normal](doc:criando-transacoes), porém você não precisa enviar os dados do cartão. Basta substituí-los pela InstantBuyKey, como no exemplo acima!\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"SecurityCode\",\n  \"body\": \"Muitas adquirentes pedem o envio do CVV em uma transação. Lembre-se a Mundi não guarda o SecurityCode, **portanto é essencial que você ou desabilite a necessidade do CVV na adquirente ou nos envie com o InstantBuyKey na requisição.**\"\n}\n[/block]","category":"55b7ff1131bccb190081c182","createdAt":"2015-09-15T20:11:28.128Z","editedParams":true,"editedParams2":true,"excerpt":"Enviando uma requisição de transação de cartão de crédito com InstantBuy","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"description":"","pages":[]},"order":1,"parentDoc":null,"project":"555fb08828249c1900618a62","slug":"enviando-uma-transacao-com-instantbuy","sync_unique":"","title":"Enviando uma transação com InstantBuy","type":"post","updates":["560cb3488753612100214265","56461ca0bb7ad50d00e9c593","5672cdd71e18b60d00b04a06","5678477de5da8d0d00591c4d","5678afb53473bc0d008e13a0","5682dc3670331a0d00484a2e","56bc9a15fd10700d00e9aaf0"],"user":"55831751870ff41900de479e","version":"555fb08828249c1900618a65","childrenPages":[]}

postEnviando uma transação com InstantBuy

Enviando uma requisição de transação de cartão de crédito com InstantBuy

Body Params

AmountInCents:
required
integer
Valor da transação em centavos. R$ 1,00 = 100
CreditCard[InstantBuyKey]:
required
string
InstantBuyKey do cliente
CreditCard[SecurityCode]:
required
integer
Código de segurança do cartão
CreditCardOperation:
stringAuthAndCapture
Tipo de operação a ser realizada
InstallmentCount:
integer1
Número de Parcelas
Options[PaymentMethodCode]:
integer0
Meio de pagamento que deve ser utilizado para a transação
TransactionReference:
string
Identificador da transação na sua base
Order[OrderReference]:
string
Identificador do pedido na sua base
// Cria a transação.
var transaction = new CreditCardTransaction() {
    AmountInCents = 10000,
    CreditCard = new CreditCard() {
        // Chave do cartão (InstantBuyKey)
        InstantBuyKey = Guid.Parse("3b3b5b62-6660-428d-905e-96f49d46ae28")
    },
    InstallmentCount = 1
};

// Cria requisição.
var createSaleRequest = new CreateSaleRequest() {
    // Adiciona a transação na requisição.
    CreditCardTransactionCollection = new Collection<