API Reference
API Reference

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

// 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("00000000-0000-0000-0000-000000000000"); // 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.

Body Params
CreditCardTransactionCollection
object
Order
object
Responses

Language
Choose an example:
application/json
Website Localization**/
English
Powered by Localize
Português (Brasil)