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

# Gerenciando sua carteira de clientes

A API MundiPagg possibilita a construção e o gerenciamento de seus clientes [Customers](https://docs.mundipagg.com/v1/reference#clientes), completamente customizável e armazenando dados de forma simples e segura. Para entender melhor cada conceito associado à carteira de cliente acesse a documentação:

* **[Customer](https://docs.mundipagg.com/v1/reference#clientes)** : informações sobre o cliente

* **[Card](https://docs.mundipagg.com/v1/reference#cartões)** : Informações sobre o cartão de um cliente

* **[Address](https://docs.mundipagg.com/v1/reference#enderecos)** : Informações sobre o endereço de um Customer

O conjunto de **Customers** e **Address** é denominado [**Carteira de clientes**](https://docs.mundipagg.com/docs/carteira-de-clientes) , já o conjunto de **Cards** de um **Customer** é denominado [**Wallet**](https://docs.mundipagg.com/docs/wallets).

Enquanto a **Carteira de Clientes** é o conjunto de clientes que transacionam ou transacionaram na loja, as **Wallets** são o conjunto de cartões de cada **Customer**.

Nesse tutorial iremos utilizar a [SDK C#](https://docs.mundipagg.com/docs/sdk-c) da Mundipagg disponível no gerenciador de pacotes NuGet com o nome de MundiAPI.PCL.

\##Gerenciando sua carteira de clientes

Vamos começar com o **Customer**.

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

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\n\nnamespace GerenciandoCarteira_Wallet {\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]

Um objeto **Customer** é composto por diversas propriedades, algumas delas são:

* **Name** : nome do cliente
* **Email** : e-mail do cliente
* **Document** : CPF ou CNPJ do cliente

Para saber melhor sobre as outras propriedades consulte a nossa [API Reference](https://docs.mundipagg.com/v1/reference#clientes).

Apenas o campo **Name** é obrigatório. Recomendamos que envie também o campo **Email**. Enviando esse campo, conseguiremos identificar se o cliente já esta na sua carteira de cliente, evitando assim qualquer duplicidade.

Para criar um **Customer** é necessário instanciar a classe de acordo com as propriedades. Em seguida utilizar o **Client** para realizar a requisição de **CreateCustomer**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\n\nnamespace GerenciandoCarteira_Wallet {\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            var customer = new CreateCustomerRequest() {\n                Name = \"Gustavo Fonseca\",\n                Email = \"Gustavo.fonseca@mundipagg.com\"\n            };\n            var createCustomerRequest = client.Customers.CreateCustomer(customer);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

Quando um **Customer** é criado, é retornado no response um identificador daquele cliente. Com esse **Id** é possível gerenciar diversas informações dele, como por exemplo adicionar um endereço, alterar seu e-mail, alterar o nome,  entre outras informações.

Você pode atualizar algumas informações do **Customer** criado. Para isso utilizará o **Id** do **Customer** para criar um **UpdateCustomerRequest**, informando o **Document** e o **Type**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\n\nnamespace GerenciandoCarteira_Wallet {\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            var customer = new CreateCustomerRequest() {\n                Name = \"Gustavo Fonseca\",\n                Email = \"Gustavo.fonseca@mundipagg.com\",\n                Document = \"13278201701\",\n                Type = \"individual\"\n            };\n\n            var createCustomerRequest = client.Customers.CreateCustomer(customer);\n\n            var updateCustomer = new UpdateCustomerRequest() {\n                Document = \"123456789012\",\n                Type = \"individual\"\n            };\n\n            var updateCustomerRequest = client.Customers.UpdateCustomer(createCustomerRequest.Id, updateCustomer);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

Para criar um **Address** você utilizará a classe **CreateAddressRequest** informando os campos de acordo com a necessidade. Logo depois utilizará novamente o **UpdateCustomerRequest** para informar o **Address** criado junto do identificador do **Customer**.

[block:code]
{
  "codes": [
    {
      "code": "using MundiAPI.PCL;\nusing MundiAPI.PCL.Models;\n\nnamespace GerenciandoCarteira_Wallet {\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            var customer = new CreateCustomerRequest() {\n                Name = \"Gustavo Fonseca\",\n                Email = \"Gustavo.fonseca@mundipagg.com\",\n                Document = \"13278201701\",\n                Type = \"individual\"\n            };\n\n            var createCustomerRequest = client.Customers.CreateCustomer(customer);\n\n            var address = new CreateAddressRequest() {\n                Line1 = \"375, Av. General Justo, Centro\",\n                Line2 = \"7º andar, sala 01\",\n                City = \"Rio de Janeiro\",\n                Country = \"BR\",\n                State = \"RJ\",\n                ZipCode = \"22000111\",\n            };\n            \n            var updateCustomer = new UpdateCustomerRequest() {\n                Address = address\n            };\n\n            var updateCustomerRequest = client.Customers.UpdateCustomer(createCustomerRequest.Id, updateCustomer);\n        }\n    }\n}",
      "language": "csharp"
    }
  ]
}
[/block]

[block:callout]
{
  "type": "info",
  "body": "Para mais informações acesse a nossa [API Reference](https://docs.mundipagg.com/v1/reference#cobran%C3%A7as)."
}
[/block]