UNPKG

node-beamcheckout

Version:
596 lines (564 loc) 12.6 kB
export enum PaymentMethods { CARD = 'CARD', CARD_INSTALLMENTS = 'CARD_INSTALLMENTS', CARD_TOKEN = 'CARD_TOKEN', CARD_TOKEN_INSTALLMENTS = 'CARD_TOKEN_INSTALLMENTS', QR_PROMPT_PAY = 'QR_PROMPT_PAY', ALIPAY = 'ALIPAY', LINE_PAY = 'LINE_PAY', MOBILE_BANKING = 'MOBILE_BANKING', SHOPEE_PAY = 'SHOPEE_PAY', TRUE_MONEY = 'TRUE_MONEY', WECHAT_PAY = 'WECHAT_PAY', BANGKOK_BANK_APP = 'BANGKOK_BANK_APP', KPLUS = 'KPLUS', KRUNGSRI_APP = 'KRUNGSRI_APP', SCB_EASY = 'SCB_EASY', } export enum BeamFeeType { TRANSACTION_FEE = 'TRANSACTION_FEE', SERVICE_FEE = 'SERVICE_FEE', } export enum BeamPaymentLinkStatus { ACTIVE = 'ACTIVE', PAID = 'PAID', EXPIRED = 'EXPIRED', DISABLED = 'DISABLED', VOIDED = 'VOIDED', REFUNDED = 'REFUNDED', } export enum CurrencyCode { THB = 'THB', } export type CreatePaymentArgs = { collectDeliveryAddress?: boolean collectPhoneNumber?: boolean // default: true expiresAt?: string feeType?: BeamFeeType linkSettings: { buyNowPayLater?: { isEnabled?: boolean } card?: { isEnabled?: boolean } cardInstallments?: { installments3m?: { isEnabled?: boolean } installments4m?: { isEnabled?: boolean } installments6m?: { isEnabled?: boolean } installments10m?: { isEnabled?: boolean } isEnabled?: boolean } eWallets?: { isEnabled?: boolean } mobileBanking?: { isEnabled?: boolean } qrPromptPay?: { isEnabled?: boolean } } order: { currency: CurrencyCode description?: string internalNote?: string netAmount: number orderItems?: { description?: string imageUrl?: string itemName?: string price: number productId?: string quantity?: number sku?: string }[] referenceId?: string } redirectUrl?: string } export type CreatePaymentResponse = { id: string url: string } export type GetPaymentResponse = { collectDeliveryAddress: boolean collectPhoneNumber: boolean expiresAt: string feeType: BeamFeeType linkSettings: { buyNowPayLater: { isEnabled: boolean } card: { isEnabled: boolean } cardInstallments: { installments3m: { isEnabled: boolean } installments4m: { isEnabled: boolean } installments6m: { isEnabled: boolean } installments10m: { isEnabled: boolean } isEnabled: boolean } eWallets: { isEnabled: boolean } mobileBanking: { isEnabled: boolean } qrPromptPay: { isEnabled: boolean } } merchantId: string order: { currency: CurrencyCode description: string internalNote: string netAmount: number orderItems: { description: string imageUrl: string itemName: string price: number productId: string quantity: number sku: string }[] referenceId: string } paymentLinkId: string redirectUrl: string status: BeamPaymentLinkStatus url: string } export type DisablePaymentResponse = { code: number error?: { errorCode: string; errorMessage: string } message: string } export enum BeamRefundStatus { PENDING = 'PENDING', SUCCEEDED = 'SUCCEEDED', FAILED = 'FAILED', DISABLED = 'DISABLED', VOIDED = 'VOIDED', REFUNDED = 'REFUNDED', } export type RefundPaymentResponse = { refundId: string } export type GetRefundResponse = { amount: number chargeId: string createdAt: string currency: CurrencyCode failureCode: string merchantId: string referenceId: string refundId: string refundReason: string status: BeamRefundStatus transactionTime: string updatedAt: string } export enum ChargeSource { PAYMENT_LINK = 'PAYMENT_LINK', STORE_LINK = 'STORE_LINK', QR_PROMPT_PAY_LINK = 'QR_PROMPT_PAY_LINK', API = 'API', BOLT = 'BOLT', } export enum feeStrategy { RATE = 'RATE', MINIMUM_AMOUNT = 'MINIMUM_AMOUNT', } export enum BeamTransactionsType { PENDING = 'PENDING', SUCCEEDED = 'SUCCEEDED', FAILED = 'FAILED', DISABLED = 'DISABLED', VOIDED = 'VOIDED', REFUNDED = 'REFUNDED', } export type ListTransactionsResponse = { data: { chargeSource: ChargeSource createdAt: string currency: CurrencyCode feeAmount: number feeStrategy: feeStrategy grossAmount: number merchantId: string netAmount: number referenceId: string sourceId: string transactionId: string transactionTime: string transactionType: BeamTransactionsType vatAmount: number }[] totalCount: number } export type SuccessfulTransactionsResponse = { chargeSource: ChargeSource createdAt: string currency: CurrencyCode feeAmount: number feeStrategy: feeStrategy grossAmount: number merchantId: string netAmount: number referenceId: string sourceId: string transactionId: string transactionTime: string transactionType: BeamTransactionsType vatAmount: number } export type CreateChargePaymentArgs = { amount: number currency: CurrencyCode customer?: { deliveryAddress?: { address?: { city?: string country?: string postCode?: string streetAddress?: string } contactName?: string phone?: { countryCode: string number: string } } email?: string primaryPhoneNumber?: { countryCode: string number: string } } paymentMethod: { alipay?: {} bangkokBankApp?: {} card?: { cardHolderName: string expiryMonth: number expiryYear: number pan: string securityCode?: string } cardInstallments?: { cardHolderName: string expiryMonth: number expiryYear: number installmentPeriod: 3 | 4 | 6 | 10 pan: string securityCode?: string } cardToken?: { cardTokenId: string securityCode: string } cardTokenInstallments?: { cardTokenId: string installmentPeriod: 3 | 4 | 6 | 10 securityCode: string } kPlus?: {} krungsriApp?: {} linePay?: {} paymentMethodType: PaymentMethods qrPromptPay?: { expiresAt?: string } scbEasy?: {} shopeePay?: {} trueMoney?: {} weChatPay?: {} } referenceId?: string returnUrl?: string skip3dsFlow?: boolean } export enum ActionRequired { NONE = 'NONE', REDIRECT = 'REDIRECT', 'ENCODE_IMAGE' = 'ENCODE_IMAGE', } export type CreateChargePaymentResponse = { actionRequired: ActionRequired chargeId: string encodedImage?: { expiry: string imageBase64Encoded: string rawData: string } paymentMethodType: PaymentMethods redirect?: { redirectUrl: string } } export enum FailureCode { CH_PROCESSING_FAILED = 'CH_PROCESSING_FAILED', CH_INSUFFICIENT_FUNDS = 'CH_INSUFFICIENT_FUNDS', CH_AUTHENTICATION_FAILED = 'CH_AUTHENTICATION_FAILED', } export enum BeamChargeStatus { PENDING = 'PENDING', SUCCEEDED = 'SUCCEEDED', FAILED = 'FAILED', } export type GetChargePaymentResponse = { amount: number chargeId: string createdAt: string currency: CurrencyCode customer?: { deliveryAddress: { address: { city: string country: string postCode: string streetAddress: string } contactName: string phone: { countryCode: string number: string } } email: string primaryPhone: { countryCode: string number: string } } failureCode: FailureCode merchantId: string paymentMethod: { alipay?: {} bangkokBankApp?: {} card?: { brand: string countryAlpha2: string last4: string } cardInstallments?: { brand: string countryAlpha2: string installmentPeriod: 3 | 4 | 6 | 10 last4: string } kPlus?: {} krungsriApp?: {} krungthaiNext?: {} linePay?: {} make?: {} paymentMethodType: PaymentMethods qrPromptPay?: {} scbEasy?: {} shopeePay?: {} trueMoney?: {} weChatPay?: {} } referenceId: string source: ChargeSource sourceId: string status: BeamChargeStatus transactionTime: string updatedAt: string } export type CreateBoltConnectionResponse = { createdAt: string deviceId: string id: string merchantId: string } export type DeleteBoltConnectionResponse = { code: number message: string error?: { errorCode: string; errorMessage: string } } export type GetBoltConnectionResponse = { createdAt: string deviceId: string id: string merchantId: string } export enum BoltIssuerGroup { BangkokBank = 'BangkokBank', CIMBThaiBank = 'CIMBThaiBank', KasikornBank = 'KasikornBank', KrungsriBank = 'KrungsriBank', KrungsriFirstChoice = 'KrungsriFirstChoice', KrungthaiBank = 'KrungthaiBank', SiamCommercialBank = 'SiamCommercialBank', TMBThanachartBank = 'TMBThanachartBank', UnitedOverseasBank = 'UnitedOverseasBank', Ungrouped = 'Ungrouped', Unknown = 'Unknown', } export enum BoltStatus { ACTIVE = 'ACTIVE', CANCELED = 'CANCELED', EXPIRED = 'EXPIRED', } export type CreateBoltIntentArgs = { amount: number boltConnectionId?: string currency: CurrencyCode expiryDurationInSec: number internalNote?: string paymentMethod: { alipay?: {} card?: {} cardInstallments?: { installmentPeriod: 3 | 4 | 6 | 10 issuerGroup: BoltIssuerGroup } linePay?: {} paymentMethodType: PaymentMethods qrPromptPay?: {} shopeePay?: {} trueMoney?: {} weChatPay?: {} } referenceId: string } export type CreateBoltIntentResponse = { amount: number boltConnectionId: string createdAt: string createdBy: string currency: CurrencyCode expiresAt: string id: string internalNote: string merchant: { logoUrl: string merchantId: string name: string } paymentMethod: { alipay: {} card: {} cardInstallments: { installmentPeriod: 3 | 4 | 6 | 10 issuerGroup: BoltIssuerGroup } linePay: {} paymentMethodType: PaymentMethods qrPromptPay: {} shopeePay: {} trueMoney: {} weChatPay: {} } referenceId: string status: BoltStatus updatedAt: string updatedBy: string } export type CancelBoltIntentResponse = { code: number error?: { errorCode: string errorMessage: string } message: string } export type ChargeSuccessWebhook = { chargeId: string merchantId: string referenceId: string status: BeamTransactionsType currency: CurrencyCode amount: number source: ChargeSource sourceId: string transactionTime: string paymentMethod: { paymentMethodType: PaymentMethods card: { last4: string brand: string countryAlpha2: string } cardInstallments: string | null cardNetworkToken: string | null qrPromptPay: string | null alipay: string | null weChatPay: string | null trueMoney: string | null linePay: string | null shopeePay: string | null make: string | null bangkokBankApp: string | null kPlus: string | null scbEasy: string | null krungsriApp: string | null krungthaiNext: string | null } failureCode: FailureCode customer: { primaryPhone: { countryCode: string number: string } email: string deliveryAddress: { contactName: string phone: { countryCode: string number: string } address: { streetAddress: string city: string country: string postCode: string } } } createdAt: string updatedAt: string } export type PaymentLinkPaidWebhook = { paymentLinkId: string merchantId: string url: string status: 'PAID' order: { netAmount: number currency: CurrencyCode description: string internalNote: string referenceId: string orderItems: { description: string imageUrl: string itemName: string price: number productId: string quantity: number sku: string }[] } linkSettings: { buyNowPayLater: { isEnabled: boolean } card: { isEnabled: boolean } cardInstallments: { installments3m: { isEnabled: boolean } installments4m: { isEnabled: boolean } installments6m: { isEnabled: boolean } installments10m: { isEnabled: boolean } } qrPromptPay: { isEnabled: boolean } eWallets: { isEnabled: boolean } mobileBanking: { isEnabled: boolean } } collectDeliveryAddress: boolean collectPhoneNumber: boolean redirectUrl: string expiresAt: string feeType: BeamFeeType }