@tucupy-tecnologia/cielo-ecommerce-sdk-unofficial
Version:
SDK Não Oficial para interagir com a API Cielo E-commerce usando Bun/Node.js
138 lines (137 loc) • 4.77 kB
TypeScript
import { type CardOnFile, type Customer, type Link } from './commonTypes';
/**
* Detalhes do cartão de crédito na requisição de pagamento.
*/
export interface CreditCardDetailsRequest {
CardNumber: string;
Holder: string;
ExpirationDate: string;
/** Código de segurança. Não obrigatório se SaveCard=true e for transação recorrente */
SecurityCode?: string;
/** Define se o cartão deve ser salvo para gerar um CardToken */
SaveCard?: boolean;
Brand: string;
CardOnFile?: CardOnFile;
}
/**
* Indicador de transação iniciada (CIT/MIT) - Obrigatório para Mastercard.
*/
export interface InitiatedTransactionIndicator {
Category: 'C1' | 'M1' | 'M2';
Subcategory?: string;
}
/**
* Dados de autenticação externa (3DS).
*/
export interface ExternalAuthentication {
Cavv: string;
Xid?: string;
Eci: number;
ReferenceId?: string;
Version: string;
DataOnly?: boolean;
}
/**
* Dados específicos para companhias aéreas.
*/
export interface AirlineData {
TicketNumber?: string;
}
/**
* Detalhes do objeto Payment na requisição de criação de pagamento.
*/
export interface PaymentDetailsRequest {
/** Tipo do pagamento (Sempre 'CreditCard' neste contexto) */
Type: 'CreditCard';
/** Valor em centavos */
Amount: number;
/** Número de parcelas (1 para à vista ou recorrência) */
Installments: number;
/** Moeda (e.g., 'BRL') */
Currency?: string;
/** País (e.g., 'BRA') */
Country?: string;
/** Tipo de parcelamento ('ByMerchant' ou 'ByIssuer') */
Interest?: 'ByMerchant' | 'ByIssuer';
/** Define se a captura é automática (true) ou posterior (false) */
Capture?: boolean;
/** Indica se a transação foi autenticada via 3DS */
Authenticate?: boolean;
/** Indica se é uma transação recorrente (sem CVV) */
Recurrent?: boolean;
/** Descrição na fatura (máx 13 chars, sem especiais) */
SoftDescriptor?: string;
/** URL para notificação de mudança de status (webhook) */
ReturnUrl?: string;
/** Dados do cartão de crédito */
CreditCard: CreditCardDetailsRequest;
/** Indicador CIT/MIT (Obrigatório Mastercard) */
InitiatedTransactionIndicator?: InitiatedTransactionIndicator;
/** Dados de autenticação externa (3DS) */
ExternalAuthentication?: ExternalAuthentication;
/** Opcional: Provedor (e.g., 'Cielo') */
Provider?: string;
/** Opcional: Valor da taxa de serviço (empresas aéreas) */
ServiceTaxAmount?: number;
/** Opcional: Identifica se é uma gorjeta */
Tip?: boolean;
/** Opcional: Dados de cia aérea */
AirlineData?: AirlineData;
/** Opcional: Define se é uma negociação de criptomoeda */
IsCryptocurrencyNegociation?: boolean;
}
/**
* Payload completo para a requisição de criação de pagamento com cartão de crédito.
*/
export interface CreditCardPaymentRequest {
MerchantOrderId: string;
Customer?: Customer;
Payment: PaymentDetailsRequest;
}
/**
* Detalhes do cartão de crédito na resposta de pagamento.
*/
export interface CreditCardDetailsResponse extends Omit<CreditCardDetailsRequest, 'SecurityCode' | 'SaveCard'> {
CardNumber: string;
SaveCard?: boolean;
PaymentAccountReference?: string;
}
/**
* Detalhes do objeto Payment na resposta de criação de pagamento.
*/
export interface PaymentResponseDetails extends Omit<PaymentDetailsRequest, 'CreditCard' | 'ExternalAuthentication'> {
PaymentId: string;
Tid: string;
ProofOfSale: string;
AuthorizationCode?: string;
/** Status da transação (0=Pendente, 1=Autorizado, 2=Pago, 3=Negado, 10=Cancelado, 11=Devolvido, 12=Pendente, 13=Abortado, 20=Agendada) - Consultar documentação! */
Status: number;
ReturnCode: string;
ReturnMessage: string;
SoftDescriptor?: string;
CapturedAmount?: number;
VoidedAmount?: number;
/** Valor autorizado (pode ser diferente do Amount se houver ServiceTaxAmount) */
AuthorizedAmount?: number;
Currency: string;
Country: string;
Links?: Link[];
CreditCard: CreditCardDetailsResponse;
/** Código de recomendação da bandeira (Merchant Advice Code) */
MerchantAdviceCode?: string;
/** Indica se a Cielo tentará cancelar automaticamente em caso de erro após autorização */
TryAutomaticCancellation?: boolean;
/** Coleção de dados extras (uso específico) */
ExtraDataCollection?: {
Name: string;
Value: string;
}[];
}
/**
* Resposta completa para a criação de pagamento bem-sucedida (201 Created).
*/
export interface CreditCardPaymentResponse {
MerchantOrderId: string;
Customer: Customer | null;
Payment: PaymentResponseDetails;
}