openapi: 3.1.0 info: title: API Reference authentication refund API version: 1.0.0 servers: - url: https://api-sandbox.coinflow.cash/api description: https://api-sandbox.coinflow.cash/api tags: - name: refund paths: /refunds: get: operationId: get-refunds summary: Get Refunds tags: - refund parameters: - name: since in: query required: false schema: type: string - name: until in: query required: false schema: type: string - name: status in: query required: false schema: type: string - name: source in: query required: false schema: type: string - name: method in: query required: false schema: type: string - name: merchantId in: query required: false schema: type: string - name: search in: query description: Payment ID or User ID / Customer ID required: false schema: type: string - name: Authorization in: header required: true schema: type: string responses: '200': description: Ok content: application/json: schema: type: array items: $ref: '#/components/schemas/RefundInfo' /refunds/{refundId}/retry: post: operationId: retry-refund summary: Retry a Failed Refund tags: - refund parameters: - name: refundId in: path required: true schema: type: string - name: Authorization in: header required: true schema: type: string responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/Refund_RetryRefund_Response_200' /refunds/payment/{paymentId}/all: get: operationId: get-refunds-via-payment-id summary: View All Refunds for Payment tags: - refund parameters: - name: paymentId in: path required: true schema: type: string - name: Authorization in: header required: true schema: type: string responses: '200': description: Ok content: application/json: schema: type: array items: $ref: '#/components/schemas/IRefund' /refunds/payment/{paymentId}: get: operationId: get-refund-via-payment-id summary: View Refund Information for Payment tags: - refund parameters: - name: paymentId in: path required: true schema: type: string - name: Authorization in: header required: true schema: type: string responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/Refund_GetRefundViaPaymentId_Response_200' components: schemas: Blockchain.ETH: type: string enum: - eth title: Blockchain.ETH IPaymentMongooseTypesObjectIdDelayedSettlement: type: object properties: disbursedAt: type: string format: date-time isDisbursed: type: boolean days: type: number format: double scheduledDate: type: string format: date-time isScheduled: type: boolean required: - isDisbursed - days - scheduledDate - isScheduled title: IPaymentMongooseTypesObjectIdDelayedSettlement Blockchain.STELLAR: type: string enum: - stellar title: Blockchain.STELLAR SettlementLocations: type: string enum: - circle - brale - paper - brale_youpay - bastion title: SettlementLocations ApplePayIntegratorRegistration: type: object properties: domainNames: type: array items: type: string partnerMerchantName: type: string partnerMerchantValidationURI: type: string partnerInternalMerchantIdentifier: type: string required: - domainNames - partnerMerchantName - partnerMerchantValidationURI - partnerInternalMerchantIdentifier title: ApplePayIntegratorRegistration NameCustomerInfo: type: object properties: verificationId: type: string displayName: type: string address: type: string city: type: string state: type: string zip: type: string country: type: string ip: type: string lat: type: string lng: type: string dob: type: string description: Date of birth in YYYY-MM-DD format email: type: string name: type: string title: NameCustomerInfo IVenmoPaymentInfo: type: object properties: status: $ref: '#/components/schemas/VenmoPaymentStatus' processor: $ref: '#/components/schemas/VenmoProcessor' token: type: string authOnly: type: boolean transaction: type: string capturePending: type: boolean sandboxSimulations: $ref: '#/components/schemas/IVenmoPaymentInfoSandboxSimulations' required: - status - processor - token title: IVenmoPaymentInfo CrbMerchantSettings: type: object properties: customerId: type: string cifNumber: type: string subledgerAccountNumber: type: string environment: $ref: '#/components/schemas/CrbEnvironment' required: - customerId description: 'The merchant''s CRB banking identity. CRB is onboarded manually in CRB''s dashboard — these values are pasted into our merchant dashboard and verified live against CRB before being persisted.' title: CrbMerchantSettings IMerchantUser: type: object properties: email: type: string password: type: string scope: $ref: '#/components/schemas/MerchantScope' secret: type: string resetNonce: type: string resetNonceUsed: type: boolean ssoProvider: $ref: '#/components/schemas/SsoProvider' ssoId: type: string required: - email - scope title: IMerchantUser ICustomerStringBlockConfigOverride: type: object properties: maxDistinctTokensPer30Days: type: number format: double description: Per-customer overrides of merchant `blockConfig`. Only honored when they raise the effective limit. title: ICustomerStringBlockConfigOverride PayoutProviderOption: type: string enum: - aptpay - coinfx - checkbook - BRAID - brale - mock title: PayoutProviderOption VenmoPaymentStatus: type: string enum: - INITIATED - AUTHORIZED - DEPOSITED - SETTLED - REFUNDED - FAILED - CHARGEBACK - CHARGEBACK_LOST - CHARGEBACK_WON - VOIDED title: VenmoPaymentStatus IMerchantStringRiskControls: type: object properties: topup: $ref: '#/components/schemas/TopupRiskControls' title: IMerchantStringRiskControls Blockchain.ARBITRUM: type: string enum: - arbitrum title: Blockchain.ARBITRUM ApaPaymentStatus: type: string enum: - INITIATED - APPROVED - DEPOSITED - SETTLED - FAILED - REFUNDED title: ApaPaymentStatus EftPayoutProvider: type: string enum: - checkbook - aptpay - mock title: EftPayoutProvider OverrideMethod.CustomerOverride: type: string enum: - customer_override title: OverrideMethod.CustomerOverride CustomWithdrawFeesConfig: type: object properties: asap: $ref: '#/components/schemas/CustomWithdrawFeeValue' same_day: $ref: '#/components/schemas/CustomWithdrawFeeValue' standard: $ref: '#/components/schemas/CustomWithdrawFeeValue' card: $ref: '#/components/schemas/CustomWithdrawFeeValue' iban: $ref: '#/components/schemas/CustomWithdrawFeeValue' pix: $ref: '#/components/schemas/CustomWithdrawFeeValue' eft: $ref: '#/components/schemas/CustomWithdrawFeeValue' venmo: $ref: '#/components/schemas/CustomWithdrawFeeValue' paypal: $ref: '#/components/schemas/CustomWithdrawFeeValue' wire: $ref: '#/components/schemas/CustomWithdrawFeeValue' interac: $ref: '#/components/schemas/CustomWithdrawFeeValue' global: $ref: '#/components/schemas/CustomWithdrawFeeValue' lineItemLabel: type: string isBundled: type: boolean required: - global - lineItemLabel - isBundled description: Make all properties in T optional title: CustomWithdrawFeesConfig BlockedLevel: type: string enum: - Unverified - Suspended title: BlockedLevel ReserveStatus: type: string enum: - Disabled - Active - SweepFixed title: ReserveStatus MerchantRfiRef: type: object properties: name: type: string status: $ref: '#/components/schemas/RfiStatus' url: type: string assignmentFormId: type: string required: - name - status - url title: MerchantRfiRef ISubscriptionMongooseTypesObjectIdCustomer: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/ICustomer_mongoose.Types.ObjectId_' title: ISubscriptionMongooseTypesObjectIdCustomer RefundStatus: type: string enum: - Pending - Invoiced - Settled - Failed title: RefundStatus ACHSettings: type: object properties: processor: $ref: '#/components/schemas/AchProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' maxAmount: $ref: '#/components/schemas/Cents' nameMatchThreshold: type: number format: double requireKycBeforePurchase: type: boolean withdrawNameMatchThreshold: type: number format: double allowDelayedTransactions: type: boolean customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean instantSettle: type: boolean minFee: $ref: '#/components/schemas/Cents' maxFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double fixedFee: $ref: '#/components/schemas/Cents' settlementDays: type: number format: double refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - allowDelayedTransactions - customerEmailNotifications - merchantEmailNotifications - instantSettle title: ACHSettings IPayment_mongoose.Types.ObjectId_: type: object properties: _id: $ref: '#/components/schemas/mongoose.Types.ObjectId' paymentId: type: string paymentIntentId: type: string totals: $ref: '#/components/schemas/TotalsResponse' customer: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdCustomer' merchant: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdMerchant' chargebackProtectionDecision: $ref: '#/components/schemas/ChargebackProtectionDecision' liabilityOwner: $ref: '#/components/schemas/LiabilityOwner' error: type: string signature: type: string webhookInfo: $ref: '#/components/schemas/AnyObject' createdAt: type: string format: date-time velocityDate: type: string format: date-time description: 'Date when velocity check was done and used to bucket payments into velocity days Should match when a velocity hold was created if one was' cardInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdCardInfo' bankTransferInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdBankTransferInfo' pixInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdPixInfo' ibanInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdIbanInfo' wireInfo: $ref: '#/components/schemas/IWirePaymentInfo' cashAppInfo: $ref: '#/components/schemas/ICashAppPaymentInfo' paypalInfo: $ref: '#/components/schemas/IPayPalPaymentInfo' venmoInfo: $ref: '#/components/schemas/IVenmoPaymentInfo' apaInfo: $ref: '#/components/schemas/IApaPaymentInfo' interacInfo: $ref: '#/components/schemas/IInteracPaymentInfo' cryptoInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdCryptoInfo' exchangeInfo: $ref: '#/components/schemas/ExchangeInfo' subscription: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdSubscription' settlementType: $ref: '#/components/schemas/SettlementType' blockchain: $ref: '#/components/schemas/OperationalBlockchain' wallet: type: string redemptionCheck: type: boolean marketplaceInfo: $ref: '#/components/schemas/MarketplaceInfo' destination: type: string destinationSettlementToken: type: string overrideAuditLog: $ref: '#/components/schemas/OverrideAuditLog' customerUsdcTransferData: $ref: '#/components/schemas/CustomerUsdcTransferData' customerUsdcTransferDataV2: $ref: '#/components/schemas/CustomerUsdcTransferDataV2' delayedSettlement: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdDelayedSettlement' referrer: type: string alertStatus: $ref: '#/components/schemas/KytAlertStatus' refundInfo: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdRefundInfo' userLocation: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdUserLocation' description: 'Browser-captured geolocation at the time of the request, when the caller supplied one. Stored independently of payment method so the merchant dashboard can render a map for any purchase type. `resolved*` fields are populated when the GEOLOCATION enforcement step happened to reverse- geocode the coordinates — they''re a free piggyback on the lock cache, not a guarantee.' entityTag: $ref: '#/components/schemas/EntityTag' vendorTransfer: $ref: '#/components/schemas/IPaymentMongooseTypesObjectIdVendorTransfer' feesInvoicedPeriod: type: string vendorInfo: $ref: '#/components/schemas/Record_string.string_' required: - _id - paymentId - totals - customer - merchant - chargebackProtectionDecision - createdAt title: IPayment_mongoose.Types.ObjectId_ ICustomerStringMerchant: oneOf: - type: string - $ref: '#/components/schemas/IMerchant_string_' title: ICustomerStringMerchant RainAutoTopUpCadence: type: string enum: - transaction - hour - day - week - month title: RainAutoTopUpCadence CustomerUsdcTransferDataV2: type: object properties: from: type: string to: type: string value: type: string validAfter: $ref: '#/components/schemas/CustomerUsdcTransferDataV2ValidAfter' validBefore: $ref: '#/components/schemas/CustomerUsdcTransferDataV2ValidBefore' nonce: type: string signature: type: string required: - from - to - value - validAfter - validBefore - nonce - signature description: 'V2 of CustomerUsdcTransferData — replaces the (v, r, s) triple with a single `signature` bytes string, matching USDC FiatTokenV2_2''s bytes-overload `transferWithAuthorization`. All other fields unchanged from V1.' title: CustomerUsdcTransferDataV2 IPaymentMongooseTypesObjectIdRefundInfo: type: object properties: count: type: number format: double refundedAt: type: string format: date-time amount: $ref: '#/components/schemas/CurrencyCents' required: - count - refundedAt - amount title: IPaymentMongooseTypesObjectIdRefundInfo IPaymentMongooseTypesObjectIdPixInfo: type: object properties: reason: type: string processed: type: string format: date-time transaction: type: string tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' expiration: type: string format: date-time processor: $ref: '#/components/schemas/PixProcessor' status: $ref: '#/components/schemas/PixPaymentStatus' required: - expiration - processor - status title: IPaymentMongooseTypesObjectIdPixInfo HighnoteMerchantSettings: type: object properties: businessId: type: string primaryAuthorizedPersonId: type: string description: 'Highnote id of the primary business person, captured from the createBusiness response — onboardBusiness attributes its consent to it.' merchantAcceptorId: type: string applicationSubmittedAt: type: string format: date-time description: 'Set when onboardBusiness (the ProductApplication submission) succeeded. A re-run while underwriting is still Pending must not re-submit the application — Highnote rejects duplicates, which would overwrite a healthy Pending status with an error.' required: - businessId title: HighnoteMerchantSettings TokenizationProviderOption: type: string enum: - bt - tokenex title: TokenizationProviderOption NuveiV1MerchantArgs: type: object properties: merchantId: type: string merchantSiteId: type: string conversionAffiliateCountryCode: type: string required: - merchantId - merchantSiteId title: NuveiV1MerchantArgs RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaMerchant: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IMerchant_mongoose.Types.ObjectId_' title: RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaMerchant Partial_WithdrawLimit_: type: object properties: singleTxLimit: $ref: '#/components/schemas/Cents' dailyLimit: $ref: '#/components/schemas/Cents' monthlyLimit: $ref: '#/components/schemas/Cents' description: Make all properties in T optional title: Partial_WithdrawLimit_ InterchangeSettings: type: object properties: useType: type: boolean useRegion: type: boolean useScheme: type: boolean useBrand: type: boolean useDurbin: type: boolean required: - useType - useRegion - useScheme - useBrand - useDurbin title: InterchangeSettings IRefundPayment: oneOf: - type: string - $ref: '#/components/schemas/IPayment_string_' title: IRefundPayment VerificationVendor: type: string enum: - middesk - sumsub - sumsub_docv - persona - persona_kyb title: VerificationVendor InteracPaymentStatus: type: string enum: - INITIATED - DEPOSITED - SETTLED - FAILED - EXPIRED - REFUNDED title: InteracPaymentStatus Record_any.any_: type: object properties: {} description: Construct a type with a set of properties K of type T title: Record_any.any_ InteracPayoutProvider: type: string enum: - checkbook - mock - aptpay title: InteracPayoutProvider IMerchantStringWithdrawFeePayment: type: object properties: paysGasFees: $ref: '#/components/schemas/Partial_Record_Blockchain.boolean__' bundleDelegatedPayoutFees: type: boolean paysSwapFees: type: boolean paysWithdrawFees: type: boolean title: IMerchantStringWithdrawFeePayment Blockchain.MONAD: type: string enum: - monad title: Blockchain.MONAD ISubscriptionStringMerchant: oneOf: - type: string - $ref: '#/components/schemas/IMerchant_string_' title: ISubscriptionStringMerchant CryptoTiers: type: string enum: - stables - majors - volatile title: CryptoTiers VerificationStatus: type: string enum: - pending - partial-approval - approved - rejected - expired title: VerificationStatus Blockchain: type: string enum: - solana - eth - polygon - base - user - arbitrum - stellar - monad - tempo title: Blockchain VelocityLimitMode: type: string enum: - default - dynamic - custom - no_limit title: VelocityLimitMode WebhookVersion: type: string enum: - Legacy - Version 1 - Version 2 - Version 3 title: WebhookVersion SubscriptionInterval: type: string enum: - Daily - Weekly - Monthly - Yearly title: SubscriptionInterval OverrideMethod: type: string enum: - customer_override - ignored_rejection - pending_review - inline_override title: OverrideMethod IPaymentStringSubscription: oneOf: - type: string - $ref: '#/components/schemas/ISubscription_string_' title: IPaymentStringSubscription ApaCredentialType: type: string enum: - PHONE - EMAIL - PAN title: ApaCredentialType BinInfo: type: object properties: cardType: $ref: '#/components/schemas/Funding' cardName: type: string cardSegment: $ref: '#/components/schemas/Segment' country: $ref: '#/components/schemas/BinInfoCountry' bankName: type: string required: - cardType - cardName - cardSegment - country - bankName title: BinInfo IMerchantMongooseTypesObjectIdWalletsStellar: type: object properties: usdcPayer: type: string required: - usdcPayer title: IMerchantMongooseTypesObjectIdWalletsStellar RainAccountDetails: type: object properties: beneficiaryName: type: string beneficiaryAddress: type: string beneficiaryBankName: type: string beneficiaryBankAddress: type: string accountNumber: type: string routingNumber: type: string required: - beneficiaryName - beneficiaryAddress - accountNumber - routingNumber title: RainAccountDetails WithdrawSort: type: string enum: - DEFAULT - CHEAPEST - ORDERED - LIMIT_CONSUMPTION title: WithdrawSort Cents: type: object properties: cents: type: integer required: - cents title: Cents RainAutoTopUpSettings: type: object properties: enabled: type: boolean targetUsdc: type: number format: double cadence: $ref: '#/components/schemas/RainAutoTopUpCadence' lastRunAt: type: string format: date-time updatedAt: type: string format: date-time updatedBy: type: string required: - enabled - targetUsdc - cadence title: RainAutoTopUpSettings Record_string.any_: type: object properties: {} description: Construct a type with a set of properties K of type T title: Record_string.any_ InteracSettings: type: object properties: processor: $ref: '#/components/schemas/InteracProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean required: - customerEmailNotifications - merchantEmailNotifications title: InteracSettings CurrencyCents: type: object properties: cents: type: integer currency: $ref: '#/components/schemas/Currency' required: - cents - currency title: CurrencyCents RefundSource: type: string enum: - Credits - Usdc - Settlement - None title: RefundSource ProgramWhitelistStatus: type: string enum: - approved - pending - rejected title: ProgramWhitelistStatus AptpayCanadaMerchantSettings: type: object properties: id: type: string required: - id title: AptpayCanadaMerchantSettings AftSettings: type: object properties: enabled: type: boolean type: $ref: '#/components/schemas/AftType' purpose: $ref: '#/components/schemas/AftPurpose' merchantA2AMastercardAftRecipient: $ref: '#/components/schemas/AftSettingsMerchantA2AMastercardAftRecipient' required: - enabled - type - purpose title: AftSettings FeePayerMode: type: string enum: - user - merchant - invoice title: FeePayerMode RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaPayment: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IPayment_mongoose.Types.ObjectId_' title: RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaPayment IMerchantStringApiKeysItems: type: object properties: scope: $ref: '#/components/schemas/MerchantScope' ips: type: array items: type: string disabled: type: boolean privateUuid: type: string publicUuid: type: string required: - ips - privateUuid - publicUuid title: IMerchantStringApiKeysItems IMerchantMongooseTypesObjectIdApiKeysItems: type: object properties: scope: $ref: '#/components/schemas/MerchantScope' ips: type: array items: type: string disabled: type: boolean privateUuid: type: string publicUuid: type: string required: - ips - privateUuid - publicUuid title: IMerchantMongooseTypesObjectIdApiKeysItems IvySettings: type: object properties: gbpPayinAccountId: type: string eurAccountId: type: string required: - gbpPayinAccountId - eurAccountId title: IvySettings BlockingRuleScope: type: string enum: - WITHDRAWAL - CHECKOUT - GLOBAL title: BlockingRuleScope EditorType: type: string enum: - Coinflow - Merchant title: EditorType IbanPayoutProvider: type: string enum: - merge - mock - ivy title: IbanPayoutProvider IRefund: type: object properties: _id: type: string totals: $ref: '#/components/schemas/RefundTotals' customer: $ref: '#/components/schemas/IRefundCustomer' merchant: $ref: '#/components/schemas/IRefundMerchant' payment: $ref: '#/components/schemas/IRefundPayment' signature: type: string status: $ref: '#/components/schemas/RefundStatus' reimbursementStatus: $ref: '#/components/schemas/ReimbursementStatus' reimbursementId: type: string outstanding: $ref: '#/components/schemas/Cents' source: $ref: '#/components/schemas/RefundSource' method: $ref: '#/components/schemas/RefundMethod' provider: type: string invoicedAt: type: string format: date-time createdAt: type: string format: date-time updatedAt: type: string format: date-time reason: $ref: '#/components/schemas/RefundReason' refundedBy: $ref: '#/components/schemas/MerchantEditor' failureReason: type: string cryptoRefundInfo: $ref: '#/components/schemas/CryptoRefundInfo' walletDebitStatus: $ref: '#/components/schemas/WalletDebitStatus' walletDebitTxHash: type: string returnSignature: type: string required: - _id - totals - customer - merchant - payment - status - reimbursementStatus - outstanding - source - method - provider - createdAt - updatedAt title: IRefund LinkedBankAccount: type: object properties: routingNumber: type: string accountNumber: type: string accountType: $ref: '#/components/schemas/LinkedBankAccountAccountType' institutionName: type: string plaidAccessToken: type: string plaidAccountId: type: string required: - routingNumber - accountNumber - accountType - plaidAccessToken - plaidAccountId title: LinkedBankAccount CashAppSettings: type: object properties: processor: $ref: '#/components/schemas/CashAppProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean required: - customerEmailNotifications - merchantEmailNotifications title: CashAppSettings BinInfoCountry: oneOf: - type: string - $ref: '#/components/schemas/Country' title: BinInfoCountry WebhookSettings: type: object properties: webhookUrls: type: array items: type: string version: $ref: '#/components/schemas/WebhookVersion' subscriptions: type: array items: $ref: '#/components/schemas/WebhookEventType' disableAuthorizationHeader: type: boolean disableSubmerchantToParentWebhooks: type: boolean required: - webhookUrls - version - subscriptions title: WebhookSettings IWireProviderSettings: type: object properties: processor: $ref: '#/components/schemas/WireProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean minFee: $ref: '#/components/schemas/Cents' maxFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double fixedFee: $ref: '#/components/schemas/Cents' dailyLimit: $ref: '#/components/schemas/Cents' refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - customerEmailNotifications - merchantEmailNotifications title: IWireProviderSettings MerchantGoLiveChecklist: type: object properties: acceptedToS: type: boolean programWhitelistRequests: type: array items: $ref: '#/components/schemas/ProgramWhitelistRequest' rfis: type: array items: $ref: '#/components/schemas/MerchantRfiRef' onboardingFormSubmitted: type: boolean applicationSubmitted: type: boolean applicationSubmittedAt: type: string format: date-time lockIndustry: type: boolean title: MerchantGoLiveChecklist MerchantTheme: type: object properties: showCardIcon: type: boolean placeholderColor: type: string expirationPlaceholder: type: string cvvPlaceholder: type: string cardNumberPlaceholder: type: string fontWeight: type: string fontSize: type: string style: $ref: '#/components/schemas/MerchantStyle' font: type: string ctaColor: type: string textColorAction: type: string textColorAccent: type: string textColor: type: string backgroundAccent2: type: string backgroundAccent: type: string cardBackground: type: string background: type: string primary: type: string title: MerchantTheme BraidMerchantSettings: type: object properties: businessId: type: number format: double accountId: type: number format: double description: the Braid operating accountId accountNumber: type: string description: the Braid operating account number reserveAccountId: type: number format: double description: the Braid reserve accountId reserveAccountNumber: type: string description: the Braid reserve account number rollingAccountId: type: number format: double description: the Braid rolling accountId rollingAccountNumber: type: string description: the Braid rolling account number required: - businessId - accountId - accountNumber - reserveAccountId - reserveAccountNumber title: BraidMerchantSettings IMerchantStringFirstPartyPayoutOverrides: type: object properties: interacPayoutProvider: $ref: '#/components/schemas/InteracPayoutProvider' wirePayoutProvider: type: array items: $ref: '#/components/schemas/WirePayoutProvider' paypalPayoutProvider: $ref: '#/components/schemas/PayPalPayoutProvider' venmoPayoutProvider: $ref: '#/components/schemas/VenmoPayoutProvider' appleP2cPayoutProvider: $ref: '#/components/schemas/ApplePayPayoutProvider' globalP2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' p2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' eftPayoutProvider: $ref: '#/components/schemas/EftPayoutProvider' pixPayoutProvider: $ref: '#/components/schemas/PixPayoutProvider' rtpPayoutProvider: $ref: '#/components/schemas/RtpPayoutProvider' ibanPayoutProvider: $ref: '#/components/schemas/IbanPayoutProvider' bankPayoutProvider: type: array items: $ref: '#/components/schemas/PayoutProviderOption' title: IMerchantStringFirstPartyPayoutOverrides Blockchain.SOLANA: type: string enum: - solana title: Blockchain.SOLANA IMerchant_mongoose.Types.ObjectId_: type: object properties: _id: $ref: '#/components/schemas/mongoose.Types.ObjectId' merchantId: type: string verification: $ref: '#/components/schemas/Verification' brand: $ref: '#/components/schemas/MerchantBrandSettings' colors: $ref: '#/components/schemas/MerchantTheme' url: type: string withdrawFees: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWithdrawFees' customWithdrawFees: $ref: '#/components/schemas/CustomWithdrawFeesConfig' customPayInFees: $ref: '#/components/schemas/CustomPayInFeesConfig' wallets: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWallets' apiKey: type: string webhookValidationKey: type: string nmiWebhookValidationKey: type: string apiKeys: type: array items: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdApiKeysItems' kycType: $ref: '#/components/schemas/KycType' settlementToken: $ref: '#/components/schemas/StableCoin' settlementAddresses: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdSettlementAddresses' users: type: array items: $ref: '#/components/schemas/IMerchantUser' ubos: type: array items: $ref: '#/components/schemas/UboEntry' goLiveChecklist: $ref: '#/components/schemas/MerchantGoLiveChecklist' webhookSettings: $ref: '#/components/schemas/WebhookSettings' cardSettings: $ref: '#/components/schemas/CardSettings' achSettings: $ref: '#/components/schemas/ACHSettings' citconSettings: $ref: '#/components/schemas/CitconSettings' aptPayCanadaSettings: $ref: '#/components/schemas/AptPayCanadaSettings' wireSettings: $ref: '#/components/schemas/IWireProviderSettings' pixSettings: $ref: '#/components/schemas/PixSettings' ibanSettings: $ref: '#/components/schemas/IbanSettings' cryptoPayinSettings: $ref: '#/components/schemas/CryptoPayInSettings' passiveWithdrawSettings: $ref: '#/components/schemas/PassiveWithdrawSettings' cashAppSettings: $ref: '#/components/schemas/CashAppSettings' rainCompanyCards: $ref: '#/components/schemas/RainCompanyCardsSettings' paypalSettings: $ref: '#/components/schemas/PayPalSettings' venmoSettings: $ref: '#/components/schemas/VenmoSettings' apaSettings: $ref: '#/components/schemas/ApaSettings' verisoulSettings: $ref: '#/components/schemas/VerisoulSettings' blockConfig: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdBlockConfig' hideBranding: type: boolean onlyShowTotal: type: boolean skipSendWithdrawEmail: type: boolean sendInvoiceNotifications: type: boolean advancedAnalytics: type: boolean billingEmails: type: array items: type: string withdrawFeePayment: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWithdrawFeePayment' pushToCardEnabled: type: boolean requireAniCheck: type: boolean bankPayoutProvider: type: array items: $ref: '#/components/schemas/PayoutProviderOption' ibanPayoutProviders: type: array items: $ref: '#/components/schemas/IbanPayoutProvider' ibanPayoutProvider: $ref: '#/components/schemas/IbanPayoutProvider' rtpPayoutProviders: type: array items: $ref: '#/components/schemas/RtpPayoutProvider' rtpPayoutProvider: $ref: '#/components/schemas/RtpPayoutProvider' pixPayoutProviders: type: array items: $ref: '#/components/schemas/PixPayoutProvider' pixPayoutProvider: $ref: '#/components/schemas/PixPayoutProvider' eftPayoutProviders: type: array items: $ref: '#/components/schemas/EftPayoutProvider' eftPayoutProvider: $ref: '#/components/schemas/EftPayoutProvider' p2cPayoutProviders: type: array items: $ref: '#/components/schemas/CardPayoutProvider' p2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' globalP2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' appleP2cPayoutProvider: $ref: '#/components/schemas/ApplePayPayoutProvider' venmoPayoutProviders: type: array items: $ref: '#/components/schemas/VenmoPayoutProvider' venmoPayoutProvider: $ref: '#/components/schemas/VenmoPayoutProvider' paypalPayoutProviders: type: array items: $ref: '#/components/schemas/PayPalPayoutProvider' paypalPayoutProvider: $ref: '#/components/schemas/PayPalPayoutProvider' wirePayoutProvider: type: array items: $ref: '#/components/schemas/WirePayoutProvider' interacPayoutProviders: type: array items: $ref: '#/components/schemas/InteracPayoutProvider' interacPayoutProvider: $ref: '#/components/schemas/InteracPayoutProvider' interacPaymentProvider: $ref: '#/components/schemas/InteracProcessor' interacSettings: $ref: '#/components/schemas/InteracSettings' withdrawSorting: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawSort__' withdrawRules: type: array items: $ref: '#/components/schemas/mongoose.Types.ObjectId' firstPartyPayoutOverrides: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdFirstPartyPayoutOverrides' maxTransactionAmount: $ref: '#/components/schemas/Cents' minTransactionAmount: $ref: '#/components/schemas/Cents' refundBalanceLimit: $ref: '#/components/schemas/Cents' parent: type: string creditSeed: type: string withdrawSettlementLocation: $ref: '#/components/schemas/SettlementLocations' enforceJwt: type: boolean enforceCheckoutJwt: type: boolean externalVerificationLinks: type: boolean whitelistedAncestorUrls: type: array items: type: string banDuplicateAccounts: type: boolean fxFees: $ref: '#/components/schemas/Partial_Record_Currency.number__' blocked: $ref: '#/components/schemas/BlockedStatus' vendorSettings: $ref: '#/components/schemas/VendorSettings' generatedDescription: type: string bankSettlementOptions: $ref: '#/components/schemas/MerchantBankSettlementOptions' allowAttestedKyc: type: boolean attestedKycSsnNotRequired: type: boolean allowAccountSharing: type: boolean personaKycShareTokenTemplate: type: string delayedSettlementDays: type: number format: double description: 'Number of business days to delay stablecoin settlement after payment capture. Only applies to USDC settlements. 0 means no delay (immediate settlement). Maximum value is 5 days.' sendPresettleWebhooks: type: boolean velocitySettings: $ref: '#/components/schemas/VelocityControlSettings' interchangeFees: $ref: '#/components/schemas/InterchangeFees' enforceLivenessKyc: type: boolean canCreateBankAccounts: type: boolean checkbookSettings: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdCheckbookSettings' reserveSettings: $ref: '#/components/schemas/ReserveSettings' globalRateLimit: type: number format: double banProxiesForCheckoutEndpoints: type: boolean riskControls: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdRiskControls' acceptedToS: type: boolean ssoSettings: $ref: '#/components/schemas/MerchantSsoSettings' chargebackFeeCents: type: number format: double chargebackEmails: type: array items: type: string fraudEmails: type: array items: type: string linkedBankAccount: $ref: '#/components/schemas/LinkedBankAccount' customerDefaultOverrideLimit: $ref: '#/components/schemas/Cents' customerOverrideLimitCeiling: $ref: '#/components/schemas/Cents' customerDefaultExposureLimit: $ref: '#/components/schemas/Cents' dailyExposureLimit: $ref: '#/components/schemas/Cents' monthlyExposureLimit: $ref: '#/components/schemas/Cents' mcc: type: string processing: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdProcessing' required: - _id - merchantId - verification - withdrawFees - wallets - apiKey - apiKeys - kycType - settlementToken - users - ubos - goLiveChecklist - cardSettings - achSettings - wireSettings - pixSettings - ibanSettings - cryptoPayinSettings - cashAppSettings - paypalSettings - venmoSettings - apaSettings - hideBranding - onlyShowTotal - skipSendWithdrawEmail - sendInvoiceNotifications - advancedAnalytics - pushToCardEnabled - requireAniCheck - interacSettings - refundBalanceLimit - creditSeed - withdrawSettlementLocation - enforceJwt - delayedSettlementDays - interchangeFees title: IMerchant_mongoose.Types.ObjectId_ IBlockingRule: type: object properties: scope: $ref: '#/components/schemas/BlockingRuleScope' method: $ref: '#/components/schemas/BlockingRuleMethod' listMode: $ref: '#/components/schemas/BlockingRuleListMode' states: type: array items: $ref: '#/components/schemas/USState' countries: type: array items: $ref: '#/components/schemas/Country' required: - scope - method - states description: "A single geo-blocking rule on a merchant. Multiple rules of the same scope\nare OR-combined: any matching rule blocks the request. When both DENY and\nALLOW rules are configured, DENY rules are evaluated first — a matching\nDENY blocks the request even if the user is on a separate ALLOW list.\n\n`listMode` controls interpretation (defaults to `DENY`):\n- `DENY`: the listed countries/states are blocked.\n- `ALLOW`: ONLY the listed countries/states are permitted; everything else\n is blocked.\n\nA rule may specify `countries` (ISO 3166-1 alpha-2 codes), `states`\n(US state codes), or both.\n\n- `scope: GLOBAL` applies to BOTH withdrawal and checkout flows; only valid\n with `method: IP` (the only method that makes sense for both flows).\n- `method: KYC_ADDRESS` is only valid with `scope: WITHDRAWAL`.\n- `method: BILLING_ADDRESS` is only valid with `scope: CHECKOUT`.\n- `method: IP` is **strictly** fail-closed in both DENY and ALLOW modes:\n missing IP, failed lookup, or an unresolvable US state resolved from\n the IP rejects the withdrawal. Both the resolved country and the\n resolved state (US-only) are evaluated on every request against the\n rule's `countries` and `states` lists. Skipped on merchant-initiated\n payouts where no end-user IP exists (`merchantInitiated: true`).\n- `method: GEOLOCATION` is a **best-effort, optional** signal and only\n valid with `scope: WITHDRAWAL`. When the caller supplies a fresh,\n resolvable `userLocation`, the rule enforces strictly against the\n block list. When the signal is absent (browser permission denied,\n merchant did not send coords, stale capture, or reverse-geocode\n failure), enforcement is skipped — pair with an `IP` rule for hard\n real-time enforcement." title: IBlockingRule MpcWalletProvider: type: string enum: - metakeep description: 'The MPC provider Coinflow uses to custody managed settlement wallets. Single source of truth — the merchant type, the predicate, and the query filter all reference this so a new provider can''t silently pass one check but not another.' title: MpcWalletProvider IbanSettings: type: object properties: processor: $ref: '#/components/schemas/IbanProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - customerEmailNotifications - merchantEmailNotifications title: IbanSettings IbanPaymentStatus: type: string enum: - INITIATED - DEPOSITED - SETTLED - FAILED - EXPIRED - REFUNDED title: IbanPaymentStatus PortalBrand: type: string enum: - approvely - seamlesschex - coinflow - yourbrandhere - Plan2Play - tango - interlace - tapvia title: PortalBrand VendorSettings: type: object properties: aptPayIdentity: type: number format: double aptPayUSCoinflow: type: boolean braid: $ref: '#/components/schemas/BraidMerchantSettings' crb: $ref: '#/components/schemas/CrbMerchantSettings' highnote: $ref: '#/components/schemas/HighnoteMerchantSettings' ivy: $ref: '#/components/schemas/IvySettings' paypal: $ref: '#/components/schemas/PayPalVendorSettings' koard: $ref: '#/components/schemas/VendorSettingsKoard' title: VendorSettings CVVResponseCode: type: string enum: - M - N - P - S - U - X description: 'CVV (Card Verification Value) Response Codes These codes indicate the results of CVV verification checks' title: CVVResponseCode OverrideAuditLog: type: object properties: reason: $ref: '#/components/schemas/OverrideMethod' editor: type: string editorType: $ref: '#/components/schemas/EditorType' overriddenAt: type: string format: date-time ipAddress: type: string required: - reason title: OverrideAuditLog SplitNameCustomerInfo: type: object properties: verificationId: type: string displayName: type: string address: type: string city: type: string state: type: string zip: type: string country: type: string ip: type: string lat: type: string lng: type: string dob: type: string description: Date of birth in YYYY-MM-DD format email: type: string firstName: type: string lastName: type: string required: - firstName - lastName title: SplitNameCustomerInfo IPaymentMongooseTypesObjectIdCryptoInfo: type: object properties: tier: $ref: '#/components/schemas/CryptoTiers' paymentCurrency: type: string overpaymentAmount: type: string actualPaymentAmountUSD: type: string depositAddress: type: string refundAddress: type: string refundTransactionHash: type: string sessionId: type: string reason: type: string tokenLogoUrl: type: string blockchainLogoUrl: type: string tokenAmount: type: string token: type: string sponsoredTransactionHash: type: string originatingTransactionHash: type: string originatingWallet: type: string processed: type: string format: date-time transaction: type: string tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' status: $ref: '#/components/schemas/CryptoPaymentStatus' required: - status title: IPaymentMongooseTypesObjectIdCryptoInfo CustomPayInFeeValue: oneOf: - $ref: '#/components/schemas/CustomPayInFeeValue0' - $ref: '#/components/schemas/CustomPayInFeeValue1' title: CustomPayInFeeValue CitconSettingsFundPurpose: type: string enum: - goods - services - prizes - rebates - others title: CitconSettingsFundPurpose ISubscription_mongoose.Types.ObjectId_: type: object properties: _id: $ref: '#/components/schemas/mongoose.Types.ObjectId' customer: $ref: '#/components/schemas/ISubscriptionMongooseTypesObjectIdCustomer' merchant: $ref: '#/components/schemas/ISubscriptionMongooseTypesObjectIdMerchant' plan: $ref: '#/components/schemas/ISubscriptionMongooseTypesObjectIdPlan' cardProcessor: $ref: '#/components/schemas/PaymentProcessor' achProcessor: $ref: '#/components/schemas/AchProcessor' reference: type: string nextPaymentAt: type: string format: date-time status: $ref: '#/components/schemas/SubscriptionStatus' webhookInfo: $ref: '#/components/schemas/AnyObject' marketplaceInfo: $ref: '#/components/schemas/Pick_MarketplaceInfo.fixedFee-or-feePercentage_' createdAt: type: string format: date-time updatedAt: type: string format: date-time version: $ref: '#/components/schemas/SubscriptionVersion' required: - _id - customer - merchant - plan - reference - status - createdAt - updatedAt - version title: ISubscription_mongoose.Types.ObjectId_ IPaymentMongooseTypesObjectIdCustomer: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/ICustomer_mongoose.Types.ObjectId_' title: IPaymentMongooseTypesObjectIdCustomer ChargebackProtectionDecision: type: string enum: - approved - rejected - Not Reviewed - Not Enabled - Overridden - Pending Review title: ChargebackProtectionDecision IPaymentStringIbanInfo: type: object properties: reference: type: string failedAttempts: type: array items: $ref: '#/components/schemas/FailedIbanAttempt' accountHolder: type: string reason: type: string transactionId: type: string processed: type: string format: date-time tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' transaction: type: string expiration: type: string format: date-time token: type: string processor: $ref: '#/components/schemas/IbanProcessor' status: $ref: '#/components/schemas/IbanPaymentStatus' required: - expiration - token - processor - status title: IPaymentStringIbanInfo IMerchantMongooseTypesObjectIdSettlementAddressesRecipientAddressesItems: type: object properties: info: $ref: '#/components/schemas/Record_string.any_' createdAt: type: string format: date-time recipient: type: string required: - createdAt - recipient title: IMerchantMongooseTypesObjectIdSettlementAddressesRecipientAddressesItems Refund_RetryRefund_Response_200: type: object properties: jobId: $ref: '#/components/schemas/RefundsRefundIdRetryPostResponsesContentApplicationJsonSchemaJobId' required: - jobId title: Refund_RetryRefund_Response_200 IPayPalPaymentInfoSandboxSimulations: type: object properties: refundFailure: type: boolean captureFailure: type: boolean authorizationFailure: type: boolean title: IPayPalPaymentInfoSandboxSimulations CryptoRefundInfo: type: object properties: refundTransactionHash: type: string refundTransactionUrl: type: string refundAddress: type: string amountUSD: type: string tokenAmount: type: string paymentCurrency: type: string denominationType: $ref: '#/components/schemas/RefundDenominationType' required: - refundAddress - denominationType title: CryptoRefundInfo IMerchantMongooseTypesObjectIdWalletsSolana: type: object properties: usdcPayer: type: string feePayer: type: string required: - usdcPayer - feePayer title: IMerchantMongooseTypesObjectIdWalletsSolana IPaymentStringBankTransferInfo: type: object properties: reason: type: string token: type: string batchedAt: type: string format: date-time refundTransferId: type: string refundReview: type: boolean transaction: type: string processor: $ref: '#/components/schemas/AchProcessor' status: $ref: '#/components/schemas/AchPaymentStatus' required: - refundReview - processor - status title: IPaymentStringBankTransferInfo RtpPayoutProvider: type: string enum: - dwolla - mock - aptpay - aptpayRtp - checkbook - brale title: RtpPayoutProvider CustomerInfo: oneOf: - $ref: '#/components/schemas/SplitNameCustomerInfo' - $ref: '#/components/schemas/NameCustomerInfo' title: CustomerInfo Partial_Record_WithdrawSpeed.WithdrawSort__: type: object properties: asap: $ref: '#/components/schemas/WithdrawSort' same_day: $ref: '#/components/schemas/WithdrawSort' standard: $ref: '#/components/schemas/WithdrawSort' card: $ref: '#/components/schemas/WithdrawSort' iban: $ref: '#/components/schemas/WithdrawSort' pix: $ref: '#/components/schemas/WithdrawSort' eft: $ref: '#/components/schemas/WithdrawSort' venmo: $ref: '#/components/schemas/WithdrawSort' paypal: $ref: '#/components/schemas/WithdrawSort' wire: $ref: '#/components/schemas/WithdrawSort' interac: $ref: '#/components/schemas/WithdrawSort' description: Make all properties in T optional title: Partial_Record_WithdrawSpeed.WithdrawSort__ PassiveWithdrawSettings: type: object properties: enabled: type: boolean maxActiveAddresses: type: number format: double description: 'Cap on the number of simultaneously-active withdraw passive deposit addresses for this merchant. Undefined = no cap.' required: - enabled description: 'Merchant-level settings for the withdrawer-side passive deposit address flow (CryptoWithdrawService). Independent from CryptoPayInSettings.' title: PassiveWithdrawSettings IPaymentStringVendorTransfer: type: object properties: external: type: string internal: type: string required: - internal title: IPaymentStringVendorTransfer CustomerUsdcTransferData: type: object properties: from: type: string to: type: string value: type: string validAfter: $ref: '#/components/schemas/CustomerUsdcTransferDataValidAfter' validBefore: $ref: '#/components/schemas/CustomerUsdcTransferDataValidBefore' nonce: type: string v: type: number format: double r: type: string s: type: string required: - from - to - value - validAfter - validBefore - nonce - v - r - s description: 'Customer signed USDC transferWithAuthorization data for dual-source payments Used for combined USDC + Credit Card payments on EVM chains' title: CustomerUsdcTransferData IbanProcessor: type: string enum: - merge - ivy - mock title: IbanProcessor IMerchantStringCheckbookSettings: type: object properties: merchantName: type: string secret: type: string key: type: string walletId: type: string id: type: string required: - merchantName - secret - key - walletId - id title: IMerchantStringCheckbookSettings ISubscriptionPlan_string_: type: object properties: _id: type: string merchant: $ref: '#/components/schemas/ISubscriptionPlanStringMerchant' name: type: string code: type: string interval: $ref: '#/components/schemas/SubscriptionInterval' duration: type: integer description: 'This represents the span of an interval. Ex. duration = 3, interval = Monthly means every 3 months the subscription renews Default is 1' amount: $ref: '#/components/schemas/CurrencyCents' description: type: string transaction: type: string settlementChain: $ref: '#/components/schemas/OperationalBlockchain' settlementType: $ref: '#/components/schemas/SettlementType' active: type: boolean merchantInitiated: type: boolean description: If true this means we will not run it through our Subscription Payments Pipeline, but instead make the merchant pass us the plan code for MITs to process it required: - _id - merchant - name - code - interval - amount - active title: ISubscriptionPlan_string_ IMerchantStringWalletsStellar: type: object properties: usdcPayer: type: string required: - usdcPayer title: IMerchantStringWalletsStellar SubscriptionVersion: type: string enum: - '1' - '2' title: SubscriptionVersion ApplePayPayoutProvider: type: string enum: - aptpay - MOCK title: ApplePayPayoutProvider CustomerUsdcTransferDataV2ValidBefore: oneOf: - type: string - type: number format: double title: CustomerUsdcTransferDataV2ValidBefore VerisoulSettings: type: object properties: enabled: type: boolean riskThresholds: $ref: '#/components/schemas/VerisoulRiskThresholds' required: - enabled - riskThresholds title: VerisoulSettings CustomerOverrideAuditLog: type: object properties: reason: $ref: '#/components/schemas/OverrideMethod.CustomerOverride' editor: type: string editorType: $ref: '#/components/schemas/EditorType' overriddenAt: type: string format: date-time ipAddress: type: string required: - reason title: CustomerOverrideAuditLog OperationalBlockchain: oneOf: - $ref: '#/components/schemas/Blockchain.SOLANA' - $ref: '#/components/schemas/Blockchain.ETH' - $ref: '#/components/schemas/Blockchain.POLYGON' - $ref: '#/components/schemas/Blockchain.BASE' - $ref: '#/components/schemas/Blockchain.ARBITRUM' - $ref: '#/components/schemas/Blockchain.STELLAR' - $ref: '#/components/schemas/Blockchain.MONAD' - $ref: '#/components/schemas/Blockchain.TEMPO' title: OperationalBlockchain FailedAttemptSetting: type: string enum: - Standard - Exempt title: FailedAttemptSetting PayPalVendorSettings: type: object properties: accountId: type: string status: type: string description: PAY_WITH_PAYPAL capability status (ACTIVE / NEED_DATA / SUSPENDED). requirements: type: array items: type: string description: Outstanding requirements blocking PAY_WITH_PAYPAL. venmoStatus: type: string description: VENMO_PAY_PROCESSING capability status — same account, separate status. venmoRequirements: type: array items: type: string description: Outstanding requirements blocking VENMO_PAY_PROCESSING. stakeholderIds: type: array items: type: string verificationTriggered: type: boolean description: 'True once we''ve asked PayPal to (re)verify this account''s capabilities. triggerVerification itself makes PayPal emit a CAPABILITY_UPDATED webhook, so this flag stops that webhook from triggering verification again forever.' required: - accountId title: PayPalVendorSettings Verification3DS: type: string enum: - Required - Exempt - NotApplicable title: Verification3DS EnhancedTxInfo: type: object properties: firstName: type: string lastName: type: string streetAddress: type: string city: type: string state: type: string zip: type: string country: type: string email: type: string bin: type: string ip: type: string userAgent: type: string expMonth: type: string expYear: type: string eci: type: string avsResponseCode: $ref: '#/components/schemas/AVSResponseCode' cvvResponseCode: $ref: '#/components/schemas/CVVResponseCode' binLocation: $ref: '#/components/schemas/BinInfo' ipLocation: $ref: '#/components/schemas/EnhancedTxInfoIpLocation' orchestrationInfo: $ref: '#/components/schemas/OrchestrationInfo' title: EnhancedTxInfo IMerchantMongooseTypesObjectIdWithdrawFeePayment: type: object properties: paysGasFees: $ref: '#/components/schemas/Partial_Record_Blockchain.boolean__' bundleDelegatedPayoutFees: type: boolean paysSwapFees: type: boolean paysWithdrawFees: type: boolean title: IMerchantMongooseTypesObjectIdWithdrawFeePayment IMerchantStringWalletsEvm: type: object properties: usdcPayer: type: string feePayer: type: string required: - usdcPayer - feePayer title: IMerchantStringWalletsEvm ICustomerMongooseTypesObjectIdBlockConfigOverride: type: object properties: maxDistinctTokensPer30Days: type: number format: double description: Per-customer overrides of merchant `blockConfig`. Only honored when they raise the effective limit. title: ICustomerMongooseTypesObjectIdBlockConfigOverride AchPaymentStatus: type: string enum: - PENDING - BATCHED - DEPOSITED - SETTLED - RETURNED - FAILED - CHARGEBACK - REFUND_REVIEW - REFUNDED title: AchPaymentStatus IMerchantStringProcessing: type: object properties: msaSigned: type: boolean statementsOnFile: type: boolean required: - msaSigned - statementsOnFile title: IMerchantStringProcessing ThreeDsChallengePreference: type: string enum: - NoPreference - Frictionless - Challenge title: ThreeDsChallengePreference SettlementType: type: string enum: - Credits - USDC title: SettlementType PixSettings: type: object properties: processor: $ref: '#/components/schemas/PixProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - customerEmailNotifications - merchantEmailNotifications title: PixSettings AftType: type: string enum: - disbursement - personToPerson - accountToAccount - topUp - purchase - cash - walletLoad title: AftType InteracProcessor: type: string enum: - mock - aptpay title: InteracProcessor AcquirerInfo: type: object properties: merchantId: type: string bin: type: string name: type: string mcc: type: string required: - merchantId - bin - name title: AcquirerInfo IMerchantStringWallets: type: object properties: stellar: $ref: '#/components/schemas/IMerchantStringWalletsStellar' evm: $ref: '#/components/schemas/IMerchantStringWalletsEvm' solana: $ref: '#/components/schemas/IMerchantStringWalletsSolana' required: - stellar - evm - solana title: IMerchantStringWallets ICashAppPaymentInfo: type: object properties: status: $ref: '#/components/schemas/CashAppPaymentStatus' processor: $ref: '#/components/schemas/CashAppProcessor' depositAddress: type: string transaction: type: string referenceId: type: string cashAppLink: type: string expiresAt: type: string format: date-time required: - status - processor - referenceId - cashAppLink - expiresAt title: ICashAppPaymentInfo RefundsRefundIdRetryPostResponsesContentApplicationJsonSchemaJobId: oneOf: - type: string - type: number format: double title: RefundsRefundIdRetryPostResponsesContentApplicationJsonSchemaJobId CustomPayInFeesConfig: type: array items: $ref: '#/components/schemas/CustomPayInFeeConfig' title: CustomPayInFeesConfig CrbEnvironment: type: string enum: - sandbox - production title: CrbEnvironment WithdrawFeeConfig: type: object properties: fixed: $ref: '#/components/schemas/Cents' variableBps: type: number format: double minimum: $ref: '#/components/schemas/Cents' maximum: $ref: '#/components/schemas/Cents' limit: $ref: '#/components/schemas/Partial_WithdrawLimit_' required: - fixed - variableBps - minimum title: WithdrawFeeConfig Partial_Record_WithdrawSpeed.WithdrawFeeConfig__: type: object properties: asap: $ref: '#/components/schemas/WithdrawFeeConfig' same_day: $ref: '#/components/schemas/WithdrawFeeConfig' standard: $ref: '#/components/schemas/WithdrawFeeConfig' card: $ref: '#/components/schemas/WithdrawFeeConfig' iban: $ref: '#/components/schemas/WithdrawFeeConfig' pix: $ref: '#/components/schemas/WithdrawFeeConfig' eft: $ref: '#/components/schemas/WithdrawFeeConfig' venmo: $ref: '#/components/schemas/WithdrawFeeConfig' paypal: $ref: '#/components/schemas/WithdrawFeeConfig' wire: $ref: '#/components/schemas/WithdrawFeeConfig' interac: $ref: '#/components/schemas/WithdrawFeeConfig' description: Make all properties in T optional title: Partial_Record_WithdrawSpeed.WithdrawFeeConfig__ MerchantBankSettlementOptions: type: object properties: token: type: string minRemainingBalance: $ref: '#/components/schemas/Cents' useWire: type: boolean required: - token - minRemainingBalance title: MerchantBankSettlementOptions MerchantEditor: type: object properties: editor: type: string editorType: $ref: '#/components/schemas/EditorType' ipAddress: type: string required: - editor - editorType - ipAddress title: MerchantEditor AftSettingsMerchantA2AMastercardAftRecipient: type: object properties: walletReference: type: string countryCode: type: string state: type: string postalCode: type: string city: type: string address1: type: string lastName: type: string firstName: type: string required: - walletReference - countryCode - state - postalCode - city - address1 - lastName - firstName title: AftSettingsMerchantA2AMastercardAftRecipient CashAppPaymentStatus: type: string enum: - INITIATED - PROCESSING - DEPOSITED - SETTLED - FAILED - EXPIRED - REFUNDED title: CashAppPaymentStatus PayPalPayoutProvider: type: string enum: - checkbook - citcon - mock - paypal title: PayPalPayoutProvider OrchestrationFailedAttempt: type: object properties: processor: $ref: '#/components/schemas/PaymentProcessor' paymentId: type: string authCode: type: string required: - processor title: OrchestrationFailedAttempt IMerchantStringWithdrawFees: type: object properties: firstParty: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' business: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' user: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' swapBps: type: number format: double required: - firstParty - business - user - swapBps title: IMerchantStringWithdrawFees CryptoPaymentStatus: type: string enum: - INITIATED - DEPOSITED - SETTLED - FAILED - REFUNDED title: CryptoPaymentStatus ISubscriptionMongooseTypesObjectIdMerchant: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IMerchant_mongoose.Types.ObjectId_' title: ISubscriptionMongooseTypesObjectIdMerchant FailedIbanAttempt: type: object properties: transactionId: type: string processed: type: string format: date-time reason: type: string required: - transactionId - processed - reason title: FailedIbanAttempt AvailabilityStatus: type: string enum: - Functional - Blocked - Override title: AvailabilityStatus IPaymentStringMerchant: oneOf: - type: string - $ref: '#/components/schemas/IMerchant_string_' title: IPaymentStringMerchant TopupRiskControls: type: object properties: minAmountCents: type: number format: double description: Minimum topup amount in cents maxAmountCents: type: number format: double description: Maximum topup amount in cents title: TopupRiskControls OrchestrationTraversalStepNodeType: type: string enum: - action - decision title: OrchestrationTraversalStepNodeType CardOnFileSettings: type: object properties: enabled: type: boolean period: type: number format: double maxCount: type: number format: double maxMultiple: type: number format: double expiration: type: number format: double maxZeroAuthAmount: $ref: '#/components/schemas/Cents' maxAmountLookback: type: number format: double required: - enabled - period - maxCount - maxMultiple - expiration title: CardOnFileSettings IMerchantMongooseTypesObjectIdRiskControls: type: object properties: topup: $ref: '#/components/schemas/TopupRiskControls' title: IMerchantMongooseTypesObjectIdRiskControls TokenSubtotal: type: object properties: address: type: string description: 'The tokens address Solana - Token Mint Address Evm - Token Contract Address' amount: $ref: '#/components/schemas/TokenSubtotalAmount' description: Number of tokens decimals: type: number format: double description: Number of decimals for the token required: - address - amount title: TokenSubtotal LinkedBankAccountAccountType: type: string enum: - checking - savings title: LinkedBankAccountAccountType VendorSettingsKoard: type: object properties: enabled: type: boolean apiKeyPreview: type: string apiKey: type: string accountId: type: string required: - accountId title: VendorSettingsKoard IVenmoPaymentInfoSandboxSimulations: type: object properties: refundFailure: type: boolean captureFailure: type: boolean authorizationFailure: type: boolean title: IVenmoPaymentInfoSandboxSimulations ISubscriptionMongooseTypesObjectIdPlan: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/ISubscriptionPlan_mongoose.Types.ObjectId_' title: ISubscriptionMongooseTypesObjectIdPlan RefundTotals: type: object properties: subtotal: $ref: '#/components/schemas/CurrencyCents' processorFees: $ref: '#/components/schemas/CurrencyCents' total: $ref: '#/components/schemas/CurrencyCents' adjustment: $ref: '#/components/schemas/CurrencyCents' rate: type: number format: double resolution: $ref: '#/components/schemas/CurrencyCents' required: - subtotal - processorFees - total - rate - resolution title: RefundTotals CryptoPayInSettings: type: object properties: stables: $ref: '#/components/schemas/TierSettings' majors: $ref: '#/components/schemas/TierSettings' volatile: $ref: '#/components/schemas/TierSettings' enabled: type: boolean feeMode: $ref: '#/components/schemas/FeePayerMode' maxGasFeePayment: $ref: '#/components/schemas/Cents' coinbaseDisabled: type: boolean transferOnly: type: boolean customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean fixedFee: $ref: '#/components/schemas/Cents' enableStableDepositAddresses: type: boolean maxActivePassiveAddresses: type: number format: double description: 'Cap on the number of simultaneously-active customer pay-in passive deposit addresses for this merchant. Undefined = no cap. Paused addresses don''t count against the cap.' required: - stables - majors - volatile - enabled - maxGasFeePayment - coinbaseDisabled - customerEmailNotifications - merchantEmailNotifications title: CryptoPayInSettings TierSettings: type: object properties: feeBps: type: number format: double feeMode: $ref: '#/components/schemas/FeePayerMode' enabled: type: boolean required: - feeBps - enabled title: TierSettings CustomerVerificationSetting: type: string enum: - Enforced - Exempt title: CustomerVerificationSetting VenmoSettings: type: object properties: processor: $ref: '#/components/schemas/VenmoProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' maxFee: $ref: '#/components/schemas/Cents' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - fixedFee - feeBps - minFee - customerEmailNotifications - merchantEmailNotifications title: VenmoSettings CustomerUsdcTransferDataValidBefore: oneOf: - type: string - type: number format: double title: CustomerUsdcTransferDataValidBefore IMerchantMongooseTypesObjectIdCheckbookSettings: type: object properties: merchantName: type: string secret: type: string key: type: string walletId: type: string id: type: string required: - merchantName - secret - key - walletId - id title: IMerchantMongooseTypesObjectIdCheckbookSettings EntityTag: type: object properties: coinflowEntity: $ref: '#/components/schemas/CoinflowEntity' required: - coinflowEntity title: EntityTag RefundFeeSettings: type: object properties: feeBps: type: number format: double fixedFee: $ref: '#/components/schemas/Cents' minFee: $ref: '#/components/schemas/Cents' maxFee: $ref: '#/components/schemas/Cents' title: RefundFeeSettings IApaPaymentInfo: type: object properties: status: $ref: '#/components/schemas/ApaPaymentStatus' processor: $ref: '#/components/schemas/ApaProcessor' apaTransactionId: type: string credentialType: $ref: '#/components/schemas/ApaCredentialType' credentialValue: type: string transaction: type: string transactionHash: type: string rail: type: string reason: type: string processed: type: string format: date-time required: - status - processor - apaTransactionId - credentialType - credentialValue title: IApaPaymentInfo TokenSubtotalAmount: oneOf: - type: number format: double - type: string description: Number of tokens title: TokenSubtotalAmount MerchantScope: type: string enum: - admin - editor - chargeback - chargeback_analyst - viewer - seller - pos_device title: MerchantScope BlockingRuleMethod: type: string enum: - KYC_ADDRESS - IP - BILLING_ADDRESS - GEOLOCATION title: BlockingRuleMethod Partial_Record_Blockchain.boolean__: type: object properties: solana: type: boolean eth: type: boolean polygon: type: boolean base: type: boolean user: type: boolean arbitrum: type: boolean stellar: type: boolean monad: type: boolean tempo: type: boolean description: Make all properties in T optional title: Partial_Record_Blockchain.boolean__ CustomWithdrawFeeValue: oneOf: - $ref: '#/components/schemas/CustomWithdrawFeeValue0' - $ref: '#/components/schemas/CustomWithdrawFeeValue1' title: CustomWithdrawFeeValue EnhancedTxInfoIpLocation: type: object properties: hosting: type: boolean mobile: type: boolean proxy: type: boolean zip: type: string city: type: string isp: type: string region: type: string country: type: string lon: type: string lat: type: string required: - zip - city - isp - region - country - lon - lat title: EnhancedTxInfoIpLocation AnyObject: type: object properties: example: type: string title: AnyObject CardPayoutProvider: type: string enum: - aptpay - checkbook - shift4 - MOCK title: CardPayoutProvider IPayPalPaymentInfo: type: object properties: status: $ref: '#/components/schemas/PayPalPaymentStatus' processor: $ref: '#/components/schemas/PayPalProcessor' token: type: string authOnly: type: boolean transaction: type: string capturePending: type: boolean description: 'This means when we tried to capture from PayPal, they returned PENDING instead of COMPLETED. We will use this field to determine whether to refund a completed capture or not. If it was PENDING, and then it finally comletes at a later time, just refund it automatically.' sandboxSimulations: $ref: '#/components/schemas/IPayPalPaymentInfoSandboxSimulations' required: - status - processor - token title: IPayPalPaymentInfo Blockchain.TEMPO: type: string enum: - tempo title: Blockchain.TEMPO IRefundCustomer: oneOf: - type: string - $ref: '#/components/schemas/ICustomer_string_' title: IRefundCustomer ISubscriptionStringPlan: oneOf: - type: string - $ref: '#/components/schemas/ISubscriptionPlan_string_' title: ISubscriptionStringPlan Currency: type: string enum: - USD - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYN - BZD - CAD - CHF - CLF - CLP - CNY - COP - CRC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ETB - EUR - FJD - GBP - GEL - GHS - GMD - GNF - GTQ - GYD - HKD - HNL - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRU - MUR - MWK - MVR - MXN - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RWF - SAR - SCR - SDG - SEK - SGD - SLE - SLL - SOS - SRD - STN - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - UYU - UZS - VND - VUV - WST - XAF - XCD - XOF - XPF - YER - ZAR - ZMW - ZWL - CDF - ERN - FKP - KPW - RUB - SBD - SHP - SSP - VES title: Currency CardSettingsVerificationSettings: type: object properties: threshold3DS: $ref: '#/components/schemas/Cents' verificationLimit: $ref: '#/components/schemas/Cents' title: CardSettingsVerificationSettings ICustomerMongooseTypesObjectIdMerchant: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IMerchant_mongoose.Types.ObjectId_' title: ICustomerMongooseTypesObjectIdMerchant Record_string.string_: type: object properties: {} description: Construct a type with a set of properties K of type T title: Record_string.string_ IAvailability: type: object properties: status: $ref: '#/components/schemas/AvailabilityStatus' reason: type: string editor: type: string updatedAt: type: string format: date-time required: - status - reason - editor - updatedAt title: IAvailability IPaymentMongooseTypesObjectIdSubscription: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/ISubscription_mongoose.Types.ObjectId_' title: IPaymentMongooseTypesObjectIdSubscription IMerchantMongooseTypesObjectIdFirstPartyPayoutOverrides: type: object properties: interacPayoutProvider: $ref: '#/components/schemas/InteracPayoutProvider' wirePayoutProvider: type: array items: $ref: '#/components/schemas/WirePayoutProvider' paypalPayoutProvider: $ref: '#/components/schemas/PayPalPayoutProvider' venmoPayoutProvider: $ref: '#/components/schemas/VenmoPayoutProvider' appleP2cPayoutProvider: $ref: '#/components/schemas/ApplePayPayoutProvider' globalP2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' p2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' eftPayoutProvider: $ref: '#/components/schemas/EftPayoutProvider' pixPayoutProvider: $ref: '#/components/schemas/PixPayoutProvider' rtpPayoutProvider: $ref: '#/components/schemas/RtpPayoutProvider' ibanPayoutProvider: $ref: '#/components/schemas/IbanPayoutProvider' bankPayoutProvider: type: array items: $ref: '#/components/schemas/PayoutProviderOption' title: IMerchantMongooseTypesObjectIdFirstPartyPayoutOverrides IPaymentMongooseTypesObjectIdBankTransferInfo: type: object properties: reason: type: string token: type: string batchedAt: type: string format: date-time refundTransferId: type: string refundReview: type: boolean transaction: type: string processor: $ref: '#/components/schemas/AchProcessor' status: $ref: '#/components/schemas/AchPaymentStatus' required: - refundReview - processor - status title: IPaymentMongooseTypesObjectIdBankTransferInfo PayPalProcessor: type: string enum: - mock - paypal title: PayPalProcessor IPaymentStringCardInfo: type: object properties: storedTransactionType: $ref: '#/components/schemas/StoredCardTransactionType' authorizationPaymentReference: type: string originalPaymentId: type: string description: This is really the permissioning payment Id - what paymentId was used that had a CVV entered to authorize it statementDescriptor: type: string interchangeKey: type: string fraudReport: $ref: '#/components/schemas/FraudReport' enhancedTxInfo: $ref: '#/components/schemas/EnhancedTxInfo' transaction: type: string secureTransactionId: type: string processed3DS: $ref: '#/components/schemas/Verification3DS' cardType: $ref: '#/components/schemas/CardType' last4: type: string token: type: string mobileWallet: $ref: '#/components/schemas/MobileWallet' processor: $ref: '#/components/schemas/PaymentProcessor' authCode: type: string status: $ref: '#/components/schemas/CardPaymentStatus' authOnly: type: boolean required: - processor - authCode - status title: IPaymentStringCardInfo RainPendingTopUp: type: object properties: amount: type: number format: double queuedAt: type: string format: date-time transactionId: type: string required: - amount - queuedAt - transactionId title: RainPendingTopUp IMerchantMongooseTypesObjectIdBlockConfig: type: object properties: disableMultiCardAttemptCheck: type: boolean description: When true, skips the multi-card attempt check (2+ distinct cards failing in 1 hour). maxDistinctTokensPer30Days: type: number format: double description: 'Maximum number of distinct card tokens a single customer may use across non-failed/voided card payments for this merchant in a rolling 30-day window. Apple Pay / Google Pay payments are excluded. Unset or 0 disables the check. Customers with `failedAttemptSetting: Exempt` bypass it.' disableDestinationAuthKey: type: boolean description: When true, prevents usage of destinationAuthKey for custom settlement addresses. enableNmiSettlement: type: boolean description: When true, enables the settlement pipeline for NMI transactions (converts card payments to USDC). disableInvoiceWalletPayment: type: boolean description: When true, disables wallet balance payments for invoices. Merchants must use checkout. blockingRules: type: array items: $ref: '#/components/schemas/IBlockingRule' description: 'Independent geo-blocking rules for withdrawals vs card checkout, with explicit per-rule enforcement methods (KYC address / IP / billing address). Read via `getBlockingRules` so callers transparently see the legacy `bannedWithdrawalStates` for un-migrated merchants.' bannedWithdrawalStates: type: array items: $ref: '#/components/schemas/USState' whitelistedBinLocations: type: array items: $ref: '#/components/schemas/Country' failedPaymentAttemptLimit: type: number format: double title: IMerchantMongooseTypesObjectIdBlockConfig CustomerUsdcTransferDataValidAfter: oneOf: - type: string - type: number format: double title: CustomerUsdcTransferDataValidAfter InterchangeFees: type: object properties: settings: $ref: '#/components/schemas/InterchangeSettings' rates: $ref: '#/components/schemas/Record_string.InterchangeRate_' required: - settings title: InterchangeFees IPaymentMongooseTypesObjectIdMerchant: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IMerchant_mongoose.Types.ObjectId_' title: IPaymentMongooseTypesObjectIdMerchant ISubscription_string_: type: object properties: _id: type: string customer: $ref: '#/components/schemas/ISubscriptionStringCustomer' merchant: $ref: '#/components/schemas/ISubscriptionStringMerchant' plan: $ref: '#/components/schemas/ISubscriptionStringPlan' cardProcessor: $ref: '#/components/schemas/PaymentProcessor' achProcessor: $ref: '#/components/schemas/AchProcessor' reference: type: string nextPaymentAt: type: string format: date-time status: $ref: '#/components/schemas/SubscriptionStatus' webhookInfo: $ref: '#/components/schemas/AnyObject' marketplaceInfo: $ref: '#/components/schemas/Pick_MarketplaceInfo.fixedFee-or-feePercentage_' createdAt: type: string format: date-time updatedAt: type: string format: date-time version: $ref: '#/components/schemas/SubscriptionVersion' required: - _id - customer - merchant - plan - reference - status - createdAt - updatedAt - version title: ISubscription_string_ IPaymentMongooseTypesObjectIdCardInfo: type: object properties: storedTransactionType: $ref: '#/components/schemas/StoredCardTransactionType' authorizationPaymentReference: type: string originalPaymentId: type: string description: This is really the permissioning payment Id - what paymentId was used that had a CVV entered to authorize it statementDescriptor: type: string interchangeKey: type: string fraudReport: $ref: '#/components/schemas/FraudReport' enhancedTxInfo: $ref: '#/components/schemas/EnhancedTxInfo' transaction: type: string secureTransactionId: type: string processed3DS: $ref: '#/components/schemas/Verification3DS' cardType: $ref: '#/components/schemas/CardType' last4: type: string token: type: string mobileWallet: $ref: '#/components/schemas/MobileWallet' processor: $ref: '#/components/schemas/PaymentProcessor' authCode: type: string status: $ref: '#/components/schemas/CardPaymentStatus' authOnly: type: boolean required: - processor - authCode - status title: IPaymentMongooseTypesObjectIdCardInfo RainContractInfoOnramp: type: object properties: wire: $ref: '#/components/schemas/RainAccountDetails' rtp: $ref: '#/components/schemas/RainAccountDetails' ach: $ref: '#/components/schemas/RainAccountDetails' title: RainContractInfoOnramp Funding: type: string enum: - credit - debit - prepaid title: Funding USState: type: string enum: - AL - AK - AZ - AR - CA - CO - CT - DE - DC - FL - GA - HI - ID - IL - IN - IA - KS - KY - LA - ME - MD - MA - MI - MN - MS - MO - MT - NE - NV - NH - NJ - NM - NY - NC - ND - OH - OK - OR - PA - RI - SC - SD - TN - TX - UT - VT - VA - WA - WV - WI - WY title: USState WirePaymentStatus: type: string enum: - INITIATED - DEPOSITED - SETTLED - FAILED - EXPIRED - REFUNDED title: WirePaymentStatus MobileWallet: type: string enum: - applePay - googlePay title: MobileWallet CoinflowEntity: type: string enum: - US - Poland - Canada description: 'The Coinflow legal entity that owns a transaction. Used for compliance/finance''s per-payment entity reporting (#14259).' title: CoinflowEntity DirectVendorSettlement: type: string enum: - brale title: DirectVendorSettlement IPaymentStringUserLocation: type: object properties: resolvedState: type: string resolvedCountry: type: string lng: type: number format: double lat: type: number format: double required: - lng - lat description: 'Browser-captured geolocation at the time of the request, when the caller supplied one. Stored independently of payment method so the merchant dashboard can render a map for any purchase type. `resolved*` fields are populated when the GEOLOCATION enforcement step happened to reverse- geocode the coordinates — they''re a free piggyback on the lock cache, not a guarantee.' title: IPaymentStringUserLocation IPaymentStringCustomer: oneOf: - type: string - $ref: '#/components/schemas/ICustomer_string_' title: IPaymentStringCustomer ReserveSettings: type: object properties: status: $ref: '#/components/schemas/ReserveStatus' rollingBps: type: number format: double rollingDuration: type: number format: double notes: type: string required: - status - rollingBps - rollingDuration title: ReserveSettings ICustomer_mongoose.Types.ObjectId_: type: object properties: _id: $ref: '#/components/schemas/mongoose.Types.ObjectId' customerId: type: string blockchain: $ref: '#/components/schemas/Blockchain' email: type: string availability: $ref: '#/components/schemas/IAvailability' createdAt: type: string format: date-time verification: $ref: '#/components/schemas/Verification' ubos: type: array items: $ref: '#/components/schemas/UboEntry' customerInfo: $ref: '#/components/schemas/CustomerInfo' chargebackProtectionEnabled: type: boolean merchant: $ref: '#/components/schemas/ICustomerMongooseTypesObjectIdMerchant' failedAttemptSetting: $ref: '#/components/schemas/FailedAttemptSetting' verificationSetting: $ref: '#/components/schemas/CustomerVerificationSetting' exempt3DS: type: boolean chargebackProtectionOverrideLog: $ref: '#/components/schemas/CustomerOverrideAuditLog' geoBlockOverride: $ref: '#/components/schemas/IGeoBlockOverride' blockConfigOverride: $ref: '#/components/schemas/ICustomerMongooseTypesObjectIdBlockConfigOverride' description: Per-customer overrides of merchant `blockConfig`. Only honored when they raise the effective limit. customerOverrideLimit: $ref: '#/components/schemas/Cents' overrideExposureLimit: $ref: '#/components/schemas/Cents' fraudOverrideWhitelist: type: boolean required: - _id - customerId - email - availability - createdAt - chargebackProtectionEnabled - merchant - failedAttemptSetting - verificationSetting title: ICustomer_mongoose.Types.ObjectId_ IRefundMerchant: oneOf: - type: string - $ref: '#/components/schemas/IMerchant_string_' title: IRefundMerchant IMerchantStringWalletsSolana: type: object properties: usdcPayer: type: string feePayer: type: string required: - usdcPayer - feePayer title: IMerchantStringWalletsSolana PixProcessor: type: string enum: - brla - mock title: PixProcessor IMerchantMongooseTypesObjectIdWithdrawFees: type: object properties: firstParty: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' business: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' user: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawFeeConfig__' swapBps: type: number format: double required: - firstParty - business - user - swapBps title: IMerchantMongooseTypesObjectIdWithdrawFees CustomPayInFeeValue1: type: object properties: cents: type: - number - 'null' format: double currency: type: - number - 'null' format: double percent: type: number format: double isFixed: type: boolean required: - cents - currency - percent - isFixed title: CustomPayInFeeValue1 AptPayCanadaSettings: oneOf: - $ref: '#/components/schemas/AptpayCanadaMerchantSettings' - $ref: '#/components/schemas/AptpayCanadaCoinflowSettings' title: AptPayCanadaSettings Record_string.InterchangeRate_: type: object properties: {} description: Construct a type with a set of properties K of type T title: Record_string.InterchangeRate_ IMerchant_string_: type: object properties: _id: type: string merchantId: type: string verification: $ref: '#/components/schemas/Verification' brand: $ref: '#/components/schemas/MerchantBrandSettings' colors: $ref: '#/components/schemas/MerchantTheme' url: type: string withdrawFees: $ref: '#/components/schemas/IMerchantStringWithdrawFees' customWithdrawFees: $ref: '#/components/schemas/CustomWithdrawFeesConfig' customPayInFees: $ref: '#/components/schemas/CustomPayInFeesConfig' wallets: $ref: '#/components/schemas/IMerchantStringWallets' apiKey: type: string webhookValidationKey: type: string nmiWebhookValidationKey: type: string apiKeys: type: array items: $ref: '#/components/schemas/IMerchantStringApiKeysItems' kycType: $ref: '#/components/schemas/KycType' settlementToken: $ref: '#/components/schemas/StableCoin' settlementAddresses: $ref: '#/components/schemas/IMerchantStringSettlementAddresses' users: type: array items: $ref: '#/components/schemas/IMerchantUser' ubos: type: array items: $ref: '#/components/schemas/UboEntry' goLiveChecklist: $ref: '#/components/schemas/MerchantGoLiveChecklist' webhookSettings: $ref: '#/components/schemas/WebhookSettings' cardSettings: $ref: '#/components/schemas/CardSettings' achSettings: $ref: '#/components/schemas/ACHSettings' citconSettings: $ref: '#/components/schemas/CitconSettings' aptPayCanadaSettings: $ref: '#/components/schemas/AptPayCanadaSettings' wireSettings: $ref: '#/components/schemas/IWireProviderSettings' pixSettings: $ref: '#/components/schemas/PixSettings' ibanSettings: $ref: '#/components/schemas/IbanSettings' cryptoPayinSettings: $ref: '#/components/schemas/CryptoPayInSettings' passiveWithdrawSettings: $ref: '#/components/schemas/PassiveWithdrawSettings' cashAppSettings: $ref: '#/components/schemas/CashAppSettings' rainCompanyCards: $ref: '#/components/schemas/RainCompanyCardsSettings' paypalSettings: $ref: '#/components/schemas/PayPalSettings' venmoSettings: $ref: '#/components/schemas/VenmoSettings' apaSettings: $ref: '#/components/schemas/ApaSettings' verisoulSettings: $ref: '#/components/schemas/VerisoulSettings' blockConfig: $ref: '#/components/schemas/IMerchantStringBlockConfig' hideBranding: type: boolean onlyShowTotal: type: boolean skipSendWithdrawEmail: type: boolean sendInvoiceNotifications: type: boolean advancedAnalytics: type: boolean billingEmails: type: array items: type: string withdrawFeePayment: $ref: '#/components/schemas/IMerchantStringWithdrawFeePayment' pushToCardEnabled: type: boolean requireAniCheck: type: boolean bankPayoutProvider: type: array items: $ref: '#/components/schemas/PayoutProviderOption' ibanPayoutProviders: type: array items: $ref: '#/components/schemas/IbanPayoutProvider' ibanPayoutProvider: $ref: '#/components/schemas/IbanPayoutProvider' rtpPayoutProviders: type: array items: $ref: '#/components/schemas/RtpPayoutProvider' rtpPayoutProvider: $ref: '#/components/schemas/RtpPayoutProvider' pixPayoutProviders: type: array items: $ref: '#/components/schemas/PixPayoutProvider' pixPayoutProvider: $ref: '#/components/schemas/PixPayoutProvider' eftPayoutProviders: type: array items: $ref: '#/components/schemas/EftPayoutProvider' eftPayoutProvider: $ref: '#/components/schemas/EftPayoutProvider' p2cPayoutProviders: type: array items: $ref: '#/components/schemas/CardPayoutProvider' p2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' globalP2cPayoutProvider: $ref: '#/components/schemas/CardPayoutProvider' appleP2cPayoutProvider: $ref: '#/components/schemas/ApplePayPayoutProvider' venmoPayoutProviders: type: array items: $ref: '#/components/schemas/VenmoPayoutProvider' venmoPayoutProvider: $ref: '#/components/schemas/VenmoPayoutProvider' paypalPayoutProviders: type: array items: $ref: '#/components/schemas/PayPalPayoutProvider' paypalPayoutProvider: $ref: '#/components/schemas/PayPalPayoutProvider' wirePayoutProvider: type: array items: $ref: '#/components/schemas/WirePayoutProvider' interacPayoutProviders: type: array items: $ref: '#/components/schemas/InteracPayoutProvider' interacPayoutProvider: $ref: '#/components/schemas/InteracPayoutProvider' interacPaymentProvider: $ref: '#/components/schemas/InteracProcessor' interacSettings: $ref: '#/components/schemas/InteracSettings' withdrawSorting: $ref: '#/components/schemas/Partial_Record_WithdrawSpeed.WithdrawSort__' withdrawRules: type: array items: type: string firstPartyPayoutOverrides: $ref: '#/components/schemas/IMerchantStringFirstPartyPayoutOverrides' maxTransactionAmount: $ref: '#/components/schemas/Cents' minTransactionAmount: $ref: '#/components/schemas/Cents' refundBalanceLimit: $ref: '#/components/schemas/Cents' parent: type: string creditSeed: type: string withdrawSettlementLocation: $ref: '#/components/schemas/SettlementLocations' enforceJwt: type: boolean enforceCheckoutJwt: type: boolean externalVerificationLinks: type: boolean whitelistedAncestorUrls: type: array items: type: string banDuplicateAccounts: type: boolean fxFees: $ref: '#/components/schemas/Partial_Record_Currency.number__' blocked: $ref: '#/components/schemas/BlockedStatus' vendorSettings: $ref: '#/components/schemas/VendorSettings' generatedDescription: type: string bankSettlementOptions: $ref: '#/components/schemas/MerchantBankSettlementOptions' allowAttestedKyc: type: boolean attestedKycSsnNotRequired: type: boolean allowAccountSharing: type: boolean personaKycShareTokenTemplate: type: string delayedSettlementDays: type: number format: double description: 'Number of business days to delay stablecoin settlement after payment capture. Only applies to USDC settlements. 0 means no delay (immediate settlement). Maximum value is 5 days.' sendPresettleWebhooks: type: boolean velocitySettings: $ref: '#/components/schemas/VelocityControlSettings' interchangeFees: $ref: '#/components/schemas/InterchangeFees' enforceLivenessKyc: type: boolean canCreateBankAccounts: type: boolean checkbookSettings: $ref: '#/components/schemas/IMerchantStringCheckbookSettings' reserveSettings: $ref: '#/components/schemas/ReserveSettings' globalRateLimit: type: number format: double banProxiesForCheckoutEndpoints: type: boolean riskControls: $ref: '#/components/schemas/IMerchantStringRiskControls' acceptedToS: type: boolean ssoSettings: $ref: '#/components/schemas/MerchantSsoSettings' chargebackFeeCents: type: number format: double chargebackEmails: type: array items: type: string fraudEmails: type: array items: type: string linkedBankAccount: $ref: '#/components/schemas/LinkedBankAccount' customerDefaultOverrideLimit: $ref: '#/components/schemas/Cents' customerOverrideLimitCeiling: $ref: '#/components/schemas/Cents' customerDefaultExposureLimit: $ref: '#/components/schemas/Cents' dailyExposureLimit: $ref: '#/components/schemas/Cents' monthlyExposureLimit: $ref: '#/components/schemas/Cents' mcc: type: string processing: $ref: '#/components/schemas/IMerchantStringProcessing' required: - _id - merchantId - verification - withdrawFees - wallets - apiKey - apiKeys - kycType - settlementToken - users - ubos - goLiveChecklist - cardSettings - achSettings - wireSettings - pixSettings - ibanSettings - cryptoPayinSettings - cashAppSettings - paypalSettings - venmoSettings - apaSettings - hideBranding - onlyShowTotal - skipSendWithdrawEmail - sendInvoiceNotifications - advancedAnalytics - pushToCardEnabled - requireAniCheck - interacSettings - refundBalanceLimit - creditSeed - withdrawSettlementLocation - enforceJwt - delayedSettlementDays - interchangeFees title: IMerchant_string_ AchProcessor: type: string enum: - mock - aptpay - coinfx - braid title: AchProcessor IPaymentMongooseTypesObjectIdVendorTransfer: type: object properties: external: type: string internal: type: string required: - internal title: IPaymentMongooseTypesObjectIdVendorTransfer AVSResponseCode: type: string enum: - A - B - C - D - E - G - I - M - N - O - P - R - S - U - W - X - Y - Z description: 'AVS (Address Verification System) Response Codes These codes indicate the results of address verification checks' title: AVSResponseCode CustomWithdrawFeeValue1: type: object properties: maxFeeCents: type: - number - 'null' format: double minFeeCents: type: - number - 'null' format: double coverProcessingFees: type: boolean cents: type: - number - 'null' format: double currency: oneOf: - $ref: '#/components/schemas/Currency' - type: 'null' percent: type: number format: double isFixed: type: boolean required: - maxFeeCents - minFeeCents - coverProcessingFees - cents - percent - isFixed title: CustomWithdrawFeeValue1 ISubscriptionPlanStringMerchant: oneOf: - type: string - $ref: '#/components/schemas/IMerchant_string_' title: ISubscriptionPlanStringMerchant IGeoBlockOverride: type: object properties: reason: type: string setBy: type: string setAt: type: string format: date-time expiresAt: type: string format: date-time required: - reason - setBy - setAt description: 'Per-customer exemption from real-time geographic enforcement. When set and not expired, withdrawal blocking rules with method `GEOLOCATION` or `IP` are skipped for this withdrawer. `KYC_ADDRESS` rules still apply — KYC is the compliance floor and must remain enforceable. Auditable by construction: `reason` and `setBy` are required so admins can review why a specific user was exempted. `expiresAt` is optional but strongly recommended; long-lived overrides should be avoided.' title: IGeoBlockOverride MerchantBrandSettings: type: object properties: portalBrand: $ref: '#/components/schemas/PortalBrand' logo: type: string displayName: type: string title: MerchantBrandSettings GreenlightMerchantArgs: type: object properties: securityKey: type: string mid: type: string required: - securityKey - mid title: GreenlightMerchantArgs CitconSettings: type: object properties: fundPurpose: $ref: '#/components/schemas/CitconSettingsFundPurpose' apiKey: type: string required: - fundPurpose title: CitconSettings PixPaymentStatus: type: string enum: - INITIATED - DEPOSITED - SETTLED - FAILED - EXPIRED - REFUNDED title: PixPaymentStatus StableCoin: type: string enum: - USDC - SBC - EUROe - FXUSD - HSUSD - CFUSD - YPUSD title: StableCoin LiabilityOwner: type: string enum: - coinflow-entity - coinflow - merchant title: LiabilityOwner RainCardApplicationStatus: type: string enum: - approved - pending - needsInformation - needsVerification - manualReview - denied - locked - canceled title: RainCardApplicationStatus IPaymentStringCryptoInfo: type: object properties: tier: $ref: '#/components/schemas/CryptoTiers' paymentCurrency: type: string overpaymentAmount: type: string actualPaymentAmountUSD: type: string depositAddress: type: string refundAddress: type: string refundTransactionHash: type: string sessionId: type: string reason: type: string tokenLogoUrl: type: string blockchainLogoUrl: type: string tokenAmount: type: string token: type: string sponsoredTransactionHash: type: string originatingTransactionHash: type: string originatingWallet: type: string processed: type: string format: date-time transaction: type: string tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' status: $ref: '#/components/schemas/CryptoPaymentStatus' required: - status title: IPaymentStringCryptoInfo VelocityControlSettings: type: object properties: limitMode: $ref: '#/components/schemas/VelocityLimitMode' customLimit: type: number format: double haltOnThreshold: type: boolean lastHaltNotificationSentAt: type: string format: date-time lastSettlementPausedNotificationSentAt: type: string format: date-time required: - limitMode title: VelocityControlSettings KytAlertStatus: type: string enum: - open - blocked title: KytAlertStatus CardSettings: type: object properties: processor: $ref: '#/components/schemas/PaymentProcessor' orchestrationRuleId: type: string applePayProcessor: $ref: '#/components/schemas/PaymentProcessor' googlePayProcessor: $ref: '#/components/schemas/PaymentProcessor' creditCardFeeMode: $ref: '#/components/schemas/FeePayerMode' chargebackProtectionFeeMode: $ref: '#/components/schemas/FeePayerMode' gasFeeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' networkFeeMode: $ref: '#/components/schemas/FeePayerMode' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean fixedFee: $ref: '#/components/schemas/Cents' variableFeeBps: type: number format: double networkFeeBps: type: number format: double supportsGooglePay: type: boolean supportsApplePay: type: boolean saveCardDefault: type: boolean ignoreProcessorLimit: type: boolean nameMatchThreshold: type: number format: double verificationSettings: $ref: '#/components/schemas/CardSettingsVerificationSettings' avsCheck: type: boolean threeDsChallengePreference: $ref: '#/components/schemas/ThreeDsChallengePreference' enforce3DSWhenProtectionExempt: type: boolean greenlightMerchantArgs: $ref: '#/components/schemas/GreenlightMerchantArgs' nuveiV1MerchantArgs: $ref: '#/components/schemas/NuveiV1MerchantArgs' crbMerchantArgs: $ref: '#/components/schemas/CrbMerchantArgs' threeDSArgs: $ref: '#/components/schemas/ThreeDSArgs' statementDescriptor: type: string tokenizationProvider: $ref: '#/components/schemas/TokenizationProviderOption' applePayIntegratorRegistration: $ref: '#/components/schemas/ApplePayIntegratorRegistration' applePayMerchantDecryption: type: boolean applePayCertificates: $ref: '#/components/schemas/CardSettingsApplePayCertificates' aftSettings: $ref: '#/components/schemas/AftSettings' customStatementDescriptor: type: boolean cardOnFileSettings: $ref: '#/components/schemas/CardOnFileSettings' mitSettings: $ref: '#/components/schemas/CardOnFileSettings' blockCardReuseAcrossCustomers: type: boolean description: When true, blocks a card payment if the same card token has been used by a different customer for this merchant. allowedCardNetworks: type: array items: $ref: '#/components/schemas/CardType' allowServerToServerTokenization: type: boolean visaFraudMonitoringProgram: type: boolean refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - customerEmailNotifications - merchantEmailNotifications - avsCheck - threeDsChallengePreference - enforce3DSWhenProtectionExempt title: CardSettings RefundInfo: type: object properties: id: type: string merchantId: type: string paymentId: type: string userId: type: string totals: $ref: '#/components/schemas/RefundTotals' signature: type: string status: $ref: '#/components/schemas/RefundStatus' reimbursementStatus: $ref: '#/components/schemas/ReimbursementStatus' outstanding: $ref: '#/components/schemas/Cents' source: $ref: '#/components/schemas/RefundSource' method: $ref: '#/components/schemas/RefundMethod' failureReason: type: string createdAt: type: string format: date-time required: - id - merchantId - paymentId - totals - status - reimbursementStatus - outstanding - source - method - createdAt title: RefundInfo OrchestrationTraversalStep: type: object properties: nodeId: type: string nodeType: $ref: '#/components/schemas/OrchestrationTraversalStepNodeType' outcome: type: string operation: type: string required: - nodeId - nodeType title: OrchestrationTraversalStep MerchantStyle: type: string enum: - rounded - sharp - pill title: MerchantStyle ThreeDSArgs: type: object properties: VISA: $ref: '#/components/schemas/AcquirerInfo' MSTR: $ref: '#/components/schemas/AcquirerInfo' AMEX: $ref: '#/components/schemas/AcquirerInfo' DISC: $ref: '#/components/schemas/AcquirerInfo' scaOnly: type: boolean allowAttempts: type: boolean mcc: type: string required: - VISA - MSTR - AMEX - DISC - allowAttempts - mcc description: Construct a type with a set of properties K of type T title: ThreeDSArgs CardSettingsApplePayCertificates: type: object properties: merchantIdCert: type: string privatePem: type: string certPem: type: string merchantDisplay: type: string merchantIdentifier: type: string required: - merchantIdCert - privatePem - certPem - merchantDisplay - merchantIdentifier title: CardSettingsApplePayCertificates WebhookEventType: type: string enum: - Card Payment Authorized - Card Payment Declined - Card Payment Voided - Credits Minted - ACH Initiated - ACH Success - ACH Returned - ACH Failed - ACH Chargeback - ACH Batched - PIX Failed - PIX Expiration - Payment Authorized - Payment Expiration - Settled - Wire Initiated - USDC Payment Received - Subscription Created - Subscription Canceled - Subscription Expired - Subscription Failure - Subscription Concluded - Card Payment Chargeback Opened - Card Payment Chargeback Won - Card Payment Chargeback Lost - Card Payment Suspected Fraud - Payment Pending Review - KYC Created - KYC Success - KYC Failure - Sub-merchant KYB Created - Sub-merchant KYB Success - Sub-merchant KYB Failure - Withdraw Pending - Withdraw Success - Withdraw Failure - Seller Blocked - Refund - Refund Complete - Refund Failure - Refund Returned - Wire Failure - Iban Failure - Interac Failure - CashApp Failure - PayPal Failure - Venmo Failure - Reserve Released - Crypto Overpayment - Crypto Underpayment - Iban RFI Created - Iban RFI Submitted - Crypto Deposit Funds Received - Customer Override Limit Threshold - Crypto Payin Funds Received - PayPal Payment Authorized - PayPal Payment Voided - PayPal Payment Chargeback Opened - PayPal Payment Chargeback Won - PayPal Payment Chargeback Lost - Venmo Payment Authorized - Venmo Payment Voided - Venmo Payment Chargeback Opened - Venmo Payment Chargeback Won - Venmo Payment Chargeback Lost - Disbursed Funds title: WebhookEventType FraudReport: type: object properties: requestId: type: string report: $ref: '#/components/schemas/Record_any.any_' reportedAt: type: string format: date-time description: Timestamp when fraud was reported for this payment required: - requestId - report title: FraudReport IPaymentMongooseTypesObjectIdUserLocation: type: object properties: resolvedState: type: string resolvedCountry: type: string lng: type: number format: double lat: type: number format: double required: - lng - lat description: 'Browser-captured geolocation at the time of the request, when the caller supplied one. Stored independently of payment method so the merchant dashboard can render a map for any purchase type. `resolved*` fields are populated when the GEOLOCATION enforcement step happened to reverse- geocode the coordinates — they''re a free piggyback on the lock cache, not a guarantee.' title: IPaymentMongooseTypesObjectIdUserLocation Country: type: string enum: - AF - AL - DZ - AS - AD - AO - AI - AQ - AG - AR - AM - AW - AU - AT - AX - AZ - BS - BH - BD - BB - BY - BE - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - BN - BG - BF - BI - CV - KH - CM - CA - KY - CF - TD - CL - CN - CX - CC - CO - KM - CD - CG - CK - CR - HR - CU - CW - CY - CZ - CI - DK - DJ - DM - DO - EC - EG - SV - GQ - ER - EE - EH - SZ - ET - FK - FO - FJ - FI - FR - GF - PF - TF - GA - GM - GE - DE - GH - GI - GR - GL - GD - GP - GU - GT - GG - GN - GW - GY - HT - HM - VA - HN - HK - HU - IS - IN - ID - IR - IQ - IE - IM - IL - IT - JM - JP - JE - JO - KZ - KE - KI - KP - KR - KW - KG - LA - LV - LB - LS - LR - LY - LI - LT - LU - MO - MG - MW - MY - MV - ML - MT - MH - MQ - MR - MU - YT - MX - FM - MD - MC - MN - ME - MS - MA - MZ - MM - NA - NR - NP - NL - NC - NZ - NI - NE - NG - NU - NF - MP - 'NO' - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PL - PT - PR - QA - MK - RO - RU - RW - RE - BL - SH - KN - LC - MF - PM - VC - WS - SM - ST - SA - SN - RS - SC - SL - SG - SX - SK - SI - SB - SO - ZA - GS - SS - ES - LK - SD - SR - SJ - SE - CH - SY - TW - TJ - TZ - TH - TL - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - GB - UM - US - UY - UZ - VU - VE - VN - VG - VI - WF - XK - YE - ZM - ZW title: Country IMerchantMongooseTypesObjectIdWalletsEvm: type: object properties: usdcPayer: type: string feePayer: type: string required: - usdcPayer - feePayer title: IMerchantMongooseTypesObjectIdWalletsEvm Blockchain.POLYGON: type: string enum: - polygon title: Blockchain.POLYGON Verification: type: object properties: reference: type: string status: $ref: '#/components/schemas/VerificationStatus' vendor: $ref: '#/components/schemas/VerificationVendor' name: type: string attested: type: boolean shareToken: type: string shareTokenStatus: type: string sessionToken: type: string required: - reference - status - vendor title: Verification Partial_Record_Currency.number__: type: object properties: USD: type: number format: double AED: type: number format: double AFN: type: number format: double ALL: type: number format: double AMD: type: number format: double ANG: type: number format: double AOA: type: number format: double ARS: type: number format: double AUD: type: number format: double AWG: type: number format: double AZN: type: number format: double BAM: type: number format: double BBD: type: number format: double BDT: type: number format: double BGN: type: number format: double BHD: type: number format: double BIF: type: number format: double BMD: type: number format: double BND: type: number format: double BOB: type: number format: double BRL: type: number format: double BSD: type: number format: double BTN: type: number format: double BWP: type: number format: double BYN: type: number format: double BZD: type: number format: double CAD: type: number format: double CHF: type: number format: double CLF: type: number format: double CLP: type: number format: double CNY: type: number format: double COP: type: number format: double CRC: type: number format: double CUP: type: number format: double CVE: type: number format: double CZK: type: number format: double DJF: type: number format: double DKK: type: number format: double DOP: type: number format: double DZD: type: number format: double EGP: type: number format: double ETB: type: number format: double EUR: type: number format: double FJD: type: number format: double GBP: type: number format: double GEL: type: number format: double GHS: type: number format: double GMD: type: number format: double GNF: type: number format: double GTQ: type: number format: double GYD: type: number format: double HKD: type: number format: double HNL: type: number format: double HTG: type: number format: double HUF: type: number format: double IDR: type: number format: double ILS: type: number format: double INR: type: number format: double IQD: type: number format: double IRR: type: number format: double ISK: type: number format: double JMD: type: number format: double JOD: type: number format: double JPY: type: number format: double KES: type: number format: double KGS: type: number format: double KHR: type: number format: double KMF: type: number format: double KRW: type: number format: double KWD: type: number format: double KYD: type: number format: double KZT: type: number format: double LAK: type: number format: double LBP: type: number format: double LKR: type: number format: double LRD: type: number format: double LSL: type: number format: double LYD: type: number format: double MAD: type: number format: double MDL: type: number format: double MGA: type: number format: double MKD: type: number format: double MMK: type: number format: double MNT: type: number format: double MOP: type: number format: double MRU: type: number format: double MUR: type: number format: double MWK: type: number format: double MVR: type: number format: double MXN: type: number format: double MYR: type: number format: double MZN: type: number format: double NAD: type: number format: double NGN: type: number format: double NIO: type: number format: double NOK: type: number format: double NPR: type: number format: double NZD: type: number format: double OMR: type: number format: double PAB: type: number format: double PEN: type: number format: double PGK: type: number format: double PHP: type: number format: double PKR: type: number format: double PLN: type: number format: double PYG: type: number format: double QAR: type: number format: double RON: type: number format: double RSD: type: number format: double RWF: type: number format: double SAR: type: number format: double SCR: type: number format: double SDG: type: number format: double SEK: type: number format: double SGD: type: number format: double SLE: type: number format: double SLL: type: number format: double SOS: type: number format: double SRD: type: number format: double STN: type: number format: double SVC: type: number format: double SYP: type: number format: double SZL: type: number format: double THB: type: number format: double TJS: type: number format: double TMT: type: number format: double TND: type: number format: double TOP: type: number format: double TRY: type: number format: double TTD: type: number format: double TWD: type: number format: double TZS: type: number format: double UAH: type: number format: double UGX: type: number format: double UYU: type: number format: double UZS: type: number format: double VND: type: number format: double VUV: type: number format: double WST: type: number format: double XAF: type: number format: double XCD: type: number format: double XOF: type: number format: double XPF: type: number format: double YER: type: number format: double ZAR: type: number format: double ZMW: type: number format: double ZWL: type: number format: double CDF: type: number format: double ERN: type: number format: double FKP: type: number format: double KPW: type: number format: double RUB: type: number format: double SBD: type: number format: double SHP: type: number format: double SSP: type: number format: double VES: type: number format: double description: Make all properties in T optional title: Partial_Record_Currency.number__ CardType: type: string enum: - VISA - MSTR - AMEX - DISC title: CardType PixPayoutProvider: type: string enum: - brla - mock title: PixPayoutProvider ExchangeTotalsResponse: type: object properties: fxFees: $ref: '#/components/schemas/CurrencyCents' networkFees: $ref: '#/components/schemas/CurrencyCents' payInFees: $ref: '#/components/schemas/CurrencyCents' total: $ref: '#/components/schemas/CurrencyCents' reserve: $ref: '#/components/schemas/CurrencyCents' merchantPaidCreditCardFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidChargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidGasFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidFxFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidNetworkFees: $ref: '#/components/schemas/CurrencyCents' invoicedCreditCardFees: $ref: '#/components/schemas/CurrencyCents' invoicedChargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' invoicedGasFees: $ref: '#/components/schemas/CurrencyCents' invoicedFxFees: $ref: '#/components/schemas/CurrencyCents' invoicedNetworkFees: $ref: '#/components/schemas/CurrencyCents' gasFees: $ref: '#/components/schemas/CurrencyCents' chargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' creditCardFees: $ref: '#/components/schemas/CurrencyCents' subtotal: $ref: '#/components/schemas/CurrencyCents' required: - fxFees - total description: From T, pick a set of properties whose keys are in the union K title: ExchangeTotalsResponse RainCompanyCardsSettings: type: object properties: enabled: type: boolean rainCompanyId: type: string externalId: type: string applicationStatus: $ref: '#/components/schemas/RainCardApplicationStatus' applicationReason: type: string completionLink: type: string submittedAt: type: string format: date-time lastSyncedAt: type: string format: date-time contract: $ref: '#/components/schemas/RainContractInfo' autoTopUp: $ref: '#/components/schemas/RainAutoTopUpSettings' pendingTopUps: type: array items: $ref: '#/components/schemas/RainPendingTopUp' processedSpendTxnIds: type: array items: type: string title: RainCompanyCardsSettings KycType: type: string enum: - person - business - both title: KycType IMerchantStringSettlementAddresses: type: object properties: solana: type: string eth: type: string polygon: type: string base: type: string user: type: string arbitrum: type: string stellar: type: string monad: type: string tempo: type: string directVendor: $ref: '#/components/schemas/DirectVendorSettlement' mpcWalletProvider: $ref: '#/components/schemas/MpcWalletProvider' recipientAddresses: type: array items: $ref: '#/components/schemas/IMerchantStringSettlementAddressesRecipientAddressesItems' verification: $ref: '#/components/schemas/Verification' title: IMerchantStringSettlementAddresses StoredCardTransactionType: type: string enum: - MOBILE - SAVED - NEW - MIT - COF title: StoredCardTransactionType ProgramWhitelistRequest: type: object properties: programId: type: string blockchain: $ref: '#/components/schemas/Blockchain' status: $ref: '#/components/schemas/ProgramWhitelistStatus' required: - programId - blockchain - status title: ProgramWhitelistRequest IPaymentStringPixInfo: type: object properties: reason: type: string processed: type: string format: date-time transaction: type: string tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' expiration: type: string format: date-time processor: $ref: '#/components/schemas/PixProcessor' status: $ref: '#/components/schemas/PixPaymentStatus' required: - expiration - processor - status title: IPaymentStringPixInfo AftPurpose: type: string enum: - businessToBusiness - creditCardRepayment - crypto - crowdLending - debitCard - education - emergency - familySupport - gift - giftCard - gaming - highRiskSecurities - liquidAssets - medical - payroll - prepaidCard - salary - savings - travel - other title: AftPurpose IInteracPaymentInfo: type: object properties: status: $ref: '#/components/schemas/InteracPaymentStatus' processor: $ref: '#/components/schemas/InteracProcessor' identityId: type: string description: 'AptPay identity ID for the consumer. Cached so refunds can push back to the same Interac contact without re-creating the identity.' email: type: string description: 'Consumer''s Interac contact — exactly one of email/phone must be set. Captured at payin time so a refund can issue a push payout via AptPayInteracPayoutProvider.' phone: type: string referenceId: type: string transaction: type: string processed: type: string format: date-time expiration: type: string format: date-time reason: type: string required: - status - processor - identityId - referenceId - expiration title: IInteracPaymentInfo Pick_MarketplaceInfo.fixedFee-or-feePercentage_: type: object properties: feePercentage: type: number format: double fixedFee: $ref: '#/components/schemas/CurrencyCents' description: From T, pick a set of properties whose keys are in the union K title: Pick_MarketplaceInfo.fixedFee-or-feePercentage_ Segment: type: string enum: - consumer - business - commercial title: Segment IPayment_string_: type: object properties: _id: type: string paymentId: type: string paymentIntentId: type: string totals: $ref: '#/components/schemas/TotalsResponse' customer: $ref: '#/components/schemas/IPaymentStringCustomer' merchant: $ref: '#/components/schemas/IPaymentStringMerchant' chargebackProtectionDecision: $ref: '#/components/schemas/ChargebackProtectionDecision' liabilityOwner: $ref: '#/components/schemas/LiabilityOwner' error: type: string signature: type: string webhookInfo: $ref: '#/components/schemas/AnyObject' createdAt: type: string format: date-time velocityDate: type: string format: date-time description: 'Date when velocity check was done and used to bucket payments into velocity days Should match when a velocity hold was created if one was' cardInfo: $ref: '#/components/schemas/IPaymentStringCardInfo' bankTransferInfo: $ref: '#/components/schemas/IPaymentStringBankTransferInfo' pixInfo: $ref: '#/components/schemas/IPaymentStringPixInfo' ibanInfo: $ref: '#/components/schemas/IPaymentStringIbanInfo' wireInfo: $ref: '#/components/schemas/IWirePaymentInfo' cashAppInfo: $ref: '#/components/schemas/ICashAppPaymentInfo' paypalInfo: $ref: '#/components/schemas/IPayPalPaymentInfo' venmoInfo: $ref: '#/components/schemas/IVenmoPaymentInfo' apaInfo: $ref: '#/components/schemas/IApaPaymentInfo' interacInfo: $ref: '#/components/schemas/IInteracPaymentInfo' cryptoInfo: $ref: '#/components/schemas/IPaymentStringCryptoInfo' exchangeInfo: $ref: '#/components/schemas/ExchangeInfo' subscription: $ref: '#/components/schemas/IPaymentStringSubscription' settlementType: $ref: '#/components/schemas/SettlementType' blockchain: $ref: '#/components/schemas/OperationalBlockchain' wallet: type: string redemptionCheck: type: boolean marketplaceInfo: $ref: '#/components/schemas/MarketplaceInfo' destination: type: string destinationSettlementToken: type: string overrideAuditLog: $ref: '#/components/schemas/OverrideAuditLog' customerUsdcTransferData: $ref: '#/components/schemas/CustomerUsdcTransferData' customerUsdcTransferDataV2: $ref: '#/components/schemas/CustomerUsdcTransferDataV2' delayedSettlement: $ref: '#/components/schemas/IPaymentStringDelayedSettlement' referrer: type: string alertStatus: $ref: '#/components/schemas/KytAlertStatus' refundInfo: $ref: '#/components/schemas/IPaymentStringRefundInfo' userLocation: $ref: '#/components/schemas/IPaymentStringUserLocation' description: 'Browser-captured geolocation at the time of the request, when the caller supplied one. Stored independently of payment method so the merchant dashboard can render a map for any purchase type. `resolved*` fields are populated when the GEOLOCATION enforcement step happened to reverse- geocode the coordinates — they''re a free piggyback on the lock cache, not a guarantee.' entityTag: $ref: '#/components/schemas/EntityTag' vendorTransfer: $ref: '#/components/schemas/IPaymentStringVendorTransfer' feesInvoicedPeriod: type: string vendorInfo: $ref: '#/components/schemas/Record_string.string_' required: - _id - paymentId - totals - customer - merchant - chargebackProtectionDecision - createdAt title: IPayment_string_ WalletDebitStatus: type: string enum: - pending - success - failed title: WalletDebitStatus VerisoulRiskThresholds: type: object properties: device_risk: type: number format: double proxy: type: number format: double vpn: type: number format: double tor: type: number format: double spoofed_ip: type: number format: double datacenter: type: number format: double recent_fraud_ip: type: number format: double impossible_travel: type: number format: double device_network_mismatch: type: number format: double account_score: type: number format: double risk_signals: type: number format: double email_score: type: number format: double title: VerisoulRiskThresholds WirePayoutProvider: type: string enum: - MOCK - BRAID title: WirePayoutProvider mongoose.Types.ObjectId: type: string title: mongoose.Types.ObjectId ISubscriptionPlanMongooseTypesObjectIdMerchant: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/IMerchant_mongoose.Types.ObjectId_' title: ISubscriptionPlanMongooseTypesObjectIdMerchant IMerchantStringBlockConfig: type: object properties: disableMultiCardAttemptCheck: type: boolean description: When true, skips the multi-card attempt check (2+ distinct cards failing in 1 hour). maxDistinctTokensPer30Days: type: number format: double description: 'Maximum number of distinct card tokens a single customer may use across non-failed/voided card payments for this merchant in a rolling 30-day window. Apple Pay / Google Pay payments are excluded. Unset or 0 disables the check. Customers with `failedAttemptSetting: Exempt` bypass it.' disableDestinationAuthKey: type: boolean description: When true, prevents usage of destinationAuthKey for custom settlement addresses. enableNmiSettlement: type: boolean description: When true, enables the settlement pipeline for NMI transactions (converts card payments to USDC). disableInvoiceWalletPayment: type: boolean description: When true, disables wallet balance payments for invoices. Merchants must use checkout. blockingRules: type: array items: $ref: '#/components/schemas/IBlockingRule' description: 'Independent geo-blocking rules for withdrawals vs card checkout, with explicit per-rule enforcement methods (KYC address / IP / billing address). Read via `getBlockingRules` so callers transparently see the legacy `bannedWithdrawalStates` for un-migrated merchants.' bannedWithdrawalStates: type: array items: $ref: '#/components/schemas/USState' whitelistedBinLocations: type: array items: $ref: '#/components/schemas/Country' failedPaymentAttemptLimit: type: number format: double title: IMerchantStringBlockConfig ApaSettings: type: object properties: processor: $ref: '#/components/schemas/ApaProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean required: - customerEmailNotifications - merchantEmailNotifications title: ApaSettings RefundDenominationType: type: string enum: - usd - token title: RefundDenominationType VenmoProcessor: type: string enum: - mock - paypal title: VenmoProcessor CustomerUsdcTransferDataV2ValidAfter: oneOf: - type: string - type: number format: double title: CustomerUsdcTransferDataV2ValidAfter UboEntry: type: object properties: reference: type: string status: $ref: '#/components/schemas/VerificationStatus' vendor: $ref: '#/components/schemas/VerificationVendor' name: type: string attested: type: boolean shareToken: type: string shareTokenStatus: type: string sessionToken: type: string ownershipPct: type: number format: double required: - reference - status - vendor title: UboEntry IPaymentMongooseTypesObjectIdIbanInfo: type: object properties: reference: type: string failedAttempts: type: array items: $ref: '#/components/schemas/FailedIbanAttempt' accountHolder: type: string reason: type: string transactionId: type: string processed: type: string format: date-time tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' transaction: type: string expiration: type: string format: date-time token: type: string processor: $ref: '#/components/schemas/IbanProcessor' status: $ref: '#/components/schemas/IbanPaymentStatus' required: - expiration - token - processor - status title: IPaymentMongooseTypesObjectIdIbanInfo RefundReason: type: string enum: - userCancellation - failedFulfillment - buyerFraud - other title: RefundReason PayPalSettings: type: object properties: processor: $ref: '#/components/schemas/PayPalProcessor' feeMode: $ref: '#/components/schemas/FeePayerMode' fxFeeMode: $ref: '#/components/schemas/FeePayerMode' maxFee: $ref: '#/components/schemas/Cents' fixedFee: $ref: '#/components/schemas/Cents' feeBps: type: number format: double minFee: $ref: '#/components/schemas/Cents' customerEmailNotifications: type: boolean merchantEmailNotifications: type: boolean refundFeeSettings: $ref: '#/components/schemas/RefundFeeSettings' required: - fixedFee - feeBps - minFee - customerEmailNotifications - merchantEmailNotifications title: PayPalSettings BlockingRuleListMode: type: string enum: - DENY - ALLOW title: BlockingRuleListMode CardPaymentStatus: type: string enum: - AUTHORIZED - DEPOSITED - SETTLED - REFUNDED - FAILED - CHARGEBACK - CHARGEBACK_LOST - CHARGEBACK_WON - VOIDED title: CardPaymentStatus TotalsResponse: type: object properties: subtotal: $ref: '#/components/schemas/CurrencyCents' creditCardFees: $ref: '#/components/schemas/CurrencyCents' chargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' gasFees: $ref: '#/components/schemas/CurrencyCents' fxFees: $ref: '#/components/schemas/CurrencyCents' networkFees: $ref: '#/components/schemas/CurrencyCents' payInFees: $ref: '#/components/schemas/CurrencyCents' total: $ref: '#/components/schemas/CurrencyCents' reserve: $ref: '#/components/schemas/CurrencyCents' merchantPaidCreditCardFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidChargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidGasFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidFxFees: $ref: '#/components/schemas/CurrencyCents' merchantPaidNetworkFees: $ref: '#/components/schemas/CurrencyCents' invoicedCreditCardFees: $ref: '#/components/schemas/CurrencyCents' invoicedChargebackProtectionFees: $ref: '#/components/schemas/CurrencyCents' invoicedGasFees: $ref: '#/components/schemas/CurrencyCents' invoicedFxFees: $ref: '#/components/schemas/CurrencyCents' invoicedNetworkFees: $ref: '#/components/schemas/CurrencyCents' required: - subtotal - creditCardFees - chargebackProtectionFees - gasFees - fxFees - total title: TotalsResponse VenmoPayoutProvider: type: string enum: - checkbook - citcon - mock - paypal title: VenmoPayoutProvider CustomPayInFeeValue0: type: object properties: cents: type: number format: double currency: $ref: '#/components/schemas/Currency' percent: type: - number - 'null' format: double isFixed: type: boolean required: - cents - currency - percent - isFixed title: CustomPayInFeeValue0 IWirePaymentInfo: type: object properties: status: $ref: '#/components/schemas/WirePaymentStatus' processor: $ref: '#/components/schemas/WireProcessor' token: type: string memo: type: string transaction: type: string tokenSubtotal: $ref: '#/components/schemas/TokenSubtotal' processed: type: string format: date-time expiration: type: string format: date-time transactionId: type: string braidWireReferencePaymentId: type: string reason: type: string required: - status - processor - token - memo - expiration title: IWirePaymentInfo ICustomer_string_: type: object properties: _id: type: string customerId: type: string blockchain: $ref: '#/components/schemas/Blockchain' email: type: string availability: $ref: '#/components/schemas/IAvailability' createdAt: type: string format: date-time verification: $ref: '#/components/schemas/Verification' ubos: type: array items: $ref: '#/components/schemas/UboEntry' customerInfo: $ref: '#/components/schemas/CustomerInfo' chargebackProtectionEnabled: type: boolean merchant: $ref: '#/components/schemas/ICustomerStringMerchant' failedAttemptSetting: $ref: '#/components/schemas/FailedAttemptSetting' verificationSetting: $ref: '#/components/schemas/CustomerVerificationSetting' exempt3DS: type: boolean chargebackProtectionOverrideLog: $ref: '#/components/schemas/CustomerOverrideAuditLog' geoBlockOverride: $ref: '#/components/schemas/IGeoBlockOverride' blockConfigOverride: $ref: '#/components/schemas/ICustomerStringBlockConfigOverride' description: Per-customer overrides of merchant `blockConfig`. Only honored when they raise the effective limit. customerOverrideLimit: $ref: '#/components/schemas/Cents' overrideExposureLimit: $ref: '#/components/schemas/Cents' fraudOverrideWhitelist: type: boolean required: - _id - customerId - email - availability - createdAt - chargebackProtectionEnabled - merchant - failedAttemptSetting - verificationSetting title: ICustomer_string_ ApaProcessor: type: string enum: - apa - mock title: ApaProcessor RefundMethod: type: string enum: - Card - Ach - Pix - Iban - Wire - Crypto - CashApp - APA - PayPal - Venmo - Interac title: RefundMethod IPaymentStringDelayedSettlement: type: object properties: disbursedAt: type: string format: date-time isDisbursed: type: boolean days: type: number format: double scheduledDate: type: string format: date-time isScheduled: type: boolean required: - isDisbursed - days - scheduledDate - isScheduled title: IPaymentStringDelayedSettlement RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaCustomer: oneOf: - $ref: '#/components/schemas/mongoose.Types.ObjectId' - $ref: '#/components/schemas/ICustomer_mongoose.Types.ObjectId_' title: RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaCustomer RainContractInfo: type: object properties: contractId: type: string chainId: type: number format: double depositAddress: type: string proxyAddress: type: string controllerAddress: type: string contractVersion: type: number format: double adminAddresses: type: array items: type: string onramp: $ref: '#/components/schemas/RainContractInfoOnramp' createdAt: type: string format: date-time lastSyncedAt: type: string format: date-time required: - contractId - chainId - depositAddress - createdAt - lastSyncedAt title: RainContractInfo CashAppProcessor: type: string enum: - mock - flashnet title: CashAppProcessor IMerchantMongooseTypesObjectIdSettlementAddresses: type: object properties: solana: type: string eth: type: string polygon: type: string base: type: string user: type: string arbitrum: type: string stellar: type: string monad: type: string tempo: type: string directVendor: $ref: '#/components/schemas/DirectVendorSettlement' mpcWalletProvider: $ref: '#/components/schemas/MpcWalletProvider' recipientAddresses: type: array items: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdSettlementAddressesRecipientAddressesItems' verification: $ref: '#/components/schemas/Verification' title: IMerchantMongooseTypesObjectIdSettlementAddresses CustomWithdrawFeeValue0: type: object properties: maxFeeCents: type: - number - 'null' format: double minFeeCents: type: - number - 'null' format: double coverProcessingFees: type: boolean cents: type: number format: double currency: $ref: '#/components/schemas/Currency' percent: type: - number - 'null' format: double isFixed: type: boolean required: - maxFeeCents - minFeeCents - coverProcessingFees - cents - currency - percent - isFixed title: CustomWithdrawFeeValue0 SsoProvider: type: string enum: - google title: SsoProvider ReimbursementStatus: type: string enum: - Pending - Complete - Failure - Returned title: ReimbursementStatus IMerchantMongooseTypesObjectIdWallets: type: object properties: stellar: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWalletsStellar' evm: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWalletsEvm' solana: $ref: '#/components/schemas/IMerchantMongooseTypesObjectIdWalletsSolana' required: - stellar - evm - solana title: IMerchantMongooseTypesObjectIdWallets MerchantSsoSettings: type: object properties: requireSso: type: boolean required: - requireSso title: MerchantSsoSettings ISubscriptionPlan_mongoose.Types.ObjectId_: type: object properties: _id: $ref: '#/components/schemas/mongoose.Types.ObjectId' merchant: $ref: '#/components/schemas/ISubscriptionPlanMongooseTypesObjectIdMerchant' name: type: string code: type: string interval: $ref: '#/components/schemas/SubscriptionInterval' duration: type: integer description: 'This represents the span of an interval. Ex. duration = 3, interval = Monthly means every 3 months the subscription renews Default is 1' amount: $ref: '#/components/schemas/CurrencyCents' description: type: string transaction: type: string settlementChain: $ref: '#/components/schemas/OperationalBlockchain' settlementType: $ref: '#/components/schemas/SettlementType' active: type: boolean merchantInitiated: type: boolean description: If true this means we will not run it through our Subscription Payments Pipeline, but instead make the merchant pass us the plan code for MITs to process it required: - _id - merchant - name - code - interval - amount - active title: ISubscriptionPlan_mongoose.Types.ObjectId_ IMerchantStringSettlementAddressesRecipientAddressesItems: type: object properties: info: $ref: '#/components/schemas/Record_string.any_' createdAt: type: string format: date-time recipient: type: string required: - createdAt - recipient title: IMerchantStringSettlementAddressesRecipientAddressesItems PayPalPaymentStatus: type: string enum: - INITIATED - AUTHORIZED - DEPOSITED - SETTLED - REFUNDED - FAILED - CHARGEBACK - CHARGEBACK_LOST - CHARGEBACK_WON - VOIDED title: PayPalPaymentStatus OrchestrationInfo: type: object properties: ruleId: type: string ruleUsed: type: string resolvedPath: type: string graphTraversal: type: array items: $ref: '#/components/schemas/OrchestrationTraversalStep' processorList: type: array items: $ref: '#/components/schemas/PaymentProcessor' successfulProcessor: $ref: '#/components/schemas/PaymentProcessor' usedFallback: type: boolean failedAttempts: type: array items: $ref: '#/components/schemas/OrchestrationFailedAttempt' title: OrchestrationInfo MarketplaceInfo: type: object properties: marketplaceFee: $ref: '#/components/schemas/CurrencyCents' marketplaceSettlement: $ref: '#/components/schemas/CurrencyCents' sellerSettlement: $ref: '#/components/schemas/CurrencyCents' feePercentage: type: number format: double fixedFee: $ref: '#/components/schemas/CurrencyCents' title: MarketplaceInfo SubscriptionStatus: type: string enum: - Active - Canceled - Expired - Concluded - Failed - Blocked title: SubscriptionStatus CustomPayInFeeConfig: type: object properties: fee: $ref: '#/components/schemas/CustomPayInFeeValue' lineItemLabel: type: string required: - fee - lineItemLabel title: CustomPayInFeeConfig CrbMerchantArgs: type: object properties: merchantAcceptorId: type: string description: 'Highnote MerchantAcceptor id — populated by Highnote onboarding, not hand-entered. Optional because the subledger account number can be recorded (from CRB''s manual onboarding) before Highnote provisions the acceptor.' subledgerAccountNumber: type: string description: 'The merchant''s CRB subledger account that AFT pulls fund. Recorded from CRB''s manual onboarding; enables the AFT branch of the CRB provider.' title: CrbMerchantArgs WireProcessor: type: string enum: - braid - mock title: WireProcessor ExchangeInfo: type: object properties: amount: $ref: '#/components/schemas/ExchangeTotalsResponse' rate: type: number format: double base: $ref: '#/components/schemas/CurrencyCents' required: - amount - rate title: ExchangeInfo Refund_GetRefundViaPaymentId_Response_200: type: object properties: returnSignature: type: string walletDebitTxHash: type: string walletDebitStatus: $ref: '#/components/schemas/WalletDebitStatus' cryptoRefundInfo: $ref: '#/components/schemas/CryptoRefundInfo' failureReason: type: string refundedBy: $ref: '#/components/schemas/MerchantEditor' reason: $ref: '#/components/schemas/RefundReason' updatedAt: type: string format: date-time createdAt: type: string format: date-time invoicedAt: type: string format: date-time provider: type: string method: $ref: '#/components/schemas/RefundMethod' source: $ref: '#/components/schemas/RefundSource' outstanding: $ref: '#/components/schemas/Cents' reimbursementId: type: string reimbursementStatus: $ref: '#/components/schemas/ReimbursementStatus' status: $ref: '#/components/schemas/RefundStatus' signature: type: string payment: $ref: '#/components/schemas/RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaPayment' merchant: $ref: '#/components/schemas/RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaMerchant' customer: $ref: '#/components/schemas/RefundsPaymentPaymentIdGetResponsesContentApplicationJsonSchemaCustomer' totals: $ref: '#/components/schemas/RefundTotals' _id: type: string required: - refundedBy - reason - updatedAt - createdAt - provider - method - source - outstanding - reimbursementStatus - status - payment - merchant - customer - totals - _id title: Refund_GetRefundViaPaymentId_Response_200 IMerchantMongooseTypesObjectIdProcessing: type: object properties: msaSigned: type: boolean statementsOnFile: type: boolean required: - msaSigned - statementsOnFile title: IMerchantMongooseTypesObjectIdProcessing IPaymentStringRefundInfo: type: object properties: count: type: number format: double refundedAt: type: string format: date-time amount: $ref: '#/components/schemas/CurrencyCents' required: - count - refundedAt - amount title: IPaymentStringRefundInfo BlockedStatus: type: object properties: level: $ref: '#/components/schemas/BlockedLevel' reason: type: string editor: type: string blockedAt: type: string format: date-time recoverySignature: type: string required: - level - reason - editor - blockedAt title: BlockedStatus Blockchain.BASE: type: string enum: - base title: Blockchain.BASE ISubscriptionStringCustomer: oneOf: - type: string - $ref: '#/components/schemas/ICustomer_string_' title: ISubscriptionStringCustomer RfiStatus: type: string enum: - pending - completed title: RfiStatus AptpayCanadaCoinflowSettings: type: object properties: coinflow: type: boolean required: - coinflow title: AptpayCanadaCoinflowSettings PaymentProcessor: type: string enum: - payarc - mock - shift4 - merchant_warrior - greenlight - frame - nmi_direct - mvb - fifththird - natwest - nuveiv1 - fallback_payarc_shift4 - fallback_shift4_payarc - fallback_shift4_nuvei - fallback_nuvei_payarc - fallback_payarc_nuvei - fallback_shift4_greenlight - fallback_greenlight_shift4 - fallback_frame_merchant_warrior - fallback_merchant_warrior_frame - fallback_natwest_shift4 - fallback_natwest_nuvei - fallback_natwest_shift4_payarc - fallback_natwest_shift4_nuvei - fallback_shift4_natwest_payarc - fallback_nuvei_natwest_payarc - fallback_natwest_nuvei_payarc - fallback_mvb_fifththird_shift4_payarc - fallback_fifththird_mvb_shift4_payarc - fallback_mvb_nuvei - fallback_nuvei_fifththird - fallback_fifththird_nuvei title: PaymentProcessor securitySchemes: wallet: type: apiKey in: header name: x-coinflow-auth-wallet description: The web3 wallet of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key blockchain: type: apiKey in: header name: x-coinflow-auth-blockchain description: The blockchain associated with the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key userId: type: apiKey in: header name: x-coinflow-auth-user-id description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key merchant: type: apiKey in: header name: Authorization description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key signedMessage: type: apiKey in: header name: x-coinflow-auth-signed-message description: The message signed by the users wallet merchantId: type: apiKey in: header name: x-coinflow-auth-merchant-id description: The merchant ID the session should be generated for sessionKey: type: apiKey in: header name: x-coinflow-auth-session-key description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key admin: type: apiKey in: header name: Authorization