Criando um pedido

Utilizando a funcionalidade Pedido (Order), é possível gerar pagamentos de maneira muito mais completa. Desta forma, você consegue explorar diversos recursos exclusivos da nossa API.

Para criar Pedidos é necessário informar os seguintes dados:

  • Item*** (Itens do carrinho de compras);
  • Customer*** (Dados do comprador);
  • BillingAddress (Endereço de cobrança);
  • Shipping (Dados para entrega);
  • Payments*** (Meios de pagamento);
  • Code (Referência do pedido: Identificador do pedido no sistema da loja).

🚧

Os campos Item, Customer e Payments são campos obrigatórios.

📘

Pedido Aberto

No caso da criação de um pedido em aberto os objetos Payments e Item passam a ser opcionais.


Será exemplificada a criação de Pedido com os dois meios de pagamento mais utilizados:

Nesse tutorial iremos utilizar a SDK C# da Mundipagg que está disponível no gerenciador de pacotes NuGet com o nome de MundiAPI.PCL.

Primeiro você deve importar o pacote MundiAPI.PCL para a nossa aplicação de teste e logo depois adicionar nossas credenciais instanciando a classe MundiAPIClient.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);
        }
    }
}

Em seguida, você criará o objeto Customer que será utilizado para a criação do Pedido. Apenas o campo Name é obrigatório, porém recomendamos que envie também o campo Email. O envio desse campo evita qualquer tipo de duplicidade uma vez que nossa API utiliza o Email para verificar se o cliente em questão já existe na sua Wallet.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);
            
            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };
        }
    }
}

Caso já possua o Customer criado anteriormente, você pode utilizar o CustomerId durante a requisição de criação da Order.

Agora, você pode começar a informar os Itens que irão compor a Order.

Você irá criar um item com as informações básicas:

  • Amount : Valor em centavos do item;
  • Description : Descrição ou nome do item;
  • Quantity : Quantidade de itens que esta sendo comprada.

Para isso, você criará uma lista de CreateOrderItemRequest e adicionará dois itens do tipo CreateOrderItemRequest.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },

            };
        }
    }
}

Em seguida, você adicionará a requisição de criação da Order pelo CreateOrderRequest, adicionando os Itens que foram criados.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },

            };

            var order = new CreateOrderRequest() {
                Items = items,
            }; 
        }
    }
}

Adicionará o Customer logo depois.

using System;
using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },
            };

            var order = new CreateOrderRequest() {
                Items = items,
                Customer = customer
            };
             
            var request = client.Orders.CreateOrder(order);
        }
    }
}

Agora, você informará qual meio de pagamento que irá compor essa Order.

Iremos dividir essa parte em duas de acordo com os dois meios de pagamento comentados no início do tutorial.

Pedido com cartão de crédito

Agora, você poderá começar a configurar as informações de pagamento iniciando pelo Payments , propriedade responsável pelas informações de processamento do pagamento. Você iniciará com uma lista de CreatePaymentRequest e criará um CreatePaymentRequest informando na propriedade PaymentMethod o valor credit_card.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },

            };

            var order = new CreateOrderRequest() {
                Items = items,
                Customer = customer,
                Payments = new List<CreatePaymentRequest> {
                    new CreatePaymentRequest{
                        PaymentMethod = "credit_card"
                    }
                }
            }; 
        }
    }
}

Em seguida, você informará os dados do cartão do cliente utilizando a propriedade CreditCard de CreatePaymentRequest. Para isso, é preciso informar o CreateCreditCardPaymentRequest com a propriedade Card criado a partir de um CreateCardRequest.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },
            };

            var order = new CreateOrderRequest() {
                Items = items,
                Customer = customer,
                Payments = new List<CreatePaymentRequest> {
                    new CreatePaymentRequest{
                        PaymentMethod = "credit_card",
                        CreditCard = new CreateCreditCardPaymentRequest(){
                        Card = new CreateCardRequest {
                            Number = "342793631858229",
                            HolderName = "Tony Stark",
                            ExpMonth = 1,
                            ExpYear = 18,
                            Cvv = "3531",
                        }
                    }
                  }
              }
           };
        }
    }
}

Isso pode ser feito também informando um CardId, previamente cadastrado, junto do CVV.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;

namespace TutorialCobranca {
    class Program {
        static void Main(string[] args) {

            // Neste exemplo estamos utilizando A sdk C# MundiAPI.PCL
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            string basicAuthPassword = "";

            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var request = new CreateChargeRequest() {
                Amount = 1490,
                CustomerId = "cus_aGvrM1lCvxUKW9N7",
                Payment = new CreatePaymentRequest() {
                    PaymentMethod = "credit_card",
                    CreditCard = new CreateCreditCardPaymentRequest(){
                        CardId = "card_qBkxRKtmEfgyv1Zd",
                        Card = new CreateCardRequest {
                            Cvv = "353",
                        }
                    }
                }
            };
        }
    }
}

Por fim, você realizará a requisição da Order utilizando a classe Client.

using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },
            };

            var order = new CreateOrderRequest() {
                Items = items,
                Customer = customer,
                Payments = new List<CreatePaymentRequest> {
                    new CreatePaymentRequest{
                        PaymentMethod = "credit_card",
                        CreditCard = new CreateCreditCardPaymentRequest(){
                            CardId = "card_qBkxRKtmEfgyv1Zd",
                            Card = new CreateCardRequest {
                            Cvv = "3531",
                        }
                    }
                  }
              }
           };

            var request = client.Orders.CreateOrder(order);
        }
    }
}

Pedido com boleto

Para criação da cobrança com meio de pagamento boleto, informamos no PaymentMethod o valor boleto e a propriedade Boleto com um CreateBoletoPaymentRequest informando o Bank, código do banco desejado, e o DueAt, a data de vencimento do boleto em DateTime. Finalizará realizando o CreateOrder.

using System;
using MundiAPI.PCL;
using MundiAPI.PCL.Models;
using System.Collections.Generic;

namespace TutorialPedido {
    class Program {
        static void Main(string[] args) {

            // Secret key fornecida pela MundiPagg
            string basicAuthUserName = "sk_test_4AdjlqpseatnmgbW";
            // Senha em branco. Passando apenas a secret key
            string basicAuthPassword = "";
            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

            var customer = new CreateCustomerRequest {
                Name = "Tony Stark",
                Email = "[email protected]",
            };

            var items = new List<CreateOrderItemRequest> {
                new CreateOrderItemRequest{
                    Amount = 2990,
                    Description = "Chaveiro do Tesseract",
                    Quantity =1,
                },
                new CreateOrderItemRequest{
                    Amount = 5990,
                    Description = "Manopla do Infinito",
                    Quantity =1
                },
            };

            var order = new CreateOrderRequest() {
                Items = items,
                Customer = customer,
                Payments = new List<CreatePaymentRequest> {
                    new CreatePaymentRequest{
                        PaymentMethod = "boleto",
                        Boleto = new CreateBoletoPaymentRequest(){
                             Bank = "033",
                             DueAt = DateTime.Now.AddDays(3)

                        }
                    }
                  }
            };

            var request = client.Orders.CreateOrder(order);
        }
    }
}

🚧

O PDF para enviar ao cliente se encontra dentro do objeto LastTransaction que se encontra no response.

📘

Além dessas funcionalidades, é possível realizar pedidos com multimeios e multicompradores! Para mais informações acesse a nossa API Reference.