@criapix/saas-assinaturas-client
Version:
SDK JavaScript/TypeScript para o AssinaturasService - Sistema de gestão de assinaturas SaaS com processamento de pagamentos de faturas (cartão, PIX, débito), gerenciamento de métodos de pagamento, pagamentos recorrentes e análise de falhas de pagamento
222 lines • 10.6 kB
TypeScript
import type { PaginatedResponse, CreateCustomerRequest, CustomerResponse, CreateOneTimePaymentRequest, CreateRecurringPaymentRequest, ProcessPaymentRequest, CancelPaymentRequest, PaymentListQuery, PaymentResponse, CreatePaymentAccountRequest, PaymentAccountResponse, SubscriptionStatusResponse, SimpleActiveStatusResponse, PaymentMethodInfoResponse, ProcessInvoicePaymentResponse, ProcessFirstPaymentRequest, ProcessRecurringPaymentRequest, ProcessPixPaymentRequest, ProcessDebitPaymentRequest, SubscriptionPlanResponse, CreateSubscriptionPlanRequest, UpdateSubscriptionPlanRequest, SubscriptionPlanFilterRequest, SubscriptionResponse, CreateSubscriptionRequest, UpdateSubscriptionRequest, UpdatePaymentMethodRequest, ActivateSubscriptionWithPaymentRequest, SubscriptionActivationResponse, SubscriptionFilterRequest, InvoiceResponse, InvoiceStatisticsResponse, GenerateInvoiceRequest, InvoiceFilterRequest, UpdateInvoiceStatusRequest, GenerateBatchInvoicesRequest, BatchInvoiceResponse, SubscriptionAccessResponse, CheckAccessBatchRequest, CustomerAccessBatchItem } from '../types';
export declare class AssinaturasServiceClient {
private client;
private authToken;
constructor(baseURL: string);
/**
* Define o token de autenticação JWT
*/
setAuthorizationToken(token: string): void;
/**
* Cria um novo cliente
*/
createCustomer(request: CreateCustomerRequest): Promise<CustomerResponse>;
/**
* Busca um cliente por ID
* @returns O cliente encontrado ou null se não existir
*/
getCustomer(id: string): Promise<CustomerResponse | null>;
/**
* Cria um novo plano de assinatura
*/
createSubscriptionPlan(request: CreateSubscriptionPlanRequest): Promise<SubscriptionPlanResponse>;
/**
* Busca um plano de assinatura por ID
* @returns O plano encontrado ou null se não existir
*/
getSubscriptionPlan(id: string): Promise<SubscriptionPlanResponse | null>;
/**
* Lista planos de assinatura com filtros opcionais
*/
listSubscriptionPlans(filter?: SubscriptionPlanFilterRequest): Promise<PaginatedResponse<SubscriptionPlanResponse>>;
/**
* Atualiza um plano de assinatura existente
*/
updateSubscriptionPlan(id: string, request: UpdateSubscriptionPlanRequest): Promise<SubscriptionPlanResponse>;
/**
* Deleta um plano de assinatura
*/
deleteSubscriptionPlan(id: string): Promise<void>;
/**
* Cria uma nova assinatura
*/
createSubscription(request: CreateSubscriptionRequest): Promise<SubscriptionResponse>;
/**
* Busca uma assinatura por ID
* @returns A assinatura encontrada ou null se não existir
*/
getSubscription(id: string): Promise<SubscriptionResponse | null>;
/**
* Lista assinaturas com filtros opcionais
*/
listSubscriptions(filter?: SubscriptionFilterRequest): Promise<PaginatedResponse<SubscriptionResponse>>;
/**
* Atualiza uma assinatura existente
*/
updateSubscription(id: string, request: UpdateSubscriptionRequest): Promise<SubscriptionResponse>;
/**
* Cancela uma assinatura
*/
cancelSubscription(id: string, cancellationReason?: string): Promise<SubscriptionResponse>;
/**
* Ativa uma assinatura com primeiro pagamento após período de trial
* Este endpoint encontra a fatura pendente atual e processa o pagamento
* @param subscriptionId - ID da assinatura
* @param request - Requisição com detalhes do cartão para ativação
* @returns Resultado da ativação da assinatura
*/
activateSubscriptionWithPayment(subscriptionId: string, request: ActivateSubscriptionWithPaymentRequest): Promise<SubscriptionActivationResponse>;
/**
* Atualiza o método de pagamento de uma assinatura
* Pode opcionalmente processar um pagamento de fatura pendente ao atualizar o método
* @param subscriptionId - ID da assinatura
* @param request - Requisição com novos detalhes do cartão
* @returns Resultado do processamento do pagamento (se fatura fornecida) ou confirmação de sucesso
*/
updatePaymentMethod(subscriptionId: string, request: UpdatePaymentMethodRequest): Promise<ProcessInvoicePaymentResponse>;
/**
* Busca uma fatura por ID
* @returns A fatura encontrada ou null se não existir
*/
getInvoice(id: string): Promise<InvoiceResponse | null>;
/**
* Lista faturas com filtros opcionais
*/
listInvoices(filter?: InvoiceFilterRequest): Promise<PaginatedResponse<InvoiceResponse>>;
/**
* Gera uma nova fatura
*/
generateInvoice(request: GenerateInvoiceRequest): Promise<InvoiceResponse>;
/**
* Atualiza o status de uma fatura
*/
updateInvoiceStatus(id: string, request: UpdateInvoiceStatusRequest): Promise<InvoiceResponse>;
/**
* Gera faturas em lote para todas as assinaturas ativas
*/
generateBatchInvoices(request: GenerateBatchInvoicesRequest): Promise<BatchInvoiceResponse>;
/**
* Obtém estatísticas agregadas de faturas
* @param startDate - Data inicial do filtro (opcional)
* @param endDate - Data final do filtro (opcional)
* @param condominiumId - ID do condomínio para filtrar (opcional)
* @returns Estatísticas das faturas
*/
getInvoiceStatistics(startDate?: string, endDate?: string, condominiumId?: string): Promise<InvoiceStatisticsResponse>;
/**
* Processa o primeiro pagamento após período de trial com tokenização de cartão
* Armazena o método de pagamento para pagamentos recorrentes futuros
* @param invoiceId - ID da fatura
* @param request - Requisição com token do cartão e informações do cliente
* @returns Resultado do processamento do pagamento
*/
processFirstPayment(invoiceId: string, request: ProcessFirstPaymentRequest): Promise<ProcessInvoicePaymentResponse>;
/**
* Processa pagamento recorrente mensal usando método de pagamento armazenado
* @param invoiceId - ID da fatura
* @param request - Requisição de pagamento recorrente (vazio, apenas invoiceId na URL)
* @returns Resultado do processamento do pagamento
*/
processRecurringPayment(invoiceId: string, request?: ProcessRecurringPaymentRequest): Promise<ProcessInvoicePaymentResponse>;
/**
* Processa pagamento PIX
* Gera QR Code para pagamento instantâneo
* @param invoiceId - ID da fatura
* @param request - Requisição de pagamento PIX com informações do cliente
* @returns Resultado do processamento com QR Code
*/
processPixPayment(invoiceId: string, request: ProcessPixPaymentRequest): Promise<ProcessInvoicePaymentResponse>;
/**
* Processa pagamento com cartão de débito
* Pagamento imediato, sem capacidade de recorrência
* @param invoiceId - ID da fatura
* @param request - Requisição de pagamento com token do cartão de débito e informações do cliente
* @returns Resultado do processamento do pagamento
*/
processDebitPayment(invoiceId: string, request: ProcessDebitPaymentRequest): Promise<ProcessInvoicePaymentResponse>;
/**
* Obtém o status completo da assinatura de um cliente
* @returns Status completo ou null se não encontrado
*/
getSubscriptionStatus(customerId: string): Promise<SubscriptionStatusResponse | null>;
/**
* Verifica se o cliente está ativo (status simples)
*/
getSimpleStatus(customerId: string): Promise<SimpleActiveStatusResponse>;
/**
* Verifica se o cliente está inadimplente
*/
isDelinquent(customerId: string): Promise<boolean>;
/**
* Cria um pagamento avulso (one-time)
*/
createOneTimePayment(request: CreateOneTimePaymentRequest): Promise<PaymentResponse>;
/**
* Cria um pagamento recorrente
*/
createRecurringPayment(request: CreateRecurringPaymentRequest): Promise<PaymentResponse>;
/**
* Processa um pagamento com token de cartão
*/
processPayment(paymentId: string, request: ProcessPaymentRequest): Promise<PaymentResponse>;
/**
* Busca um pagamento por ID
* @returns O pagamento encontrado ou null se não existir
*/
getPayment(paymentId: string): Promise<PaymentResponse | null>;
/**
* Lista pagamentos com filtros opcionais
* @param query - Filtros de busca (customerId, subscriptionId, status)
*/
listPayments(query?: PaymentListQuery & {
customerId?: string;
subscriptionId?: string;
}): Promise<PaymentResponse[]>;
/**
* Obtém o método de pagamento de uma assinatura
* @param subscriptionId - ID da assinatura
* @returns Informações do método de pagamento ou null se não existir
*/
getPaymentMethod(subscriptionId: string): Promise<PaymentMethodInfoResponse | null>;
/**
* Cancela um pagamento recorrente
*/
cancelPayment(paymentId: string, request?: CancelPaymentRequest): Promise<PaymentResponse>;
/**
* Cria uma nova conta de pagamento (credenciais Mercado Pago)
*/
createPaymentAccount(request: CreatePaymentAccountRequest): Promise<PaymentAccountResponse>;
/**
* Busca uma conta de pagamento por ID
* @returns A conta encontrada ou null se não existir
*/
getPaymentAccount(accountId: string): Promise<PaymentAccountResponse | null>;
/**
* Busca a conta de pagamento padrão
* @returns A conta padrão ou null se não existir
*/
getDefaultPaymentAccount(): Promise<PaymentAccountResponse | null>;
/**
* Lista todas as contas de pagamento
*/
listPaymentAccounts(): Promise<PaymentAccountResponse[]>;
/**
* Verifica se um cliente tem acesso ao sistema
* @param customerId - ID do cliente
* @returns Informações de acesso do cliente
*/
checkAccess(customerId: string): Promise<SubscriptionAccessResponse>;
/**
* Verifica acesso para um cliente específico (rota alternativa)
* @param customerId - ID do cliente
* @returns Informações de acesso do cliente
*/
checkAccessByCustomer(customerId: string): Promise<SubscriptionAccessResponse>;
/**
* Verifica acesso para múltiplos clientes em uma única requisição
* @param request - Lista de IDs de clientes (máx 100)
* @returns Lista de status de acesso para cada cliente
*/
checkAccessBatch(request: CheckAccessBatchRequest): Promise<CustomerAccessBatchItem[]>;
}
//# sourceMappingURL=AssinaturasServiceClient.d.ts.map