UNPKG

@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
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; }