Skip to content

wmr049/moip-sdk-dotnet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moip v2 .NET SDK

O jeito mais simples e rápido de integrar o Moip a sua aplicação .NET

Índice

Instalação

Execute o comando para instalar via NuGet:

dotnet add package Moip --version 1.0.1

Package:

https://www.nuget.org/packages/Moip/

Autenticando e configurando o ambiente

Para gerar o client, informe seu token oAuth e em qual environment você quer executar suas ações:

Client client = new Client("TOKEN_OAUTH", Configuration.Environments.SANDBOX);

Pedidos

Criação

TaxDocument taxDocument = new TaxDocument
{
    Type = "CPF",
    Number = "22222222222"
};

Phone phone = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

ShippingAddress shippingAddress = new ShippingAddress
{
    Street = "Rua test",
    StreetNumber = "123",
    Complement = "Ap test",
    District = "Bairro test",
    City = "TestCity",
    State = "SP",
    Country = "BRA",
    ZipCode = "01234000"
};

CustomerRequest customerRequest = new CustomerRequest
{
    Fullname = "Fulano de Tal",
    OwnId = "OFulanoDeTal",
    BirthDate = "1990-01-01",
    Email = "fulano@detal.com.br",
    Phone = phone,
    ShippingAddress = shippingAddress,
    TaxDocument = taxDocument
};

SubtotalsRequest subtotalsRequest = new SubtotalsRequest
{
    Shipping = 1500,
    Addition = 20,
    Discount = 10
};

AmountOrderRequest amountRequest = new AmountOrderRequest
{
    Currency = "BRL"
    Subtotals = subtotalsRequest
};

Item itemsRequest = new Item
{
    Product = "Bicicleta Specialized Tarmac 26 Shimano Alivio",
    Quantity = 1,
    Detail = "uma linda bicicleta",
    Price = 2000
};

List<Item> itemsRequestList = new List<Item>
{
    itemsRequest
};

OrderRequest orderRequest = new OrderRequest
{
    OwnId = "my_own_id",
    Amount = amountRequest,
    Items = itemsRequestList,
    Customer = customerRequest,
};

OrderResponse createdOrder = client.Orders.CreateOrder(orderRequest);

Consulta

Pedido Específico

string orderId = "ORD-HPMZSOM611M2";
Order order = client.Orders.GetOrder(orderId);

Todos os Pedidos

Sem Filtro
OrderListResponse orderResponseList = client.Orders.ListOrders();

List<OrderResponse> orderList = orderResponseList.Orders;
Com Filtros
TODO
Com Paginação
TODO
Consulta Valor Específico
TODO

Também é possível usar paginação, filtros e consulta de valor específico juntos

TODO

Pagamentos

Criação

Cartão de crédito

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Jose Goku da Silva",
    Birthdate = "1988-12-30",
    TaxDocument = taxDocumentRequest,
    Phone = phoneRequest
};

CreditCardRequest creditCardRequest = new CreditCardRequest
{
    ExpirationMonth = "02",
    ExpirationYear = "20",
    Number = "5555666677778884",
    Cvc = "123",
    Holder = holderRequest
};


FundingInstrumentRequest fundingInstrumentRequest = new FundingInstrumentRequest
{
    Method = "CREDIT_CARD",
    CreditCard = creditCardRequest
};


PaymentRequest paymentRequest = new PaymentRequest
{
    InstallmentCount = 1,
    StatementDescriptor = "MyStore",
    FundingInstrument = fundingInstrumentRequest
};

Payment payment = client.Payments.CreateCreditCard("ORD-HPMZSOM611M2", paymentRequest);

Boleto

BoletoInstructionLines boletoInstructionLines = new BoletoInstructionLines
{
    First("Primeira linha"),
    Second("Segunda linha"),
    Third("Terceira linha")
};

BoletoRequest boletoRequest = new BoletoRequest
{
    ExpirationDate = "2020-09-30",
    InstructionLines = boletoInstructionLines,
    LogoUri = "http://"
};


FundingInstrumentRequest fundingInstrumentRequest = new FundingInstrumentRequest
{
    Method = "BOLETO",
    Boleto = boletoRequest
};


PaymentBoletoOrDebitRequest paymentRequest = new PaymentBoletoOrDebitRequest
{
    FundingInstrument = fundingInstrumentRequest
};

  Payment payment = client.Payments.CreateBoletoOrDebit("ORD-GOHHIF4Z6PLV", paymentRequest);

Para capturar os links do boleto:

// Link do Boleto
payment.Links.PayBoleto.RedirectHref;
TODO

// Link para impressão do boleto
payment.Links.PayBoleto.PrintHref;

Consulta

PaymentResponse paymentResponse = client.Payments.GetPayment("PAY-FRAAY8GN1HSB");

Capturar pagamento pré-autorizado

PaymentResponse capturedPayment = client.Payments.CapturePreAuthorized("PAY-FRAAY8GN1HSB");

Cancelar pagamento pré-autorizado

PaymentResponse capturedPayment = client.Payments.CancelPreAuthorized("PAY-FRAAY8GN1HSB");

Clientes

Criação

ShippingAddress shippingAddressRequest = new ShippingAddress
{
    Street = "Rua test",
    StreetNumber = "123",
    Complement = "Ap test",
    District = "Bairro test",
    City = "TestCity",
    State = "SP",
    Country = "BRA",
    ZipCode = "01234000"
};

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

CustomerRequest customerRequest = new CustomerRequest
{
    Fullname = "Fulano de Tal",
    OwnId = "OFulanoDeTal" + date,
    BirthDate = "1990-01-01",
    Email = "fulano@detal.com.br",
    Phone = phoneRequest,
    ShippingAddress = shippingAddressRequest,
    TaxDocument = taxDocumentRequest
};

CustomerResponse customerResponse = client.Customers.CreateCustomer(customerRequest);

Consulta

string customerId = "CUS-Q3BL0CAJ2G33";
CustomerResponse customerResponse = client.Customers.GetCustomer(customerId);

Adicionar cartão de crédito

ShippingAddress shippingAddressRequest = new ShippingAddress
{
    Street = "Rua test",
    StreetNumber = "123",
    Complement = "Ap test",
    District = "Bairro test",
    City = "TestCity",
    State = "SP",
    Country = "BRA",
    ZipCode = "01234000"
};


TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Jose Goku da Silva",
    Birthdate = "1988-12-30",
    TaxDocument = taxDocumentRequest,
    Phone = phoneRequest
};

CreditCardRequest creditCardRequest = new CreditCardRequest
{
    ExpirationMonth = "02",
    ExpirationYear = "20",
    Number = "5555666677778884",
    Cvc = "123",
    Holder = holderRequest
};


CustomerCreditCardRequest customerCreditCardRequest = new CustomerCreditCardRequest
{
    Method = "CREDIT_CARD",
    CreditCard = creditCardRequest
};

CustomerCreditCardResponse customerCreditCardResponse = client.Customers.CreateCreditCard(customerCreditCardRequest, "CUS-1RM8JPVKWEVR");

Preferências de notificação

Criação

List<string> eventsList = new List<string>();
eventsList.Add("ORDER.*");
eventsList.Add("PAYMENT.AUTHORIZED");
eventsList.Add("PAYMENT.CANCELLED");

NotificationPreferenceRequest notificationPreferenceRequest = new NotificationPreferenceRequest
{
    Events = eventsList,
    Target = "http://requestb.in/1dhjesw1",
    Media = "WEBHOOK"
};

NotificationPreferenceResponse notificationPreferenceResponse = client.Notifications.CreateNotificationPreference(notificationPreferenceRequest);

Consulta

NotificationPreferenceResponse notificationPreferenceResponse = client.Notifications.GetNotificationPreference("NPR-NR0GR85KHL10");

Exclusão

client.Notifications.DeleteNotificationPreference("NPR-NR0GR85KHL10");

Listagem

List<NotificationPreferenceResponse> notificationPreferenceResponseList = client.Notifications.ListNotificationsPreferences();

Reembolsos

Para fazer reembolsos totais basta remover o atributo Amount.

Pedido

Cartão de Crédito

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Jose Goku da Silva",
    Birthdate = "1988-12-30",
    TaxDocument = taxDocumentRequest,
    Phone = phoneRequest,

};

CreditCardRequest creditCardRequest = new CreditCardRequest
{
    Number = "5555666677778884",
    ExpirationMonth = "02",
    ExpirationYear = "20",
    Cvc = "123",
    Holder = holderRequest
};

RefundingInstrumentCCRequest refundingInstrumentRequest = new RefundingInstrumentCCRequest
{
    Method = "CREDIT_CARD",
    CreditCard = creditCardRequest
};

RefundCCRequest refundRequest = new RefundCCRequest
{
    RefundingInstrument = refundingInstrumentRequest,
    Amount = 2000
};   

RefundCCResponse refundResponse = client.Refunds.CreateOrder("ORD-89SOQ6FMPJPX", refundRequest);

Conta Bancária

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "22222222222"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Fulano de Tal",
    Birthdate = "1990-01-01",
    TaxDocument = taxDocumentRequest,

};

BankAccountRefundingInstrumentRequest bankAccountRefundRequest = new BankAccountRefundingInstrumentRequest
{
    BankNumber = "341",
    AgencyNumber = "4444444",
    AgencyCheckNumber = "2",
    AccountNumber = "1234",
    AccountCheckNumber = "1",
    Type = "CHECKING",
    Holder = holderRequest
};

RefundingInstrumentBankAccountRequest refundingInstrumentRequest = new RefundingInstrumentBankAccountRequest
{
    Method = "BANK_ACCOUNT",
    BankAccount = bankAccountRefundRequest
};

RefundBankAccountRequest refundRequest = new RefundBankAccountRequest
{
    RefundingInstrument = refundingInstrumentRequest,
    Amount = 2000
};

RefundBankAccountResponse refundResponse = client.Refunds.CreateOrderBankAccount("ORD-GS1FSQ3SO9SY", refundRequest);

Pagamento

Cartão de Crédito

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Jose Goku da Silva",
    Birthdate = "1988-12-30",
    TaxDocument = taxDocumentRequest,
    Phone = phoneRequest,

};

CreditCardRequest creditCardRequest = new CreditCardRequest
{
    Number = "5555666677778884",
    ExpirationMonth = "02",
    ExpirationYear = "20",
    Cvc = "123",
    Holder = holderRequest
};

RefundingInstrumentCCRequest refundingInstrumentRequest = new RefundingInstrumentCCRequest
{
    Method = "CREDIT_CARD",
    CreditCard = creditCardRequest
};

RefundCCRequest refundRequest = new RefundCCRequest
{
    RefundingInstrument = refundingInstrumentRequest,
    Amount = 100
};
RefundCCResponse refundResponse = client.Refunds.CreatePayment("PAY-70380H9B6L5R", refundRequest);

Conta Bancária

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "22222222222"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Fulano de Tal",
    Birthdate = "1990-01-01",
    TaxDocument = taxDocumentRequest,

};

BankAccountRefundingInstrumentRequest bankAccountRefundRequest = new BankAccountRefundingInstrumentRequest
{
    BankNumber = "341",
    AgencyNumber = "4444444",
    AgencyCheckNumber = "2",
    AccountNumber = "1234",
    AccountCheckNumber = "1",
    Type = "CHECKING",
    Holder = holderRequest
};

RefundingInstrumentBankAccountRequest refundingInstrumentRequest = new RefundingInstrumentBankAccountRequest
{
    Method = "BANK_ACCOUNT",
    BankAccount = bankAccountRefundRequest
};

RefundBankAccountRequest refundRequest = new RefundBankAccountRequest
{
    RefundingInstrument = refundingInstrumentRequest,
    Amount = 2000
};

RefundBankAccountResponse refundResponse = client.Refunds.CreatePaymentBankAccount("PAY-E4Q0N9TK0BFW", refundRequest);

Consulta

RefundCCResponse refundResponse = client.Refunds.GetCCRefund("REF-JR4WALM894UJ");

Multipedidos

Criação

TaxDocument taxDocument = new TaxDocument
{
    Type = "CPF",
    Number = "22222222222"
};

Phone phone = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

ShippingAddress shippingAddress = new ShippingAddress
{
    Street = "Rua test",
    StreetNumber = "123",
    Complement = "Ap test",
    District = "Bairro test",
    City = "TestCity",
    State = "SP",
    Country = "BRA",
    ZipCode = "01234000"
};

CustomerRequest customerRequest = new CustomerRequest
{
    Fullname = "Fulano de Tal",
    OwnId = "OFulanoDeTal",
    BirthDate = "1990-01-01",
    Email = "fulano@detal.com.br",
    Phone = phone,
    ShippingAddress = shippingAddress,
    TaxDocument = taxDocument
};


SubtotalsRequest subtotalsRequest = new SubtotalsRequest
{
    Shipping = 1500,
    Addition = 20,
    Discount = 10
};

AmountOrderRequest amountRequest = new AmountOrderRequest
{
    Currency = "BRL",
    Subtotals = subtotalsRequest
};

Item itemsRequest = new Item
{
    Product = "Bicicleta Specialized Tarmac 26 Shimano Alivio",
    Quantity = 1,
    Detail = "uma linda bicicleta",
    Price = 2000
};

List<Item> itemsRequestList = new List<Item>
{
    itemsRequest
};

MoipAccountReceiverRequest moipAccountReceiver1 = new MoipAccountReceiverRequest
{
    Id = "MPA-14AC21F09CAE"
};

AmountReceiverRequest amountReceiver1 = new AmountReceiverRequest
{
    Percentual = 50
};

ReceiverRequest receiver1 = new ReceiverRequest
{
    MoipAccount = moipAccountReceiver1,
    Type = "PRIMARY",
    Amount = amountReceiver1
};

MoipAccountReceiverRequest moipAccountReceiver2 = new MoipAccountReceiverRequest
{
    Id = "MPA-B0D880F21EF1"
};

AmountReceiverRequest amountReceiver2 = new AmountReceiverRequest
{
    Percentual = 50
};

ReceiverRequest receiver2 = new ReceiverRequest
{
    MoipAccount = moipAccountReceiver2,
    Type = "SECONDARY",
    Amount = amountReceiver2
};

List<ReceiverRequest> receiverList = new List<ReceiverRequest>
{
    receiver1,
    receiver2
};

OrderRequest orderRequest1 = new OrderRequest
{
    OwnId = "my_own_id",
    Amount = amountRequest,
    Items = itemsRequestList,
    Customer = customerRequest,
    Receivers = receiverList
};

CustomerRequest customerRequest2 = new CustomerRequest
{
    Fullname = "Outro Nome Teste",
    OwnId = "OFulanoDeTal",
    BirthDate = "1990-01-01",
    Email = "fulano@detal.com.br",
    Phone = phone,
    ShippingAddress = shippingAddress,
    TaxDocument = taxDocument
};

OrderRequest orderRequest2 = new OrderRequest
{
    OwnId = "my_own_id2",
    Amount = amountRequest,
    Items = itemsRequestList,
    Customer = customerRequest2,
    Receivers = receiverList
};

List<OrderRequest> orderList = new List<OrderRequest>();

orderList.Add(orderRequest1);
orderList.Add(orderRequest2);

MultiorderRequest multiOrderRequest = new MultiorderRequest
{
    OwnId = "meu_multiorder_id",
    Orders = orderList
};

MultiorderResponse createdMultiorder = client.Multiorders.CreateMultiorder(multiorderRequest);

Consulta

MultiorderResponse multiorder = client.Multiorders.GetMultiorder("MOR-F2R675E1X97P");

Multipagamentos

Criação

Cartão de Crédito

TODO

Boleto Bancário

TODO

Para capturar os links do boleto:

// Link do Boleto
TODO

// Link para impressão do boleto
TODO

Consulta

TODO

Capturar multipagamento pré-autorizado

TODO

Cancelar multipagamento pré-autorizado

TODO

Conta Moip

Criação

EmailRequest emailRequest = new EmailRequest
{
    Address = "testingarandomemail10@labs.moip.com.br"
};

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "736.141.550-48"
};

IdentityDocumentRequest identityDocumentRequest = new IdentityDocumentRequest
{
    Type = "RG",
    Number = "434322344",
    Issuer = "SSP",
    IssueDate = "2000-12-12"
};

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "712341234"
};

ShippingAddress shippingAddressRequest = new ShippingAddress
{
    Street = "Av. Brigadeiro Faria Lima",
    StreetNumber = "2927",
    District = "Itaim",
    ZipCode = "01234-000",
    City = "São Paulo",
    State = "SP",
    Country = "BRA"
};

Person personRequest = new Person
{
    Name = "Runscope",
    LastName = "Goku",
    TaxDocument = taxDocumentRequest,
    IdentityDocument = identityDocumentRequest,
    BirthDate = "1990-01-01",
    Phone = phoneRequest,
    Address = shippingAddressRequest,
};

AccountRequest accountRequest = new AccountRequest
{
    Email = emailRequest,
    Person = personRequest,
    Type = "MERCHANT",

    // Caso queira criar conta transparente, basta mudar esse atributo para true
    TransparentAccount = false
};

AccountResponse accountResponse = client.Accounts.CreateAccount(accountRequest);

Consulta

TODO

Verifica se usuário já possui Conta Moip

TODO

Contas Bancárias

Criação

TODO

Consulta

TODO

Exclusão

TODO

Atualização

TODO

Listagem

List<BankAccount> createdBankAccounts = api.bankAccount().getList("MPA-E0BAC6D15696");

Transferência

Criação

Conta Bancária

TODO

Conta Moip

TODO

Consulta

TODO

Listagem

TODO

Reversão

TODO

Custódia

Pagamento com custódia

TaxDocument taxDocumentRequest = new TaxDocument
{
    Type = "CPF",
    Number = "33333333333"
};

Phone phoneRequest = new Phone
{
    CountryCode = "55",
    AreaCode = "11",
    Number = "66778899"
};

HolderRequest holderRequest = new HolderRequest
{
    Fullname = "Jose Goku da Silva",
    Birthdate = "1988-12-30",
    TaxDocument = taxDocumentRequest,
    Phone = phoneRequest
};

CreditCardRequest creditCardRequest = new CreditCardRequest
{
    ExpirationMonth = "02",
    ExpirationYear = "20",
    Number = "5555666677778884",
    Cvc = "123",
    Holder = holderRequest
};

FundingInstrumentRequest fundingInstrumentRequest = new FundingInstrumentRequest
{
    Method = "CREDIT_CARD",
    CreditCard = creditCardRequest
};

Escrow escrow = new Escrow
{
    Description = "Escrow test"
};

PaymentRequest paymentRequest = new PaymentRequest
{
    InstallmentCount = 1,
    StatementDescriptor = "MyStore",
    FundingInstrument = fundingInstrumentRequest,
    Escrow = escrow
};

PaymentResponse paymentResponse = client.Payments.CreateCreditCard("ORD-3435DIB58HYN", paymentRequest);

Liberação de custódia

EscrowResponse escrowResponse = client.Payments.ReleaseEscrow('ECW-9OS6FAPR3FD5')

OAuth (Moip Connect)

Solicitar permissões de acesso ao usuário

TODO

Gerar token OAuth

TODO

Atualizar token OAuth

TODO

Tratamento de Exceções

Quando ocorre algum erro na API, é lançada a exceção UnexpectedException para erros inesperados e ValidationException para erros de validação.

TODO

Documentação

Documentação oficial

Licença

The MIT License

Comunidade Slack Slack

Tem dúvidas? Fale com a gente no Slack!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%