BackstageClient.paymentProviders
BackstageClient.paymentProviders in @ticketlayer/backstage.
@ticketlayer/backstage / BackstageClient / paymentProviders
paymentProviders: {
balances: (providerId: string, options?: {
book?: "live" | "test";
}, requestOptions?: RequestOptions) => Promise<{
balances: {
book: "live" | "test";
clearing: {
amount: number;
currency: string;
postingCount: number;
}[];
createdAt: string;
externalAccountId: string;
holderId: string;
lastPayout: | {
amount: number;
arrivalDate: string;
currency: string;
externalId: string;
id: string;
paidAt: string | null;
reconciled: boolean;
reconciledAt: string | null;
status: "failed" | "paid" | "pending" | "in_transit" | "canceled";
unmatchedCount: number;
}
| null;
providerAccountId: string | null;
pspBalanceId: string;
suspense: {
amount: number;
currency: string;
postingCount: number;
}[];
unmatchedCount: number;
}[];
book: "live" | "test";
providerId: string;
}>;
connectAdyen: (request: {
accountId?: string;
apiKey: string;
clientKey: string;
countryCode?: string;
currencies: string[];
environment: "live" | "test";
hmacKey: string;
isDefault?: boolean;
liveEndpointUrlPrefix?: string;
merchantAccount: string;
name?: string;
priority?: number;
providerId?: string;
reportApiKey?: string;
supportedPaymentTypes?: (
| "other"
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "voucher"
| "stored_value"
| "online_bank_transfer"
| "online_wallet")[];
terminalRegion?: "eu" | "us" | "au" | "apse";
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
currencies: {
accepted: boolean;
brands: string[];
currency: string;
}[];
provider: {
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
};
}>;
connectPaypal: (request: {
clientId: string;
clientSecret: string;
currencies?: string[];
environment: "sandbox" | "live";
name?: string;
}, requestOptions?: RequestOptions) => Promise<{
connection: {
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
created: boolean;
refusedCurrencies: string[];
}>;
create: (request: {
accountId?: string;
applicationFee?: any;
capabilities?: {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
};
configuration: Record<string, any>;
description?: string;
feeStructure?: {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
};
integrationServiceUrl?: string;
integrationServiceVersion?: string;
integrationType?: "ticketlayer_pay" | "self_service";
isDefault?: boolean;
metadata?: Record<string, any>;
name: string;
passOnProcessingCosts?: boolean;
priority?: number;
processingCostBearer?: "holder" | "beneficiaries";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "sandbox"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;
createAccountOnboardingLink: (providerId: string, accountId: string, request: {
refreshUrl: string;
returnUrl: string;
}, requestOptions?: RequestOptions) => Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>;
createAccountOnboardingSession: (providerId: string, accountId: string, requestOptions?: RequestOptions) => Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>;
createTicketlayerPayOnboardingLink: (request: {
refreshUrl: string;
returnUrl: string;
}, requestOptions?: RequestOptions) => Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>;
createTicketlayerPayOnboardingSession: (requestOptions?: RequestOptions) => Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>;
delete: (providerId: string, requestOptions?: RequestOptions) => Promise<{
id: string;
success: boolean;
}>;
enableTicketlayerPay: (request: {
contactEmail?: string;
country?: string;
currency?: string;
displayName?: string;
metadata?: Record<string, any>;
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
status: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
};
}>;
get: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;
getAccount: (providerId: string, accountId: string, options?: {
refresh?: "true" | "false" | "0" | "1";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
} & Record<string, never>>;
getAdyen: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
}>;
getDefault: (requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;
getStripeConnect: (requestOptions?: RequestOptions) => Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
} & Record<string, never>>;
getTicketlayerPay: (options?: {
refresh?: "true" | "false" | "0" | "1";
}, requestOptions?: RequestOptions) => Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
}>;
linkStripeConnect: (request: {
applicationFee?: any;
defaultMode: "direct" | "connected";
name?: string;
publishableKey: string;
refundApplicationFee?: boolean;
secretKey: string;
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
provider: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
}>;
list: (options?: {
accountId?: string;
integrationType?: "ticketlayer_pay" | "self_service";
isDefault?: string;
limit?: string;
page?: string;
paymentType?: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet";
status?: "active" | "inactive" | "pending_setup";
type?: | "bank_transfer"
| "paypal"
| "cash"
| "sandbox"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square";
}, requestOptions?: RequestOptions) => Promise<{
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
providers: {
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}[];
}>;
listAccounts: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}[]>;
listPaypalConnections: (requestOptions?: RequestOptions) => Promise<{
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
}[]>;
reportStatus: (providerId: string, request: {
chargesEnabled?: boolean;
externalAccountId?: string;
metadata?: Record<string, any>;
onboardingStatus?: "restricted" | "pending" | "in_progress" | "complete";
payoutsEnabled?: boolean;
status: "active" | "inactive" | "pending_setup";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;
setAccountMode: (providerId: string, accountId: string, request: {
connectedAccountId?: string;
contactEmail?: string;
country?: string;
currency?: string;
displayName?: string;
mode: "direct" | "connected";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}>;
update: (providerId: string, request: {
applicationFee?: any;
capabilities?: {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
};
configuration?: Record<string, any>;
description?: string;
feeStructure?: {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
};
integrationServiceUrl?: string;
integrationServiceVersion?: string;
isDefault?: boolean;
metadata?: Record<string, any>;
name?: string;
passOnProcessingCosts?: boolean;
priority?: number;
processingCostBearer?: "holder" | "beneficiaries";
status?: "active" | "inactive" | "pending_setup";
supportedPaymentTypes?: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;
};Defined in: client.ts:6069
Payment Providers methods
balances()#
balances: (providerId: string, options?: {
book?: "live" | "test";
}, requestOptions?: RequestOptions) => Promise<{
balances: {
book: "live" | "test";
clearing: {
amount: number;
currency: string;
postingCount: number;
}[];
createdAt: string;
externalAccountId: string;
holderId: string;
lastPayout: | {
amount: number;
arrivalDate: string;
currency: string;
externalId: string;
id: string;
paidAt: string | null;
reconciled: boolean;
reconciledAt: string | null;
status: "failed" | "paid" | "pending" | "in_transit" | "canceled";
unmatchedCount: number;
}
| null;
providerAccountId: string | null;
pspBalanceId: string;
suspense: {
amount: number;
currency: string;
postingCount: number;
}[];
unmatchedCount: number;
}[];
book: "live" | "test";
providerId: string;
}>;Read a payment provider's balances: clearing and the last payout
What the ledger says the provider holds, per balance it holds money in: the clearing figure per currency (Psp:{pspBalanceId}:Clearing, derived from the postings every time, never cached), what is in suspense, the last payout with whether it reconciled, and how many of its balance transactions matched nothing. Nothing here asks the provider; it is the figure a payout is reconciled against. Reads one book: live unless book=test is asked for (the sandbox's balances are in test). Requires paymentproviders.read, on the provider's Account when it has one, AND ledger.read: the figures are the ledger's, so a credential that may read the provider but not the books (an organisation API key holding only paymentproviders.accounts.write) is refused. A balance is listed only when you may read its holder under both: an Account-scoped reader sees the balances held for its Accounts, and one the organisation holds needs both permissions across the whole organisation. An organisation API key's ledger.read counts only while its organisation allows API keys to read the ledger (allowApiKeyLedgerRead); otherwise 403 API_KEY_LEDGER_READ_NOT_ALLOWED. Amounts are integer MINOR UNITS.
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
options? | { book?: "live" | "test"; } |
options.book? | "live" | "test" |
requestOptions? | RequestOptions |
Returns#
Promise<{
balances: {
book: "live" | "test";
clearing: {
amount: number;
currency: string;
postingCount: number;
}[];
createdAt: string;
externalAccountId: string;
holderId: string;
lastPayout: | {
amount: number;
arrivalDate: string;
currency: string;
externalId: string;
id: string;
paidAt: string | null;
reconciled: boolean;
reconciledAt: string | null;
status: "failed" | "paid" | "pending" | "in_transit" | "canceled";
unmatchedCount: number;
}
| null;
providerAccountId: string | null;
pspBalanceId: string;
suspense: {
amount: number;
currency: string;
postingCount: number;
}[];
unmatchedCount: number;
}[];
book: "live" | "test";
providerId: string;
}>
Operation Id#
getPaymentProviderBalances
connectAdyen()#
connectAdyen: (request: {
accountId?: string;
apiKey: string;
clientKey: string;
countryCode?: string;
currencies: string[];
environment: "live" | "test";
hmacKey: string;
isDefault?: boolean;
liveEndpointUrlPrefix?: string;
merchantAccount: string;
name?: string;
priority?: number;
providerId?: string;
reportApiKey?: string;
supportedPaymentTypes?: (
| "other"
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "voucher"
| "stored_value"
| "online_bank_transfer"
| "online_wallet")[];
terminalRegion?: "eu" | "us" | "au" | "apse";
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
currencies: {
accepted: boolean;
brands: string[];
currency: string;
}[];
provider: {
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
};
}>;Connect the organisation's own Adyen account
Merchant-credentials mode: the organisation's own Adyen merchant account, API key, client key and webhook HMAC key. Before anything is stored, Adyen is asked whether it accepts the key and, for each currency in currencies, whether the merchant account offers card payments in it; only the currencies Adyen confirms are taken, and none confirmed is 400 ADYEN_CURRENCY_NOT_SUPPORTED. The keys are stored encrypted and never returned. Point the merchant account's standard webhook, with HMAC signing on, at webhookPath. Ticketlayer takes no fee in the payment flow: its fee comes from prepaid credits. A first connection needs the plan to include an own payment provider (403 PLAN_ENTITLEMENT_REQUIRED otherwise); send providerId to change the keys or currencies of an existing one.
Parameters#
| Parameter | Type | Description |
|---|---|---|
request | { accountId?: string; apiKey: string; clientKey: string; countryCode?: string; currencies: string[]; environment: "live" | "test"; hmacKey: string; isDefault?: boolean; liveEndpointUrlPrefix?: string; merchantAccount: string; name?: string; priority?: number; providerId?: string; reportApiKey?: string; supportedPaymentTypes?: ( | "other" | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "voucher" | "stored_value" | "online_bank_transfer" | "online_wallet")[]; terminalRegion?: "eu" | "us" | "au" | "apse"; } | - |
request.accountId? | string | Description The Ticketlayer Account the connection is for; omit for the whole organisation. Ignored on a reconnect. Example acc_abc123 |
request.apiKey? | string | Description A web service user's API key (stored encrypted, never returned) Example AQEyhmfxK... |
request.clientKey? | string | Description The client key Drop-in starts with (public) Example test_ABCDEF1234567890 |
request.countryCode? | string | Description The shopper country the currency check asks about Example GB |
request.currencies? | string[] | Description The currencies to take; each is checked with Adyen Example [ "GBP" ] |
request.environment? | "live" | "test" | Description Adyen's test platform (test orders only) or live (live orders only) Example test @enum {string} |
request.hmacKey? | string | Description The standard webhook's HMAC key (stored encrypted, never returned) Example 44782DEF547AAA06C910C43932B1EB0C71FC68D9D0C057550C48EC2ACF6BA056 |
request.isDefault? | boolean | - |
request.liveEndpointUrlPrefix? | string | Description Live only: the merchant's Checkout prefix, from the Customer Area Example 1797a841fbb37ca7-TheatreRoyal |
request.merchantAccount? | string | Example TheatreRoyalECOM |
request.name? | string | Example Adyen |
request.priority? | number | - |
request.providerId? | string | Description Reconnect this Adyen provider (new keys or currencies) instead of creating one Example ppr_adyenXxx123 |
request.reportApiKey? | string | Description A report user's API key, when settlement reports are downloaded with another user (stored encrypted) |
request.supportedPaymentTypes? | ( | "other" | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "voucher" | "stored_value" | "online_bank_transfer" | "online_wallet")[] | Example [ "online_card", "online_wallet", "in_person_card" ] |
request.terminalRegion? | "eu" | "us" | "au" | "apse" | Description Where the live Cloud Terminal API is for this account Example eu @enum {string} |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
created: boolean;
currencies: {
accepted: boolean;
brands: string[];
currency: string;
}[];
provider: {
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
};
}>
Operation Id#
connectAdyen
connectPaypal()#
connectPaypal: (request: {
clientId: string;
clientSecret: string;
currencies?: string[];
environment: "sandbox" | "live";
name?: string;
}, requestOptions?: RequestOptions) => Promise<{
connection: {
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
created: boolean;
refusedCurrencies: string[];
}>;Connect the organisation's own PayPal REST app
Merchant-credentials mode: the organisation's own REST app client id and secret, for one PayPal environment (sandbox for test mode, live). The credentials are checked by reading the PayPal account's balances, which also names the account (its payer id) and the currencies it holds. PayPal is offered only in currencies the account holds: PayPal leaves a payment in any other pending until the merchant accepts it by hand. The secret is stored encrypted and never returned. A webhook subscription to Ticketlayer is made on the REST app; if that fails the connection still takes payments and the error is shown. One connection per environment: connecting again re-keys it. Ticketlayer's fee is not taken in the payment (no platform fees): it is drawn from the organisation's prepaid credits. A first connection needs the organisation's plan to include its own payment provider (entitlements.payments.ownStripe on GET /plan); without it the answer is 403 PLAN_ENTITLEMENT_REQUIRED and the credentials are never sent to PayPal.
Parameters#
| Parameter | Type |
|---|---|
request | { clientId: string; clientSecret: string; currencies?: string[]; environment: "sandbox" | "live"; name?: string; } |
request.clientId | string |
request.clientSecret? | string |
request.currencies? | string[] |
request.environment? | "sandbox" | "live" |
request.name? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
connection: {
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
created: boolean;
refusedCurrencies: string[];
}>
Operation Id#
connectPaypal
create()#
create: (request: {
accountId?: string;
applicationFee?: any;
capabilities?: {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
};
configuration: Record<string, any>;
description?: string;
feeStructure?: {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
};
integrationServiceUrl?: string;
integrationServiceVersion?: string;
integrationType?: "ticketlayer_pay" | "self_service";
isDefault?: boolean;
metadata?: Record<string, any>;
name: string;
passOnProcessingCosts?: boolean;
priority?: number;
processingCostBearer?: "holder" | "beneficiaries";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "sandbox"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;Create payment provider
Create a new payment provider configuration. A self-service card gateway (stripe_connect, stripe_direct, adyen, square, paypal) is the organisation bringing its own payment provider, and needs its plan to include that (entitlements.payments.ownStripe on GET /plan); without it the answer is 403 PLAN_ENTITLEMENT_REQUIRED. The sandbox, cash and bank transfer are available on every plan. Ticketlayer Pay, also on every plan, is not created here: integrationType: ticketlayer_pay is refused with 400 TICKETLAYER_PAY_MANAGED, because its configuration is written by Ticketlayer from the connected account it vends. Use POST /payment-providers/ticketlayer-pay/enable, then an onboarding session. An Adyen connection is not created here either (400 ADYEN_CONNECT_REQUIRED): POST /payment-providers/adyen/connect checks its keys and currencies with Adyen first.
Parameters#
| Parameter | Type |
|---|---|
request | { accountId?: string; applicationFee?: any; capabilities?: { maxAmount?: number; minAmount?: number; requiresCustomerAction?: boolean; supportedCurrencies?: string[]; supportsDelayedCapture?: boolean; supportsInstantCapture?: boolean; supportsPartialRefunds?: boolean; supportsRefunds?: boolean; }; configuration: Record<string, any>; description?: string; feeStructure?: { currency?: string; fixed?: number; percentage?: number; type: "fixed" | "percentage" | "percentage_plus_fixed"; }; integrationServiceUrl?: string; integrationServiceVersion?: string; integrationType?: "ticketlayer_pay" | "self_service"; isDefault?: boolean; metadata?: Record<string, any>; name: string; passOnProcessingCosts?: boolean; priority?: number; processingCostBearer?: "holder" | "beneficiaries"; supportedPaymentTypes: ( | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet")[]; type: | "bank_transfer" | "paypal" | "cash" | "sandbox" | "stripe_connect" | "stripe_direct" | "adyen" | "square"; } |
request.accountId? | string |
request.applicationFee? | any |
request.capabilities? | { maxAmount?: number; minAmount?: number; requiresCustomerAction?: boolean; supportedCurrencies?: string[]; supportsDelayedCapture?: boolean; supportsInstantCapture?: boolean; supportsPartialRefunds?: boolean; supportsRefunds?: boolean; } |
request.capabilities.maxAmount? | number |
request.capabilities.minAmount? | number |
request.capabilities.requiresCustomerAction? | boolean |
request.capabilities.supportedCurrencies? | string[] |
request.capabilities.supportsDelayedCapture? | boolean |
request.capabilities.supportsInstantCapture? | boolean |
request.capabilities.supportsPartialRefunds? | boolean |
request.capabilities.supportsRefunds? | boolean |
request.configuration? | Record<string, any> |
request.description? | string |
request.feeStructure? | { currency?: string; fixed?: number; percentage?: number; type: "fixed" | "percentage" | "percentage_plus_fixed"; } |
request.feeStructure.currency? | string |
request.feeStructure.fixed? | number |
request.feeStructure.percentage? | number |
request.feeStructure.type? | "fixed" | "percentage" | "percentage_plus_fixed" |
request.integrationServiceUrl? | string |
request.integrationServiceVersion? | string |
request.integrationType? | "ticketlayer_pay" | "self_service" |
request.isDefault? | boolean |
request.metadata? | Record<string, any> |
request.name? | string |
request.passOnProcessingCosts? | boolean |
request.priority? | number |
request.processingCostBearer? | "holder" | "beneficiaries" |
request.supportedPaymentTypes? | ( | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet")[] |
request.type? | | "bank_transfer" | "paypal" | "cash" | "sandbox" | "stripe_connect" | "stripe_direct" | "adyen" | "square" |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>
Operation Id#
createPaymentProvider
createAccountOnboardingLink()#
createAccountOnboardingLink: (providerId: string, accountId: string, request: {
refreshUrl: string;
returnUrl: string;
}, requestOptions?: RequestOptions) => Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>;Hosted onboarding link for an Account's connected account
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
accountId | string |
request | { refreshUrl: string; returnUrl: string; } |
request.refreshUrl | string |
request.returnUrl? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>
Operation Id#
createPaymentProviderAccountOnboardingLink
createAccountOnboardingSession()#
createAccountOnboardingSession: (providerId: string, accountId: string, requestOptions?: RequestOptions) => Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>;Account Session for embedded onboarding of an Account's connected account
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
accountId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>
Operation Id#
createPaymentProviderAccountOnboardingSession
createTicketlayerPayOnboardingLink()#
createTicketlayerPayOnboardingLink: (request: {
refreshUrl: string;
returnUrl: string;
}, requestOptions?: RequestOptions) => Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>;Hosted onboarding link for Ticketlayer Pay
Parameters#
| Parameter | Type |
|---|---|
request | { refreshUrl: string; returnUrl: string; } |
request.refreshUrl | string |
request.returnUrl? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
connectedAccountId: string;
expiresAt: string;
url: string;
}>
Operation Id#
createTicketlayerPayOnboardingLink
createTicketlayerPayOnboardingSession()#
createTicketlayerPayOnboardingSession: (requestOptions?: RequestOptions) => Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>;Account Session for embedded Ticketlayer Pay onboarding Mints a Stripe Account Session for the embedded account-onboarding, account-management and notification-banner components.
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
clientSecret: string;
connectedAccountId: string;
expiresAt: string;
publishableKey: string;
}>
Operation Id#
createTicketlayerPayOnboardingSession
delete()#
delete: (providerId: string, requestOptions?: RequestOptions) => Promise<{
id: string;
success: boolean;
}>;Delete payment provider Delete a payment provider (soft delete)
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
id: string;
success: boolean;
}>
Operation Id#
deletePaymentProvider
enableTicketlayerPay()#
enableTicketlayerPay: (request: {
contactEmail?: string;
country?: string;
currency?: string;
displayName?: string;
metadata?: Record<string, any>;
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
status: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
};
}>;Enable Ticketlayer Pay Vend the organisation's connected account on Ticketlayer's Stripe platform and create its Ticketlayer Pay provider. Idempotent: a second call returns the existing provider.
Parameters#
| Parameter | Type |
|---|---|
request | { contactEmail?: string; country?: string; currency?: string; displayName?: string; metadata?: Record<string, any>; } |
request.contactEmail? | string |
request.country? | string |
request.currency? | string |
request.displayName? | string |
request.metadata? | Record<string, any> |
requestOptions? | RequestOptions |
Returns#
Promise<{
created: boolean;
status: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
};
}>
Operation Id#
enableTicketlayerPay
get()#
get: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;Get payment provider Get a specific payment provider by ID
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>
Operation Id#
getPaymentProvider
getAccount()#
getAccount: (providerId: string, accountId: string, options?: {
refresh?: "true" | "false" | "0" | "1";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
} & Record<string, never>>;One Account's routing on a Stripe Connect provider
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
accountId | string |
options? | { refresh?: "true" | "false" | "0" | "1"; } |
options.refresh? | "true" | "false" | "0" | "1" |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
} & Record<string, never>>
Operation Id#
getPaymentProviderAccount
getAdyen()#
getAdyen: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
}>;An Adyen connection The connection as stored: merchant account, platform, client key, the currencies Adyen confirmed, and where its webhook points. Never a key.
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
clientKey: string;
createdAt: string;
environment: "live" | "test";
hasReportApiKey: boolean;
id: string;
liveEndpointUrlPrefix: string | null;
merchantAccount: string;
name: string;
status: "active" | "inactive" | "pending_setup";
supportedCurrencies: string[];
supportedPaymentTypes: string[];
terminalRegion: "eu" | "us" | "au" | "apse";
updatedAt: string;
verifiedAt: string | null;
webhookPath: string;
}>
Operation Id#
getAdyenConnection
getDefault()#
getDefault: (requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;Get default payment provider Get the default payment provider for the account/organisation
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>
Operation Id#
getDefaultPaymentProvider
getStripeConnect()#
getStripeConnect: (requestOptions?: RequestOptions) => Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
} & Record<string, never>>;The organisation's Stripe Connect provider
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
} & Record<string, never>>
Operation Id#
getStripeConnect
getTicketlayerPay()#
getTicketlayerPay: (options?: {
refresh?: "true" | "false" | "0" | "1";
}, requestOptions?: RequestOptions) => Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
}>;Ticketlayer Pay status Onboarding and charge state of the organisation's Ticketlayer Pay account; refresh=true re-reads Stripe first.
Parameters#
| Parameter | Type |
|---|---|
options? | { refresh?: "true" | "false" | "0" | "1"; } |
options.refresh? | "true" | "false" | "0" | "1" |
requestOptions? | RequestOptions |
Returns#
Promise<{
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
};
chargesEnabled: boolean;
connectedAccountId: string | null;
detailsSubmitted: boolean;
disabledReason: string | null;
enabled: boolean;
lastSyncedAt: string | null;
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string | null;
providerStatus: "active" | "inactive" | "pending_setup" | null;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
}>
Operation Id#
getTicketlayerPay
linkStripeConnect()#
linkStripeConnect: (request: {
applicationFee?: any;
defaultMode: "direct" | "connected";
name?: string;
publishableKey: string;
refundApplicationFee?: boolean;
secretKey: string;
}, requestOptions?: RequestOptions) => Promise<{
created: boolean;
provider: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
}>;Link the organisation's own Stripe account
Validates the keys against Stripe, stores them encrypted, registers the webhook endpoints and creates (or re-keys) the organisation's stripe_connect provider. Linking a first provider needs the organisation's plan to include its own payment provider (entitlements.payments.ownStripe on GET /plan); without it the answer is 403 PLAN_ENTITLEMENT_REQUIRED and the keys are never sent to Stripe. Re-keying a provider the organisation already has is not refused on any plan.
Parameters#
| Parameter | Type |
|---|---|
request | { applicationFee?: any; defaultMode: "direct" | "connected"; name?: string; publishableKey: string; refundApplicationFee?: boolean; secretKey: string; } |
request.applicationFee? | any |
request.defaultMode? | "direct" | "connected" |
request.name? | string |
request.publishableKey? | string |
request.refundApplicationFee? | boolean |
request.secretKey? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
created: boolean;
provider: {
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
connectWebhookRegistered: boolean;
createdAt: string;
defaultMode: "direct" | "connected";
id: string;
livemode: boolean;
name: string;
platformAccountId: string | null;
platformCountry: string | null;
platformCurrency: string | null;
publishableKey: string | null;
refundApplicationFee: boolean;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
};
}>
Operation Id#
linkStripeConnect
list()#
list: (options?: {
accountId?: string;
integrationType?: "ticketlayer_pay" | "self_service";
isDefault?: string;
limit?: string;
page?: string;
paymentType?: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet";
status?: "active" | "inactive" | "pending_setup";
type?: | "bank_transfer"
| "paypal"
| "cash"
| "sandbox"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square";
}, requestOptions?: RequestOptions) => Promise<{
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
providers: {
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}[];
}>;List payment providers List all payment providers with optional filtering and pagination
Parameters#
| Parameter | Type |
|---|---|
options? | { accountId?: string; integrationType?: "ticketlayer_pay" | "self_service"; isDefault?: string; limit?: string; page?: string; paymentType?: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet"; status?: "active" | "inactive" | "pending_setup"; type?: | "bank_transfer" | "paypal" | "cash" | "sandbox" | "stripe_connect" | "stripe_direct" | "adyen" | "square"; } |
options.accountId? | string |
options.integrationType? | "ticketlayer_pay" | "self_service" |
options.isDefault? | string |
options.limit? | string |
options.page? | string |
options.paymentType? | | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet" |
options.status? | "active" | "inactive" | "pending_setup" |
options.type? | | "bank_transfer" | "paypal" | "cash" | "sandbox" | "stripe_connect" | "stripe_direct" | "adyen" | "square" |
requestOptions? | RequestOptions |
Returns#
Promise<{
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
providers: {
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}[];
}>
Operation Id#
listPaymentProviders
listAccounts()#
listAccounts: (providerId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}[]>;Per-Account routing rows on a Stripe Connect provider
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}[]>
Operation Id#
listPaymentProviderAccounts
listPaypalConnections()#
listPaypalConnections: (requestOptions?: RequestOptions) => Promise<{
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
}[]>;The organisation's PayPal connections At most one per PayPal environment. The secret is never returned.
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
clientId: string | null;
createdAt: string;
currencies: string[];
environment: "sandbox" | "live";
id: string;
merchantId: string | null;
name: string;
status: "active" | "inactive" | "pending_setup";
updatedAt: string;
webhookRegistered: boolean;
webhookRegistrationError: string | null;
}[]>
Operation Id#
listPaypalConnections
reportStatus()#
reportStatus: (providerId: string, request: {
chargesEnabled?: boolean;
externalAccountId?: string;
metadata?: Record<string, any>;
onboardingStatus?: "restricted" | "pending" | "in_progress" | "complete";
payoutsEnabled?: boolean;
status: "active" | "inactive" | "pending_setup";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;Report integration status Called by a payment integration service to report its readiness back to the payments service: whether charges and payouts are enabled, where onboarding has got to, and the external account it is bound to. Not for Ticketlayer Pay, whose state Ticketlayer reads from Stripe itself: a Ticketlayer Pay provider is refused with 400 TICKETLAYER_PAY_MANAGED.
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
request | { chargesEnabled?: boolean; externalAccountId?: string; metadata?: Record<string, any>; onboardingStatus?: "restricted" | "pending" | "in_progress" | "complete"; payoutsEnabled?: boolean; status: "active" | "inactive" | "pending_setup"; } |
request.chargesEnabled? | boolean |
request.externalAccountId? | string |
request.metadata? | Record<string, any> |
request.onboardingStatus? | "restricted" | "pending" | "in_progress" | "complete" |
request.payoutsEnabled? | boolean |
request.status? | "active" | "inactive" | "pending_setup" |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>
Operation Id#
reportPaymentProviderStatus
setAccountMode()#
setAccountMode: (providerId: string, accountId: string, request: {
connectedAccountId?: string;
contactEmail?: string;
country?: string;
currency?: string;
displayName?: string;
mode: "direct" | "connected";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}>;Set how an Account charges through a Stripe Connect provider direct charges the organisation's own Stripe account; connected links the given connected account, reuses the one already on the row, or vends a new Stripe v2 account (Stripe liable, no dashboard) for this Account. Needs paymentproviders.update, or the narrower paymentproviders.set_account_mode (the paymentproviders.accounts.write scope on an organisation API key), which may link an existing connected account or reuse the row's but never vends one: without connectedAccountId it answers 403 CONNECTED_ACCOUNT_ID_REQUIRED. An account-pinned key sets only its own account.
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
accountId | string |
request | { connectedAccountId?: string; contactEmail?: string; country?: string; currency?: string; displayName?: string; mode: "direct" | "connected"; } |
request.connectedAccountId? | string |
request.contactEmail? | string |
request.country? | string |
request.currency? | string |
request.displayName? | string |
request.mode? | "direct" | "connected" |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
chargesEnabled: boolean;
connectedAccountId: string | null;
createdAt: string;
detailsSubmitted: boolean;
disabledReason: string | null;
id: string;
lastSyncedAt: string | null;
mode: "direct" | "connected";
onboardingStatus: | "restricted"
| "not_started"
| "in_progress"
| "pending_verification"
| "complete"
| "disabled"
| null;
payoutsEnabled: boolean;
providerId: string;
requirements: | {
deadline: string | null;
entries: {
code: string;
deadline: string | null;
description: string;
}[];
status: "past_due" | "currently_due" | "eventually_due" | null;
}
| null;
updatedAt: string;
}>
Operation Id#
setPaymentProviderAccountMode
update()#
update: (providerId: string, request: {
applicationFee?: any;
capabilities?: {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
};
configuration?: Record<string, any>;
description?: string;
feeStructure?: {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
};
integrationServiceUrl?: string;
integrationServiceVersion?: string;
isDefault?: boolean;
metadata?: Record<string, any>;
name?: string;
passOnProcessingCosts?: boolean;
priority?: number;
processingCostBearer?: "holder" | "beneficiaries";
status?: "active" | "inactive" | "pending_setup";
supportedPaymentTypes?: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
}, requestOptions?: RequestOptions) => Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>;Update payment provider Update an existing payment provider configuration. The type and integration type cannot be changed. On a Ticketlayer Pay provider the fields Ticketlayer writes (configuration, status, applicationFee, integrationServiceUrl, integrationServiceVersion) are refused with 400 TICKETLAYER_PAY_MANAGED; the name, description, payment types, capabilities, default flag, priority, fee description and metadata can still be edited. On an Adyen provider the configuration, capabilities and integration service fields are refused with 400 ADYEN_CONNECT_REQUIRED: reconnect through POST /payment-providers/adyen/connect with its providerId.
Parameters#
| Parameter | Type |
|---|---|
providerId | string |
request | { applicationFee?: any; capabilities?: { maxAmount?: number; minAmount?: number; requiresCustomerAction?: boolean; supportedCurrencies?: string[]; supportsDelayedCapture?: boolean; supportsInstantCapture?: boolean; supportsPartialRefunds?: boolean; supportsRefunds?: boolean; }; configuration?: Record<string, any>; description?: string; feeStructure?: { currency?: string; fixed?: number; percentage?: number; type: "fixed" | "percentage" | "percentage_plus_fixed"; }; integrationServiceUrl?: string; integrationServiceVersion?: string; isDefault?: boolean; metadata?: Record<string, any>; name?: string; passOnProcessingCosts?: boolean; priority?: number; processingCostBearer?: "holder" | "beneficiaries"; status?: "active" | "inactive" | "pending_setup"; supportedPaymentTypes?: ( | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet")[]; } |
request.applicationFee? | any |
request.capabilities? | { maxAmount?: number; minAmount?: number; requiresCustomerAction?: boolean; supportedCurrencies?: string[]; supportsDelayedCapture?: boolean; supportsInstantCapture?: boolean; supportsPartialRefunds?: boolean; supportsRefunds?: boolean; } |
request.capabilities.maxAmount? | number |
request.capabilities.minAmount? | number |
request.capabilities.requiresCustomerAction? | boolean |
request.capabilities.supportedCurrencies? | string[] |
request.capabilities.supportsDelayedCapture? | boolean |
request.capabilities.supportsInstantCapture? | boolean |
request.capabilities.supportsPartialRefunds? | boolean |
request.capabilities.supportsRefunds? | boolean |
request.configuration? | Record<string, any> |
request.description? | string |
request.feeStructure? | { currency?: string; fixed?: number; percentage?: number; type: "fixed" | "percentage" | "percentage_plus_fixed"; } |
request.feeStructure.currency? | string |
request.feeStructure.fixed? | number |
request.feeStructure.percentage? | number |
request.feeStructure.type? | "fixed" | "percentage" | "percentage_plus_fixed" |
request.integrationServiceUrl? | string |
request.integrationServiceVersion? | string |
request.isDefault? | boolean |
request.metadata? | Record<string, any> |
request.name? | string |
request.passOnProcessingCosts? | boolean |
request.priority? | number |
request.processingCostBearer? | "holder" | "beneficiaries" |
request.status? | "active" | "inactive" | "pending_setup" |
request.supportedPaymentTypes? | ( | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet")[] |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string | null;
applicationFee: {
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
value?: number;
} & Record<string, never>;
capabilities: | {
maxAmount?: number;
minAmount?: number;
requiresCustomerAction?: boolean;
supportedCurrencies?: string[];
supportsDelayedCapture?: boolean;
supportsInstantCapture?: boolean;
supportsPartialRefunds?: boolean;
supportsRefunds?: boolean;
}
| null;
configuration: {
[key: string]: unknown;
};
createdAt: string;
description: string | null;
feeStructure: | {
currency?: string;
fixed?: number;
percentage?: number;
type: "fixed" | "percentage" | "percentage_plus_fixed";
}
| null;
id: string;
integrationServiceUrl: string | null;
integrationServiceVersion: string;
isDefault: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
organisationId: string;
passOnProcessingCosts: boolean;
priority: number;
processingCostBearer: "holder" | "beneficiaries";
status: "active" | "inactive" | "pending_setup";
supportedPaymentTypes: (
| "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet")[];
type: | "bank_transfer"
| "paypal"
| "cash"
| "stripe_connect"
| "stripe_direct"
| "adyen"
| "square"
| "external";
updatedAt: string;
}>
Operation Id#
updatePaymentProvider