{"openapi":"3.0.0","paths":{"/api/v1/users":{"post":{"operationId":"UsersController_create_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]}],"tags":["Users"]},"get":{"operationId":"UsersController_findAll_v1","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"filters","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort","required":false,"in":"query","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfinityPaginationUserResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Users"]}},"/api/v1/users/{id}":{"get":{"operationId":"UsersController_findOne_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]}],"tags":["Users"]},"patch":{"operationId":"UsersController_update_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]}],"tags":["Users"]},"delete":{"operationId":"UsersController_remove_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]}],"tags":["Users"]}},"/api/v1/files/upload":{"post":{"operationId":"FilesLocalController_uploadFile_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Files"]}},"/api/v1/auth/email/login":{"post":{"operationId":"AuthController_login_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthEmailLoginDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Auth"]}},"/api/v1/auth/email/login/send-code":{"post":{"operationId":"AuthController_sendLoginCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSendLoginCodeDto"}}}},"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/email/login/verify-code":{"post":{"operationId":"AuthController_verifyLoginCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthVerifyLoginCodeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Auth"]}},"/api/v1/auth/email/register":{"post":{"operationId":"AuthController_register_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRegisterLoginDto"}}}},"responses":{"204":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/email/register/send-code":{"post":{"operationId":"AuthController_sendSignupCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSendSignupCodeDto"}}}},"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/email/register/verify-code":{"post":{"operationId":"AuthController_verifySignupCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthVerifySignupCodeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Auth"]}},"/api/v1/auth/email/confirm":{"post":{"operationId":"AuthController_confirmEmail_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfirmEmailDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Auth"]}},"/api/v1/auth/email/confirm/new":{"post":{"operationId":"AuthController_confirmNewEmail_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfirmEmailDto"}}}},"responses":{"204":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/email/confirm/resend/status":{"post":{"operationId":"AuthController_getResendConfirmStatus_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResendConfirmEmailDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendConfirmStatusResponseDto"}}}}},"tags":["Auth"]}},"/api/v1/auth/email/confirm/resend":{"post":{"operationId":"AuthController_resendConfirmEmail_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResendConfirmEmailDto"}}}},"responses":{"204":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/forgot/password":{"post":{"operationId":"AuthController_forgotPassword_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthForgotPasswordDto"}}}},"responses":{"204":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/reset/password":{"post":{"operationId":"AuthController_resetPassword_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResetPasswordDto"}}}},"responses":{"204":{"description":""}},"tags":["Auth"]}},"/api/v1/auth/me":{"get":{"operationId":"AuthController_me_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]}],"tags":["Auth"]},"patch":{"operationId":"AuthController_update_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthUpdateDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"bearer":[]}],"tags":["Auth"]},"delete":{"operationId":"AuthController_delete_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]}],"tags":["Auth"]}},"/api/v1/auth/refresh":{"post":{"operationId":"AuthController_refresh_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Auth"]}},"/api/v1/auth/logout":{"post":{"operationId":"AuthController_logout_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]}],"tags":["Auth"]}},"/api/v1/auth/google/login":{"post":{"operationId":"AuthGoogleController_login_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthGoogleLoginDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Auth"]}},"/":{"get":{"operationId":"HomeController_appInfo","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"tags":["Home"]}},"/api/debug-sentry":{"get":{"description":"Throws an error to test Sentry error tracking. Only available when Sentry is configured.","operationId":"HomeController_debugSentry","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"This route intentionally throws an error for testing"}},"summary":"Debug Sentry integration","tags":["Home"]}},"/api/v1/payments/links":{"post":{"operationId":"PaymentsController_createPaymentLink_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]},"get":{"operationId":"PaymentsController_getUserPaymentLinks_v1","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Filter by organization ID (UUID)","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search in title (case-insensitive)","schema":{"example":"invoice","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status (single value)","schema":{"type":"string","enum":["active","paused","expired","completed","canceled"]}},{"name":"networkId","required":false,"in":"query","description":"Filter by network ID (UUID)","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter by token ID (UUID)","schema":{"type":"string"}},{"name":"payerEmail","required":false,"in":"query","description":"Filter by payer email (case-insensitive)","schema":{"example":"payer@example.com","type":"string"}},{"name":"payerAddress","required":false,"in":"query","description":"Filter by payer wallet address","schema":{"example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field","schema":{"example":"createdAt","type":"string","enum":["createdAt","title","amount","status","updatedAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"example":"desc","type":"string","enum":["asc","desc"]}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of payment links with optional search, filter, sort","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfinityPaginationPaymentLinkResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/links/by-id/{id}/page":{"get":{"operationId":"PaymentsController_getPaymentPageById_v1","parameters":[{"name":"id","required":true,"in":"path","description":"Payment link UUID","schema":{"type":"string"}},{"name":"payerTokenId","required":false,"in":"query","description":"When provided with payerNetworkId, updates the pending transaction to this payer token and returns the page with new quote.","schema":{"type":"string"}},{"name":"payerNetworkId","required":false,"in":"query","description":"When provided with payerTokenId, updates the pending transaction to this payer network and returns the page with new quote.","schema":{"type":"string"}},{"name":"supportPercent","required":false,"in":"query","description":"Current support fee percent to preserve while rehydrating the page quote after payer token/network changes.","schema":{"example":0,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Get payment page payload by payment link ID (UUID). Same response as GET links/:slug/page."}},"tags":["Payments"]}},"/api/v1/payments/links/{slug}/page":{"get":{"operationId":"PaymentsController_getPaymentPageBySlug_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"name":"payerTokenId","required":false,"in":"query","description":"When provided with payerNetworkId, updates the pending transaction to this payer token and returns the page with new quote.","schema":{"type":"string"}},{"name":"payerNetworkId","required":false,"in":"query","description":"When provided with payerTokenId, updates the pending transaction to this payer network and returns the page with new quote.","schema":{"type":"string"}},{"name":"supportPercent","required":false,"in":"query","description":"Current support fee percent to preserve while rehydrating the page quote after payer token/network changes.","schema":{"example":0,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Get payment page payload (payment link + transactions + latest quote). Optional payerTokenId + payerNetworkId update the pending transaction and return the page with new quote. Slug or UUID accepted."}},"tags":["Payments"]}},"/api/v1/payments/links/{slug}":{"get":{"operationId":"PaymentsController_getPaymentLinkBySlug_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}}},"tags":["Payments"]}},"/api/v1/payments/links/{slug}/subscription/payer-email":{"post":{"operationId":"PaymentsController_setSubscriptionPayerEmail_v1","parameters":[{"name":"slug","required":true,"in":"path","description":"Payment link slug","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetSubscriptionPayerEmailDto"}}}},"responses":{"200":{"description":"Payer email attached to the subscription","content":{"application/json":{"schema":{"type":"object","properties":{"payer_email_set":{"type":"boolean","example":true}}}}}}},"tags":["Payments"]}},"/api/v1/payments/links/{id}":{"patch":{"operationId":"PaymentsController_updatePaymentLink_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePaymentLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]},"delete":{"operationId":"PaymentsController_deletePaymentLink_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"204":{"description":""}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/links/{slug}/quote":{"post":{"operationId":"PaymentsController_getQuote_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetQuoteDto"}}}},"responses":{"200":{"description":"Get a quote for payment with selected token/network","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponseDto"}}}}},"tags":["Payments"]}},"/api/v1/payments/links/{slugOrId}/transactions":{"get":{"operationId":"PaymentsController_getPaymentLinkTransactions_v1","parameters":[{"name":"slugOrId","required":true,"in":"path","description":"Payment link slug or UUID","schema":{"type":"string"}},{"name":"organizationId","required":false,"in":"query","description":"Filter by organization ID (UUID)","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search in id, address, txHash, or amount (case-insensitive where applicable)","schema":{"example":"0x123","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status (comma-separated or repeated)","schema":{"type":"array","items":{"type":"string","enum":["pending","partial_confirmed","confirmed","canceled","expired","completed","withdrawn"]}}},{"name":"paymentLinkId","required":false,"in":"query","description":"Filter by payment link ID (UUID)","schema":{"type":"string"}},{"name":"networkId","required":false,"in":"query","description":"Filter by payer network ID (UUID). Matches quote payer network or link network when quote is missing.","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter by payer token ID (UUID). Matches quote payer token or link token when quote is missing.","schema":{"type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field","schema":{"example":"createdAt","type":"string","enum":["createdAt","amount","status","amountReceived","updatedAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"example":"desc","type":"string","enum":["asc","desc"]}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated transactions for a payment link (by slug or id) with optional search, filter, sort","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfinityPaginationPaymentTransactionResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/links/{slug}/transactions":{"post":{"operationId":"PaymentsController_createTransaction_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTransactionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentTransaction"}}}}},"tags":["Payments"]}},"/api/v1/payments/transactions/{id}":{"get":{"operationId":"PaymentsController_getTransactionById_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentTransaction"}}}}},"tags":["Payments"]}},"/api/v1/payments/transactions":{"get":{"operationId":"PaymentsController_getUserTransactions_v1","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Filter by organization ID (UUID)","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search in id, address, txHash, or amount (case-insensitive where applicable)","schema":{"example":"0x123","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status (comma-separated or repeated)","schema":{"type":"array","items":{"type":"string","enum":["pending","partial_confirmed","confirmed","canceled","expired","completed","withdrawn"]}}},{"name":"paymentLinkId","required":false,"in":"query","description":"Filter by payment link ID (UUID)","schema":{"type":"string"}},{"name":"networkId","required":false,"in":"query","description":"Filter by payer network ID (UUID). Matches quote payer network or link network when quote is missing.","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter by payer token ID (UUID). Matches quote payer token or link token when quote is missing.","schema":{"type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field","schema":{"example":"createdAt","type":"string","enum":["createdAt","amount","status","amountReceived","updatedAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"example":"desc","type":"string","enum":["asc","desc"]}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of transactions with optional search, filter, sort","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfinityPaginationPaymentTransactionResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/chain-types":{"get":{"operationId":"PaymentsController_getChainTypes_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"List of available chain types for filtering networks","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","enum":["evm","solana","bitcoin","tron","cosmos","polkadot","move","ton"]}}}}}},"tags":["Payments"]}},"/api/v1/payments/networks/stats":{"get":{"operationId":"PaymentsController_getNetworksStats_v1","parameters":[{"name":"active","required":false,"in":"query","description":"When true (default), count only active mainnets","schema":{"example":"true","type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Networks and tokens counts for landing/stats","content":{"application/json":{"schema":{"type":"object","properties":{"networkCount":{"type":"number","example":15},"tokenCount":{"type":"number","example":120}}}}}}},"tags":["Payments"]}},"/api/v1/payments/networks":{"get":{"operationId":"PaymentsController_getNetworks_v1","parameters":[{"name":"active","required":false,"in":"query","description":"Filter by active status (true to get only active networks)","schema":{"example":"true","type":"string"}},{"name":"wallet","required":false,"in":"query","description":"Wallet address to include balance (walletBalanceUsd) per network, sorted by balance","schema":{"example":"0x1E6E8695FAb3Eb382534915eA8d7Cc1D1994B152","type":"string"}},{"name":"chainType","required":false,"in":"query","description":"Filter networks by a single chain type. Ignored when chainTypes is non-empty.","schema":{"enum":["evm","solana","bitcoin","tron","cosmos","polkadot","move","ton"],"type":"string"}},{"name":"chainTypes","required":false,"in":"query","description":"Comma-separated chain families (e.g. evm,solana). When set, takes precedence over chainType.","schema":{"example":"evm,solana","type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"List all networks","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Network"}}}}}},"tags":["Payments"]}},"/api/v1/payments/networks/{id}/tokens":{"get":{"operationId":"PaymentsController_getTokensByNetworkId_v1","parameters":[{"name":"id","required":true,"in":"path","description":"Network ID (UUID)","schema":{"type":"string"}},{"name":"wallet","required":false,"in":"query","description":"Wallet address to include balance and USDC equivalent per token, sorted by balance","schema":{"example":"0x1E6E8695FAb3Eb382534915eA8d7Cc1D1994B152","type":"string"}},{"name":"stablecoinOnly","required":false,"in":"query","description":"When true or 1, return only tokens with isStablecoin","schema":{"example":"true","type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"List tokens for a specific network","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Token"}}}}}},"tags":["Payments"]}},"/api/v1/payments/transactions/{id}/payer":{"patch":{"operationId":"PaymentsController_updateTransactionPayerInfo_v1","parameters":[{"name":"id","required":true,"in":"path","description":"Transaction ID (UUID)","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTransactionPayerDto"}}}},"responses":{"200":{"description":"Update transaction payer token and network","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentTransaction"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/transactions/{id}/support":{"patch":{"operationId":"PaymentsController_updateTransactionSupport_v1","parameters":[{"name":"id","required":true,"in":"path","description":"Transaction ID (UUID)","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTransactionSupportDto"}}}},"responses":{"200":{"description":"Update transaction support percent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentTransaction"}}}}},"security":[{"bearer":[]}],"tags":["Payments"]}},"/api/v1/payments/transactions/{id}/full":{"get":{"operationId":"PaymentsController_getTransactionWithPayerInfo_v1","parameters":[{"name":"id","required":true,"in":"path","description":"Transaction ID (UUID)","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Get transaction with full payer network and token info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentTransaction"}}}}},"tags":["Payments"]}},"/api/v1/organizations/{organizationId}/dashboard/summary":{"get":{"operationId":"DashboardController_getSummary_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"chartRange","required":false,"in":"query","description":"Chart granularity: daily (last 7 days), weekly (last 12 weeks), monthly (last 6 months). Default: daily.","schema":{"enum":["daily","weekly","monthly"],"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardSummaryDto"}}}}},"security":[{"bearer":[]}],"tags":["Dashboard"]}},"/api/v1/payment_intents":{"post":{"operationId":"PaymentIntentsController_createPaymentIntent_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentIntentDto"}}}},"responses":{"201":{"description":"Create payment intent"}},"security":[{"bearer":[]}],"tags":["PaymentIntents"]}},"/api/v1/payment_intents/{id}":{"get":{"operationId":"PaymentIntentsController_getPaymentIntent_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Get payment intent by ID"}},"security":[{"bearer":[]}],"tags":["PaymentIntents"]},"patch":{"operationId":"PaymentIntentsController_updatePaymentIntent_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePaymentIntentDto"}}}},"responses":{"200":{"description":"Update payment intent"}},"security":[{"bearer":[]}],"tags":["PaymentIntents"]}},"/api/v1/payment_intents/{id}/cancel":{"post":{"operationId":"PaymentIntentsController_cancelPaymentIntent_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Cancel payment intent"}},"security":[{"bearer":[]}],"tags":["PaymentIntents"]}},"/api/v1/payment_intents/{id}/complete":{"post":{"operationId":"PaymentIntentsController_completePaymentIntent_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Complete payment intent (set to processing and fire processing webhook)"}},"security":[{"bearer":[]}],"tags":["PaymentIntents"]}},"/api/v1/webhooks":{"post":{"operationId":"PaymentsWebhookController_handleWebhook_v1","parameters":[{"name":"x-webhook-signature","required":true,"in":"header","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"tags":["Webhooks"]}},"/api/v1/pay/{slug}":{"get":{"operationId":"PayController_getPay_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Get pay details by slug"}},"tags":["Pay"]}},"/api/v1/pay/{slug}/confirm":{"post":{"operationId":"PayController_confirmPay_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Confirm payment intent by slug"}},"tags":["Pay"]}},"/api/v1/pay/{slug}/cancel":{"post":{"operationId":"PayController_cancelPay_v1","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Cancel payment intent by slug"}},"tags":["Pay"]}},"/api/v1/organizations/{organizationId}/subscriptions":{"post":{"operationId":"OrganizationSubscriptionsController_create_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionDto"}}}},"responses":{"201":{"description":"Subscription created successfully."}},"security":[{"bearer":[]}],"tags":["Subscriptions"]},"get":{"operationId":"OrganizationSubscriptionsController_list_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string","enum":["trialing","active","past_due","canceled","paused","completed"]}},{"name":"collection_method","required":false,"in":"query","schema":{"type":"string","enum":["pending","send_payment_link","auto_charge"]}},{"name":"current_period_start","required":false,"in":"query","description":"Filter by current_period_start (e.g. gte, lte as ISO dates)","schema":{"$ref":"#/components/schemas/Object"}},{"name":"current_period_end","required":false,"in":"query","description":"Filter by current_period_end","schema":{"$ref":"#/components/schemas/Object"}},{"name":"created","required":false,"in":"query","description":"Filter by created","schema":{"$ref":"#/components/schemas/Object"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","description":"Cursor: subscription id for pagination","schema":{"type":"string"}},{"name":"ending_before","required":false,"in":"query","description":"Cursor: subscription id for pagination","schema":{"type":"string"}},{"name":"payer_email","required":false,"in":"query","description":"Filter by payer email (case-insensitive)","schema":{"example":"payer@example.com","type":"string"}},{"name":"payer_address","required":false,"in":"query","description":"Filter by payer wallet address","schema":{"example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Subscriptions returned successfully."}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions":{"post":{"operationId":"SubscriptionsController_create_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionDto"}}}},"responses":{"201":{"description":"Subscription created successfully."}},"security":[{"bearer":[]}],"tags":["Subscriptions"]},"get":{"operationId":"SubscriptionsController_list_v1","parameters":[{"name":"status","required":false,"in":"query","schema":{"type":"string","enum":["trialing","active","past_due","canceled","paused","completed"]}},{"name":"collection_method","required":false,"in":"query","schema":{"type":"string","enum":["pending","send_payment_link","auto_charge"]}},{"name":"current_period_start","required":false,"in":"query","description":"Filter by current_period_start (e.g. gte, lte as ISO dates)","schema":{"$ref":"#/components/schemas/Object"}},{"name":"current_period_end","required":false,"in":"query","description":"Filter by current_period_end","schema":{"$ref":"#/components/schemas/Object"}},{"name":"created","required":false,"in":"query","description":"Filter by created","schema":{"$ref":"#/components/schemas/Object"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","description":"Cursor: subscription id for pagination","schema":{"type":"string"}},{"name":"ending_before","required":false,"in":"query","description":"Cursor: subscription id for pagination","schema":{"type":"string"}},{"name":"payer_email","required":false,"in":"query","description":"Filter by payer email (case-insensitive)","schema":{"example":"payer@example.com","type":"string"}},{"name":"payer_address","required":false,"in":"query","description":"Filter by payer wallet address","schema":{"example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Subscriptions returned successfully."}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}":{"get":{"operationId":"SubscriptionsController_retrieve_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]},"patch":{"operationId":"SubscriptionsController_update_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]},"delete":{"operationId":"SubscriptionsController_cancel_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelSubscriptionDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/resume":{"post":{"operationId":"SubscriptionsController_resume_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/create-payment-link":{"post":{"operationId":"SubscriptionsController_createPaymentLink_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/payment-links":{"get":{"operationId":"SubscriptionsController_getPaymentLinks_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"starting_after","required":true,"in":"query","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/approve-auto-charge":{"post":{"operationId":"SubscriptionsController_approveAutoCharge_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveAutoChargeDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/auto-charge/quote":{"post":{"operationId":"SubscriptionsController_autoChargeQuote_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoChargeQuoteDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/revoke-auto-charge":{"post":{"operationId":"SubscriptionsController_revokeAutoCharge_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeAutoChargeDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/subscriptions/{id}/set-collection-method":{"post":{"operationId":"SubscriptionsController_setCollectionMethod_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCollectionMethodRequestDto"}}}},"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Subscriptions"]}},"/api/v1/payer/wallet/challenge":{"post":{"operationId":"PayerWalletController_createChallenge_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletChallengeRequestDto"}}}},"responses":{"200":{"description":""}},"tags":["Payer Wallet"]}},"/api/v1/payer/wallet/verify":{"post":{"operationId":"PayerWalletController_verify_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletVerifyRequestDto"}}}},"responses":{"200":{"description":""}},"tags":["Payer Wallet"]}},"/api/v1/payer/wallets":{"get":{"operationId":"PayerWalletController_listWallets_v1","parameters":[{"name":"email","required":true,"in":"query","description":"Payer email","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"tags":["Payer Wallet"]}},"/api/v1/organizations/{organizationId}/prices":{"get":{"operationId":"PriceController_listPrices_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"maximum":100,"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","schema":{"type":"string"}},{"name":"ending_before","required":false,"in":"query","schema":{"type":"string"}},{"name":"active","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"recurring","required":false,"in":"query","description":"true => only recurring prices, false => only one-time prices","schema":{"type":"boolean"}},{"name":"type","required":false,"in":"query","schema":{"type":"string","enum":["one_time","recurring"]}},{"name":"currency","required":false,"in":"query","schema":{"type":"string"}},{"name":"lookup_keys","required":false,"in":"query","description":"Comma-separated lookup keys (max 10)","schema":{"type":"array","items":{"type":"string"}}},{"name":"product","required":false,"in":"query","schema":{"type":"string"}},{"name":"recurring_interval","required":false,"in":"query","schema":{"type":"string","enum":["day","week","month","year"]}},{"name":"created_gt","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_gte","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lt","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lte","required":false,"in":"query","schema":{"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of prices"}},"security":[{"bearer":[]}],"tags":["Prices"]},"post":{"operationId":"PriceController_createPrice_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePriceDto"}}}},"responses":{"201":{"description":"Price object"}},"security":[{"bearer":[]}],"tags":["Prices"]}},"/api/v1/organizations/{organizationId}/prices/{priceId}":{"get":{"operationId":"PriceController_getPrice_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"priceId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Price object"}},"security":[{"bearer":[]}],"tags":["Prices"]},"patch":{"operationId":"PriceController_updatePrice_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"priceId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceDto"}}}},"responses":{"200":{"description":"Price object"}},"security":[{"bearer":[]}],"tags":["Prices"]},"delete":{"operationId":"PriceController_deactivatePrice_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"priceId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Deactivated price"}},"security":[{"bearer":[]}],"tags":["Prices"]}},"/api/v1/public/organizations/{organizationId}/prices":{"get":{"operationId":"PublicPriceController_listPublicPrices_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"maximum":100,"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","schema":{"type":"string"}},{"name":"ending_before","required":false,"in":"query","schema":{"type":"string"}},{"name":"active","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"recurring","required":false,"in":"query","description":"true => only recurring prices, false => only one-time prices","schema":{"type":"boolean"}},{"name":"type","required":false,"in":"query","schema":{"type":"string","enum":["one_time","recurring"]}},{"name":"currency","required":false,"in":"query","schema":{"type":"string"}},{"name":"lookup_keys","required":false,"in":"query","description":"Comma-separated lookup keys (max 10)","schema":{"type":"array","items":{"type":"string"}}},{"name":"product","required":false,"in":"query","schema":{"type":"string"}},{"name":"recurring_interval","required":false,"in":"query","schema":{"type":"string","enum":["day","week","month","year"]}},{"name":"created_gt","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_gte","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lt","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lte","required":false,"in":"query","schema":{"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of prices"}},"tags":["Prices (Public)"]}},"/api/v1/organizations":{"post":{"operationId":"OrganizationsController_createOrganization_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]},"get":{"operationId":"OrganizationsController_listMyOrganizations_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/invites/{token}":{"get":{"operationId":"OrganizationsController_getInviteByToken_v1","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInviteTokenDetails"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/invites/{token}/decline":{"post":{"operationId":"OrganizationsController_declineInvite_v1","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvite"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/invites/{token}/accept":{"post":{"operationId":"OrganizationsController_acceptInvite_v1","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationMember"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}":{"get":{"operationId":"OrganizationsController_getOrganization_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]},"put":{"operationId":"OrganizationsController_updateOrganization_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]},"delete":{"operationId":"OrganizationsController_deleteOrganization_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/guided-setup":{"get":{"operationId":"OrganizationsController_getGuidedSetup_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]},"put":{"operationId":"OrganizationsController_updateGuidedSetup_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGuidedSetupDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/guided-setup/complete":{"post":{"operationId":"OrganizationsController_completeGuidedSetup_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/guided-setup/close":{"post":{"operationId":"OrganizationsController_closeGuidedSetup_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/members/invite":{"post":{"operationId":"OrganizationsController_inviteMember_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteMemberDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationInvite"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/members":{"get":{"operationId":"OrganizationsController_getMembers_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/invites":{"get":{"operationId":"OrganizationsController_getInvites_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvite"}}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/members/{memberId}/role":{"put":{"operationId":"OrganizationsController_setMemberRole_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetMemberRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationMember"}}}}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{id}/members/{memberId}":{"delete":{"operationId":"OrganizationsController_removeMember_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["Organizations"]}},"/api/v1/organizations/{organizationId}/api-keys":{"post":{"operationId":"OrganizationApiKeysController_createApiKey_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}}},"security":[{"bearer":[]}],"tags":["ApiKeys"]},"get":{"operationId":"OrganizationApiKeysController_listApiKeys_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}}}},"security":[{"bearer":[]}],"tags":["ApiKeys"]}},"/api/v1/api-keys/{id}":{"patch":{"operationId":"ApiKeysController_updateApiKey_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}}},"security":[{"bearer":[]}],"tags":["ApiKeys"]}},"/api/v1/api-keys/{id}/revoke":{"post":{"operationId":"ApiKeysController_revokeApiKey_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}}},"security":[{"bearer":[]}],"tags":["ApiKeys"]}},"/api/v1/api-keys/{id}/rotate-secret":{"post":{"operationId":"ApiKeysController_rotateApiKeySecret_v1","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"secret":{"type":"string"}}}}}}},"security":[{"bearer":[]}],"tags":["ApiKeys"]}},"/api/v1/api-keys/test":{"post":{"operationId":"ApiKeysController_testApiKey_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestApiKeyDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"example":{"ok":true}}}}}},"tags":["ApiKeys"]}},"/api/v1/rates/token/{tokenId}":{"get":{"operationId":"RatesController_getTokenPrice_v1","parameters":[{"name":"tokenId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPriceDto"}}}}},"tags":["Rates"]}},"/api/v1/rates/currencies":{"get":{"operationId":"RatesController_getCurrencies_v1","parameters":[{"name":"active","required":true,"in":"query","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CurrencyDto"}}}}}},"tags":["Rates"]}},"/api/v1/rates/currency-rate/{baseId}/{quoteId}":{"get":{"operationId":"RatesController_getCurrencyRate_v1","parameters":[{"name":"baseId","required":true,"in":"path","schema":{"type":"string"}},{"name":"quoteId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyRateDto"}}}}},"tags":["Rates"]}},"/api/v1/rates/fiat-quote":{"get":{"operationId":"RatesController_getFiatQuote_v1","parameters":[{"name":"amount","required":true,"in":"query","schema":{"example":"100000","type":"string"}},{"name":"currency","required":true,"in":"query","schema":{"example":"irr","type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Token UUID to get amount in that token","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiatQuoteResponseDto"}}}}},"tags":["Rates"]}},"/api/v1/webhooks/test/{apiKeyId}":{"post":{"operationId":"WebhooksController_sendTestWebhook_v1","parameters":[{"name":"apiKeyId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"example":{"success":true}}}}}},"security":[{"bearer":[]}],"tags":["Webhooks"]}},"/api/v1/webhooks/test/{apiKeyId}/custom":{"post":{"operationId":"WebhooksController_sendCustomWebhook_v1","parameters":[{"name":"apiKeyId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"example":{"success":true}}}}}},"security":[{"bearer":[]}],"tags":["Webhooks"]}},"/api/v1/webhooks/logs":{"get":{"operationId":"WebhooksController_getWebhookLogs_v1","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"organizationId","required":true,"in":"query","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"example":{"logs":[],"total":0}}}}}},"security":[{"bearer":[]}],"tags":["Webhooks"]}},"/api/v1/organizations/{organizationId}/withdrawals/settings":{"get":{"operationId":"WithdrawalsController_getSettings_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalSettings"}}}}},"security":[{"bearer":[]}],"tags":["Withdrawals"]},"put":{"operationId":"WithdrawalsController_updateSettings_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWithdrawalSettingsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalSettings"}}}}},"security":[{"bearer":[]}],"tags":["Withdrawals"]}},"/api/v1/organizations/{organizationId}/withdrawals/requests":{"post":{"operationId":"WithdrawalsController_createWithdrawal_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWithdrawalRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalRequest"}}}}},"security":[{"bearer":[]}],"tags":["Withdrawals"]},"get":{"operationId":"WithdrawalsController_listWithdrawals_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","description":"Maximum number of requests to return","schema":{"minimum":1,"maximum":500,"default":500,"type":"number"}},{"name":"networkId","required":false,"in":"query","description":"Filter by source network ID (UUID)","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter by token ID (UUID)","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status","schema":{"type":"string","enum":["pending","processing","completed","failed"]}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WithdrawalRequest"}}}}}},"security":[{"bearer":[]}],"tags":["Withdrawals"]}},"/api/v1/organizations/{organizationId}/withdrawals/summary":{"get":{"operationId":"WithdrawalsController_getSummary_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"networkId","required":false,"in":"query","description":"Filter summary by source network ID (UUID)","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter summary by token ID (UUID)","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalSummaryDto"}}}}},"security":[{"bearer":[]}],"tags":["Withdrawals"]}},"/api/v1/payer/send-code":{"post":{"operationId":"PayerVerificationController_sendCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendCodeDto"}}}},"responses":{"200":{"description":"Verification code sent to email"}},"tags":["Payer"]}},"/api/v1/payer/verify-code":{"post":{"operationId":"PayerVerificationController_verifyCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCodeDto"}}}},"responses":{"200":{"description":"Code verified; payer user created/linked; returns JWT session + payerUserId"}},"tags":["Payer"]}},"/api/v1/payer/resend-code":{"post":{"operationId":"PayerVerificationController_resendCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendCodeDto"}}}},"responses":{"200":{"description":"Resend verification code (subject to cooldown)","content":{"application/json":{"schema":{"type":"object","properties":{"canResendAt":{"type":"string","format":"date-time"}}}}}}},"tags":["Payer"]}},"/api/v1/payer/send-login-code":{"post":{"operationId":"PayerVerificationController_sendLoginCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendLoginCodeDto"}}}},"responses":{"200":{"description":"Login verification code sent to email"}},"tags":["Payer"]}},"/api/v1/payer/verify-login-code":{"post":{"operationId":"PayerVerificationController_verifyLoginCode_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLoginCodeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponseDto"}}}}},"tags":["Payer"]}},"/api/v1/payer/me/transactions":{"get":{"operationId":"PayerDashboardController_getMyTransactions_v1","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Filter by organization ID (UUID)","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search in id, address, txHash, or amount (case-insensitive where applicable)","schema":{"example":"0x123","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by status (comma-separated or repeated)","schema":{"type":"array","items":{"type":"string","enum":["pending","partial_confirmed","confirmed","canceled","expired","completed","withdrawn"]}}},{"name":"paymentLinkId","required":false,"in":"query","description":"Filter by payment link ID (UUID)","schema":{"type":"string"}},{"name":"networkId","required":false,"in":"query","description":"Filter by payer network ID (UUID). Matches quote payer network or link network when quote is missing.","schema":{"type":"string"}},{"name":"tokenId","required":false,"in":"query","description":"Filter by payer token ID (UUID). Matches quote payer token or link token when quote is missing.","schema":{"type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field","schema":{"example":"createdAt","type":"string","enum":["createdAt","amount","status","amountReceived","updatedAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"example":"desc","type":"string","enum":["asc","desc"]}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated transactions"}},"security":[{"bearer":[]}],"summary":"List payment transactions for the authenticated payer","tags":["Payer"]}},"/api/v1/payer/me/subscriptions":{"get":{"operationId":"PayerDashboardController_getMySubscriptions_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Subscriptions"}},"security":[{"bearer":[]}],"summary":"List subscriptions for the authenticated payer","tags":["Payer"]}},"/api/v1/payer/me/subscriptions/{subscriptionId}/payment-page":{"get":{"operationId":"PayerDashboardController_getSubscriptionPaymentPage_v1","parameters":[{"name":"subscriptionId","required":true,"in":"path","schema":{"type":"string"}},{"name":"payerTokenId","required":false,"in":"query","description":"When provided with payerNetworkId, updates the pending transaction to this payer token and returns the page with new quote.","schema":{"type":"string"}},{"name":"payerNetworkId","required":false,"in":"query","description":"When provided with payerTokenId, updates the pending transaction to this payer network and returns the page with new quote.","schema":{"type":"string"}},{"name":"supportPercent","required":false,"in":"query","description":"Current support fee percent to preserve while rehydrating the page quote after payer token/network changes.","schema":{"example":0,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Payment page"}},"security":[{"bearer":[]}],"summary":"Payment page payload for a subscription owned by the authenticated payer (same as public payment link page)","tags":["Payer"]}},"/api/v1/payer/me/subscriptions/{subscriptionId}/payment-links":{"get":{"operationId":"PayerDashboardController_getSubscriptionPaymentLinks_v1","parameters":[{"name":"subscriptionId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"starting_after","required":true,"in":"query","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"List of payment links"}},"security":[{"bearer":[]}],"summary":"Paginated payment links for a subscription owned by the authenticated payer","tags":["Payer"]}},"/api/v1/payer/me/bind-payment-link":{"post":{"operationId":"PayerDashboardController_bindPaymentLink_v1","parameters":[{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BindPaymentLinkDto"}}}},"responses":{"200":{"description":"Link bound to payer","content":{"application/json":{"schema":{"type":"object","properties":{"bound":{"type":"boolean","example":true}}}}}},"409":{"description":"Merchant-assigned payer email does not match session email (use forceUpdateSubscriptionEmail after user confirms)","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","example":409},"code":{"type":"string","example":"PAYER_EMAIL_MISMATCH"},"subscription_email":{"type":"string"},"session_email":{"type":"string"}}}}}}},"security":[{"bearer":[]}],"summary":"Bind payment link (and subscription) to the authenticated payer without OTP when emails align or force flag is set","tags":["Payer"]}},"/api/v1/organizations/{orgId}/logs":{"get":{"operationId":"OrganizationLogsController_getOrganizationLogs_v1","parameters":[{"name":"orgId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationLogResponseDto"}}}}}},"security":[{"bearer":[]}],"tags":["Organization Logs"]}},"/api/v1/organizations/{organizationId}/products":{"get":{"operationId":"ProductController_listProducts_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"maximum":100,"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","schema":{"type":"string"}},{"name":"ending_before","required":false,"in":"query","schema":{"type":"string"}},{"name":"active","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"shippable","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"url","required":false,"in":"query","schema":{"type":"string"}},{"name":"ids","required":false,"in":"query","description":"Comma-separated product UUIDs","schema":{"type":"array","items":{"type":"string"}}},{"name":"created_gt","required":false,"in":"query","description":"Unix seconds, exclusive min created","schema":{"type":"number"}},{"name":"created_gte","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lt","required":false,"in":"query","schema":{"type":"number"}},{"name":"created_lte","required":false,"in":"query","schema":{"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of products"}},"security":[{"bearer":[]}],"tags":["Products"]},"post":{"operationId":"ProductController_createProduct_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductDto"}}}},"responses":{"201":{"description":"Product object"}},"security":[{"bearer":[]}],"tags":["Products"]}},"/api/v1/organizations/{organizationId}/products/{productId}":{"get":{"operationId":"ProductController_getProduct_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"productId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Product object"}},"security":[{"bearer":[]}],"tags":["Products"]},"patch":{"operationId":"ProductController_updateProduct_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"productId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductDto"}}}},"responses":{"200":{"description":"Product object"}},"security":[{"bearer":[]}],"tags":["Products"]},"delete":{"operationId":"ProductController_deleteProduct_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"productId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Delete confirmation"}},"security":[{"bearer":[]}],"tags":["Products"]}},"/api/v1/organizations/{organizationId}/payers":{"get":{"operationId":"OrganizationPayersController_list_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"search","required":false,"in":"query","description":"Search payer email (case-insensitive)","schema":{"example":"payer@example.com","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of payers for an organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfinityPaginationOrganizationPayerDtoResponseDto"}}}}},"security":[{"bearer":[]}],"tags":["Payers"]}},"/api/v1/organizations/{organizationId}/widgets":{"get":{"operationId":"WidgetsController_list_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"default":10,"type":"number"}},{"name":"starting_after","required":false,"in":"query","description":"Cursor for pagination","schema":{"type":"string"}},{"name":"active","required":false,"in":"query","schema":{"type":"boolean"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Paginated list of widgets"}},"security":[{"bearer":[]}],"tags":["Widgets"]},"post":{"operationId":"WidgetsController_create_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWidgetDto"}}}},"responses":{"201":{"description":"Widget created"}},"security":[{"bearer":[]}],"tags":["Widgets"]}},"/api/v1/organizations/{organizationId}/widgets/{widgetId}":{"get":{"operationId":"WidgetsController_getOne_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"widgetId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Widget object"}},"security":[{"bearer":[]}],"tags":["Widgets"]},"patch":{"operationId":"WidgetsController_update_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"widgetId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWidgetDto"}}}},"responses":{"200":{"description":"Widget updated"}},"security":[{"bearer":[]}],"tags":["Widgets"]},"delete":{"operationId":"WidgetsController_remove_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"name":"widgetId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Delete confirmation"}},"security":[{"bearer":[]}],"tags":["Widgets"]}},"/api/v1/widgets/{widgetId}":{"get":{"operationId":"PublicWidgetsController_getPublic_v1","parameters":[{"name":"widgetId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"responses":{"200":{"description":"Widget with products and prices"}},"tags":["Widgets (Public)"]}},"/api/v1/widgets/{widgetId}/checkout":{"post":{"operationId":"PublicWidgetsController_checkout_v1","parameters":[{"name":"widgetId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutWidgetDto"}}}},"responses":{"200":{"description":"Checkout URL for a price in this table"}},"tags":["Widgets (Public)"]}},"/api/v1/organizations/{organizationId}/guided-setup/catalog/suggestions":{"post":{"operationId":"GuidedSetupController_generateCatalogSuggestions_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateGuidedSetupCatalogDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuidedSetupCatalogSuggestionsResponse"}}}}},"security":[{"bearer":[]}],"tags":["Guided Setup"]}},"/api/v1/organizations/{organizationId}/guided-setup/catalog/apply":{"post":{"operationId":"GuidedSetupController_applyCatalog_v1","parameters":[{"name":"organizationId","required":true,"in":"path","schema":{"type":"string"}},{"in":"header","required":false,"name":"x-custom-lang","schema":{"example":"en"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyGuidedSetupCatalogDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuidedSetupCatalogApplyResponse"}}}}},"security":[{"bearer":[]}],"tags":["Guided Setup"]}}},"info":{"title":"API","description":"API docs\n\n---\n\n📄 **OpenAPI Specification:** [Download OpenAPI JSON](docs-json)","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"FileDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"RoleDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["id"]},"StatusDto":{"type":"object","properties":{"id":{"type":"string","enum":["active","inactive"],"example":"active"}},"required":["id"]},"CreateUserDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"},"password":{"type":"string"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"Doe"},"photo":{"$ref":"#/components/schemas/FileDto"},"role":{"$ref":"#/components/schemas/RoleDto"},"status":{"$ref":"#/components/schemas/StatusDto"}},"required":["email","password","firstName","lastName"]},"FileType":{"type":"object","properties":{"id":{"type":"string","example":"cbcfa8b8-3a25-4adb-a9c6-e325f0d0f3ae"},"path":{"type":"string","example":"https://example.com/path/to/file.jpg"}},"required":["id","path"]},"Role":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","example":"admin"}},"required":["id","name"]},"Status":{"type":"object","properties":{"id":{"type":"string","example":"active"},"name":{"type":"string","example":"active"}},"required":["id","name"]},"User":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"email":{"type":"string","example":"john.doe@example.com"},"provider":{"type":"string","example":"email"},"socialId":{"type":"string","example":"1234567890"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"Doe"},"photo":{"$ref":"#/components/schemas/FileType"},"role":{"$ref":"#/components/schemas/Role"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"status":{"$ref":"#/components/schemas/Status"},"confirmationEmailSentAt":{"type":"object"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"}},"required":["id","email","provider","socialId","firstName","lastName","photo","role","status","createdAt","updatedAt","deletedAt"]},"InfinityPaginationUserResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"hasNextPage":{"type":"boolean","example":true}},"required":["data","hasNextPage"]},"UpdateUserDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"},"password":{"type":"string"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"Doe"},"photo":{"$ref":"#/components/schemas/FileDto"},"role":{"$ref":"#/components/schemas/RoleDto"},"status":{"$ref":"#/components/schemas/StatusDto"},"confirmationEmailSentAt":{"type":"object"}}},"FileResponseDto":{"type":"object","properties":{"file":{"$ref":"#/components/schemas/FileType"}},"required":["file"]},"AuthEmailLoginDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"},"password":{"type":"string"}},"required":["email","password"]},"LoginResponseDto":{"type":"object","properties":{"token":{"type":"string"},"refreshToken":{"type":"string"},"tokenExpires":{"type":"number"},"user":{"$ref":"#/components/schemas/User"}},"required":["token","refreshToken","tokenExpires","user"]},"AuthSendLoginCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"}},"required":["email"]},"AuthVerifyLoginCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"},"code":{"type":"string","example":"123456"}},"required":["email","code"]},"AuthRegisterLoginDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"},"password":{"type":"string"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"Doe"}},"required":["email","password","firstName","lastName"]},"AuthSendSignupCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"}},"required":["email"]},"AuthVerifySignupCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"},"code":{"type":"string","example":"123456"}},"required":["email","code"]},"AuthConfirmEmailDto":{"type":"object","properties":{"hash":{"type":"string"}},"required":["hash"]},"AuthResendConfirmEmailDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"}},"required":["email"]},"ResendConfirmStatusResponseDto":{"type":"object","properties":{"canResendAt":{"type":"number","description":"Unix timestamp (ms) when the next resend is allowed","example":1700000000000},"confirmed":{"type":"boolean","description":"True when the user has already confirmed their email","example":false}},"required":["canResendAt","confirmed"]},"AuthForgotPasswordDto":{"type":"object","properties":{"email":{"type":"string","example":"test1@example.com"}},"required":["email"]},"AuthResetPasswordDto":{"type":"object","properties":{"password":{"type":"string"},"hash":{"type":"string"}},"required":["password","hash"]},"RefreshResponseDto":{"type":"object","properties":{"token":{"type":"string"},"refreshToken":{"type":"string"},"tokenExpires":{"type":"number"}},"required":["token","refreshToken","tokenExpires"]},"AuthUpdateDto":{"type":"object","properties":{"photo":{"$ref":"#/components/schemas/FileDto"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"Doe"},"password":{"type":"string"},"oldPassword":{"type":"string"}}},"AuthGoogleLoginDto":{"type":"object","properties":{"idToken":{"type":"string","example":"abc"}},"required":["idToken"]},"CreatePaymentLinkDto":{"type":"object","properties":{"title":{"type":"string","example":"Payment for services"},"priceId":{"type":"string","description":"Catalog price UUID"},"amount":{"type":"string","example":"0.1"},"tokenId":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"Token UUID"},"networkId":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"Network UUID"},"expiresAt":{"format":"date-time","type":"string"},"organizationId":{"type":"string","description":"Organization UUID"},"metadata":{"type":"object"},"withdrawalAddresses":{"type":"object","description":"Withdrawal addresses by chain type. Keys from NetworkChainFamilyEnum (evm, solana, bitcoin, etc.).","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"payerEmail":{"type":"string","description":"Optional payer email to assign to this payment link (payer must verify on pay page).","example":"payer@example.com"},"payerUserId":{"type":"string","description":"Optional payer user UUID to lock this payment link to a known payer.","example":"550e8400-e29b-41d4-a716-446655440000"}},"required":["title"]},"Network":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","example":"Ethereum"},"chainId":{"type":"number","nullable":true,"example":1},"chainType":{"type":"string","enum":["evm","solana","bitcoin","tron","cosmos","polkadot","move","ton"],"default":"evm","description":"Network family used for chain-specific handlers"},"blockExplorerUrl":{"type":"string","nullable":true,"example":"https://etherscan.io","description":"Block explorer base URL (used by wallets when adding a chain)"},"publicRpcUrls":{"example":["https://eth.llamarpc.com"],"type":"array","items":{"type":"string"}},"isActive":{"type":"boolean","default":true},"isTestnet":{"type":"boolean","default":false},"listenerConfig":{"type":"object","nullable":true,"description":"Listener configuration (blockPollInterval, blockConfirmationInterval, etc.)"},"requiredConfirmations":{"type":"number","nullable":true,"description":"Required number of block confirmations for transactions"},"image":{"type":"string","nullable":true,"description":"CoinGecko or other image URL for the network/chain"},"metadata":{"type":"object","nullable":true,"description":"Per-network metadata (e.g. relay contracts, tokenSupport)"},"walletBalanceUsd":{"type":"number","nullable":true,"description":"Aggregate wallet balance in USD (when wallet query param is provided)"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"}},"required":["id","name","chainId","chainType","blockExplorerUrl","isActive","isTestnet","listenerConfig","requiredConfirmations","image","metadata","createdAt","updatedAt","deletedAt"]},"Token":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"network":{"$ref":"#/components/schemas/Network"},"networkId":{"type":"string"},"symbol":{"type":"string","example":"ETH"},"name":{"type":"string","example":"Ethereum"},"contractAddress":{"type":"string","nullable":true,"example":null,"description":"Contract address for ERC-20 tokens, null for native tokens"},"decimals":{"type":"number","default":18,"example":18},"isNative":{"type":"boolean","default":false},"isStablecoin":{"type":"boolean","default":false},"isActive":{"type":"boolean","default":true},"image":{"type":"string","nullable":true,"description":"CoinGecko or other image URL for the token"},"metadata":{"type":"object","nullable":true,"description":"Per-token metadata (e.g. relay supportsBridging, supportsPermit)"},"walletBalance":{"type":"string","nullable":true,"description":"Raw wallet balance (when wallet query param is provided)"},"walletBalanceFormatted":{"type":"string","nullable":true,"description":"Formatted wallet balance (e.g. 1.5) (when wallet query param is provided)"},"walletBalanceUsdcEquivalent":{"type":"number","nullable":true,"description":"Wallet balance in USDC equivalent (when wallet query param is provided)"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"}},"required":["id","network","networkId","symbol","name","contractAddress","decimals","isNative","isStablecoin","isActive","image","metadata","createdAt","updatedAt","deletedAt"]},"PaymentLink":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"organizationId":{"type":"string","nullable":true},"organization":{"type":"object","nullable":true},"title":{"type":"string","example":"Payment for services"},"amount":{"type":"string","example":"0.1"},"token":{"$ref":"#/components/schemas/Token"},"tokenId":{"type":"string"},"network":{"$ref":"#/components/schemas/Network"},"networkId":{"type":"string"},"priceId":{"type":"string","nullable":true,"description":"Catalog price UUID when amount/token/network come from catalog"},"status":{"type":"string","enum":["active","paused","expired","completed","canceled"],"example":"active"},"uniqueSlug":{"type":"string","example":"payment-link-abc123"},"link":{"type":"string","example":"http://localhost:3000/pay/payment-link-abc123","description":"Payment link URL with slug"},"walletAddressId":{"type":"string","nullable":true,"description":"Wallet address ID created for this payment link"},"transactions":{"nullable":true,"description":"Payment transactions associated with this link","type":"array","items":{"type":"object"}},"intent":{"type":"object","nullable":true,"description":"Payment intent associated with this link"},"latestPaymentQuote":{"type":"object","nullable":true,"description":"Latest payment quote for this link (for frontend state persistence)"},"expiresAt":{"format":"date-time","type":"string","nullable":true},"metadata":{"type":"object","nullable":true},"withdrawalAddresses":{"type":"object","description":"Withdrawal addresses by chain type (e.g. evm, solana, bitcoin). Keys from NetworkChainFamilyEnum.","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"subscriptionId":{"type":"string","nullable":true,"description":"Subscription ID when this link is a cycle payment for a subscription"},"subscription":{"type":"object","nullable":true,"description":"Minimal subscription summary when this link belongs to a subscription cycle"},"payerUserId":{"type":"string","nullable":true,"description":"Payer user ID when a payer has been assigned to this payment link"},"payerEmail":{"type":"string","nullable":true,"description":"Payer email when set (creator-assigned or verified)"},"billingPeriodStart":{"format":"date-time","type":"string","nullable":true,"description":"Billing period start for subscription cycle"},"billingPeriodEnd":{"format":"date-time","type":"string","nullable":true,"description":"Billing period end for subscription cycle"},"subscriptionBillingAmount":{"type":"string","description":"Subscription billing amount for dashboard display when link is a subscription cycle (mirrors intent original amount)"},"subscriptionBillingCurrencyCode":{"type":"string","description":"Subscription billing currency code for dashboard display (mirrors intent original currency)"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"}},"required":["id","organizationId","organization","title","amount","token","tokenId","network","networkId","priceId","status","uniqueSlug","walletAddressId","transactions","intent","latestPaymentQuote","expiresAt","metadata","withdrawalAddresses","subscriptionId","subscription","payerUserId","payerEmail","billingPeriodStart","billingPeriodEnd","createdAt","updatedAt","deletedAt"]},"InfinityPaginationPaymentLinkResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentLink"}},"hasNextPage":{"type":"boolean","example":true}},"required":["data","hasNextPage"]},"SetSubscriptionPayerEmailDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com","description":"Payer email to attach to the subscription (for notifications and payment links)"}},"required":["email"]},"UpdatePaymentLinkDto":{"type":"object","properties":{"title":{"type":"string","example":"Payment for services"},"amount":{"type":"string","example":"0.1"},"tokenId":{"type":"string","example":"uuid","description":"Token ID (UUID)"},"networkId":{"type":"string","example":"uuid","description":"Network ID (UUID)"},"priceId":{"type":"string","description":"Catalog price UUID"},"status":{"type":"string","enum":["active","paused","expired","completed","canceled"]},"expiresAt":{"format":"date-time","type":"string"},"metadata":{"type":"object"},"withdrawalAddresses":{"type":"object","description":"Withdrawal addresses by chain type. Keys from NetworkChainFamilyEnum (evm, solana, bitcoin, etc.).","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"payerEmail":{"type":"string","description":"Optional payer email to assign to this payment link (payer must verify on pay page).","example":"payer@example.com"}}},"GetQuoteDto":{"type":"object","properties":{"payerTokenId":{"type":"string","description":"Token ID (UUID) that payer wants to pay with. If not provided, defaults to receivable token.","example":"uuid"},"payerNetworkId":{"type":"string","description":"Network ID (UUID) that payer wants to pay on. If not provided, defaults to receivable network.","example":"uuid"},"payerWalletAddress":{"type":"string","description":"Payer wallet address (EVM, Solana, etc.). When provided, used as user in Relay quote for more accurate fee estimation.","example":"0x1234..."},"supportPercent":{"type":"number","description":"Support fee percent applied to the original amount (e.g. 0.1 for 0.1%).","example":0.1}}},"QuoteResponseDto":{"type":"object","properties":{"originalAmount":{"type":"string","description":"Original amount requested by the merchant","example":"100.00"},"supportPercent":{"type":"string","description":"Support fee percent applied to the original amount","example":"0.1"},"supportAmount":{"type":"string","description":"Support amount in payer token currency","example":"0.1"},"supportMinimumApplied":{"type":"boolean","description":"Whether the support fee was floored to a minimum (support minimum was applied)","example":false},"commissionPercent":{"type":"string","description":"Commission fee percent (from API key) applied to original amount","example":"4"},"commissionAmount":{"type":"string","description":"Commission amount in payer token currency","example":"4.00"},"commissionMinimumApplied":{"type":"boolean","description":"Whether the commission was floored to a minimum (commission minimum was applied)","example":false},"originalTokenSymbol":{"type":"string","description":"Original token symbol","example":"USDC"},"payerTokenSymbol":{"type":"string","description":"Payer token symbol","example":"USDT"},"bridgeFee":{"type":"string","nullable":true,"description":"Bridge/swap fee if applicable (in payer token)","example":"0.001"},"bridgeFeeUsd":{"type":"string","nullable":true,"description":"Bridge fee amount in USD","example":"0.25"},"bridgeFeeInPayerToken":{"type":"string","nullable":true,"description":"Bridge fee converted to payer token currency","example":"0.0001"},"originalAmountInPayerToken":{"type":"string","description":"Original amount converted to payer token (before fees)","example":"1.0"},"totalAmount":{"type":"string","description":"Total amount the payer needs to send (originalAmountInPayerToken + bridgeFeeInPayerToken + supportAmount + commissionAmount)","example":"100.0001"},"requiresBridge":{"type":"boolean","description":"Whether a bridge/swap is required","example":true},"paymentQuoteId":{"type":"string","nullable":true,"description":"Persisted payment quote UUID when quote rows were written (mutations). GET quote preview returns null.","example":"550e8400-e29b-41d4-a716-446655440000"},"payerTokenId":{"type":"string","description":"Payer token ID (UUID)","example":"uuid"},"payerNetworkId":{"type":"string","description":"Payer network ID (UUID)","example":"uuid"},"payerNetworkName":{"type":"string","description":"Payer network name","example":"Ethereum"},"payerNetwork":{"description":"Full payer network object with chainId, RPC URLs, etc.","allOf":[{"$ref":"#/components/schemas/Network"}]},"payerToken":{"description":"Full payer token object with decimals, contract address, etc.","allOf":[{"$ref":"#/components/schemas/Token"}]}},"required":["originalAmount","supportPercent","supportAmount","supportMinimumApplied","commissionPercent","commissionAmount","commissionMinimumApplied","originalTokenSymbol","payerTokenSymbol","bridgeFee","bridgeFeeUsd","bridgeFeeInPayerToken","originalAmountInPayerToken","totalAmount","requiresBridge","payerTokenId","payerNetworkId","payerNetworkName","payerNetwork","payerToken"]},"PaymentQuote":{"type":"object","properties":{"id":{"type":"string"},"paymentLink":{"type":"object"},"paymentLinkId":{"type":"string"},"payerTokenId":{"type":"string"},"payerNetworkId":{"type":"string"},"walletAddressId":{"type":"string","nullable":true,"description":"Deposit wallet address ID for this quote (link + network)."},"bridgeFee":{"type":"string","nullable":true,"example":"0.001"},"totalAmount":{"type":"string","example":"100.001","description":"Total amount including bridge fee"},"originalAmount":{"type":"string","example":"100.0","description":"Original amount requested"},"supportPercent":{"type":"string","example":"0.1","description":"Support fee percent applied to original amount"},"supportAmount":{"type":"string","example":"0.1","description":"Support amount in payer token currency"},"supportMinimumApplied":{"type":"boolean","description":"True when support amount was raised to network minimum for this chain."},"commissionPercent":{"type":"string","example":"4","description":"Commission fee percent (from API key) applied to original amount"},"commissionAmount":{"type":"string","example":"4.00","description":"Commission amount in payer token currency"},"commissionMinimumApplied":{"type":"boolean","description":"True when commission amount was raised to network minimum for this chain."},"requiresBridge":{"type":"boolean","default":false},"relayPayload":{"type":"object","nullable":true,"description":"Provider-specific quote payload used later for bridge execution."},"payerToken":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Token"}]},"payerNetwork":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Network"}]},"subscriptionId":{"type":"string","nullable":true,"description":"Subscription ID for standalone auto-charge quotes."},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","paymentLink","paymentLinkId","payerTokenId","payerNetworkId","walletAddressId","bridgeFee","totalAmount","originalAmount","supportPercent","supportAmount","commissionPercent","commissionAmount","requiresBridge","relayPayload","payerToken","payerNetwork","subscriptionId","createdAt","updatedAt"]},"PaymentTransaction":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"paymentLink":{"type":"object"},"address":{"type":"string","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"amount":{"type":"string","example":"0.1"},"amountReceived":{"type":"string","nullable":true,"example":"0.1"},"tokenId":{"type":"string","nullable":true,"example":"550e8400-e29b-41d4-a716-446655440000"},"token":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Token"}]},"networkId":{"type":"string","nullable":true,"example":"550e8400-e29b-41d4-a716-446655440001"},"network":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Network"}]},"status":{"type":"string","enum":["pending","partial_confirmed","confirmed","canceled","expired","completed","withdrawn"],"example":"pending"},"txHash":{"type":"string","nullable":true,"example":"0x1234567890abcdef..."},"blockNumber":{"type":"string","nullable":true,"example":"18500000"},"confirmations":{"type":"number","example":3},"expiresAt":{"format":"date-time","type":"string","nullable":true},"metadata":{"type":"object","nullable":true},"paymentQuote":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/PaymentQuote"}]},"paymentQuoteId":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","paymentLink","address","amount","amountReceived","tokenId","token","networkId","network","status","txHash","blockNumber","confirmations","expiresAt","metadata","paymentQuote","paymentQuoteId","createdAt","updatedAt"]},"InfinityPaginationPaymentTransactionResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentTransaction"}},"hasNextPage":{"type":"boolean","example":true}},"required":["data","hasNextPage"]},"CreateTransactionDto":{"type":"object","properties":{"payerTokenId":{"type":"string","description":"Token ID (UUID) that payer wants to pay with. If not provided, defaults to receivable token.","example":"uuid"},"payerNetworkId":{"type":"string","description":"Network ID (UUID) that payer wants to pay on. If not provided, defaults to receivable network.","example":"uuid"},"supportPercent":{"type":"number","description":"Support fee percent applied to the original amount (e.g. 0.1 for 0.1%).","example":0.1}}},"UpdateTransactionPayerDto":{"type":"object","properties":{"payerTokenId":{"type":"string","description":"Token ID (UUID) that payer wants to pay with.","example":"uuid"},"payerNetworkId":{"type":"string","description":"Network ID (UUID) that payer wants to pay on.","example":"uuid"}},"required":["payerTokenId","payerNetworkId"]},"UpdateTransactionSupportDto":{"type":"object","properties":{"supportPercent":{"type":"number","description":"Support fee percent applied to the original amount (e.g. 0.1 for 0.1%).","example":0.1}},"required":["supportPercent"]},"DashboardTotalsDto":{"type":"object","properties":{"links":{"type":"number","example":12},"intents":{"type":"number","example":8},"transactions":{"type":"number","example":42},"totalEarnedUsdc":{"type":"string","example":"1250.50","description":"Total earned volume in USDC"},"withdrawnUsdc":{"type":"string","example":"500.0","description":"Total withdrawn in USDC"},"remainingUsdc":{"type":"string","example":"750.5","description":"Remaining balance in USDC"}},"required":["links","intents","transactions","totalEarnedUsdc","withdrawnUsdc","remainingUsdc"]},"DashboardVolumePointDto":{"type":"object","properties":{"month":{"type":"string","description":"Month bucket in YYYY-MM format","example":"2026-01"},"transactionCount":{"type":"string","example":"42","description":"Count of successful transactions for this period"}},"required":["month","transactionCount"]},"DashboardRecentTransactionDto":{"type":"object","properties":{"id":{"type":"string","example":"uuid"},"status":{"type":"string","enum":["pending","partial_confirmed","confirmed","canceled","expired","completed","withdrawn"],"example":"confirmed"},"amount":{"type":"string","example":"0.25"},"amountReceived":{"type":"string","nullable":true,"example":"0.25"},"createdAt":{"type":"string","example":"2026-01-22T10:45:12.123Z"},"paymentLinkTitle":{"type":"string","example":"Subscription January"},"paymentLinkSlug":{"type":"string","example":"a1b2c3d4e5f67890abcdef1234567890"},"tokenSymbol":{"type":"string","example":"USDC"},"networkName":{"type":"string","example":"Ethereum"},"networkImage":{"type":"string","nullable":true,"description":"Network logo image URL for display"},"tokenImage":{"type":"string","nullable":true,"description":"Token logo image URL for display"},"payerTokenSymbol":{"type":"string","nullable":true,"example":"ETH","description":"Payer token symbol from payment quote"},"payerAmount":{"type":"string","nullable":true,"example":"0.0012","description":"Payer amount (totalAmount) from payment quote"}},"required":["id","status","amount","amountReceived","createdAt","paymentLinkTitle","paymentLinkSlug","tokenSymbol","networkName","networkImage","tokenImage","payerTokenSymbol","payerAmount"]},"DashboardSummaryDto":{"type":"object","properties":{"totals":{"$ref":"#/components/schemas/DashboardTotalsDto"},"volumeSeries":{"type":"array","items":{"$ref":"#/components/schemas/DashboardVolumePointDto"}},"recentTransactions":{"type":"array","items":{"$ref":"#/components/schemas/DashboardRecentTransactionDto"}}},"required":["totals","volumeSeries","recentTransactions"]},"CreatePaymentIntentDto":{"type":"object","properties":{"priceId":{"type":"string","description":"Catalog price UUID"},"amount":{"type":"string","example":"100.00"},"currency":{"type":"string","example":"usd"},"paymentMethodTypes":{"example":["crypto"],"type":"array","items":{"type":"string"}},"description":{"type":"string","example":"Payment for services"},"tokenId":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"Token UUID"},"networkId":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"Network UUID"},"returnUrl":{"type":"string","example":"https://merchant.example/return"},"cancelUrl":{"type":"string","example":"https://merchant.example/cancel"},"expiresAt":{"format":"date-time","type":"string"},"organizationId":{"type":"string","description":"Organization UUID"},"organization_id":{"type":"string","description":"Organization UUID"},"metadata":{"type":"object"},"withdrawalAddresses":{"type":"object","description":"Withdrawal addresses by chain type. Keys from NetworkChainFamilyEnum (evm, solana, bitcoin, etc.). Persisted to the payment link.","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"payerUserId":{"type":"string","description":"Payer user UUID"},"payerEmail":{"type":"string","description":"Payer email for notifications"}},"required":["paymentMethodTypes","returnUrl"]},"UpdatePaymentIntentDto":{"type":"object","properties":{"title":{"type":"string","example":"Payment for services"},"amount":{"type":"string","example":"100.00"},"currency":{"type":"string","example":"usd"},"payment_method_types":{"example":["crypto"],"type":"array","items":{"type":"string"}},"tokenId":{"type":"string","example":"uuid","description":"Token ID (UUID)"},"networkId":{"type":"string","example":"uuid","description":"Network ID (UUID)"},"return_url":{"type":"string","example":"https://merchant.example/return"},"cancel_url":{"type":"string","example":"https://merchant.example/cancel"},"expires_at":{"format":"date-time","type":"string"},"metadata":{"type":"object"},"link_metadata":{"type":"object"},"rotate_client_secret":{"type":"boolean"},"withdrawal_addresses":{"type":"object","description":"Withdrawal addresses by chain type. Keys from NetworkChainFamilyEnum (evm, solana, bitcoin, etc.). Persisted to the payment link.","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}}}},"CreateSubscriptionDto":{"type":"object","properties":{"description":{"type":"string","example":"Monthly Pro Plan"},"price_id":{"type":"string","description":"Catalog price UUID"},"amount":{"type":"string","example":"10.00"},"currency":{"type":"string","example":"usd"},"token_id":{"type":"string","description":"Token UUID"},"network_id":{"type":"string","description":"Network UUID"},"collection_method":{"type":"string","enum":["pending","send_payment_link","auto_charge"],"default":"send_payment_link"},"interval":{"type":"string","enum":["day","week","month","year"]},"interval_count":{"type":"number","default":1,"minimum":1},"total_cycles":{"type":"object","description":"null = infinite"},"billing_cycle_anchor":{"type":"string","description":"ISO timestamp"},"cancel_at":{"type":"string","description":"ISO timestamp"},"cancel_at_period_end":{"type":"boolean","default":false},"days_until_due":{"type":"number"},"trial_end":{"type":"string","description":"ISO timestamp or \"now\""},"trial_period_days":{"type":"number"},"payer_user_id":{"type":"string","description":"Payer user UUID"},"payer_email":{"type":"string","description":"Payer email for notifications"},"withdrawal_addresses":{"type":"object","description":"Withdrawal addresses by chain (e.g. evm, solana)","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"metadata":{"type":"object"},"return_url":{"type":"string","description":"URL to redirect after successful payment (subscription cycle)"},"cancel_url":{"type":"string","description":"URL to redirect when user cancels payment"}},"required":["description","interval"]},"Object":{"type":"object","properties":{}},"UpdateSubscriptionDto":{"type":"object","properties":{"description":{"type":"string"},"price_id":{"type":"string","description":"Catalog price UUID"},"amount":{"type":"string"},"currency":{"type":"string"},"token_id":{"type":"string"},"network_id":{"type":"string"},"payer_email":{"type":"string","description":"Payer email for notifications"},"cancel_at":{"type":"object","description":"ISO timestamp"},"cancel_at_period_end":{"type":"boolean"},"trial_end":{"type":"string"},"metadata":{"type":"object"},"withdrawal_addresses":{"type":"object","description":"Withdrawal addresses by chain"},"pause_collection":{"type":"object","description":"Pause collection: void or keep_as_draft","example":{"behavior":"void"}},"return_url":{"type":"object","description":"URL to redirect after successful payment (subscription cycle); null to clear"},"cancel_url":{"type":"object","description":"URL to redirect when user cancels payment; null to clear"}}},"CancellationDetailsDto":{"type":"object","properties":{"comment":{"type":"string"},"feedback":{"type":"string","enum":["too_expensive","missing_features","switched_service","unused","other"]}}},"CancelSubscriptionDto":{"type":"object","properties":{"cancel_at_period_end":{"type":"boolean","description":"If true, cancel at the end of the current period instead of immediately"},"cancellation_details":{"$ref":"#/components/schemas/CancellationDetailsDto"}}},"ApproveAutoChargeDto":{"type":"object","properties":{"payer_wallet_address":{"type":"string","description":"Payer wallet address that approved the allowance","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"payer_network_id":{"type":"string","description":"Network UUID for the allowance"},"payer_token_id":{"type":"string","description":"Token UUID for the allowance"},"allowance_tx_hash":{"type":"string","description":"Transaction hash of the allowance/delegation transaction when a new on-chain approval was needed"},"payment_quote_id":{"type":"string","description":"Payment quote UUID used by approve auto-charge flow (from pay page selection)"},"approved_amount":{"type":"string","description":"Total approved amount (e.g. amount * cycles)","example":"120.00"},"approved_iterations":{"type":"number","description":"Number of billing cycles the payer pre-approved (e.g. 3 for 3 cycles)","example":3},"support_percent":{"type":"number","description":"Support fee percent chosen by the payer (used when no payment_quote_id is provided)","example":1}},"required":["payer_wallet_address","payer_network_id","payer_token_id"]},"AutoChargeQuoteDto":{"type":"object","properties":{"payer_wallet_address":{"type":"string","description":"Payer wallet address used to price this quote","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"payer_network_id":{"type":"string","description":"Selected payer network UUID"},"payer_token_id":{"type":"string","description":"Selected payer token UUID"},"support_percent":{"type":"number","description":"Support fee percent applied to the original amount (e.g. 0.1 for 0.1%). When omitted, server default or existing quote applies.","example":0.1},"payment_link_id":{"type":"string","description":"Subscription-cycle payment link UUID for this quote (must be active and belong to the subscription). When set, pricing uses this link instead of inferring the latest active link."}},"required":["payer_wallet_address","payer_network_id","payer_token_id"]},"RevokeAutoChargeDto":{"type":"object","properties":{"payer_wallet_address":{"type":"string","description":"Payer wallet address that held the allowance / delegation","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"revocation_tx_hash":{"type":"string","description":"Transaction hash of the revoke (EVM approve(spender,0) or Solana SPL revoke)"}},"required":["payer_wallet_address","revocation_tx_hash"]},"SetCollectionMethodRequestDto":{"type":"object","properties":{"collection_method":{"type":"string","enum":["send_payment_link","auto_charge"],"description":"Collection method chosen by the payer"},"payer_wallet_id":{"type":"string","description":"Required when collection_method is auto_charge: ID of the verified payer wallet to use"},"payer_network_id":{"type":"string","description":"Optional payer-selected network for auto_charge. Defaults to subscription network when omitted."},"payer_token_id":{"type":"string","description":"Optional payer-selected token for auto_charge. Defaults to subscription token when omitted."}},"required":["collection_method"]},"WalletChallengeRequestDto":{"type":"object","properties":{"payer_email":{"type":"string","example":"payer@example.com","description":"Payer email"},"wallet_address":{"type":"string","description":"Wallet address to verify (can be set when requesting challenge)","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"subscription_id":{"type":"string","description":"Subscription ID when verifying for a specific subscription"}},"required":["payer_email"]},"WalletVerifyRequestDto":{"type":"object","properties":{"challenge_id":{"type":"string","description":"Challenge ID from the challenge response"},"wallet_address":{"type":"string","description":"Wallet address that signed the message","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"signature":{"type":"string","description":"Signature hex (EVM) or base64 (Solana)"},"chain_family":{"type":"string","enum":["evm","solana"],"description":"Chain family for signature verification"}},"required":["challenge_id","wallet_address","signature","chain_family"]},"ProductDataDto":{"type":"object","properties":{"name":{"type":"string"},"active":{"type":"boolean","default":true},"metadata":{"type":"object"},"statement_descriptor":{"type":"string","maxLength":22},"unit_label":{"type":"string","maxLength":12}},"required":["name"]},"RecurringDto":{"type":"object","properties":{"interval":{"type":"string","enum":["day","week","month","year"]},"interval_count":{"type":"number","default":1},"trial_period_days":{"type":"number"}},"required":["interval"]},"CreatePriceDto":{"type":"object","properties":{"product":{"type":"string","description":"Existing product UUID"},"product_data":{"description":"Inline product (mutually exclusive with product)","allOf":[{"$ref":"#/components/schemas/ProductDataDto"}]},"unit_amount_decimal":{"type":"string","example":"10.00"},"currency":{"type":"string","example":"usd"},"token_id":{"type":"string"},"network_id":{"type":"string"},"recurring":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RecurringDto"}]},"lookup_key":{"type":"string"},"nickname":{"type":"string"},"active":{"type":"boolean","default":true},"metadata":{"type":"object"},"transfer_lookup_key":{"type":"boolean","description":"If true, atomically move lookup_key from another price in this org"}},"required":["unit_amount_decimal","currency","token_id","network_id"]},"UpdatePriceDto":{"type":"object","properties":{"product":{"type":"string"},"nickname":{"type":"object"},"unit_amount_decimal":{"type":"string"},"currency":{"type":"string"},"token_id":{"type":"string"},"network_id":{"type":"string"},"recurring":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RecurringDto"}]},"lookup_key":{"type":"object"},"active":{"type":"boolean"},"metadata":{"type":"object"},"transfer_lookup_key":{"type":"boolean"}}},"CreateOrganizationDto":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"readOnly":{"type":"boolean","default":false},"logoFileId":{"type":"string","nullable":true}},"required":["name"]},"GuidedSetupCatalogDraftFeature":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"GuidedSetupCatalogDraftPrice":{"type":"object","properties":{"unitAmountDecimal":{"type":"string"},"nickname":{"type":"string","nullable":true},"interval":{"type":"string","enum":["day","week","month","year"],"nullable":true},"intervalCount":{"type":"number","nullable":true}},"required":["unitAmountDecimal","nickname","interval","intervalCount"]},"GuidedSetupCatalogDraftProduct":{"type":"object","properties":{"clientDraftId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"templateId":{"type":"string","enum":["saas","services","consulting","membership","course","donation"],"nullable":true},"marketingFeatures":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftFeature"}},"statementDescriptor":{"type":"string","nullable":true},"unitLabel":{"type":"string","nullable":true},"price":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftPrice"}},"required":["clientDraftId","name","description","templateId","marketingFeatures","statementDescriptor","unitLabel","price"]},"GuidedSetupCatalogAppliedState":{"type":"object","properties":{"productIds":{"type":"array","items":{"type":"string"}},"priceIds":{"type":"array","items":{"type":"string"}},"appliedAt":{"format":"date-time","type":"string"}},"required":["productIds","priceIds","appliedAt"]},"OrganizationGuidedSetupState":{"type":"object","properties":{"currentStep":{"type":"string","enum":["selling_mode","resources","complete"],"nullable":true},"sellingMode":{"type":"string","enum":["subscription","payment_link"],"nullable":true},"version":{"type":"number","nullable":true},"catalogTemplateId":{"type":"string","enum":["saas","services","consulting","membership","course","donation"],"nullable":true},"catalogPrompt":{"type":"string","nullable":true},"catalogProvider":{"type":"string","enum":["openai","template"],"nullable":true},"catalogModel":{"type":"string","nullable":true},"catalogDraft":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftProduct"}},"catalogApplied":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/GuidedSetupCatalogAppliedState"}]}},"required":["currentStep","sellingMode","version","catalogTemplateId","catalogPrompt","catalogProvider","catalogModel","catalogDraft","catalogApplied"]},"Organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"logoFileId":{"type":"string","nullable":true},"logo":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/FileType"}]},"description":{"type":"string","nullable":true},"readOnly":{"type":"boolean"},"guidedSetupState":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/OrganizationGuidedSetupState"}]},"guidedSetupCompletedAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","name","slug","logoFileId","logo","description","readOnly","guidedSetupState","guidedSetupCompletedAt","createdAt","updatedAt","deletedAt"]},"OrganizationInviteTokenDetails":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"organizationLogoUrl":{"type":"string","nullable":true},"email":{"type":"string"},"role":{"type":"string","enum":["Admin","Owner","User"]},"status":{"type":"string","enum":["pending","accepted","declined","expired"]},"inviterName":{"type":"string","nullable":true},"inviterEmail":{"type":"string","nullable":true},"expiresAt":{"format":"date-time","type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"acceptedAt":{"format":"date-time","type":"string","nullable":true},"declinedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","organizationId","organizationName","organizationLogoUrl","email","role","status","inviterName","inviterEmail","expiresAt","createdAt","acceptedAt","declinedAt"]},"OrganizationInvite":{"type":"object","properties":{"id":{"type":"string"},"organization":{"$ref":"#/components/schemas/Organization"},"organizationId":{"type":"string"},"email":{"type":"string"},"token":{"type":"string"},"inviterUserId":{"type":"string","nullable":true},"inviterName":{"type":"string","nullable":true},"inviterEmail":{"type":"string","nullable":true},"expiresAt":{"format":"date-time","type":"string","nullable":true},"role":{"type":"string","enum":["Admin","Owner","User"]},"status":{"type":"string","enum":["pending","accepted","declined","expired"]},"createdAt":{"format":"date-time","type":"string"},"acceptedAt":{"format":"date-time","type":"string","nullable":true},"declinedAt":{"format":"date-time","type":"string","nullable":true},"updatedAt":{"format":"date-time","type":"string","nullable":true}},"required":["id","organization","organizationId","email","token","inviterUserId","inviterName","inviterEmail","expiresAt","role","status","createdAt","acceptedAt","declinedAt","updatedAt"]},"OrganizationMember":{"type":"object","properties":{"id":{"type":"string"},"organization":{"$ref":"#/components/schemas/Organization"},"organizationId":{"type":"string"},"user":{"$ref":"#/components/schemas/User"},"userId":{"type":"string"},"role":{"type":"string","enum":["Admin","Owner","User","Payer"]},"status":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","organization","organizationId","user","userId","role","status","createdAt","updatedAt"]},"OrganizationGuidedSetupCounts":{"type":"object","properties":{"products":{"type":"number"},"prices":{"type":"number"},"apiKeys":{"type":"number"},"widgets":{"type":"number"}},"required":["products","prices","apiKeys","widgets"]},"OrganizationGuidedSetup":{"type":"object","properties":{"organizationId":{"type":"string"},"currentStep":{"type":"string","enum":["selling_mode","resources","complete"],"nullable":true},"sellingMode":{"type":"string","enum":["subscription","payment_link"],"nullable":true},"state":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/OrganizationGuidedSetupState"}]},"completedAt":{"format":"date-time","type":"string","nullable":true},"counts":{"$ref":"#/components/schemas/OrganizationGuidedSetupCounts"}},"required":["organizationId","currentStep","sellingMode","state","completedAt","counts"]},"UpdateOrganizationDto":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"readOnly":{"type":"boolean"},"logoFileId":{"type":"string","nullable":true}}},"UpdateGuidedSetupDto":{"type":"object","properties":{"currentStep":{"type":"string","enum":["selling_mode","resources","complete"]},"sellingMode":{"type":"string","enum":["subscription","payment_link"]}}},"InviteMemberDto":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string","enum":["Admin","Owner","User"]}},"required":["email","role"]},"SetMemberRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["Admin","Owner","User"]}},"required":["role"]},"CreateApiKeyDto":{"type":"object","properties":{"name":{"type":"string","example":"My integration key"},"webhookUrl":{"type":"string","example":"https://example.com/webhook"},"commissionPercent":{"type":"number","example":4,"description":"Commission percent (0–100) applied to payments created via this key"}}},"ApiKey":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"organization":{"type":"object","nullable":true},"name":{"type":"string"},"keyPrefix":{"type":"string"},"keyPlain":{"type":"string","nullable":true},"status":{"type":"string","enum":["active","revoked"]},"lastUsedAt":{"format":"date-time","type":"string","nullable":true},"revokedAt":{"format":"date-time","type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true},"commissionPercent":{"type":"number","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","organizationId","organization","name","keyPrefix","keyPlain","status","lastUsedAt","revokedAt","webhookUrl","commissionPercent","createdAt","updatedAt"]},"UpdateApiKeyDto":{"type":"object","properties":{"name":{"type":"string","example":"My integration key"},"webhookUrl":{"type":"string","example":"https://example.com/webhook"},"commissionPercent":{"type":"number","example":4,"description":"Commission percent (0–100) applied to payments created via this key"}}},"TestApiKeyDto":{"type":"object","properties":{"key":{"type":"string","example":"ak_live_123"},"secret":{"type":"string","example":"sk_live_123"}},"required":["key"]},"TokenPriceDto":{"type":"object","properties":{"id":{"type":"string"},"tokenId":{"type":"string"},"priceUsd":{"type":"string","example":"2500.00"},"source":{"type":"string","example":"coingecko"},"createdAt":{"format":"date-time","type":"string"}},"required":["id","tokenId","priceUsd","source","createdAt"]},"CurrencyDto":{"type":"object","properties":{"id":{"type":"number"},"code":{"type":"string","example":"USD"},"name":{"type":"string","example":"US Dollar"},"symbol":{"type":"string","nullable":true,"example":"$"},"decimals":{"type":"number","default":2},"isActive":{"type":"boolean","default":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","code","name","symbol","decimals","isActive","createdAt","updatedAt"]},"CurrencyRateDto":{"type":"object","properties":{"id":{"type":"string"},"baseCurrencyId":{"type":"string"},"quoteCurrencyId":{"type":"string"},"rate":{"type":"string","example":"590000.00"},"source":{"type":"string","example":"manual"},"createdAt":{"format":"date-time","type":"string"}},"required":["id","baseCurrencyId","quoteCurrencyId","rate","source","createdAt"]},"FiatQuoteResponseDto":{"type":"object","properties":{"amountUsd":{"type":"string","description":"Amount in USD","example":"2.38"},"amountUsdc":{"type":"string","description":"Amount in USDC (same as USD for stablecoin)","example":"2.38"},"sourceAmount":{"type":"string","description":"Original amount in source currency","example":"100000"},"sourceCurrency":{"type":"string","description":"Source currency code","example":"irr"},"currencyRateId":{"type":"string","description":"Currency rate entity ID used for conversion (null when USD)","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true},"tokenAmount":{"type":"string","description":"Amount in selected token (when tokenId query param provided)","example":"0.00052"},"tokenSymbol":{"type":"string","description":"Symbol of selected token (when tokenId query param provided)","example":"ETH"}},"required":["amountUsd","amountUsdc","sourceAmount","sourceCurrency"]},"WithdrawalSettings":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"addresses":{"type":"object","description":"Withdrawal addresses by chain type (e.g. evm, solana, bitcoin). Keys from NetworkChainFamilyEnum.","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"isEnabled":{"type":"boolean"},"strategy":{"type":"number","enum":[1,2]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","organizationId","addresses","isEnabled","strategy","createdAt","updatedAt"]},"UpdateWithdrawalSettingsDto":{"type":"object","properties":{"addresses":{"type":"object","description":"Withdrawal addresses by chain type. Keys must be from NetworkChainFamilyEnum (evm, solana, bitcoin, etc.).","example":{"evm":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"}},"isEnabled":{"type":"boolean"},"strategy":{"type":"number","enum":[1,2]}}},"CreateWithdrawalRequestDto":{"type":"object","properties":{"amount":{"type":"string","example":"0.1"},"tokenId":{"type":"string","description":"Token ID (UUID)"},"sourceNetworkId":{"type":"string","description":"Source network ID (UUID)"},"destinationNetworkId":{"type":"string","description":"Destination network ID (UUID)"},"address":{"type":"string","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"strategy":{"type":"number","enum":[1,2]}},"required":["amount","tokenId","sourceNetworkId","address","strategy"]},"WithdrawalRequest":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"amount":{"type":"string","example":"0.1"},"tokenId":{"type":"string"},"token":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Token"}]},"sourceNetworkId":{"type":"string"},"sourceNetwork":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Network"}]},"destinationNetworkId":{"type":"string"},"destinationNetwork":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Network"}]},"address":{"type":"string","example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"strategy":{"type":"number","enum":[1,2]},"status":{"type":"string","enum":["pending","processing","completed","failed"]},"txHash":{"type":"string","nullable":true},"failureReason":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","organizationId","amount","tokenId","sourceNetworkId","destinationNetworkId","address","strategy","status","txHash","failureReason","metadata","createdAt","updatedAt"]},"WithdrawalSummaryByNetworkDto":{"type":"object","properties":{"networkId":{"type":"string"},"networkName":{"type":"string"},"totalAmount":{"type":"string"},"totalUsdcValue":{"type":"string"}},"required":["networkId","networkName","totalAmount","totalUsdcValue"]},"WithdrawalSummaryByTokenDto":{"type":"object","properties":{"tokenId":{"type":"string"},"tokenSymbol":{"type":"string"},"totalAmount":{"type":"string"},"totalUsdcValue":{"type":"string"}},"required":["tokenId","tokenSymbol","totalAmount","totalUsdcValue"]},"WithdrawalSummaryTotalsDto":{"type":"object","properties":{"totalWithdrawalCount":{"type":"number","description":"Number of completed withdrawals in the filtered result set"},"totalWithdrawalAmount":{"type":"string","description":"Sum of completed withdrawal amounts in the filtered result set using the withdrawal request amount field"},"totalEarnedUsdc":{"type":"string","description":"Total earned from transactions with status completed or withdrawn (USDC)"},"totalWithdrawnUsdc":{"type":"string"},"remainingUsdc":{"type":"string"}},"required":["totalWithdrawalCount","totalWithdrawalAmount","totalEarnedUsdc","totalWithdrawnUsdc","remainingUsdc"]},"WithdrawalSummaryDto":{"type":"object","properties":{"byNetwork":{"type":"array","items":{"$ref":"#/components/schemas/WithdrawalSummaryByNetworkDto"}},"byToken":{"type":"array","items":{"$ref":"#/components/schemas/WithdrawalSummaryByTokenDto"}},"totals":{"$ref":"#/components/schemas/WithdrawalSummaryTotalsDto"}},"required":["byNetwork","byToken","totals"]},"SendCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com","description":"Payer email address"},"paymentLinkSlug":{"type":"string","example":"abc123def456","description":"Payment link slug"}},"required":["email","paymentLinkSlug"]},"VerifyCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com","description":"Payer email address"},"code":{"type":"string","example":"123456","description":"6-digit verification code"},"paymentLinkSlug":{"type":"string","example":"abc123def456","description":"Payment link slug"},"forceUpdateSubscriptionEmail":{"type":"boolean","default":false,"description":"When true, allow overwrite if merchant-assigned payer email differs from session email"}},"required":["email","code","paymentLinkSlug"]},"ResendCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com","description":"Payer email address"},"paymentLinkSlug":{"type":"string","example":"abc123def456","description":"Payment link slug"}},"required":["email","paymentLinkSlug"]},"SendLoginCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com"}},"required":["email"]},"VerifyLoginCodeDto":{"type":"object","properties":{"email":{"type":"string","example":"payer@example.com"},"code":{"type":"string","example":"123456"}},"required":["email","code"]},"BindPaymentLinkDto":{"type":"object","properties":{"paymentLinkSlug":{"type":"string","example":"abc123def456","description":"Unique slug of the payment link (from pay page URL)"},"forceUpdateSubscriptionEmail":{"type":"boolean","description":"When true, overwrite subscription/link payer email with the authenticated payer email if it differed from the merchant-assigned email"}},"required":["paymentLinkSlug"]},"OrganizationLogActorDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string"},"email":{"type":"string","nullable":true}},"required":["name"]},"OrganizationLogChangeDto":{"type":"object","properties":{"field":{"type":"string"},"label":{"type":"string"},"previousValue":{"type":"string","nullable":true},"newValue":{"type":"string","nullable":true}},"required":["field","label"]},"OrganizationLogResponseDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"tableName":{"type":"string"},"recordId":{"type":"string"},"action":{"type":"string","enum":["insert","update","delete"]},"userId":{"type":"string","format":"uuid","nullable":true},"organizationId":{"type":"string","format":"uuid","nullable":true},"oldValues":{"type":"object","nullable":true},"newValues":{"type":"object","nullable":true},"createdAt":{"format":"date-time","type":"string"},"actor":{"$ref":"#/components/schemas/OrganizationLogActorDto"},"entityLabel":{"type":"string"},"summary":{"type":"string"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationLogChangeDto"}}},"required":["id","tableName","recordId","action","createdAt","actor","entityLabel","summary","changes"]},"DefaultPriceDataDto":{"type":"object","properties":{"unit_amount_decimal":{"type":"string","example":"10.00"},"currency":{"type":"string","example":"usd"},"token_id":{"type":"string"},"network_id":{"type":"string"},"recurring":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/RecurringDto"}]},"lookup_key":{"type":"string"},"nickname":{"type":"string"},"active":{"type":"boolean","default":true},"metadata":{"type":"object"}},"required":["unit_amount_decimal","currency","token_id","network_id"]},"MarketingFeatureDto":{"type":"object","properties":{"name":{"type":"string","maxLength":80}},"required":["name"]},"CreateProductDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"active":{"type":"boolean","default":true},"metadata":{"type":"object"},"default_price":{"type":"string","description":"Default price UUID for this product"},"default_price_data":{"description":"Inline-create the default price atomically (mutually exclusive with default_price)","allOf":[{"$ref":"#/components/schemas/DefaultPriceDataDto"}]},"image_file_ids":{"maxItems":8,"description":"File UUIDs from POST /files/upload (same as organization logo)","type":"array","items":{"type":"string"}},"marketing_features":{"maxItems":15,"type":"array","items":{"$ref":"#/components/schemas/MarketingFeatureDto"}},"statement_descriptor":{"type":"string","maxLength":22},"unit_label":{"type":"string","maxLength":12},"shippable":{"type":"boolean"},"url":{"type":"string"},"livemode":{"type":"boolean","default":false}},"required":["name"]},"UpdateProductDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"object"},"active":{"type":"boolean"},"metadata":{"type":"object"},"default_price":{"type":"object"},"image_file_ids":{"maxItems":8,"description":"File UUIDs from POST /files/upload (same as organization logo)","type":"array","items":{"type":"string"}},"marketing_features":{"maxItems":15,"type":"array","items":{"$ref":"#/components/schemas/MarketingFeatureDto"}},"statement_descriptor":{"type":"object"},"unit_label":{"type":"object"},"shippable":{"type":"object"},"url":{"type":"object"},"livemode":{"type":"boolean"}}},"OrganizationPayerDto":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000"},"email":{"type":"string","example":"payer@example.com"},"walletAddress":{"type":"string","nullable":true,"example":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},"totalPayments":{"type":"number","example":12,"description":"Count of successful payments for this payer in the organization"},"lastPaymentAt":{"type":"string","nullable":true,"description":"Last successful payment timestamp","example":"2026-04-10T14:20:11.000Z"},"subscriptionCount":{"type":"number","example":3,"description":"Number of subscriptions in this organization linked to this payer"}},"required":["id","email","walletAddress","totalPayments","lastPaymentAt","subscriptionCount"]},"InfinityPaginationOrganizationPayerDtoResponseDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationPayerDto"}},"hasNextPage":{"type":"boolean","example":true}},"required":["data","hasNextPage"]},"DisplaySettingsDto":{"type":"object","properties":{"default_view":{"type":"string","enum":["monthly","yearly"],"nullable":true},"language":{"type":"string","example":"en"},"background_color":{"type":"string","example":"#ffffff"},"button_color":{"type":"string","example":"#0074d4"},"font":{"type":"string","example":"system"},"button_shape":{"type":"string","enum":["rounded","sharp","pill"]},"highlight_product_id":{"type":"object","nullable":true},"highlight_label":{"type":"string","enum":["most_popular","best_deal","recommended","custom"]},"highlight_label_text":{"type":"object","maxLength":32}}},"WidgetTaxIdCollectionDto":{"type":"object","properties":{"enabled":{"type":"boolean"},"required":{"type":"string","enum":["if_supported","never"]}}},"WidgetAdjustableQuantityDto":{"type":"object","properties":{"enabled":{"type":"boolean"},"minimum":{"type":"number"},"maximum":{"type":"number"}}},"WidgetAddressCollectionDto":{"type":"object","properties":{"enabled":{"type":"boolean"},"mode":{"type":"string","enum":["billing","billing_and_shipping"]}}},"WidgetProductCustomFieldDto":{"type":"object","properties":{"type":{"type":"string","enum":["text","numeric","dropdown"],"default":"text"},"label":{"type":"string","maxLength":50},"default_value":{"type":"object","nullable":true,"maxLength":255},"min_length":{"type":"object","nullable":true},"max_length":{"type":"object","nullable":true},"optional":{"type":"boolean"}}},"WidgetConfirmationPageDto":{"type":"object","properties":{"type":{"type":"string","enum":["hosted","redirect"]},"custom_message":{"type":"object","nullable":true,"maxLength":500},"url":{"type":"string","nullable":true}}},"WidgetProductPaymentSettingsDto":{"type":"object","properties":{"collect_tax":{"type":"boolean"},"allow_promotion_codes":{"type":"boolean"},"tax_id_collection":{"$ref":"#/components/schemas/WidgetTaxIdCollectionDto"},"adjustable_quantity":{"$ref":"#/components/schemas/WidgetAdjustableQuantityDto"},"address_collection":{"$ref":"#/components/schemas/WidgetAddressCollectionDto"},"collect_phone":{"type":"boolean"},"custom_fields":{"type":"array","items":{"$ref":"#/components/schemas/WidgetProductCustomFieldDto"}},"confirmation_page":{"$ref":"#/components/schemas/WidgetConfirmationPageDto"}}},"WidgetProductInputDto":{"type":"object","properties":{"row_type":{"type":"string","enum":["product","cta"],"default":"product"},"product_id":{"type":"string","description":"Required when row_type is product (default)"},"price_id":{"type":"object","nullable":true,"description":"If omitted for a product row, uses the product default price"},"cta_url":{"type":"object","nullable":true,"maxLength":2048,"description":"Required when row_type is cta"},"call_to_action":{"type":"object","maxLength":64},"trial_period_days":{"type":"object","nullable":true,"description":"Optional free trial when checking out via this product row"},"payment_settings":{"$ref":"#/components/schemas/WidgetProductPaymentSettingsDto"}}},"CreateWidgetDto":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"livemode":{"type":"boolean"},"display_settings":{"$ref":"#/components/schemas/DisplaySettingsDto"},"products":{"minItems":1,"maxItems":5,"type":"array","items":{"$ref":"#/components/schemas/WidgetProductInputDto"}}},"required":["name","products"]},"UpdateWidgetDto":{"type":"object","properties":{"name":{"type":"string","maxLength":256},"active":{"type":"boolean"},"livemode":{"type":"boolean"},"display_settings":{"$ref":"#/components/schemas/DisplaySettingsDto"},"products":{"type":"array","items":{"$ref":"#/components/schemas/WidgetProductInputDto"}}}},"CheckoutWidgetDto":{"type":"object","properties":{"price_id":{"type":"string"}},"required":["price_id"]},"GenerateGuidedSetupCatalogDto":{"type":"object","properties":{"sellingMode":{"type":"string","enum":["subscription","payment_link"]},"templateId":{"type":"string","enum":["saas","services","consulting","membership","course","donation"]},"prompt":{"type":"object","maxLength":500}},"required":["sellingMode","templateId"]},"GuidedSetupCatalogSuggestionsResponse":{"type":"object","properties":{"provider":{"type":"string","enum":["openai","template"]},"model":{"type":"string"},"templateId":{"type":"string","enum":["saas","services","consulting","membership","course","donation"]},"prompt":{"type":"string","nullable":true},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftProduct"}},"guidedSetup":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}},"required":["provider","model","templateId","prompt","suggestions","guidedSetup"]},"GuidedSetupCatalogDraftFeatureDto":{"type":"object","properties":{"name":{"type":"string","maxLength":80}},"required":["name"]},"GuidedSetupCatalogDraftPriceDto":{"type":"object","properties":{"unitAmountDecimal":{"type":"string"},"nickname":{"type":"object","nullable":true,"maxLength":80},"interval":{"type":"string","nullable":true,"enum":["day","week","month","year"]},"intervalCount":{"type":"object","nullable":true}},"required":["unitAmountDecimal"]},"GuidedSetupCatalogDraftProductDto":{"type":"object","properties":{"clientDraftId":{"type":"string"},"name":{"type":"string","maxLength":80},"description":{"type":"object","nullable":true,"maxLength":240},"statementDescriptor":{"type":"object","nullable":true,"maxLength":22},"unitLabel":{"type":"object","nullable":true,"maxLength":40},"marketingFeatures":{"type":"array","items":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftFeatureDto"}},"price":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftPriceDto"}},"required":["clientDraftId","name","price"]},"ApplyGuidedSetupCatalogDto":{"type":"object","properties":{"networkId":{"type":"string"},"tokenId":{"type":"string"},"currency":{"type":"string","maxLength":8},"products":{"minItems":1,"maxItems":5,"type":"array","items":{"$ref":"#/components/schemas/GuidedSetupCatalogDraftProductDto"}}},"required":["networkId","tokenId","currency","products"]},"GuidedSetupCatalogApplyResponse":{"type":"object","properties":{"applied":{"$ref":"#/components/schemas/GuidedSetupCatalogAppliedState"},"guidedSetup":{"$ref":"#/components/schemas/OrganizationGuidedSetup"}},"required":["applied","guidedSetup"]}}}}