---
agentTools:
  projectIndex: https://docs.mundipagg.com/llms.txt
---

# 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](https://docs.mundipagg.com/reference/item-do-pedido)\*\*\* (Itens do carrinho de compras);
* [Customer](https://docs.mundipagg.com/docs/carteira-de-clientes)\*\*\* (Dados do comprador);
* BillingAddress (Endereço de cobrança);
* Shipping (Dados para entrega);
* [Payments](https://docs.mundipagg.com/reference/meios-de-pagamento-1)\*\*\* (Meios de pagamento);
* Code (Referência do pedido: Identificador do pedido no sistema da loja).

[block:callout]
{
  "type": "warning",
  "body": "Os campos **Item**, **Customer** e **Payments **são campos obrigatórios."
}
[/block]

[block:callout]
{
  "type": "info",
  "title": "Pedido Aberto",
  "body": "No caso da criação de um pedido em aberto os objetos **Payments** e **Item** passam a ser opcionais."
}
[/block]

***

Será exemplificada a criação de [Pedido](https://docs.mundipagg.com/v1/reference#pedidos) com os dois meios de pagamento mais utilizados:

* [Cartão de crédito](https://docs.mundipagg.com/v1/reference#meio-de-pagamento-cart%C3%A3o-de-cr%C3%A9dito)
* [Boleto](https://docs.mundipagg.com/v1/reference#meio-de-pagamento-boleto)

Nesse tutorial iremos utilizar a [SDK C#](https://docs.mundipagg.com/docs/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**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            \n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

Em seguida, você criará o objeto **[Customer](https://docs.mundipagg.com/v1/reference#clientes)** 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.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n            \n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

Caso já possua o [Customer](https://docs.mundipagg.com/v1/reference#clientes) 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](https://docs.mundipagg.com/v1/reference#item-do-pedido) 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**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n\n            };\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

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

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n            }; \n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

Adicionará o **Customer** logo depois.

[block:code]
{
  "codes": [
    {
      "code": "using System;\nusing MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n                Customer = customer\n            };\n             \n            var request = client.Orders.CreateOrder(order);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

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*.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n                Customer = customer,\n                Payments = new List<CreatePaymentRequest> {\n                    new CreatePaymentRequest{\n                        PaymentMethod = \"credit_card\"\n                    }\n                }\n            }; \n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

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**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n                Customer = customer,\n                Payments = new List<CreatePaymentRequest> {\n                    new CreatePaymentRequest{\n                        PaymentMethod = \"credit_card\",\n                        CreditCard = new CreateCreditCardPaymentRequest(){\n                        Card = new CreateCardRequest {\n                            Number = \"342793631858229\",\n                            HolderName = \"Tony Stark\",\n                            ExpMonth = 1,\n                            ExpYear = 18,\n                            Cvv = \"3531\",\n                        }\n                    }\n                  }\n              }\n           };\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

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

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\n\nnamespace TutorialCobranca {\n    class Program {\n        static void Main(string[] args) {\n\n            // Neste exemplo estamos utilizando A sdk C# MundiAPI.PCL\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            string basicAuthPassword = \"\";\n\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var request = new CreateChargeRequest() {\n                Amount = 1490,\n                CustomerId = \"cus_aGvrM1lCvxUKW9N7\",\n                Payment = new CreatePaymentRequest() {\n                    PaymentMethod = \"credit_card\",\n                    CreditCard = new CreateCreditCardPaymentRequest(){\n                        CardId = \"card_qBkxRKtmEfgyv1Zd\",\n                        Card = new CreateCardRequest {\n                            Cvv = \"353\",\n                        }\n                    }\n                }\n            };\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

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

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n                Customer = customer,\n                Payments = new List<CreatePaymentRequest> {\n                    new CreatePaymentRequest{\n                        PaymentMethod = \"credit_card\",\n                        CreditCard = new CreateCreditCardPaymentRequest(){\n                            CardId = \"card_qBkxRKtmEfgyv1Zd\",\n                            Card = new CreateCardRequest {\n                            Cvv = \"3531\",\n                        }\n                    }\n                  }\n              }\n           };\n\n            var request = client.Orders.CreateOrder(order);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

\##**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**.

[block:code]
{
  "codes": [
    {
      "code": "using System;\nusing MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\nusing System.Collections.Generic;\n\nnamespace TutorialPedido {\n    class Program {\n        static void Main(string[] args) {\n\n            // Secret key fornecida pela MundiPagg\n            string basicAuthUserName = \"sk_test_4AdjlqpseatnmgbW\";\n            // Senha em branco. Passando apenas a secret key\n            string basicAuthPassword = \"\";\n            var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);\n\n            var customer = new CreateCustomerRequest {\n                Name = \"Tony Stark\",\n                Email = \"tonystark@avengers.com\",\n            };\n\n            var items = new List<CreateOrderItemRequest> {\n                new CreateOrderItemRequest{\n                    Amount = 2990,\n                    Description = \"Chaveiro do Tesseract\",\n                    Quantity =1,\n                },\n                new CreateOrderItemRequest{\n                    Amount = 5990,\n                    Description = \"Manopla do Infinito\",\n                    Quantity =1\n                },\n            };\n\n            var order = new CreateOrderRequest() {\n                Items = items,\n                Customer = customer,\n                Payments = new List<CreatePaymentRequest> {\n                    new CreatePaymentRequest{\n                        PaymentMethod = \"boleto\",\n                        Boleto = new CreateBoletoPaymentRequest(){\n                             Bank = \"033\",\n                             DueAt = DateTime.Now.AddDays(3)\n\n                        }\n                    }\n                  }\n            };\n\n            var request = client.Orders.CreateOrder(order);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

[block:callout]
{
  "type": "warning",
  "body": "O PDF para enviar ao cliente se encontra dentro do objeto **LastTransaction** que se encontra no [response](https://docs.mundipagg.com/v1/reference#meio-de-pagamento-boleto)."
}
[/block]

[block:callout]
{
  "type": "info",
  "body": "Além dessas funcionalidades, é possível realizar pedidos com **multimeios** e **multicompradores**! Para mais informações acesse a nossa [API Reference](https://docs.mundipagg.com/v1/reference#criar-pedido-multimeios)."
}
[/block]