/** * PayPal Server SDKLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { array, lazy, object, optional, Schema, string } from '../schema.js'; import { AuthorizationStatus, authorizationStatusSchema, } from './authorizationStatus.js'; import { AuthorizationStatusDetails, authorizationStatusDetailsSchema, } from './authorizationStatusDetails.js'; import { LinkDescription, linkDescriptionSchema } from './linkDescription.js'; import { Money, moneySchema } from './money.js'; import { NetworkTransaction, networkTransactionSchema, } from './networkTransaction.js'; import { PayeeBase, payeeBaseSchema } from './payeeBase.js'; import { PaymentSupplementaryData, paymentSupplementaryDataSchema, } from './paymentSupplementaryData.js'; import { SellerProtection, sellerProtectionSchema, } from './sellerProtection.js'; /** The authorized payment transaction. */ export interface PaymentAuthorization { /** The status for the authorized payment. */ status?: AuthorizationStatus; /** The details of the authorized payment status. */ statusDetails?: AuthorizationStatusDetails; /** The PayPal-generated ID for the authorized payment. */ id?: string; /** The currency and amount for a financial transaction, such as a balance or payment due. */ amount?: Money; /** The API caller-provided external invoice number for this order. Appears in both the payer's transaction history and the emails that the payer receives. */ invoiceId?: string; /** The API caller-provided external ID. Used to reconcile API caller-initiated transactions with PayPal transactions. Appears in transaction and settlement reports. */ customId?: string; /** Reference values used by the card network to identify a transaction. */ networkTransactionReference?: NetworkTransaction; /** The level of protection offered as defined by [PayPal Seller Protection for Merchants](https://www.paypal.com/us/webapps/mpp/security/seller-protection). */ sellerProtection?: SellerProtection; /** The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional. Note: The regular expression provides guidance but does not reject all invalid dates. */ expirationTime?: string; /** An array of related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links). */ links?: LinkDescription[]; /** The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional. Note: The regular expression provides guidance but does not reject all invalid dates. */ createTime?: string; /** The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional. Note: The regular expression provides guidance but does not reject all invalid dates. */ updateTime?: string; /** The supplementary data. */ supplementaryData?: PaymentSupplementaryData; /** The details for the merchant who receives the funds and fulfills the order. The merchant is also known as the payee. */ payee?: PayeeBase; } export const paymentAuthorizationSchema: Schema = lazy( () => object({ status: ['status', optional(authorizationStatusSchema)], statusDetails: [ 'status_details', optional(authorizationStatusDetailsSchema), ], id: ['id', optional(string())], amount: ['amount', optional(moneySchema)], invoiceId: ['invoice_id', optional(string())], customId: ['custom_id', optional(string())], networkTransactionReference: [ 'network_transaction_reference', optional(networkTransactionSchema), ], sellerProtection: ['seller_protection', optional(sellerProtectionSchema)], expirationTime: ['expiration_time', optional(string())], links: ['links', optional(array(linkDescriptionSchema))], createTime: ['create_time', optional(string())], updateTime: ['update_time', optional(string())], supplementaryData: [ 'supplementary_data', optional(paymentSupplementaryDataSchema), ], payee: ['payee', optional(payeeBaseSchema)], }) );