MaisTodos.Client
3.6.13
See the version list below for details.
dotnet add package MaisTodos.Client --version 3.6.13
NuGet\Install-Package MaisTodos.Client -Version 3.6.13
<PackageReference Include="MaisTodos.Client" Version="3.6.13" />
<PackageVersion Include="MaisTodos.Client" Version="3.6.13" />
<PackageReference Include="MaisTodos.Client" />
paket add MaisTodos.Client --version 3.6.13
#r "nuget: MaisTodos.Client, 3.6.13"
#:package MaisTodos.Client@3.6.13
#addin nuget:?package=MaisTodos.Client&version=3.6.13
#tool nuget:?package=MaisTodos.Client&version=3.6.13
Biblioteca de integração MaisTodos em .NET
Descrição
A biblioteca de integração MaisTodos em .NET facilita a utilização das funcionalidades que a MaisTodos expõe na forma de APIs.
Inclui funcionalidades como:
- Obter Cliente por Id
- Registrar Cliente
- Obter Assinatura por Id
- Criar Assinatura Associando a um Cliente
- Cancelar Assinatura por Id
- Estornar Pagamento
- Adicionar Cartão de Crédito
- Obter Ciclos de Pagamentos Pendentes Para uma Assinatura
- Criar um Ciclo de Pagamento Futuro para uma Assinatura
- Obter Último Ciclo de Pagamento pela Assinatura
- Baixar Manualmente os Ciclos de Uma Assinatura
- Baixar Manualmente os Ciclos de Uma Assinatura (Forma Simplificada)
- Criar um Cupom de Desconto
- Criar uma Regra de Descontos
- Obter um Cupom de Desconto por Id
- Obter os Cupons de Desconto
- Obter uma Regra de Desconto por Id
- Obter as Regras de Desconto
- Alterar a Referência da Assinatura
- Trocar o Método (Reguá) de Pagamento
- Alterar o preço de uma Assinatura
- Gerar uma Cobrança Adicional Para a Assinatura
- Obter o Cliente pelo Documento de Identificação
- Suspender Assinatura por Id
- Atualizar cupom e desconto
- Abrir uma assinatura suspensa por Id
- Fazer uma nova tentativa de pagamento por Id do pagamento
- Obter o ultimo ciclo de pagamento por Id
- Alterar a data do ciclo mais atual, de acordo com o id da assinatura passado
- Atualizar source da assinatura
- Obter status da assinatura por Id
- Cobrar um ciclo pelo Id
- Criar uma cobrança avulsa, não atrelada a nenhuma assinatura ou ciclo de pagamento
- Busca o Customer pelo documento e retorno o ID do Customer
Requisitos
- .NET Standard 2.0
Instalação
.Net Cli
dotnet add package MaisTodos.Client --version 3.6.8
PackageReference
<PackageReference Include="MaisTodos.Client" Version="3.6.8" />
Utilização
Instância do cliente da mais todos:
using MaisTodos.Client;
IMaisTodosClient maisTodosClient = new MaisTodosClient(
authorization: "token xxxx",
apiVersion: "v1",
isSandBox: true // true para utilização em sandbox e false para utilização em produção
mockEndpointBaseUrl: null // Opicional - Usado para mocar o retorno do estorno de tentativa
);
Obter Cliente por Id:
var customerId = 1;
var resultValue = await maisTodosClient.GetCustomersByIdAsync(customerId);
var client = resultValue.Data;
Registrar Cliente:
var client = new CustomerDTO {
Name = "Name1",
Document = "Document1",
Phone = "XXXXXXXXXX",
Email = "XXXXXXXXXX@email.com",
Address = "Address1",
AddressNumber = "5",
Complement = "Complement1",
Neighborhood = "Neighborhood1",
City = "City1",
State = "mg",
Zipcode = "Zipcode1",
Latitude = "-30.770001",
Longitude = "45.899002"
};
var resultValue = await maisTodosClient.RegisterCustomersAsync(client);
var registeredCustomer = resultValue.Data;
Obter Assinatura por Id:
var subscriptionId = 1;
var resultValue = await maisTodosClient.GetSubscriptionByIdAsync(subscriptionId);
var subscription = resultValue.Data;
Criar Assinatura Associando a um Cliente:
var dto = new CreateSubscriptionLinkingCustomerDTO
{
Plan = 1,
Customer = 1,
NextBillingDate = "xxxx-xx"
PaymentData = new PaymentDataRequestDTO
{
PaymentRuler = 1,
Installments = 1,
CreditCard = new CreditCardDTO
{
Holder = "Holder A",
Number = "XXXXXXXXXXXXXX",
CVV = "123",
ExpirationDate = "2030-01",
Brand = "master"
}
}
};
var resultValue = await maisTodosClient.CreateSubscriptionLinkingCustomerAsync(dto);
var subscription = resultValue.Data;
Cancelar Assinatura por Id:
var subscriptionId = 1;
var dto = new ObservationDTO
{
Observation = "Cancelado pelo motivo X"
};
var resultValue = await _maisTodosClient.CancelSubscriptionByIdAsync(
subscriptionId: subscriptionId, dto: dto
);
var subscription = resultValue.Data;
Estornar Pagamento:
var attemptId = 1;
var dto = new ObservationDTO
{
Observation = "Estornado pelo motivo X"
};
var resultValue = await _maisTodosClient.RefundByAttemptIdAsync(
attemptId: attemptId, dto: dto
);
var subscription = resultValue.Data;
Adicionar Cartão de Crédito
var dto = new AddCreditCardDTO
{
Customer = 1,
Holder = "XXXXX",
Number = "XXXXXXXXXXXXXXXX",
CVV = "XXX",
ExpirationDate = "XXXX-XX",
Default = true,
Brand = "master"
};
var resultValue = await _maisTodosClient.AddCreditCardAsync(dto: dto);
var response = resultValue.Data;
Adicionar Cartão de Crédito por Token
var dto = new AddCreditCardByTokenDTO
{
Customer = 1,
Holder = "XXXXX",
Token = "XXX",
ExpirationDate = "XXXX-XX",
Default = true,
Brand = "master"
};
var resultValue = await _maisTodosClient.AddCreditCardByTokenAsync(dto: dto);
var response = resultValue.Data;
Obter Ciclos de Pagamentos Pendentes Para uma Assinatura
var subscriptionId = 1;
var resultValue = await _maisTodosClient.GetPaymentCyclesBySubscriptionIdAsync(subscriptionId);
var response = resultValue.Data;
Criar um Ciclo de Pagamento Futuro para uma Assinatura
var subscriptionId = 1;
var resultValue = await _maisTodosClientWithMock.CreateFutureCycleAsync(
subscriptionId: subscriptionId
);
var response = resultValue.Data;
Baixar Manualmente os Ciclos de Uma Assinatura
var subscriptionId = 1;
var paymentCycleDTO = new ForcePaymentCompletionDTO()
{
Observation = "Alguma observação sobre o motivo desse pagamento forçado.",
CyclesIds = new List<int> { 1, 2 }
};
var resultValue = await _maisTodosClient.ForceCompletionOfPaymentCycleAsync(
subscriptionId: subscriptionId, dto: paymentCycleDTO
);
var response = resultValue.Data;
Baixar Manualmente os Ciclos de Uma Assinatura (Forma Simplificada)
var subscriptionId = 1;
var observation = "Alguma observação sobre o motivo desse pagamento forçado";
var referencia = "2021/07";
var resultValue = await _maisTodosClient.ForceCompletionOfPaymentCycleAsync(
subscriptionId: subscriptionId, observation: observation, monthOfYearCompetence: referencia
);
var response = resultValue.Data;
Criar um Cupom de Desconto
var coupon = new CouponDTO()
{
Code = "CUPOM_XXX_01",
IsActive = true,
StartsAt = new DateTime(year: 2020, month: 1, day: 1),
EndsAt = new DateTime(year: 2020, month: 3, day: 1)
};
var resultValue = await _maisTodosClient.CreateCouponAsync(
coupon: coupon
);
var response = resultValue.Data;
Criar uma Regra de Descontos
var discount = new DiscountDTO()
{
Id = null,
CouponId = 1,
Name = $"Regra X1",
Rules = new List<DiscountRuleDTO>()
{
new DiscountRuleDTO(){
Value = 10,
StartCycle = 1,
EndCycle = 2,
DiscountType = DiscountType.percentual
},
new DiscountRuleDTO(){
Value = 7.52m,
StartCycle = 1,
EndCycle = 2,
DiscountType = DiscountType.value
}
}
};
var resultValue = await _maisTodosClient.CreateDiscountAsync(
discount: discount
);
var response = resultValue.Data;
Obter um Cupom de Desconto por Id
var couponId = 1;
var resultValue = await _maisTodosClient.GetCouponsAsync(
couponId: couponId
);
var response = resultValue.Data;
Obter os Cupons de Desconto
var resultValue = await _maisTodosClient.GetDiscountsAsync();
var response = resultValue.Data;
Obter uma Regra de Desconto por Id
var discountId = 1;
var resultValue = await _maisTodosClient.GetDiscountByIdAsync(
discountId: discountId
);
var response = resultValue.Data;
Obter as Regras de Desconto
var resultValue = await _maisTodosClient.GetDiscountsAsync();
var response = resultValue.Data;
Atualizar um Cupom por Id
var couponId = 1;
CouponDTO coupon = new CouponDTO()
{
IsActive = false;
};
var resultValue = await _maisTodosClient.UpdateCouponAsync(couponId: couponId, coupon: coupon);
var response = resultValue.Data;
Atualizar um Desconto por Id
var discountId = 1;
DiscountDTO discount = new DiscountDTO()
{
Rules = new List<DiscountRuleDTO>()
{
new DiscountRuleDTO() { Value = 25 }
};
};
var resultValue = await _maisTodosClient.UpdateDiscountAsync(discountId: discountId, discount: discount);
var response = resultValue.Data;
Obter Último Ciclo de Pagamento pela Assinatura
var subscriptionId = 1;
var resultValue = await _maisTodosClient.GetLastPaymentCycleBySubscriptionIdAsync(subscriptionId);
var response = resultValue.Data;
Alterar a Referência da Assinatura
var subscriptionId = 1;
var referenceDTO = new ReferenceDTO()
{
Reference = "123"
};
var resultValue = await _maisTodosClient
.ChangeSubscriptionReferenceAsync(subscriptionId: subscriptionId, reference: referenceDTO);
var response = resultValue.Data;
Trocar o Método (Reguá) de Pagamento
var subscriptionId = 1;
var paymentRulerDTO = new PaymentRulerDTO()
{
PaymentRuler = 1
};
var resultValue = await _maisTodosClient
.ChangeSubscriptionPaymentMethodAsync(subscriptionId: subscriptionId, paymentRuler: paymentRulerDTO);
var response = resultValue.Data;
Alterar o preço de uma Assinatura
var subscriptionId = 1;
var priceDTO = new PriceDTO()
{
Price = 21.28m
};
var resultValue = await _maisTodosClient.UpdateSubscriptionPriceAsync(subscriptionId: subscription.Id, price: priceDTO);
var response = resultValue.Data;
Gerar uma Cobrança Adicional Para a Assinatura
var subscriptionId = 1;
var extraBillRequestDTO = new ExtraBillRequestDTO()
{
Amount = 27.14m,
PaymentType = 1,
Installments = 12
};
var resultValue = await _maisTodosClient
.CreateExtraBillToSubscriptionAsync(subscriptionId: subscription.Id, extraBillRequest: extraBillRequestDTO);
var response = resultValue.Data;
Suspender Assinatura por Id
var subscriptionId = 1;
var observationDTO = new ObservationDTO
{
Observation = "Suspensa pelo motivo X"
};
var resultValue = await _maisTodosClient.SuspendSubscriptionByIdAsync(
subscriptionId: subscriptionId, observationDTO: dto
);
var subscription = resultValue.Data;
Alterar o Source da Assinatura
var subscriptionId = 1;
var sourceDTO = new SourceDTO()
{
Source = "99"
};
var resultValue = await _maisTodosClient
.ChangeSubscriptionSourceAsync(subscriptionId: subscriptionId, source: sourceDTO);
var response = resultValue.Data;
Obter status da subscription por Id:
var subscriptionId = 1;
var resultValue = await maisTodosClient.GetSubscriptionStatusByIdAsync(subscriptionId);
var subscription = resultValue.Data;
Tenta cobrar o ciclo através do Id:
var cycleId = 1;
var resultValue = await maisTodosClient.ChargeCycleByIdAsync(cycleId);
var response = resultValue.Data;
Criar uma cobrança avulsa, não atrelada a nenhum ciclo ou assinautura
var chargeBillRequestDTO = new ChargeBillRequestDTO()
{
Amount = 29.70m,
Channel = "CTN",
Installments = 12,
PaymentType = 5,
Source = "Adesão times",
CreditCard = new CreditCardDTO()
{
Holder = "Holder A",
Number = "XXXXXXXXXXXXXX",
CVV = "123",
ExpirationDate = "2030-01",
Brand = "master"
}
};
var response = await _maisTodosClient.ChargeBillAsync(createBillRequestDTO);
Changelog
3.6.13 - Adiciona a propriedade "uuidcard" na Classe PaymentData e "UuidCustomer" na classe ResponseData
3.6.12 - Adiciona a propriedade "CardId" na Classe PaymentData
3.6.10 - Adiciona a propriedade "AmountToRefund" na Classe ObservationDTO
3.6.9 - Adicona A propriedade Subscripiton na classe AddCreditCardDTO.cs,
3.6.8 - Adicona o método para retornar o ID do Customer,
3.6.6 - Adicionado novo campo no retorno do objeto de cobrança,
3.6.5 - Adicionado endpoint para gerar cobranca avulsa, não atrelada a assinatura ou ciclo
3.6.3 - Adicionado atributo "installments" para permitir o parcelamento da cobrança extra na MaisTodos
3.6.2 - Adicionado método para cobrança do ciclo pelo id
3.6.0 - Implementação de telemetria melhorias diversas
- Adicionado método para obter o status da assinatura
- Correção de testes de integração
- Adicionado telemetria para medir o tempo de execução e logar o resquests e as respostas no application insights do azure
- Adicionado metodo para mascarar o numero do cartão nos logs
3.5.10 - Adicionado método para atualizar o source da assinatura
3.5.6 - alterar a data do ciclo mais atual, de acordo com o id da assinatura passado
3.5.5 - Implementa a propriedade Source em CreateSubscriptionLinkingCustomerDTO
3.5.4 - altera o metodo put para post do endpoint abrir assinatura
3.5.3 - implementa Endpoints
- Abrir uma assinatura suspensa por Id
- Fazer uma nova tentativa de pagamento por Id do pagamento
- Obter o ultimo ciclo de pagamento por Id
3.5.2 - Correção do campo NextBillingDate
3.5.1 - Implementa o campo NextBillingDate
3.4.0 - Atualizar cupom e desconto
3.3.1 - Suspender Assinatura por Id
3.3.0 - Obter o Cliente pelo Documento de Identificação
3.2.6 - Obter Último Ciclo de Pagamento pela Assinatura
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Text.Json (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.3 | 219 | 9/29/2025 |
| 4.0.2 | 449 | 6/18/2025 |
| 4.0.1 | 418 | 5/12/2025 |
| 3.9.1 | 847 | 3/26/2025 |
| 3.9.0 | 532 | 3/24/2025 |
| 3.8.3 | 340 | 7/3/2024 |
| 3.8.2 | 979 | 5/21/2024 |
| 3.8.1 | 208 | 4/24/2024 |
| 3.8.0 | 197 | 4/11/2024 |
| 3.7.2 | 761 | 1/14/2024 |
| 3.7.1 | 198 | 1/14/2024 |
| 3.7.0 | 562 | 12/11/2023 |
| 3.6.15 | 191 | 12/5/2023 |
| 3.6.14 | 670 | 11/16/2023 |
| 3.6.13 | 208 | 9/21/2023 |
| 3.6.12 | 248 | 8/18/2023 |
| 3.6.11 | 427 | 8/17/2023 |
| 3.6.10 | 341 | 6/9/2023 |
| 3.6.9 | 1,129 | 5/25/2023 |
| 3.6.8 | 295 | 5/19/2023 |
| 3.6.7 | 271 | 5/16/2023 |
| 3.6.6 | 525 | 3/29/2023 |
| 3.6.5 | 322 | 3/28/2023 |
| 3.6.4 | 342 | 3/28/2023 |
| 3.6.3 | 377 | 3/23/2023 |
| 3.6.2 | 1,501 | 2/10/2023 |
| 3.6.1 | 538 | 2/8/2023 |
| 3.6.0 | 385 | 2/7/2023 |
| 3.5.11 | 470 | 11/7/2022 |
| 3.5.10 | 713 | 7/8/2022 |
| 3.5.6 | 650 | 6/27/2022 |
| 3.5.5 | 559 | 6/10/2022 |
| 3.5.4 | 762 | 5/31/2022 |
| 3.5.3 | 571 | 5/26/2022 |
| 3.5.2 | 619 | 5/13/2022 |
| 3.5.1 | 739 | 3/24/2022 |
| 3.5.0 | 1,779 | 3/4/2022 |
| 3.4.1 | 650 | 2/18/2022 |
| 3.4.0 | 705 | 1/24/2022 |
| 3.3.1 | 439 | 12/30/2021 |
| 3.3.0 | 446 | 12/29/2021 |
| 3.2.6 | 456 | 12/23/2021 |
| 3.2.5 | 466 | 12/15/2021 |
| 3.2.4 | 465 | 12/9/2021 |
| 3.2.3 | 464 | 12/3/2021 |
| 3.2.2 | 1,085 | 12/1/2021 |
| 3.2.1 | 479 | 11/30/2021 |
| 3.2.0 | 1,253 | 11/29/2021 |
| 3.1.6 | 5,150 | 11/23/2021 |
| 3.1.5 | 755 | 11/9/2021 |
| 3.1.4 | 583 | 10/18/2021 |
Início do Projeto.