UNPKG

@tucupy-tecnologia/cielo-ecommerce-sdk-unofficial

Version:

SDK Não Oficial para interagir com a API Cielo E-commerce usando Bun/Node.js

139 lines (138 loc) 4.07 kB
/** * Representa o objeto CardOnFile, usado para indicar * o propósito de armazenamento do cartão. */ export interface ZeroAuthCardOnFile { /** * 'First' se o cartão foi armazenado e é seu primeiro uso. * 'Used' se o cartão já foi utilizado anteriormente. */ Usage: 'First' | 'Used'; /** * Indica o propósito de armazenamento se Usage for 'Used'. * 'Recurring': Compra recorrente programada. * 'Unscheduled': Compra recorrente sem agendamento. * 'Installments': Parcelamento através da recorrência. */ Reason?: 'Recurring' | 'Unscheduled' | 'Installments'; } /** * Payload para a requisição de validação de cartão padrão (Zero Auth). */ export interface ZeroAuthCardRequest { /** * Tipo do cartão: 'CreditCard' ou 'DebitCard'. */ CardType: 'CreditCard' | 'DebitCard'; /** * Número do cartão. */ CardNumber: string; /** * Nome do portador como impresso no cartão. */ Holder: string; /** * Data de validade no formato MM/YYYY. */ ExpirationDate: string; /** * Código de segurança (CVV). */ SecurityCode: string; /** * Bandeira do cartão: 'Visa', 'Master', 'Elo', etc. * (Verificar documentação Cielo para lista completa suportada). */ Brand: string; /** * Opcional: Token do cartão previamente gerado pela API E-commerce Cielo. * Se informado, os outros dados do cartão (exceto SecurityCode talvez) podem não ser necessários. */ CardToken?: string; /** * Opcional: Informações sobre o uso do cartão armazenado. */ CardOnFile?: ZeroAuthCardOnFile; } /** * Detalhes do cartão dentro da requisição de e-wallet. */ export interface ZeroAuthEWalletCard { CardType: 'CreditCard' | 'DebitCard'; CardNumber: string; Holder: string; ExpirationDate: string; SecurityCode: string; Brand: string; CardOnFile?: ZeroAuthCardOnFile; } /** * Detalhes da carteira digital (e-wallet). */ export interface ZeroAuthWallet { /** * Tipo da e-wallet: 'ApplePay', 'SamsungPay', 'GooglePay'. */ Type: 'ApplePay' | 'SamsungPay' | 'GooglePay'; /** * Campo de validação retornado pela e-wallet (Cryptogram). */ Cavv: string; /** * Electronic Commerce Indicator. */ Eci: string; } /** * Payload completo para a requisição de validação de cartão de e-wallet. */ export interface ZeroAuthEWalletRequest { Card: ZeroAuthEWalletCard; Wallet: ZeroAuthWallet; } /** * Representa uma resposta de sucesso da validação (Cartão Válido). * Baseado no schema "Cartão válido" / "Positiva - cartão válido". */ export interface ZeroAuthSuccessResponse { Valid: true; ReturnCode: string; ReturnMessage: string; IssuerTransactionId?: string; } /** * Representa uma resposta de falha na validação (Cartão Inválido). * Baseado no schema "Cartão inválido" / "Negativa - cartão inválido". */ export interface ZeroAuthInvalidCardResponse { Valid: false; ReturnCode: string; ReturnMessage: string; IssuerTransactionId?: string; } /** * Representa uma resposta de erro específico retornado com status 200 OK. * Baseado nos schemas "Bandeira inválida", "Restrição cadastral". */ export interface ZeroAuthInlineErrorResponse { Valid?: false; Code: number; Message: string; } /** * Tipo unificado para as possíveis respostas de sucesso (200 OK) do Zero Auth. * Usa a união discriminated union baseada na presença/valor de 'Valid' ou 'Code'. */ export type ZeroAuthResponse = ZeroAuthSuccessResponse | ZeroAuthInvalidCardResponse | ZeroAuthInlineErrorResponse; /** * Item individual dentro da resposta de erro 400 (Bad Request). */ export interface ZeroAuthBadRequestErrorItem { ReturnCode: number; ReturnMessage: string; } /** * Resposta completa para um erro 400 (Bad Request), que é um array de itens. */ export type ZeroAuthBadRequestResponse = ZeroAuthBadRequestErrorItem[];