/** * PagarmeApiSDKLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { array, dict, lazy, number, object, optional, Schema, string, } from '../schema'; import { CreateBankTransferPaymentRequest, createBankTransferPaymentRequestSchema, } from './createBankTransferPaymentRequest'; import { CreateBoletoPaymentRequest, createBoletoPaymentRequestSchema, } from './createBoletoPaymentRequest'; import { CreateCashPaymentRequest, createCashPaymentRequestSchema, } from './createCashPaymentRequest'; import { CreateCheckoutPaymentRequest, createCheckoutPaymentRequestSchema, } from './createCheckoutPaymentRequest'; import { CreateCreditCardPaymentRequest, createCreditCardPaymentRequestSchema, } from './createCreditCardPaymentRequest'; import { CreateCustomerRequest, createCustomerRequestSchema, } from './createCustomerRequest'; import { CreateDebitCardPaymentRequest, createDebitCardPaymentRequestSchema, } from './createDebitCardPaymentRequest'; import { CreatePixPaymentRequest, createPixPaymentRequestSchema, } from './createPixPaymentRequest'; import { CreatePrivateLabelPaymentRequest, createPrivateLabelPaymentRequestSchema, } from './createPrivateLabelPaymentRequest'; import { CreateSplitRequest, createSplitRequestSchema, } from './createSplitRequest'; import { CreateVoucherPaymentRequest, createVoucherPaymentRequestSchema, } from './createVoucherPaymentRequest'; /** Payment data */ export interface CreatePaymentRequest { /** Payment method */ paymentMethod: string; /** Settings for credit card payment */ creditCard?: CreateCreditCardPaymentRequest; /** Settings for debit card payment */ debitCard?: CreateDebitCardPaymentRequest; /** Settings for boleto payment */ boleto?: CreateBoletoPaymentRequest; /** Currency. Must be informed using 3 characters */ currency?: string; /** Settings for voucher payment */ voucher?: CreateVoucherPaymentRequest; /** Splits */ split?: CreateSplitRequest[]; /** Settings for bank transfer payment */ bankTransfer?: CreateBankTransferPaymentRequest; /** Gateway affiliation code */ gatewayAffiliationId?: string; /** The amount of the payment, in cents */ amount?: number; /** Settings for checkout payment */ checkout?: CreateCheckoutPaymentRequest; /** Customer Id */ customerId?: string; /** Customer */ customer?: CreateCustomerRequest; /** Metadata */ metadata?: Record; /** Settings for cash payment */ cash?: CreateCashPaymentRequest; /** Settings for private label payment */ privateLabel?: CreatePrivateLabelPaymentRequest; /** Settings for pix payment */ pix?: CreatePixPaymentRequest; } export const createPaymentRequestSchema: Schema = object({ paymentMethod: ['payment_method', string()], creditCard: [ 'credit_card', optional(lazy(() => createCreditCardPaymentRequestSchema)), ], debitCard: [ 'debit_card', optional(lazy(() => createDebitCardPaymentRequestSchema)), ], boleto: ['boleto', optional(lazy(() => createBoletoPaymentRequestSchema))], currency: ['currency', optional(string())], voucher: ['voucher', optional(lazy(() => createVoucherPaymentRequestSchema))], split: ['split', optional(array(lazy(() => createSplitRequestSchema)))], bankTransfer: [ 'bank_transfer', optional(lazy(() => createBankTransferPaymentRequestSchema)), ], gatewayAffiliationId: ['gateway_affiliation_id', optional(string())], amount: ['amount', optional(number())], checkout: [ 'checkout', optional(lazy(() => createCheckoutPaymentRequestSchema)), ], customerId: ['customer_id', optional(string())], customer: ['customer', optional(lazy(() => createCustomerRequestSchema))], metadata: ['metadata', optional(dict(string()))], cash: ['cash', optional(lazy(() => createCashPaymentRequestSchema))], privateLabel: [ 'private_label', optional(lazy(() => createPrivateLabelPaymentRequestSchema)), ], pix: ['pix', optional(lazy(() => createPixPaymentRequestSchema))], });