{"version":3,"file":"index.cjs","sources":["webpack://@sumup/sdk/./src/core.ts","webpack://@sumup/sdk/./src/version.ts","webpack://@sumup/sdk/./src/client.ts","webpack://@sumup/sdk/./src/resources/checkouts/index.ts","webpack://@sumup/sdk/./src/resources/customers/index.ts","webpack://@sumup/sdk/./src/resources/members/index.ts","webpack://@sumup/sdk/./src/resources/memberships/index.ts","webpack://@sumup/sdk/./src/resources/merchant/index.ts","webpack://@sumup/sdk/./src/resources/payouts/index.ts","webpack://@sumup/sdk/./src/resources/readers/index.ts","webpack://@sumup/sdk/./src/resources/receipts/index.ts","webpack://@sumup/sdk/./src/resources/roles/index.ts","webpack://@sumup/sdk/./src/resources/subaccounts/index.ts","webpack://@sumup/sdk/./src/resources/transactions/index.ts","webpack://@sumup/sdk/./src/index.ts"],"sourcesContent":["// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport type { SumUp } from \"./index\";\n\nexport class APIResource {\n  protected _client: SumUp;\n\n  constructor(client: SumUp) {\n    this._client = client;\n  }\n}\n\n// has to be any. the particular query params types don't like unknown\n// biome-ignore lint/suspicious/noExplicitAny: any, but only for tests\ntype QueryParams = Record<string, any>;\n\n/**\n * Params that get passed to `fetch`. This ends up as an optional second\n * argument to each generated request method. Properties are a subset of\n * `RequestInit`.\n */\nexport type FetchParams = Omit<RequestInit, \"body\" | \"method\">;\n\n/** All arguments to `request()` */\nexport type FullParams = FetchParams & {\n  path: string;\n  query?: QueryParams;\n  body?: unknown;\n  host?: string;\n  method?: string;\n};\n\nexport class SumUpError extends Error {}\n\nexport class APIError<T> extends SumUpError {\n  /* HTTP status for the response that caused the error */\n  readonly status: number;\n  /* JSON body of the response that caused the error */\n  readonly error: T | string;\n  /* Raw response of the API */\n  readonly response: Response;\n\n  constructor(status: number, error: T | string, response: Response) {\n    const message = typeof error === \"string\" ? error : JSON.stringify(error);\n    super(`${status}: ${message}`);\n    this.status = status;\n    this.error = error;\n    this.response = response;\n  }\n}\n\nexport class APIPromise<T> implements Promise<T> {\n  constructor(private resp: Promise<Response>) {}\n\n  async parse(): Promise<T> {\n    const res = await this.resp;\n    const contentType = res.headers.get(\"content-type\");\n    const isJSON = contentType?.includes(\"application/json\");\n\n    if (!isJSON) {\n      throw new SumUpError(\"Unexpected non-json response.\");\n    }\n\n    return await res.json();\n  }\n\n  async withResponse(): Promise<{ data: T; response: Response }> {\n    const [data, response] = await Promise.all([this.parse(), await this.resp]);\n    return { data, response };\n  }\n\n  // biome-ignore lint/suspicious/noThenProperty: custom promise to enable `withResponse`\n  then<TResult1 = T, TResult2 = never>(\n    onFulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>,\n    // biome-ignore lint/suspicious/noExplicitAny: must satisfy promise interface\n    onRejected?: (reason: any) => TResult2 | PromiseLike<TResult2>,\n  ): Promise<TResult1 | TResult2> {\n    return this.parse().then(onFulfilled, onRejected);\n  }\n\n  catch<TResult = never>(\n    // biome-ignore lint/suspicious/noExplicitAny: must satisfy promise interface\n    onRejected?: (reason: any) => TResult | PromiseLike<TResult>,\n  ): Promise<T | TResult> {\n    return this.parse().catch(onRejected);\n  }\n\n  finally(onFinally?: () => void): Promise<T> {\n    return this.parse().finally(onFinally);\n  }\n\n  [Symbol.toStringTag] = \"APIPromise\";\n}\n","export const VERSION = \"0.0.2\"; // x-release-please-version\n","// Code generated by `ts-sdk-gen`. Edit to customize your HTTP client.\n\nimport * as Core from \"./core\";\nimport { VERSION } from \"./version\";\n\nexport type APIConfig = {\n  apiKey?: string;\n  baseParams?: Core.FetchParams;\n  host?: string;\n};\n\nexport class HTTPClient {\n  host: string;\n  apiKey?: string;\n  baseParams: Core.FetchParams;\n\n  constructor({\n    apiKey,\n    host = \"https://api.sumup.com\",\n    baseParams = {},\n  }: APIConfig = {}) {\n    this.host = host;\n    this.apiKey = apiKey;\n\n    const headers = new Headers({\n      \"Accept\": \"application/json\",\n      \"Content-Type\": \"application/json\",\n      \"User-Agent\": `${this.constructor.name.toLowerCase()}-ts/${VERSION}`,\n    });\n    if (apiKey) {\n      headers.append(\"Authorization\", `Bearer ${apiKey}`);\n    }\n    this.baseParams = mergeParams({ headers }, baseParams);\n  }\n\n  public get<R, E = Core.APIError<unknown>>({\n    ...params\n  }: Omit<Core.FullParams, \"method\">): Core.APIPromise<R> {\n    return this.request<R, E>({\n      method: \"GET\",\n      ...params,\n    });\n  }\n\n  public post<R, E = Core.APIError<unknown>>({\n    ...params\n  }: Omit<Core.FullParams, \"method\">): Core.APIPromise<R> {\n    return this.request<R, E>({\n      method: \"POST\",\n      ...params,\n    });\n  }\n\n  public put<R, E = Core.APIError<unknown>>({\n    ...params\n  }: Omit<Core.FullParams, \"method\">): Core.APIPromise<R> {\n    return this.request<R, E>({\n      method: \"put\",\n      ...params,\n    });\n  }\n\n  public patch<R, E = Core.APIError<unknown>>({\n    ...params\n  }: Omit<Core.FullParams, \"method\">): Core.APIPromise<R> {\n    return this.request<R, E>({\n      method: \"PATCH\",\n      ...params,\n    });\n  }\n\n  public delete<R, E = Core.APIError<unknown>>({\n    ...params\n  }: Omit<Core.FullParams, \"method\">): Core.APIPromise<R> {\n    return this.request<R, E>({\n      method: \"DELETE\",\n      ...params,\n    });\n  }\n\n  public request<T, E = Core.APIError<unknown>>({\n    body,\n    path,\n    query,\n    host: hostOverride,\n    ...fetchParams\n  }: Core.FullParams): Core.APIPromise<T> {\n    const host = hostOverride || this.host;\n    const url = new URL(\n      host +\n        (host.endsWith(\"/\") && path.startsWith(\"/\") ? path.slice(1) : path),\n    );\n    if (typeof query === \"object\" && query && !Array.isArray(query)) {\n      url.search = this.stringifyQuery(query as Record<string, unknown>);\n    }\n    const init = {\n      ...mergeParams(this.baseParams, fetchParams),\n      body: JSON.stringify(body),\n    };\n    return new Core.APIPromise<T>(this.do<E>(url, init));\n  }\n\n  protected async do<E>(input: URL, init: RequestInit): Promise<Response> {\n    const res = await fetch(input, init);\n\n    if (!res.ok) {\n      const contentType = res.headers.get(\"content-type\");\n      const isJSON = contentType?.includes(\"application/json\");\n      throw new Core.APIError(\n        res.status,\n        isJSON ? ((await res.json()) as E) : await res.text(),\n        res,\n      );\n    }\n\n    return res;\n  }\n\n  protected stringifyQuery(query: Record<string, unknown>): string {\n    return Object.entries(query)\n      .filter(([_, value]) => typeof value !== \"undefined\")\n      .map(([key, value]) => {\n        if (\n          typeof value === \"string\" ||\n          typeof value === \"number\" ||\n          typeof value === \"boolean\"\n        ) {\n          return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n        }\n        if (value === null) {\n          return `${encodeURIComponent(key)}=`;\n        }\n        if (Array.isArray(value)) {\n          return value\n            .map((v) => `${encodeURIComponent(key)}=${encodeURIComponent(v)}`)\n            .join(\"&\");\n        }\n        throw new Error(\n          `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null.`,\n        );\n      })\n      .join(\"&\");\n  }\n}\n\nexport function mergeParams(\n  a: Core.FetchParams,\n  b: Core.FetchParams,\n): Core.FetchParams {\n  // calling `new Headers()` normalizes `HeadersInit`, which could be a Headers\n  // object, a plain object, or an array of tuples\n  const headers = new Headers(a.headers);\n  for (const [key, value] of new Headers(b.headers).entries()) {\n    headers.set(key, value);\n  }\n  return { ...a, ...b, headers };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Profile's personal address information.\n */\nexport type Address = {\n  /**\n   * City name from the address.\n   */\n  city?: string;\n  /**\n   * Two letter country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n   */\n  country?: string;\n  /**\n   * First line of the address with details of the street name and number.\n   */\n  line_1?: string;\n  /**\n   * Second line of the address with details of the building, unit, apartment, and floor numbers.\n   */\n  line_2?: string;\n  /**\n   * Postal code from the address.\n   */\n  postal_code?: string;\n  /**\n   * State name or abbreviation from the address.\n   */\n  state?: string;\n};\n\n/**\n * __Required when payment type is `card`.__ Details of the payment card.\n */\nexport type Card = {\n  /**\n   * Name of the cardholder as it appears on the payment card.\n   */\n  name: string;\n  /**\n   * Number of the payment card (without spaces).\n   */\n  number: string;\n  /**\n   * Year from the expiration time of the payment card. Accepted formats are `YY` and `YYYY`.\n   */\n  expiry_year: string;\n  /**\n   * Month from the expiration time of the payment card. Accepted format is `MM`.\n   */\n  expiry_month:\n    | \"01\"\n    | \"02\"\n    | \"03\"\n    | \"04\"\n    | \"05\"\n    | \"06\"\n    | \"07\"\n    | \"08\"\n    | \"09\"\n    | \"10\"\n    | \"11\"\n    | \"12\";\n  /**\n   * Three or four-digit card verification value (security code) of the payment card.\n   */\n  cvv: string;\n  /**\n   * Required five-digit ZIP code. Applicable only to merchant users in the USA.\n   */\n  zip_code?: string;\n  /**\n   * Last 4 digits of the payment card number.\n   */\n  last_4_digits: string;\n  /**\n   * Issuing card network of the payment card.\n   */\n  type:\n    | \"AMEX\"\n    | \"CUP\"\n    | \"DINERS\"\n    | \"DISCOVER\"\n    | \"ELO\"\n    | \"ELV\"\n    | \"HIPERCARD\"\n    | \"JCB\"\n    | \"MAESTRO\"\n    | \"MASTERCARD\"\n    | \"VISA\"\n    | \"VISA_ELECTRON\"\n    | \"VISA_VPAY\"\n    | \"UNKNOWN\";\n};\n\n/**\n * Three-letter [ISO4217](https://en.wikipedia.org/wiki/ISO_4217) code of the currency for the amount. Currently supported currency values are enumerated above.\n */\nexport type Currency =\n  | \"BGN\"\n  | \"BRL\"\n  | \"CHF\"\n  | \"CLP\"\n  | \"CZK\"\n  | \"DKK\"\n  | \"EUR\"\n  | \"GBP\"\n  | \"HRK\"\n  | \"HUF\"\n  | \"NOK\"\n  | \"PLN\"\n  | \"RON\"\n  | \"SEK\"\n  | \"USD\";\n\n/**\n * Created mandate\n */\nexport type MandateResponse = {\n  /**\n   * Indicates the mandate type\n   */\n  type?: string;\n  /**\n   * Mandate status\n   */\n  status?: string;\n  /**\n   * Merchant code which has the mandate\n   */\n  merchant_code?: string;\n};\n\n/**\n * Details of the transaction.\n */\nexport type TransactionMixinBase = {\n  /**\n   * Unique ID of the transaction.\n   */\n  id?: string;\n  /**\n   * Transaction code returned by the acquirer/processing entity after processing the transaction.\n   */\n  transaction_code?: string;\n  /**\n   * Total amount of the transaction.\n   */\n  amount?: number;\n  currency?: Currency;\n  /**\n   * Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  timestamp?: string;\n  /**\n   * Current status of the transaction.\n   */\n  status?: \"SUCCESSFUL\" | \"CANCELLED\" | \"FAILED\" | \"PENDING\";\n  /**\n   * Payment type used for the transaction.\n   */\n  payment_type?: \"ECOM\" | \"RECURRING\" | \"BOLETO\";\n  /**\n   * Current number of the installment for deferred payments.\n   */\n  installments_count?: number;\n};\n\nexport type TransactionMixinCheckout = {\n  /**\n   * Unique code of the registered merchant to whom the payment is made.\n   */\n  merchant_code?: string;\n  /**\n   * Amount of the applicable VAT (out of the total transaction amount).\n   */\n  vat_amount?: number;\n  /**\n   * Amount of the tip (out of the total transaction amount).\n   */\n  tip_amount?: number;\n  /**\n   * Entry mode of the payment details.\n   */\n  entry_mode?: \"CUSTOMER_ENTRY\" | \"BOLETO\";\n  /**\n   * Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.\n   */\n  auth_code?: string;\n  /**\n   * Internal unique ID of the transaction on the SumUp platform.\n   */\n  internal_id?: number;\n};\n\n/**\n * Checkout\n *\n * Details of the payment checkout.\n */\nexport type Checkout = {\n  /**\n   * Unique ID of the payment checkout specified by the client application when creating the checkout resource.\n   */\n  checkout_reference?: string;\n  /**\n   * Amount of the payment.\n   */\n  amount?: number;\n  currency?: Currency;\n  /**\n   * Email address of the registered user (merchant) to whom the payment is made.\n   *\n   * @deprecated: `pay_to_email` is deprecated, use `merchant_code` instead.\n   */\n  pay_to_email?: string;\n  /**\n   * Unique identifying code of the merchant profile.\n   */\n  merchant_code?: string;\n  /**\n   * Short description of the checkout visible in the SumUp dashboard. The description can contribute to reporting, allowing easier identification of a checkout.\n   */\n  description?: string;\n  /**\n   * URL to which the SumUp platform sends the processing status of the payment checkout.\n   */\n  return_url?: string;\n  /**\n   * Unique ID of the checkout resource.\n   */\n  id?: string;\n  /**\n   * Current status of the checkout.\n   */\n  status?: \"PENDING\" | \"FAILED\" | \"PAID\";\n  /**\n   * Date and time of the creation of the payment checkout. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  date?: string;\n  /**\n   * Date and time of the checkout expiration before which the client application needs to send a processing request. If no value is present, the checkout does not have an expiration time.\n   */\n  valid_until?: string | null;\n  /**\n   * Unique identification of a customer. If specified, the checkout session and payment instrument are associated with the referenced customer.\n   */\n  customer_id?: string;\n  mandate?: MandateResponse;\n  /**\n   * List of transactions related to the payment.\n   */\n  transactions?: (TransactionMixinBase & TransactionMixinCheckout)[];\n};\n\n/**\n * Details of the payment checkout.\n */\nexport type CheckoutCreateRequest = {\n  /**\n   * Unique ID of the payment checkout specified by the client application when creating the checkout resource.\n   */\n  checkout_reference: string;\n  /**\n   * Amount of the payment.\n   */\n  amount: number;\n  currency: Currency;\n  /**\n   * Unique identifying code of the merchant profile.\n   */\n  merchant_code: string;\n  /**\n   * Email address of the registered user (merchant) to whom the payment is made.\n   *\n   * @deprecated: `pay_to_email` is deprecated, use `merchant_code` instead.\n   */\n  pay_to_email?: string;\n  /**\n   * Short description of the checkout visible in the SumUp dashboard. The description can contribute to reporting, allowing easier identification of a checkout.\n   */\n  description?: string;\n  /**\n   * URL to which the SumUp platform sends the processing status of the payment checkout.\n   */\n  return_url?: string;\n  /**\n   * Unique identification of a customer. If specified, the checkout session and payment instrument are associated with the referenced customer.\n   */\n  customer_id?: string;\n  /**\n   * Purpose of the checkout.\n   */\n  purpose?: \"CHECKOUT\" | \"SETUP_RECURRING_PAYMENT\";\n  /**\n   * Unique ID of the checkout resource.\n   */\n  id?: string;\n  /**\n   * Current status of the checkout.\n   */\n  status?: \"PENDING\" | \"FAILED\" | \"PAID\";\n  /**\n   * Date and time of the creation of the payment checkout. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  date?: string;\n  /**\n   * Date and time of the checkout expiration before which the client application needs to send a processing request. If no value is present, the checkout does not have an expiration time.\n   */\n  valid_until?: string | null;\n  /**\n   * List of transactions related to the payment.\n   */\n  transactions?: (TransactionMixinBase & TransactionMixinCheckout)[];\n  /**\n   * __Required__ for [APMs](https://developer.sumup.com/online-payments/apm/introduction) and __recommended__ for card payments. Refers to a url where the end user is redirected once the payment processing completes. If not specified, the [Payment Widget](https://developer.sumup.com/online-payments/tools/card-widget) renders [3DS challenge](https://developer.sumup.com/online-payments/features/3ds) within an iframe instead of performing a full-page redirect.\n   */\n  redirect_url?: string;\n};\n\n/**\n * Mandate is passed when a card is to be tokenized\n */\nexport type MandatePayload = {\n  /**\n   * Indicates the mandate type\n   */\n  type: \"recurrent\";\n  /**\n   * Operating system and web client used by the end-user\n   */\n  user_agent: string;\n  /**\n   * IP address of the end user. Supports IPv4 and IPv6\n   */\n  user_ip?: string;\n};\n\n/**\n * Personal details for the customer.\n */\nexport type PersonalDetails = {\n  /**\n   * First name of the customer.\n   */\n  first_name?: string;\n  /**\n   * Last name of the customer.\n   */\n  last_name?: string;\n  /**\n   * Email address of the customer.\n   */\n  email?: string;\n  /**\n   * Phone number of the customer.\n   */\n  phone?: string;\n  /**\n   * Date of birth of the customer.\n   */\n  birth_date?: string;\n  /**\n   * An identification number user for tax purposes (e.g. CPF)\n   */\n  tax_id?: string;\n  address?: Address;\n};\n\n/**\n * Details of the payment instrument for processing the checkout.\n */\nexport type CheckoutProcessMixin = {\n  /**\n   * Describes the payment method used to attempt processing\n   */\n  payment_type: \"card\" | \"boleto\" | \"ideal\" | \"blik\" | \"bancontact\";\n  /**\n   * Number of installments for deferred payments. Available only to merchant users in Brazil.\n   */\n  installments?: number;\n  mandate?: MandatePayload;\n  card?: Card;\n  /**\n   * __Required when using a tokenized card to process a checkout.__ Unique token identifying the saved payment card for a customer.\n   */\n  token?: string;\n  /**\n   * __Required when `token` is provided.__ Unique ID of the customer.\n   */\n  customer_id?: string;\n  personal_details?: PersonalDetails;\n};\n\nexport type CheckoutSuccess = Checkout & {\n  /**\n   * Transaction code of the successful transaction with which the payment for the checkout is completed.\n   */\n  transaction_code?: string;\n  /**\n   * Transaction ID of the successful transaction with which the payment for the checkout is completed.\n   */\n  transaction_id?: string;\n  /**\n   * Name of the merchant\n   */\n  merchant_name?: string;\n  /**\n   * Refers to a url where the end user is redirected once the payment processing completes.\n   */\n  redirect_url?: string;\n  /**\n   * Object containing token information for the specified payment instrument\n   */\n  payment_instrument?: {\n    /**\n     * Token value\n     */\n    token?: string;\n  };\n};\n\n/**\n * 3DS Response\n */\nexport type CheckoutAccepted = {\n  /**\n   * Required action processing 3D Secure payments.\n   */\n  next_step?: {\n    /**\n     * Where the end user is redirected.\n     */\n    url?: string;\n    /**\n     * Method used to complete the redirect.\n     */\n    method?: string;\n    /**\n     * Refers to a url where the end user is redirected once the payment processing completes.\n     */\n    redirect_url?: string;\n    /**\n     * Indicates allowed mechanisms for redirecting an end user. If both values are provided to ensure a redirect takes place in either.\n     */\n    mechanism?: (\"iframe\" | \"browser\")[];\n    /**\n     * Contains parameters essential for form redirection. Number of object keys and their content can vary.\n     */\n    payload?: {\n      PaReq?: Record<string, unknown>;\n      MD?: Record<string, unknown>;\n      TermUrl?: Record<string, unknown>;\n    };\n  };\n};\n\nexport type ErrorExtended = Error & {\n  /**\n   * Parameter name (with relative location) to which the error applies. Parameters from embedded resources are displayed using dot notation. For example, `card.name` refers to the `name` parameter embedded in the `card` object.\n   */\n  param?: string;\n};\n\n/**\n * Error message for forbidden requests.\n */\nexport type ErrorForbidden = {\n  /**\n   * Short description of the error.\n   */\n  error_message?: string;\n  /**\n   * Platform code for the error.\n   */\n  error_code?: string;\n  /**\n   * HTTP status code for the error.\n   */\n  status_code?: string;\n};\n\n/**\n * Error message structure.\n */\nexport type DetailsError = {\n  /**\n   * Short title of the error.\n   */\n  title?: string;\n  /**\n   * Details of the error.\n   */\n  details?: string;\n  /**\n   * The status code.\n   */\n  status?: number;\n  failed_constraints?: { message?: string; reference?: string }[];\n};\n\nexport type GetPaymentMethodsQueryParams = {\n  amount?: number;\n  currency?: string;\n};\n\nexport type GetPaymentMethodsResponse = {\n  available_payment_methods?: {\n    /**\n     * The ID of the payment method.\n     */\n    id: string;\n  }[];\n};\n\nexport type ListCheckoutsQueryParams = {\n  checkout_reference?: string;\n};\n\nexport type ListCheckoutsResponse = CheckoutSuccess[];\n\nexport type DeactivateCheckoutResponse = {\n  /**\n   * Unique ID of the payment checkout specified by the client application when creating the checkout resource.\n   */\n  checkout_reference?: string;\n  /**\n   * Unique ID of the checkout resource.\n   */\n  id?: string;\n  /**\n   * Amount of the payment.\n   */\n  amount?: number;\n  currency?: Currency;\n  /**\n   * Email address of the registered user (merchant) to whom the payment is made.\n   *\n   * @deprecated: `pay_to_email` is deprecated, use `merchant_code` instead.\n   */\n  pay_to_email?: string;\n  /**\n   * Unique identifying code of the merchant profile.\n   */\n  merchant_code?: string;\n  /**\n   * Short description of the checkout visible in the SumUp dashboard. The description can contribute to reporting, allowing easier identification of a checkout.\n   */\n  description?: string;\n  /**\n   * Purpose of the checkout creation initially\n   */\n  purpose?: \"SETUP_RECURRING_PAYMENT\" | \"CHECKOUT\";\n  /**\n   * Current status of the checkout.\n   */\n  status?: \"EXPIRED\";\n  /**\n   * Date and time of the creation of the payment checkout. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  date?: string;\n  /**\n   * Date and time of the checkout expiration before which the client application needs to send a processing request. If no value is present, the checkout does not have an expiration time.\n   */\n  valid_until?: string | null;\n  /**\n   * Merchant name\n   */\n  merchant_name?: string;\n  /**\n   * The merchant's country\n   */\n  merchant_country?: string;\n  /**\n   * List of transactions related to the payment.\n   */\n  transactions?: (TransactionMixinBase & TransactionMixinCheckout)[];\n};\n\nexport class Checkouts extends Core.APIResource {\n  /**\n   * Get available payment methods\n   */\n  listAvailablePaymentMethods(\n    merchantCode: string,\n    query?: GetPaymentMethodsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/merchants/${merchantCode}/payment-methods`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * List checkouts\n   */\n  list(\n    query?: ListCheckoutsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<CheckoutSuccess[]> {\n    return this._client.get<CheckoutSuccess[]>({\n      path: `/v0.1/checkouts`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Create a checkout\n   */\n  create(\n    body: CheckoutCreateRequest,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Checkout> {\n    return this._client.post<Checkout>({\n      path: `/v0.1/checkouts`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a checkout\n   */\n  get(id: string, params?: Core.FetchParams): Core.APIPromise<CheckoutSuccess> {\n    return this._client.get<CheckoutSuccess>({\n      path: `/v0.1/checkouts/${id}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Process a checkout\n   */\n  process(\n    id: string,\n    body: CheckoutProcessMixin,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<CheckoutSuccess | CheckoutAccepted> {\n    return this._client.put<CheckoutSuccess | CheckoutAccepted>({\n      path: `/v0.1/checkouts/${id}`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Deactivate a checkout\n   */\n  deactivate(id: string, params?: Core.FetchParams): Core.APIPromise<void> {\n    return this._client.delete<void>({\n      path: `/v0.1/checkouts/${id}`,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Checkouts {\n  export type {\n    Address,\n    Card,\n    Checkout,\n    CheckoutAccepted,\n    CheckoutCreateRequest,\n    CheckoutProcessMixin,\n    CheckoutSuccess,\n    Currency,\n    DetailsError,\n    ErrorExtended,\n    ErrorForbidden,\n    GetPaymentMethodsQueryParams,\n    ListCheckoutsQueryParams,\n    MandatePayload,\n    MandateResponse,\n    PersonalDetails,\n    TransactionMixinBase,\n    TransactionMixinCheckout,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Profile's personal address information.\n */\nexport type Address = {\n  /**\n   * City name from the address.\n   */\n  city?: string;\n  /**\n   * Two letter country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n   */\n  country?: string;\n  /**\n   * First line of the address with details of the street name and number.\n   */\n  line_1?: string;\n  /**\n   * Second line of the address with details of the building, unit, apartment, and floor numbers.\n   */\n  line_2?: string;\n  /**\n   * Postal code from the address.\n   */\n  postal_code?: string;\n  /**\n   * State name or abbreviation from the address.\n   */\n  state?: string;\n};\n\n/**\n * Created mandate\n */\nexport type MandateResponse = {\n  /**\n   * Indicates the mandate type\n   */\n  type?: string;\n  /**\n   * Mandate status\n   */\n  status?: string;\n  /**\n   * Merchant code which has the mandate\n   */\n  merchant_code?: string;\n};\n\n/**\n * Personal details for the customer.\n */\nexport type PersonalDetails = {\n  /**\n   * First name of the customer.\n   */\n  first_name?: string;\n  /**\n   * Last name of the customer.\n   */\n  last_name?: string;\n  /**\n   * Email address of the customer.\n   */\n  email?: string;\n  /**\n   * Phone number of the customer.\n   */\n  phone?: string;\n  /**\n   * Date of birth of the customer.\n   */\n  birth_date?: string;\n  /**\n   * An identification number user for tax purposes (e.g. CPF)\n   */\n  tax_id?: string;\n  address?: Address;\n};\n\n/**\n * Customer\n */\nexport type Customer = {\n  /**\n   * Unique ID of the customer.\n   */\n  customer_id: string;\n  personal_details?: PersonalDetails;\n};\n\n/**\n * Error message for forbidden requests.\n */\nexport type ErrorForbidden = {\n  /**\n   * Short description of the error.\n   */\n  error_message?: string;\n  /**\n   * Platform code for the error.\n   */\n  error_code?: string;\n  /**\n   * HTTP status code for the error.\n   */\n  status_code?: string;\n};\n\n/**\n * Payment Instrument Response\n */\nexport type PaymentInstrumentResponse = {\n  /**\n   * Unique token identifying the saved payment card for a customer.\n   */\n  token?: string;\n  /**\n   * Indicates whether the payment instrument is active and can be used for payments. To deactivate it, send a `DELETE` request to the resource endpoint.\n   */\n  active?: boolean;\n  /**\n   * Type of the payment instrument.\n   */\n  type?: \"card\";\n  /**\n   * Details of the payment card.\n   */\n  card?: {\n    /**\n     * Last 4 digits of the payment card number.\n     */\n    last_4_digits?: string;\n    /**\n     * Issuing card network of the payment card.\n     */\n    type?:\n      | \"AMEX\"\n      | \"CUP\"\n      | \"DINERS\"\n      | \"DISCOVER\"\n      | \"ELO\"\n      | \"ELV\"\n      | \"HIPERCARD\"\n      | \"JCB\"\n      | \"MAESTRO\"\n      | \"MASTERCARD\"\n      | \"VISA\"\n      | \"VISA_ELECTRON\"\n      | \"VISA_VPAY\"\n      | \"UNKNOWN\";\n  };\n  mandate?: MandateResponse;\n  /**\n   * Creation date of payment instrument. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  created_at?: string;\n};\n\nexport type UpdateCustomerParams = { personal_details?: PersonalDetails };\n\nexport type ListPaymentInstrumentsResponse = PaymentInstrumentResponse[];\n\nexport type DeactivatePaymentInstrumentResponse = Record<string, unknown>;\n\nexport class Customers extends Core.APIResource {\n  /**\n   * Create a customer\n   */\n  create(body: Customer, params?: Core.FetchParams): Core.APIPromise<Customer> {\n    return this._client.post<Customer>({\n      path: `/v0.1/customers`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a customer\n   */\n  get(\n    customerId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Customer> {\n    return this._client.get<Customer>({\n      path: `/v0.1/customers/${customerId}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Update a customer\n   */\n  update(\n    customerId: string,\n    body: UpdateCustomerParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Customer> {\n    return this._client.put<Customer>({\n      path: `/v0.1/customers/${customerId}`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * List payment instruments\n   */\n  listPaymentInstruments(\n    customerId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<PaymentInstrumentResponse[]> {\n    return this._client.get<PaymentInstrumentResponse[]>({\n      path: `/v0.1/customers/${customerId}/payment-instruments`,\n      ...params,\n    });\n  }\n\n  /**\n   * Deactivate a payment instrument\n   */\n  deactivatePaymentInstrument(\n    customerId: string,\n    token: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.delete<void>({\n      path: `/v0.1/customers/${customerId}/payment-instruments/${token}`,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Customers {\n  export type {\n    Address,\n    Customer,\n    ErrorForbidden,\n    MandateResponse,\n    PaymentInstrumentResponse,\n    PersonalDetails,\n    UpdateCustomerParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * The status of the membership.\n */\nexport type MembershipStatus =\n  | \"accepted\"\n  | \"pending\"\n  | \"expired\"\n  | \"disabled\"\n  | \"unknown\";\n\n/**\n * Invite\n *\n * Pending invitation for membership.\n */\nexport type Invite = {\n  /**\n   * Email address of the invited user.\n   */\n  email: string;\n  expires_at: string;\n};\n\n/**\n * Set of user-defined key-value pairs attached to the object. Partial updates are not supported. When updating, always submit whole metadata.\n */\nexport type Metadata = Record<string, Record<string, unknown>>;\n\n/**\n * Object attributes that modifiable only by SumUp applications.\n */\nexport type Attributes = Record<string, Record<string, unknown>>;\n\n/**\n * Classic identifiers of the user.\n *\n * @deprecated\n */\nexport type MembershipUserClassic = { user_id: number };\n\n/**\n * Information about the user associated with the membership.\n */\nexport type MembershipUser = {\n  /**\n   * Identifier for the End-User (also called Subject).\n   */\n  id: string;\n  /**\n   * End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this value being unique, for unique identification use ID instead.\n   */\n  email: string;\n  /**\n   * True if the user has enabled MFA on login.\n   */\n  mfa_on_login_enabled: boolean;\n  /**\n   * True if the user is a virtual user (operator).\n   */\n  virtual_user: boolean;\n  /**\n   * True if the user is a service account.\n   */\n  service_account_user: boolean;\n  /**\n   * Time when the user has been disabled. Applies only to virtual users (`virtual_user: true`).\n   */\n  disabled_at?: string;\n  /**\n   * User's preferred name. Used for display purposes only.\n   */\n  nickname?: string;\n  /**\n   * URL of the End-User's profile picture. This URL refers to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image.\n   */\n  picture?: string;\n  classic?: MembershipUserClassic;\n};\n\n/**\n * Member\n *\n * A member is user within specific resource identified by resource id, resource type, and associated roles.\n */\nexport type Member = {\n  /**\n   * ID of the member.\n   */\n  id: string;\n  /**\n   * User's roles.\n   */\n  roles: string[];\n  /**\n   * User's permissions.\n   */\n  permissions: string[];\n  /**\n   * The timestamp of when the member was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the member was last updated.\n   */\n  updated_at: string;\n  user?: MembershipUser;\n  invite?: Invite;\n  status: MembershipStatus;\n  metadata?: Metadata;\n  attributes?: Attributes;\n};\n\nexport type ListMerchantMembersQueryParams = {\n  offset?: number;\n  limit?: number;\n  scroll?: boolean;\n  email?: string;\n  status?: MembershipStatus;\n  roles?: string[];\n};\n\nexport type ListMerchantMembersResponse = {\n  items: Member[];\n  total_count?: number;\n};\n\nexport type CreateMerchantMemberParams = {\n  /**\n   * True if the user is managed by the merchant. In this case, we'll created a virtual user with the provided password and nickname.\n   */\n  is_managed_user?: boolean;\n  /**\n   * True if the user is a service account. It can later be used to create OAuth2 clients.\n   */\n  is_service_account?: boolean;\n  /**\n   * Email address of the member to add.\n   */\n  email: string;\n  /**\n   * Password of the member to add. Only used if `is_managed_user` is true. In the case of service accounts, the password is not used and can not be defined by the caller.\n   */\n  password?: string;\n  /**\n   * Nickname of the member to add. Only used if `is_managed_user` is true. Used for display purposes only.\n   */\n  nickname?: string;\n  /**\n   * List of roles to assign to the new member. In the case of service accounts, the roles are predefined.\n   */\n  roles: string[];\n  metadata?: Metadata;\n  attributes?: Attributes;\n};\n\nexport type UpdateMerchantMemberParams = {\n  roles?: string[];\n  metadata?: Metadata;\n  attributes?: Attributes;\n  /**\n   * Allows you to update user data of managed users.\n   */\n  user?: {\n    /**\n     * User's preferred name. Used for display purposes only.\n     */\n    nickname?: string;\n    /**\n     * Password of the member to add. Only used if `is_managed_user` is true.\n     */\n    password?: string;\n  };\n};\n\nexport class Members extends Core.APIResource {\n  /**\n   * List members\n   */\n  list(\n    merchantCode: string,\n    query?: ListMerchantMembersQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/merchants/${merchantCode}/members`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Create a member\n   */\n  create(\n    merchantCode: string,\n    body: CreateMerchantMemberParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Member> {\n    return this._client.post<Member>({\n      path: `/v0.1/merchants/${merchantCode}/members`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a member\n   */\n  get(\n    merchantCode: string,\n    memberId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Member> {\n    return this._client.get<Member>({\n      path: `/v0.1/merchants/${merchantCode}/members/${memberId}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Update a member\n   */\n  update(\n    merchantCode: string,\n    memberId: string,\n    body: UpdateMerchantMemberParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Member> {\n    return this._client.put<Member>({\n      path: `/v0.1/merchants/${merchantCode}/members/${memberId}`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Delete a member\n   */\n  delete(\n    merchantCode: string,\n    memberId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.delete<void>({\n      path: `/v0.1/merchants/${merchantCode}/members/${memberId}`,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Members {\n  export type {\n    Attributes,\n    CreateMerchantMemberParams,\n    Invite,\n    ListMerchantMembersQueryParams,\n    Member,\n    MembershipStatus,\n    MembershipUser,\n    MembershipUserClassic,\n    Metadata,\n    UpdateMerchantMemberParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * The status of the membership.\n */\nexport type MembershipStatus =\n  | \"accepted\"\n  | \"pending\"\n  | \"expired\"\n  | \"disabled\"\n  | \"unknown\";\n\n/**\n * Invite\n *\n * Pending invitation for membership.\n */\nexport type Invite = {\n  /**\n   * Email address of the invited user.\n   */\n  email: string;\n  expires_at: string;\n};\n\n/**\n * Set of user-defined key-value pairs attached to the object. Partial updates are not supported. When updating, always submit whole metadata.\n */\nexport type Metadata = Record<string, Record<string, unknown>>;\n\n/**\n * Object attributes that modifiable only by SumUp applications.\n */\nexport type Attributes = Record<string, Record<string, unknown>>;\n\n/**\n * Resource\n *\n * Information about the resource the membership is in.\n */\nexport type MembershipResource = {\n  /**\n   * ID of the resource the membership is in.\n   */\n  id: string;\n  type: \"merchant\";\n  /**\n   * Display name of the resource.\n   */\n  name: string;\n  /**\n   * Logo fo the resource.\n   */\n  logo?: string;\n  /**\n   * The timestamp of when the membership resource was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the membership resource was last updated.\n   */\n  updated_at: string;\n  attributes: Attributes;\n};\n\n/**\n * Membership\n *\n * A membership associates a user with a resource, memberships is defined by user, resource, resource type, and associated roles.\n */\nexport type Membership = {\n  /**\n   * ID of the membership.\n   */\n  id: string;\n  /**\n   * ID of the resource the membership is in.\n   */\n  resource_id: string;\n  /**\n   * Type of the resource the membership is in.\n   */\n  type: \"merchant\";\n  /**\n   * User's roles.\n   */\n  roles: string[];\n  /**\n   * User's permissions.\n   */\n  permissions: string[];\n  /**\n   * The timestamp of when the membership was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the membership was last updated.\n   */\n  updated_at: string;\n  invite?: Invite;\n  status: MembershipStatus;\n  metadata?: Metadata;\n  attributes?: Attributes;\n  resource: MembershipResource;\n};\n\nexport type ListMembershipsQueryParams = {\n  offset?: number;\n  limit?: number;\n  /**\n   * The kind of the membership resource.\n   * Possible values are:\n   * * `merchant` - merchant account(s)\n   */\n  kind?: \"merchant\";\n  \"resource.attributes.sandbox\"?: boolean;\n};\n\nexport type ListMembershipsResponse = {\n  items: Membership[];\n  total_count: number;\n};\n\nexport class Memberships extends Core.APIResource {\n  /**\n   * List memberships\n   */\n  list(\n    query?: ListMembershipsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/memberships`,\n      query,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Memberships {\n  export type {\n    Attributes,\n    Invite,\n    ListMembershipsQueryParams,\n    Membership,\n    MembershipResource,\n    MembershipStatus,\n    Metadata,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Profile information.\n */\nexport type Account = {\n  /**\n   * Username of the user profile.\n   */\n  username?: string;\n  /**\n   * The role of the user.\n   */\n  type?: \"normal\" | \"operator\";\n};\n\n/**\n * Country Details\n */\nexport type CountryDetails = {\n  /**\n   * Currency ISO 4217 code\n   */\n  currency?: string;\n  /**\n   * Country ISO code\n   */\n  iso_code?: string;\n  /**\n   * Country EN name\n   */\n  en_name?: string;\n  /**\n   * Country native name\n   */\n  native_name?: string;\n};\n\n/**\n * TimeOffset Details\n */\nexport type TimeoffsetDetails = {\n  /**\n   * Postal code\n   */\n  post_code?: string;\n  /**\n   * UTC offset\n   */\n  offset?: number;\n  /**\n   * Daylight Saving Time\n   */\n  dst?: boolean;\n};\n\n/**\n * Details of the registered address.\n */\nexport type AddressWithDetails = {\n  /**\n   * Address line 1\n   */\n  address_line1?: string;\n  /**\n   * Address line 2\n   */\n  address_line2?: string;\n  /**\n   * City\n   */\n  city?: string;\n  /**\n   * Country ISO 3166-1 code\n   */\n  country?: string;\n  /**\n   * Country region id\n   */\n  region_id?: number;\n  /**\n   * Region name\n   */\n  region_name?: string;\n  /**\n   * Region code\n   */\n  region_code?: string;\n  /**\n   * Postal code\n   */\n  post_code?: string;\n  /**\n   * Landline number\n   */\n  landline?: string;\n  /**\n   * undefined\n   */\n  first_name?: string;\n  /**\n   * undefined\n   */\n  last_name?: string;\n  /**\n   * undefined\n   */\n  company?: string;\n  country_details?: CountryDetails;\n  timeoffset_details?: TimeoffsetDetails;\n  /**\n   * undefined\n   */\n  state_id?: string;\n};\n\n/**\n * Mobile app settings\n */\nexport type AppSettings = {\n  /**\n   * Checkout preference\n   */\n  checkout_preference?: string;\n  /**\n   * Include vat.\n   */\n  include_vat?: boolean;\n  /**\n   * Manual entry tutorial.\n   */\n  manual_entry_tutorial?: boolean;\n  /**\n   * Mobile payment tutorial.\n   */\n  mobile_payment_tutorial?: boolean;\n  /**\n   * Tax enabled.\n   */\n  tax_enabled?: boolean;\n  /**\n   * Mobile payment.\n   */\n  mobile_payment?: string;\n  /**\n   * Reader payment.\n   */\n  reader_payment?: string;\n  /**\n   * Cash payment.\n   */\n  cash_payment?: string;\n  /**\n   * Advanced mode.\n   */\n  advanced_mode?: string;\n  /**\n   * Expected max transaction amount.\n   */\n  expected_max_transaction_amount?: number;\n  /**\n   * Manual entry.\n   */\n  manual_entry?: string;\n  /**\n   * Terminal mode tutorial.\n   */\n  terminal_mode_tutorial?: boolean;\n  /**\n   * Tipping.\n   */\n  tipping?: string;\n  /**\n   * Tip rates.\n   */\n  tip_rates?: number[];\n  /**\n   * Barcode scanner.\n   */\n  barcode_scanner?: string;\n  /**\n   * Referral.\n   */\n  referral?: string;\n};\n\nexport type BankAccount = {\n  /**\n   * Bank code\n   */\n  bank_code?: string;\n  /**\n   * Branch code\n   */\n  branch_code?: string;\n  /**\n   * SWIFT code\n   */\n  swift?: string;\n  /**\n   * Account number\n   */\n  account_number?: string;\n  /**\n   * IBAN\n   */\n  iban?: string;\n  /**\n   * Type of the account\n   */\n  account_type?: string;\n  /**\n   * Account category - business or personal\n   */\n  account_category?: string;\n  account_holder_name?: string;\n  /**\n   * Status in the verification process\n   */\n  status?: string;\n  /**\n   * The primary bank account is the one used for payouts\n   */\n  primary?: boolean;\n  /**\n   * Creation date of the bank account\n   */\n  created_at?: string;\n  /**\n   * Bank name\n   */\n  bank_name?: string;\n};\n\n/**\n * Business owners information.\n */\nexport type BusinessOwners = {\n  /**\n   * BO's first name\n   */\n  first_name?: string;\n  /**\n   * BO's last name of the user\n   */\n  last_name?: string;\n  /**\n   * Date of birth\n   */\n  date_of_birth?: string;\n  /**\n   * Mobile phone number\n   */\n  mobile_phone?: string;\n  /**\n   * BO's Landline\n   */\n  landline?: string;\n  /**\n   * Ownership percentage\n   */\n  ownership?: number;\n}[];\n\n/**\n * Doing Business As information\n */\nexport type DoingBusinessAs = {\n  /**\n   * Doing business as name\n   */\n  business_name?: string;\n  /**\n   * Doing business as company registration number\n   */\n  company_registration_number?: string;\n  /**\n   * Doing business as VAT ID\n   */\n  vat_id?: string;\n  /**\n   * Doing business as website\n   */\n  website?: string;\n  /**\n   * Doing business as email\n   */\n  email?: string;\n  address?: {\n    /**\n     * Address line 1\n     */\n    address_line1?: string;\n    /**\n     * Address line 2\n     */\n    address_line2?: string;\n    /**\n     * City\n     */\n    city?: string;\n    /**\n     * Country ISO 3166-1 code\n     */\n    country?: string;\n    /**\n     * Country region ID\n     */\n    region_id?: number;\n    /**\n     * Country region name\n     */\n    region_name?: string;\n    /**\n     * Postal code\n     */\n    post_code?: string;\n  };\n};\n\n/**\n * Error message for forbidden requests.\n */\nexport type ErrorForbidden = {\n  /**\n   * Short description of the error.\n   */\n  error_message?: string;\n  /**\n   * Platform code for the error.\n   */\n  error_code?: string;\n  /**\n   * HTTP status code for the error.\n   */\n  status_code?: string;\n};\n\n/**\n * Id of the legal type of the merchant profile\n */\nexport type LegalType = {\n  /**\n   * Unique id\n   */\n  id?: number;\n  /**\n   * Legal type description\n   */\n  full_description?: string;\n  /**\n   * Legal type short description\n   */\n  description?: string;\n  /**\n   * Sole trader legal type if true\n   */\n  sole_trader?: boolean;\n};\n\n/**\n * Account's personal profile.\n */\nexport type PersonalProfile = {\n  /**\n   * First name of the user\n   */\n  first_name?: string;\n  /**\n   * Last name of the user\n   */\n  last_name?: string;\n  /**\n   * Date of birth\n   */\n  date_of_birth?: string;\n  /**\n   * Mobile phone number\n   */\n  mobile_phone?: string;\n  address?: AddressWithDetails;\n  complete?: boolean;\n};\n\n/**\n * Merchant settings &#40;like \\\"payout_type\\\", \\\"payout_period\\\"&#41;\n */\nexport type MerchantSettings = {\n  /**\n   * Whether to show tax in receipts &#40;saved per transaction&#41;\n   */\n  tax_enabled?: boolean;\n  /**\n   * Payout type\n   */\n  payout_type?: string;\n  /**\n   * Payout frequency\n   */\n  payout_period?: string;\n  /**\n   * Whether merchant can edit payouts on demand\n   */\n  payout_on_demand_available?: boolean;\n  /**\n   * Whether merchant will receive payouts on demand\n   */\n  payout_on_demand?: boolean;\n  /**\n   * Whether to show printers in mobile app\n   */\n  printers_enabled?: boolean;\n  /**\n   * Payout Instrument\n   */\n  payout_instrument?: string;\n  /**\n   * Whether merchant can make MOTO payments\n   */\n  moto_payment?: \"UNAVAILABLE\" | \"ENFORCED\" | \"ON\" | \"OFF\";\n  /**\n   * Stone merchant code\n   */\n  stone_merchant_code?: string;\n  /**\n   * Whether merchant will receive daily payout emails\n   */\n  daily_payout_email?: boolean;\n  /**\n   * Whether merchant will receive monthly payout emails\n   */\n  monthly_payout_email?: boolean;\n  /**\n   * Whether merchant has gross settlement enabled\n   */\n  gross_settlement?: boolean;\n};\n\n/**\n * Merchant VAT rates\n */\nexport type VatRates = {\n  /**\n   * Internal ID\n   */\n  id?: number;\n  /**\n   * Description\n   */\n  description?: string;\n  /**\n   * Rate\n   */\n  rate?: number;\n  /**\n   * Ordering\n   */\n  ordering?: number;\n  /**\n   * Country ISO code\n   */\n  country?: string;\n};\n\n/**\n * Account's merchant profile\n */\nexport type MerchantProfile = {\n  /**\n   * Unique identifying code of the merchant profile\n   */\n  merchant_code?: string;\n  /**\n   * Company name\n   */\n  company_name?: string;\n  /**\n   * Website\n   */\n  website?: string;\n  legal_type?: LegalType;\n  /**\n   * Merchant category code\n   */\n  merchant_category_code?: string;\n  /**\n   * Mobile phone number\n   */\n  mobile_phone?: string;\n  /**\n   * Company registration number\n   */\n  company_registration_number?: string;\n  /**\n   * Vat ID\n   */\n  vat_id?: string;\n  /**\n   * Permanent certificate access code &#40;Portugal&#41;\n   */\n  permanent_certificate_access_code?: string;\n  /**\n   * Nature and purpose of the business\n   */\n  nature_and_purpose?: string;\n  address?: AddressWithDetails;\n  business_owners?: BusinessOwners;\n  doing_business_as?: DoingBusinessAs;\n  settings?: MerchantSettings;\n  vat_rates?: VatRates;\n  /**\n   * Merchant locale &#40;for internal usage only&#41;\n   */\n  locale?: string;\n  bank_accounts?: BankAccount[];\n  /**\n   * True if the merchant is extdev\n   */\n  extdev?: boolean;\n  /**\n   * True if the payout zone of this merchant is migrated\n   */\n  payout_zone_migrated?: boolean;\n  /**\n   * Merchant country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) &#40;for internal usage only&#41;\n   */\n  country?: string;\n};\n\n/**\n * User permissions\n */\nexport type Permissions = {\n  /**\n   * Create MOTO payments\n   */\n  create_moto_payments?: boolean;\n  /**\n   * Can view full merchant transaction history\n   */\n  full_transaction_history_view?: boolean;\n  /**\n   * Refund transactions\n   */\n  refund_transactions?: boolean;\n  /**\n   * Create referral\n   */\n  create_referral?: boolean;\n};\n\n/**\n * Merchant Account\n *\n * Details of the merchant account.\n */\nexport type MerchantAccount = {\n  account?: Account;\n  personal_profile?: PersonalProfile;\n  merchant_profile?: MerchantProfile;\n  app_settings?: AppSettings;\n  permissions?: Permissions;\n  /**\n   * Merchant comes from payleven BR migration\n   */\n  is_migrated_payleven_br?: boolean;\n};\n\nexport type GetAccountQueryParams = {\n  \"include[]\"?: (\n    | \"settings\"\n    | \"doing_business_as\"\n    | \"bank_accounts\"\n    | \"app_settings\"\n    | \"country_details\"\n  )[];\n};\n\nexport type ListBankAccountsV11QueryParams = {\n  primary?: boolean;\n};\n\nexport type ListBankAccountsV11Response = BankAccount[];\n\nexport type ListBankAccountsQueryParams = {\n  primary?: boolean;\n};\n\nexport type ListBankAccountsResponse = BankAccount[];\n\nexport class Merchant extends Core.APIResource {\n  /**\n   * Retrieve a profile\n   */\n  get(\n    query?: GetAccountQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<MerchantAccount> {\n    return this._client.get<MerchantAccount>({\n      path: `/v0.1/me`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a personal profile\n   */\n  getPersonalProfile(\n    params?: Core.FetchParams,\n  ): Core.APIPromise<PersonalProfile> {\n    return this._client.get<PersonalProfile>({\n      path: `/v0.1/me/personal-profile`,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a merchant profile\n   */\n  getMerchantProfile(\n    params?: Core.FetchParams,\n  ): Core.APIPromise<MerchantProfile> {\n    return this._client.get<MerchantProfile>({\n      path: `/v0.1/me/merchant-profile`,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve DBA\n   */\n  getDoingBusinessAs(\n    params?: Core.FetchParams,\n  ): Core.APIPromise<DoingBusinessAs> {\n    return this._client.get<DoingBusinessAs>({\n      path: `/v0.1/me/merchant-profile/doing-business-as`,\n      ...params,\n    });\n  }\n\n  /**\n   * List bank accounts\n   */\n  listBankAccounts(\n    merchantCode: string,\n    query?: ListBankAccountsV11QueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<BankAccount[]> {\n    return this._client.get<BankAccount[]>({\n      path: `/v1.1/merchants/${merchantCode}/bank-accounts`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * List bank accounts\n   */\n  listBankAccountsDeprecated(\n    query?: ListBankAccountsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<BankAccount[]> {\n    return this._client.get<BankAccount[]>({\n      path: `/v0.1/me/merchant-profile/bank-accounts`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Get settings\n   */\n  getSettings(params?: Core.FetchParams): Core.APIPromise<MerchantSettings> {\n    return this._client.get<MerchantSettings>({\n      path: `/v0.1/me/merchant-profile/settings`,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Merchant {\n  export type {\n    Account,\n    AddressWithDetails,\n    AppSettings,\n    BankAccount,\n    BusinessOwners,\n    CountryDetails,\n    DoingBusinessAs,\n    ErrorForbidden,\n    GetAccountQueryParams,\n    LegalType,\n    ListBankAccountsQueryParams,\n    ListBankAccountsV11QueryParams,\n    MerchantAccount,\n    MerchantProfile,\n    MerchantSettings,\n    Permissions,\n    PersonalProfile,\n    TimeoffsetDetails,\n    VatRates,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Financial Payouts\n */\nexport type FinancialPayouts = {\n  amount?: number;\n  currency?: string;\n  date?: string;\n  fee?: number;\n  id?: number;\n  reference?: string;\n  status?: \"SUCCESSFUL\" | \"FAILED\";\n  transaction_code?: string;\n  type?:\n    | \"PAYOUT\"\n    | \"CHARGE_BACK_DEDUCTION\"\n    | \"REFUND_DEDUCTION\"\n    | \"DD_RETURN_DEDUCTION\"\n    | \"BALANCE_DEDUCTION\";\n}[];\n\nexport type ListPayoutsV1QueryParams = {\n  start_date: string;\n  end_date: string;\n  format?: \"json\" | \"csv\";\n  limit?: number;\n  order?: \"desc\" | \"asc\";\n};\n\nexport type ListPayoutsQueryParams = {\n  start_date: string;\n  end_date: string;\n  format?: \"json\" | \"csv\";\n  limit?: number;\n  order?: \"desc\" | \"asc\";\n};\n\nexport class Payouts extends Core.APIResource {\n  /**\n   * List payouts\n   */\n  list(\n    merchantCode: string,\n    query: ListPayoutsV1QueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<FinancialPayouts> {\n    return this._client.get<FinancialPayouts>({\n      path: `/v1.0/merchants/${merchantCode}/payouts`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * List payouts\n   */\n  listDeprecated(\n    query: ListPayoutsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<FinancialPayouts> {\n    return this._client.get<FinancialPayouts>({\n      path: `/v0.1/me/financials/payouts`,\n      query,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Payouts {\n  export type {\n    FinancialPayouts,\n    ListPayoutsQueryParams,\n    ListPayoutsV1QueryParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Affiliate metadata for the transaction.\n * It is an optional field that allow for integrators to track the source of the transaction.\n *\n */\nexport type Affiliate = {\n  /**\n   * Application ID of the affiliate.\n   * It is a unique identifier for the application and should be set by the integrator in the [Affiliate Keys](https://developer.sumup.com/affiliate-keys) page.\n   *\n   */\n  app_id: string;\n  /**\n   * Key of the affiliate.\n   * It is a unique identifier for the key  and should be generated by the integrator in the [Affiliate Keys](https://developer.sumup.com/affiliate-keys) page.\n   *\n   */\n  key: string;\n  /**\n   * Foreign transaction ID of the affiliate.\n   * It is a unique identifier for the transaction.\n   * It can be used later to fetch the transaction details via the [Transactions API](https://developer.sumup.com/api/transactions/get).\n   *\n   */\n  foreign_transaction_id: string;\n  /**\n   * Additional metadata for the transaction.\n   * It is key-value object that can be associated with the transaction.\n   *\n   */\n  tags?: Record<string, unknown>;\n};\n\n/**\n * Amount of the transaction.\n * The amount is represented as an integer value altogether with the currency and the minor unit.\n * For example, EUR 1.00 is represented as value 100 with minor unit of 2.\n *\n */\nexport type CreateReaderCheckoutAmount = {\n  /**\n   * Total amount of the transaction.\n   * It must be a positive integer.\n   *\n   */\n  value: number;\n  /**\n   * Currency ISO 4217 code\n   */\n  currency: string;\n  /**\n   * The minor units of the currency. It represents the number of decimals of the currency.\n   * For the currencies CLP, COP and HUF, the minor unit is 0.\n   *\n   */\n  minor_unit: number;\n};\n\n/**\n * Reader\n *\n * Reader Checkout\n */\nexport type CreateReaderCheckout = {\n  /**\n   * Description of the checkout to be shown in the Merchant Sales\n   *\n   */\n  description?: string;\n  /**\n   * The card type of the card used for the transaction.\n   * Is is required only for some countries (e.g: Brazil).\n   *\n   */\n  card_type?: \"credit\" | \"debit\";\n  /**\n   * Number of installments for the transaction.\n   * It may vary according to the merchant country.\n   * For example, in Brazil, the maximum number of installments is 12.\n   *\n   */\n  installments?: number;\n  /**\n   * Webhook URL to which the payment result will be sent.\n   * It must be a HTTPS url.\n   *\n   */\n  return_url?: string;\n  total_amount: CreateReaderCheckoutAmount;\n  /**\n   * List of tipping rates to be displayed to the cardholder.\n   * The rates are in percentage and should be between 0.01 and 0.99.\n   * The list should be sorted in ascending order.\n   *\n   */\n  tip_rates?: number[];\n  affiliate?: Affiliate;\n};\n\n/**\n * Unique identifier of the object.\n * Note that this identifies the instance of the physical devices pairing with your SumUp account.\n * If you DELETE a reader, and pair the device again, the ID will be different. Do not use this ID to refer to a physical device.\n */\nexport type ReaderID = string;\n\n/**\n * Custom human-readable, user-defined name for easier identification of the reader.\n */\nexport type ReaderName = string;\n\n/**\n * The status of the reader object gives information about the current state of the reader.\n *\n * Possible values:\n *\n * - `unknown` - The reader status is unknown.\n * - `processing` - The reader is created and waits for the physical device to confirm the pairing.\n * - `paired` - The reader is paired with a merchant account and can be used with SumUp APIs.\n * - `expired` - The pairing is expired and no longer usable with the account. The resource needs to get recreated\n */\nexport type ReaderStatus = \"unknown\" | \"processing\" | \"paired\" | \"expired\";\n\n/**\n * Information about the underlying physical device.\n *\n */\nexport type ReaderDevice = {\n  /**\n   * A unique identifier of the physical device (e.g. serial number).\n   */\n  identifier: string;\n  /**\n   * Identifier of the model of the device.\n   */\n  model: \"solo\" | \"virtual-solo\";\n};\n\n/**\n * Set of user-defined key-value pairs attached to the object.\n */\nexport type Meta = Record<string, Record<string, unknown>>;\n\n/**\n * Reader\n *\n * A physical card reader device that can accept in-person payments.\n */\nexport type Reader = {\n  id: ReaderID;\n  name: ReaderName;\n  status: ReaderStatus;\n  device: ReaderDevice;\n  meta?: Meta;\n  /**\n   * The timestamp of when the reader was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the reader was last updated.\n   */\n  updated_at: string;\n};\n\n/**\n * The pairing code is a 8 or 9 character alphanumeric string that is displayed on a SumUp Device after initiating the pairing. It is used to link the physical device to the created pairing.\n */\nexport type ReaderPairingCode = string;\n\nexport type CreateReaderCheckoutResponse = {\n  data?: {\n    /**\n     * The client transaction ID is a unique identifier for the transaction that is generated for the client.\n     * It can be used later to fetch the transaction details via the [Transactions API](https://developer.sumup.com/api/transactions/get).\n     *\n     */\n    client_transaction_id?: string;\n  };\n};\n\nexport type ListReadersResponse = { items: Reader[] };\n\nexport type CreateReaderParams = {\n  pairing_code: ReaderPairingCode;\n  name?: ReaderName;\n  meta?: Meta;\n};\n\nexport type UpdateReaderParams = { name?: ReaderName; meta?: Meta };\n\nexport class Readers extends Core.APIResource {\n  /**\n   * Create a Reader Checkout\n   */\n  createCheckout(\n    merchantCode: string,\n    id: string,\n    body: CreateReaderCheckout,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.post<void>({\n      path: `/v0.1/merchants/${merchantCode}/readers/${id}/checkout`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Create a Reader Terminate action\n   */\n  terminateCheckout(\n    merchantCode: string,\n    id: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.post<void>({\n      path: `/v0.1/merchants/${merchantCode}/readers/${id}/terminate`,\n      ...params,\n    });\n  }\n\n  /**\n   * List Readers\n   */\n  list(merchantCode: string, params?: Core.FetchParams): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/merchants/${merchantCode}/readers`,\n      ...params,\n    });\n  }\n\n  /**\n   * Create a Reader\n   */\n  create(\n    merchantCode: string,\n    body: CreateReaderParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Reader> {\n    return this._client.post<Reader>({\n      path: `/v0.1/merchants/${merchantCode}/readers`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a Reader\n   */\n  get(\n    merchantCode: string,\n    id: ReaderID,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Reader> {\n    return this._client.get<Reader>({\n      path: `/v0.1/merchants/${merchantCode}/readers/${id}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Delete a reader\n   */\n  deleteReader(\n    merchantCode: string,\n    id: ReaderID,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.delete<void>({\n      path: `/v0.1/merchants/${merchantCode}/readers/${id}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Update a Reader\n   */\n  update(\n    merchantCode: string,\n    id: ReaderID,\n    body: UpdateReaderParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Reader> {\n    return this._client.patch<Reader>({\n      path: `/v0.1/merchants/${merchantCode}/readers/${id}`,\n      body,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Readers {\n  export type {\n    Affiliate,\n    CreateReaderCheckout,\n    CreateReaderCheckoutAmount,\n    CreateReaderParams,\n    Meta,\n    Reader,\n    ReaderDevice,\n    ReaderID,\n    ReaderName,\n    ReaderPairingCode,\n    ReaderStatus,\n    UpdateReaderParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Unique ID of the transaction event.\n */\nexport type EventID = number;\n\n/**\n * Unique ID of the transaction.\n */\nexport type TransactionID = string;\n\n/**\n * Type of the transaction event.\n */\nexport type EventType =\n  | \"PAYOUT\"\n  | \"CHARGE_BACK\"\n  | \"REFUND\"\n  | \"PAYOUT_DEDUCTION\";\n\n/**\n * Status of the transaction event.\n */\nexport type EventStatus =\n  | \"PENDING\"\n  | \"SCHEDULED\"\n  | \"FAILED\"\n  | \"REFUNDED\"\n  | \"SUCCESSFUL\"\n  | \"PAID_OUT\";\n\n/**\n * Amount of the event.\n */\nexport type AmountEvent = number;\n\n/**\n * Date and time of the transaction event.\n */\nexport type TimestampEvent = string;\n\nexport type ReceiptCard = {\n  /**\n   * Card last 4 digits.\n   */\n  last_4_digits?: string;\n  /**\n   * Card Scheme.\n   */\n  type?: string;\n};\n\nexport type ReceiptEvent = {\n  id?: EventID;\n  transaction_id?: TransactionID;\n  type?: EventType;\n  status?: EventStatus;\n  amount?: AmountEvent;\n  timestamp?: TimestampEvent;\n  receipt_no?: string;\n};\n\n/**\n * Transaction information.\n */\nexport type ReceiptTransaction = {\n  /**\n   * Transaction code.\n   */\n  transaction_code?: string;\n  /**\n   * Transaction amount.\n   */\n  amount?: string;\n  /**\n   * Transaction VAT amount.\n   */\n  vat_amount?: string;\n  /**\n   * Tip amount (included in transaction amount).\n   */\n  tip_amount?: string;\n  /**\n   * Transaction currency.\n   */\n  currency?: string;\n  /**\n   * Time created at.\n   */\n  timestamp?: string;\n  /**\n   * Transaction processing status.\n   */\n  status?: string;\n  /**\n   * Transaction type.\n   */\n  payment_type?: string;\n  /**\n   * Transaction entry mode.\n   */\n  entry_mode?: string;\n  /**\n   * Cardholder verification method.\n   */\n  verification_method?: string;\n  card?: ReceiptCard;\n  /**\n   * Number of installments.\n   */\n  installments_count?: number;\n  /**\n   * Products\n   */\n  products?: {\n    /**\n     * Product name.\n     */\n    name?: string;\n    /**\n     * Product description.\n     */\n    description?: string;\n    /**\n     * Product price.\n     */\n    price?: number;\n    /**\n     * Product quantity.\n     */\n    quantity?: number;\n    /**\n     * Quantity x product price.\n     */\n    total_price?: number;\n  }[];\n  /**\n   * Vat rates.\n   */\n  vat_rates?: {\n    /**\n     * Gross\n     */\n    gross?: number;\n    /**\n     * Net\n     */\n    net?: number;\n    /**\n     * Rate\n     */\n    rate?: number;\n    /**\n     * Vat\n     */\n    vat?: number;\n  }[];\n  /**\n   * Events\n   */\n  events?: ReceiptEvent[];\n  /**\n   * Receipt number\n   */\n  receipt_no?: string;\n};\n\n/**\n * Receipt merchant data\n */\nexport type ReceiptMerchantData = {\n  merchant_profile?: {\n    merchant_code?: string;\n    business_name?: string;\n    email?: string;\n    address?: {\n      address_line1?: string;\n      city?: string;\n      country?: string;\n      country_en_name?: string;\n      country_native_name?: string;\n      post_code?: string;\n      landline?: string;\n    };\n  };\n  locale?: string;\n};\n\n/**\n * Receipt\n */\nexport type Receipt = {\n  transaction_data?: ReceiptTransaction;\n  merchant_data?: ReceiptMerchantData;\n  emv_data?: Record<string, unknown>;\n  acquirer_data?: {\n    tid?: string;\n    authorization_code?: string;\n    return_code?: string;\n    local_time?: string;\n  };\n};\n\nexport type GetReceiptQueryParams = {\n  mid: string;\n  tx_event_id?: number;\n};\n\nexport class Receipts extends Core.APIResource {\n  /**\n   * Retrieve receipt details\n   */\n  get(\n    id: string,\n    query: GetReceiptQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Receipt> {\n    return this._client.get<Receipt>({\n      path: `/v1.1/receipts/${id}`,\n      query,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Receipts {\n  export type {\n    AmountEvent,\n    EventID,\n    EventStatus,\n    EventType,\n    GetReceiptQueryParams,\n    Receipt,\n    ReceiptCard,\n    ReceiptEvent,\n    ReceiptMerchantData,\n    ReceiptTransaction,\n    TimestampEvent,\n    TransactionID,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Set of user-defined key-value pairs attached to the object. Partial updates are not supported. When updating, always submit whole metadata.\n */\nexport type Metadata = Record<string, Record<string, unknown>>;\n\n/**\n * Role\n *\n * A custom role that can be used to assign set of permissions to members.\n */\nexport type Role = {\n  /**\n   * Unique identifier of the role.\n   */\n  id: string;\n  /**\n   * User-defined name of the role.\n   */\n  name: string;\n  /**\n   * User-defined description of the role.\n   */\n  description?: string;\n  /**\n   * List of permission granted by this role.\n   */\n  permissions: string[];\n  /**\n   * True if the role is provided by SumUp.\n   */\n  is_predefined: boolean;\n  metadata?: Metadata;\n  /**\n   * The timestamp of when the role was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the role was last updated.\n   */\n  updated_at: string;\n};\n\nexport type ListMerchantRolesResponse = { items: Role[] };\n\nexport type CreateMerchantRoleParams = {\n  /**\n   * User-defined name of the role.\n   */\n  name: string;\n  /**\n   * User's permissions.\n   */\n  permissions: string[];\n  metadata?: Metadata;\n  /**\n   * User-defined description of the role.\n   */\n  description?: string;\n};\n\nexport type UpdateMerchantRoleParams = {\n  /**\n   * User-defined name of the role.\n   */\n  name?: string;\n  /**\n   * User's permissions.\n   */\n  permissions?: string[];\n  /**\n   * User-defined description of the role.\n   */\n  description?: string;\n};\n\nexport class Roles extends Core.APIResource {\n  /**\n   * List roles\n   */\n  list(merchantCode: string, params?: Core.FetchParams): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/merchants/${merchantCode}/roles`,\n      ...params,\n    });\n  }\n\n  /**\n   * Create a role\n   */\n  create(\n    merchantCode: string,\n    body: CreateMerchantRoleParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Role> {\n    return this._client.post<Role>({\n      path: `/v0.1/merchants/${merchantCode}/roles`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a role\n   */\n  get(\n    merchantCode: string,\n    roleId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Role> {\n    return this._client.get<Role>({\n      path: `/v0.1/merchants/${merchantCode}/roles/${roleId}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Delete a role\n   */\n  delete(\n    merchantCode: string,\n    roleId: string,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.delete<void>({\n      path: `/v0.1/merchants/${merchantCode}/roles/${roleId}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Update a role\n   */\n  update(\n    merchantCode: string,\n    roleId: string,\n    body: UpdateMerchantRoleParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Role> {\n    return this._client.patch<Role>({\n      path: `/v0.1/merchants/${merchantCode}/roles/${roleId}`,\n      body,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Roles {\n  export type {\n    CreateMerchantRoleParams,\n    Metadata,\n    Role,\n    UpdateMerchantRoleParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * User permissions\n */\nexport type Permissions = {\n  /**\n   * Create MOTO payments\n   */\n  create_moto_payments?: boolean;\n  /**\n   * Can view full merchant transaction history\n   */\n  full_transaction_history_view?: boolean;\n  /**\n   * Refund transactions\n   */\n  refund_transactions?: boolean;\n  /**\n   * Create referral\n   */\n  create_referral?: boolean;\n};\n\nexport type Operator = {\n  id: number;\n  username: string;\n  nickname?: string | null;\n  disabled: boolean;\n  /**\n   * The timestamp of when the operator was created.\n   */\n  created_at: string;\n  /**\n   * The timestamp of when the operator was last updated.\n   */\n  updated_at: string;\n  permissions: Permissions;\n  account_type: \"operator\" | \"normal\";\n};\n\n/**\n * Error\n */\nexport type CompatError = { error_code: string; message: string };\n\nexport type ListSubAccountsQueryParams = {\n  query?: string;\n  include_primary?: boolean;\n};\n\nexport type ListSubAccountsResponse = Operator[];\n\nexport type CreateSubAccountParams = {\n  username: string;\n  password: string;\n  nickname?: string;\n  permissions?: {\n    create_moto_payments?: boolean;\n    create_referral?: boolean;\n    full_transaction_history_view?: boolean;\n    refund_transactions?: boolean;\n  };\n};\n\nexport type UpdateSubAccountParams = {\n  password?: string;\n  username?: string;\n  disabled?: boolean;\n  nickname?: string;\n  permissions?: {\n    create_moto_payments?: boolean;\n    create_referral?: boolean;\n    full_transaction_history_view?: boolean;\n    refund_transactions?: boolean;\n  };\n};\n\nexport class Subaccounts extends Core.APIResource {\n  /**\n   * List operators\n   */\n  listSubAccounts(\n    query?: ListSubAccountsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Operator[]> {\n    return this._client.get<Operator[]>({\n      path: `/v0.1/me/accounts`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Create an operator\n   */\n  createSubAccount(\n    body: CreateSubAccountParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Operator> {\n    return this._client.post<Operator>({\n      path: `/v0.1/me/accounts`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve an operator\n   */\n  compatGetOperator(\n    operatorId: number,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Operator> {\n    return this._client.get<Operator>({\n      path: `/v0.1/me/accounts/${operatorId}`,\n      ...params,\n    });\n  }\n\n  /**\n   * Update an operator\n   */\n  updateSubAccount(\n    operatorId: number,\n    body: UpdateSubAccountParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Operator> {\n    return this._client.put<Operator>({\n      path: `/v0.1/me/accounts/${operatorId}`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Disable an operator\n   */\n  deactivateSubAccount(\n    operatorId: number,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<Operator> {\n    return this._client.delete<Operator>({\n      path: `/v0.1/me/accounts/${operatorId}`,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Subaccounts {\n  export type {\n    CompatError,\n    CreateSubAccountParams,\n    ListSubAccountsQueryParams,\n    Operator,\n    Permissions,\n    UpdateSubAccountParams,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport * as Core from \"../../core\";\n\n/**\n * Details of the payment card.\n */\nexport type CardResponse = {\n  /**\n   * Last 4 digits of the payment card number.\n   */\n  last_4_digits?: string;\n  /**\n   * Issuing card network of the payment card.\n   */\n  type?:\n    | \"AMEX\"\n    | \"CUP\"\n    | \"DINERS\"\n    | \"DISCOVER\"\n    | \"ELO\"\n    | \"ELV\"\n    | \"HIPERCARD\"\n    | \"JCB\"\n    | \"MAESTRO\"\n    | \"MASTERCARD\"\n    | \"VISA\"\n    | \"VISA_ELECTRON\"\n    | \"VISA_VPAY\"\n    | \"UNKNOWN\";\n};\n\n/**\n * Three-letter [ISO4217](https://en.wikipedia.org/wiki/ISO_4217) code of the currency for the amount. Currently supported currency values are enumerated above.\n */\nexport type Currency =\n  | \"BGN\"\n  | \"BRL\"\n  | \"CHF\"\n  | \"CLP\"\n  | \"CZK\"\n  | \"DKK\"\n  | \"EUR\"\n  | \"GBP\"\n  | \"HRK\"\n  | \"HUF\"\n  | \"NOK\"\n  | \"PLN\"\n  | \"RON\"\n  | \"SEK\"\n  | \"USD\";\n\n/**\n * Details of the transaction.\n */\nexport type TransactionMixinBase = {\n  /**\n   * Unique ID of the transaction.\n   */\n  id?: string;\n  /**\n   * Transaction code returned by the acquirer/processing entity after processing the transaction.\n   */\n  transaction_code?: string;\n  /**\n   * Total amount of the transaction.\n   */\n  amount?: number;\n  currency?: Currency;\n  /**\n   * Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code.\n   */\n  timestamp?: string;\n  /**\n   * Current status of the transaction.\n   */\n  status?: \"SUCCESSFUL\" | \"CANCELLED\" | \"FAILED\" | \"PENDING\";\n  /**\n   * Payment type used for the transaction.\n   */\n  payment_type?: \"ECOM\" | \"RECURRING\" | \"BOLETO\";\n  /**\n   * Current number of the installment for deferred payments.\n   */\n  installments_count?: number;\n};\n\nexport type TransactionMixinCheckout = {\n  /**\n   * Unique code of the registered merchant to whom the payment is made.\n   */\n  merchant_code?: string;\n  /**\n   * Amount of the applicable VAT (out of the total transaction amount).\n   */\n  vat_amount?: number;\n  /**\n   * Amount of the tip (out of the total transaction amount).\n   */\n  tip_amount?: number;\n  /**\n   * Entry mode of the payment details.\n   */\n  entry_mode?: \"CUSTOMER_ENTRY\" | \"BOLETO\";\n  /**\n   * Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments.\n   */\n  auth_code?: string;\n  /**\n   * Internal unique ID of the transaction on the SumUp platform.\n   */\n  internal_id?: number;\n};\n\n/**\n * Unique ID of the transaction event.\n */\nexport type EventID = number;\n\n/**\n * Unique ID of the transaction.\n */\nexport type TransactionID = string;\n\n/**\n * Type of the transaction event.\n */\nexport type EventType =\n  | \"PAYOUT\"\n  | \"CHARGE_BACK\"\n  | \"REFUND\"\n  | \"PAYOUT_DEDUCTION\";\n\n/**\n * Status of the transaction event.\n */\nexport type EventStatus =\n  | \"PENDING\"\n  | \"SCHEDULED\"\n  | \"FAILED\"\n  | \"REFUNDED\"\n  | \"SUCCESSFUL\"\n  | \"PAID_OUT\";\n\n/**\n * Amount of the event.\n */\nexport type AmountEvent = number;\n\n/**\n * Date and time of the transaction event.\n */\nexport type TimestampEvent = string;\n\nexport type Event = {\n  id?: EventID;\n  transaction_id?: TransactionID;\n  type?: EventType;\n  status?: EventStatus;\n  amount?: AmountEvent;\n  timestamp?: TimestampEvent;\n  /**\n   * Amount of the fee related to the event.\n   */\n  fee_amount?: number;\n  /**\n   * Consecutive number of the installment.\n   */\n  installment_number?: number;\n  /**\n   * Amount deducted for the event.\n   */\n  deducted_amount?: number;\n  /**\n   * Amount of the fee deducted for the event.\n   */\n  deducted_fee_amount?: number;\n};\n\n/**\n * Details of a link to a related resource.\n */\nexport type Link = {\n  /**\n   * Specifies the relation to the current resource.\n   */\n  rel?: string;\n  /**\n   * URL for accessing the related resource.\n   */\n  href?: string;\n  /**\n   * Specifies the media type of the related resource.\n   */\n  type?: string;\n};\n\n/**\n * Details of the product for which the payment is made.\n */\nexport type Product = {\n  /**\n   * Name of the product from the merchant's catalog.\n   */\n  name?: string;\n  /**\n   * Price of the product without VAT.\n   */\n  price?: number;\n  /**\n   * VAT rate applicable to the product.\n   */\n  vat_rate?: number;\n  /**\n   * Amount of the VAT for a single product item (calculated as the product of `price` and `vat_rate`, i.e. `single_vat_amount = price * vat_rate`).\n   */\n  single_vat_amount?: number;\n  /**\n   * Price of a single product item with VAT.\n   */\n  price_with_vat?: number;\n  /**\n   * Total VAT amount for the purchase (calculated as the product of `single_vat_amount` and `quantity`, i.e. `vat_amount = single_vat_amount * quantity`).\n   */\n  vat_amount?: number;\n  /**\n   * Number of product items for the purchase.\n   */\n  quantity?: number;\n  /**\n   * Total price of the product items without VAT (calculated as the product of `price` and `quantity`, i.e. `total_price = price * quantity`).\n   */\n  total_price?: number;\n  /**\n   * Total price of the product items including VAT (calculated as the product of `price_with_vat` and `quantity`, i.e. `total_with_vat = price_with_vat * quantity`).\n   */\n  total_with_vat?: number;\n};\n\n/**\n * Details of a transaction event.\n */\nexport type TransactionEvent = {\n  id?: EventID;\n  event_type?: EventType;\n  status?: EventStatus;\n  amount?: AmountEvent;\n  /**\n   * Date when the transaction event is due to occur.\n   */\n  due_date?: string;\n  /**\n   * Date when the transaction event occurred.\n   */\n  date?: string;\n  /**\n   * Consecutive number of the installment that is paid. Applicable only payout events, i.e. `event_type = PAYOUT`.\n   */\n  installment_number?: number;\n  timestamp?: TimestampEvent;\n};\n\nexport type TransactionMixinHistory = {\n  /**\n   * Short description of the payment. The value is taken from the `description` property of the related checkout resource.\n   */\n  product_summary?: string;\n  /**\n   * Total number of payouts to the registered user specified in the `user` property.\n   */\n  payouts_total?: number;\n  /**\n   * Number of payouts that are made to the registered user specified in the `user` property.\n   */\n  payouts_received?: number;\n  /**\n   * Payout plan of the registered user at the time when the transaction was made.\n   */\n  payout_plan?:\n    | \"SINGLE_PAYMENT\"\n    | \"TRUE_INSTALLMENT\"\n    | \"ACCELERATED_INSTALLMENT\";\n};\n\nexport type TransactionHistory = TransactionMixinBase &\n  TransactionMixinHistory & {\n    transaction_id?: TransactionID;\n    /**\n     * Client-specific ID of the transaction.\n     */\n    client_transaction_id?: string;\n    /**\n     * Email address of the registered user (merchant) to whom the payment is made.\n     */\n    user?: string;\n    /**\n     * Type of the transaction for the registered user specified in the `user` property.\n     */\n    type?: \"PAYMENT\" | \"REFUND\" | \"CHARGE_BACK\";\n    /**\n     * Issuing card network of the payment card used for the transaction.\n     */\n    card_type?:\n      | \"VISA\"\n      | \"AMEX\"\n      | \"CUP\"\n      | \"DINERS\"\n      | \"DISCOVER\"\n      | \"ELO\"\n      | \"ELV\"\n      | \"HIPERCARD\"\n      | \"JCB\"\n      | \"MAESTRO\"\n      | \"MASTERCARD\"\n      | \"VISA_ELECTRON\"\n      | \"VISA_VPAY\"\n      | \"UNKNOWN\";\n  };\n\n/**\n * Latitude value from the coordinates of the payment location (as received from the payment terminal reader).\n */\nexport type Lat = number;\n\n/**\n * Longitude value from the coordinates of the payment location (as received from the payment terminal reader).\n */\nexport type Lon = number;\n\n/**\n * Indication of the precision of the geographical position received from the payment terminal.\n */\nexport type HorizontalAccuracy = number;\n\nexport type LinkRefund = Link & {\n  /**\n   * Minimum allowed amount for the refund.\n   */\n  min_amount?: number;\n  /**\n   * Maximum allowed amount for the refund.\n   */\n  max_amount?: number;\n};\n\nexport type TransactionFull = TransactionMixinBase &\n  TransactionMixinCheckout &\n  TransactionMixinHistory & {\n    /**\n     * Email address of the registered user (merchant) to whom the payment is made.\n     */\n    username?: string;\n    lat?: Lat;\n    lon?: Lon;\n    horizontal_accuracy?: HorizontalAccuracy;\n    /**\n     * Simple name of the payment type.\n     */\n    simple_payment_type?:\n      | \"MOTO\"\n      | \"CASH\"\n      | \"CC_SIGNATURE\"\n      | \"ELV\"\n      | \"CC_CUSTOMER_ENTERED\"\n      | \"MANUAL_ENTRY\"\n      | \"EMV\";\n    /**\n     * Verification method used for the transaction.\n     */\n    verification_method?:\n      | \"none\"\n      | \"signature\"\n      | \"offline pin\"\n      | \"online pin\"\n      | \"offline pin + signature\"\n      | \"confirmation code verified\";\n    card?: CardResponse;\n    /**\n     * Local date and time of the creation of the transaction.\n     */\n    local_time?: string;\n    /**\n     * Payout type for the transaction.\n     */\n    payout_type?: \"BANK_ACCOUNT\" | \"BALANCE\" | \"PREPAID_CARD\";\n    /**\n     * List of products from the merchant's catalogue for which the transaction serves as a payment.\n     */\n    products?: Product[];\n    /**\n     * List of VAT rates applicable to the transaction.\n     */\n    vat_rates?: Record<string, unknown>[];\n    /**\n     * List of transaction events related to the transaction.\n     */\n    transaction_events?: TransactionEvent[];\n    /**\n     * Status generated from the processing status and the latest transaction state.\n     */\n    simple_status?:\n      | \"SUCCESSFUL\"\n      | \"PAID_OUT\"\n      | \"CANCEL_FAILED\"\n      | \"CANCELLED\"\n      | \"CHARGEBACK\"\n      | \"FAILED\"\n      | \"REFUND_FAILED\"\n      | \"REFUNDED\"\n      | \"NON_COLLECTION\";\n    /**\n     * List of hyperlinks for accessing related resources.\n     */\n    links?: Record<string, unknown>[];\n    /**\n     * List of events related to the transaction.\n     */\n    events?: Event[];\n    /**\n     * Details of the payment location as received from the payment terminal.\n     */\n    location?: {\n      lat?: Lat;\n      lon?: Lon;\n      horizontal_accuracy?: HorizontalAccuracy;\n    };\n    /**\n     * Indicates whether tax deduction is enabled for the transaction.\n     */\n    tax_enabled?: boolean;\n  };\n\nexport type RefundTransactionParams = {\n  /**\n   * Amount to be refunded. Eligible amount can't exceed the amount of the transaction and varies based on country and currency. If you do not specify a value, the system performs a full refund of the transaction.\n   */\n  amount?: number;\n};\n\nexport type RefundTransactionResponse = Record<string, unknown>;\n\nexport type GetTransactionV2_1QueryParams = {\n  id?: string;\n  internal_id?: string;\n  transaction_code?: string;\n};\n\nexport type GetTransactionQueryParams = {\n  id?: string;\n  internal_id?: string;\n  transaction_code?: string;\n};\n\nexport type ListTransactionsV2_1QueryParams = {\n  transaction_code?: string;\n  order?: \"ascending\" | \"descending\";\n  limit?: number;\n  users?: string[];\n  statuses?: (\n    | \"SUCCESSFUL\"\n    | \"CANCELLED\"\n    | \"FAILED\"\n    | \"REFUNDED\"\n    | \"CHARGE_BACK\"\n  )[];\n  payment_types?: (\n    | \"CASH\"\n    | \"POS\"\n    | \"ECOM\"\n    | \"BALANCE\"\n    | \"MOTO\"\n    | \"BOLETO\"\n    | \"UNKNOWN\"\n  )[];\n  types?: (\"PAYMENT\" | \"REFUND\" | \"CHARGE_BACK\")[];\n  changes_since?: string;\n  newest_time?: string;\n  newest_ref?: string;\n  oldest_time?: string;\n  oldest_ref?: string;\n};\n\nexport type ListTransactionsV2_1Response = {\n  items?: TransactionHistory[];\n  links?: Link[];\n};\n\nexport type ListTransactionsQueryParams = {\n  transaction_code?: string;\n  order?: \"ascending\" | \"descending\";\n  limit?: number;\n  users?: string[];\n  statuses?: (\n    | \"SUCCESSFUL\"\n    | \"CANCELLED\"\n    | \"FAILED\"\n    | \"REFUNDED\"\n    | \"CHARGE_BACK\"\n  )[];\n  payment_types?: (\n    | \"CASH\"\n    | \"POS\"\n    | \"ECOM\"\n    | \"BALANCE\"\n    | \"MOTO\"\n    | \"BOLETO\"\n    | \"UNKNOWN\"\n  )[];\n  types?: (\"PAYMENT\" | \"REFUND\" | \"CHARGE_BACK\")[];\n  changes_since?: string;\n  newest_time?: string;\n  newest_ref?: string;\n  oldest_time?: string;\n  oldest_ref?: string;\n};\n\nexport type ListTransactionsResponse = {\n  items?: TransactionHistory[];\n  links?: Link[];\n};\n\nexport class Transactions extends Core.APIResource {\n  /**\n   * Refund a transaction\n   */\n  refund(\n    txnId: string,\n    body: RefundTransactionParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.post<void>({\n      path: `/v0.1/me/refund/${txnId}`,\n      body,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a transaction\n   */\n  get(\n    merchantCode: string,\n    query?: GetTransactionV2_1QueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<TransactionFull> {\n    return this._client.get<TransactionFull>({\n      path: `/v2.1/merchants/${merchantCode}/transactions`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * Retrieve a transaction\n   */\n  getDeprecated(\n    query?: GetTransactionQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<TransactionFull> {\n    return this._client.get<TransactionFull>({\n      path: `/v0.1/me/transactions`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * List transactions\n   */\n  list(\n    merchantCode: string,\n    query?: ListTransactionsV2_1QueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v2.1/merchants/${merchantCode}/transactions/history`,\n      query,\n      ...params,\n    });\n  }\n\n  /**\n   * List transactions\n   */\n  listDeprecated(\n    query?: ListTransactionsQueryParams,\n    params?: Core.FetchParams,\n  ): Core.APIPromise<void> {\n    return this._client.get<void>({\n      path: `/v0.1/me/transactions/history`,\n      query,\n      ...params,\n    });\n  }\n}\n\nexport declare namespace Transactions {\n  export type {\n    AmountEvent,\n    CardResponse,\n    Currency,\n    Event,\n    EventID,\n    EventStatus,\n    EventType,\n    GetTransactionQueryParams,\n    GetTransactionV2_1QueryParams,\n    HorizontalAccuracy,\n    Lat,\n    Link,\n    LinkRefund,\n    ListTransactionsQueryParams,\n    ListTransactionsV2_1QueryParams,\n    Lon,\n    Product,\n    RefundTransactionParams,\n    TimestampEvent,\n    TransactionEvent,\n    TransactionFull,\n    TransactionHistory,\n    TransactionID,\n    TransactionMixinBase,\n    TransactionMixinCheckout,\n    TransactionMixinHistory,\n  };\n}\n","// Code generated by @sumup/ts-sdk-gen@0.0.1. DO NOT EDIT.\n\nimport { HTTPClient } from \"./client\";\nimport type * as Core from \"./core\";\n\nexport type { APIConfig } from \"./client\";\n\nimport { Checkouts } from \"./resources/checkouts\";\nimport { Customers } from \"./resources/customers\";\nimport { Members } from \"./resources/members\";\nimport { Memberships } from \"./resources/memberships\";\nimport { Merchant } from \"./resources/merchant\";\nimport { Payouts } from \"./resources/payouts\";\nimport { Readers } from \"./resources/readers\";\nimport { Receipts } from \"./resources/receipts\";\nimport { Roles } from \"./resources/roles\";\nimport { Subaccounts } from \"./resources/subaccounts\";\nimport { Transactions } from \"./resources/transactions\";\n\nexport class SumUp extends HTTPClient {\n  checkouts: Checkouts = new Checkouts(this);\n  customers: Customers = new Customers(this);\n  members: Members = new Members(this);\n  memberships: Memberships = new Memberships(this);\n  merchant: Merchant = new Merchant(this);\n  payouts: Payouts = new Payouts(this);\n  readers: Readers = new Readers(this);\n  receipts: Receipts = new Receipts(this);\n  roles: Roles = new Roles(this);\n  subaccounts: Subaccounts = new Subaccounts(this);\n  transactions: Transactions = new Transactions(this);\n\n  static SumUp = this;\n}\n\nSumUp.Checkouts = Checkouts;\nSumUp.Customers = Customers;\nSumUp.Members = Members;\nSumUp.Memberships = Memberships;\nSumUp.Merchant = Merchant;\nSumUp.Payouts = Payouts;\nSumUp.Readers = Readers;\nSumUp.Receipts = Receipts;\nSumUp.Roles = Roles;\nSumUp.Subaccounts = Subaccounts;\nSumUp.Transactions = Transactions;\n\nexport declare namespace SumUp {\n  export type FetchParams = Core.FetchParams;\n\n  export {\n    Checkouts,\n    Customers,\n    Members,\n    Memberships,\n    Merchant,\n    Payouts,\n    Readers,\n    Receipts,\n    Roles,\n    Subaccounts,\n    Transactions,\n  };\n}\n\nexport default SumUp;\n"],"names":["APIResource","client","SumUpError","Error","APIError","status","error","response","message","JSON","Symbol","APIPromise","resp","res","contentType","isJSON","data","Promise","onFulfilled","onRejected","onFinally","VERSION","HTTPClient","apiKey","host","baseParams","headers","Headers","mergeParams","params","body","path","query","hostOverride","fetchParams","url","URL","Array","init","Core","input","fetch","Object","_","value","key","encodeURIComponent","v","a","b","Checkouts","merchantCode","id","Customers","customerId","token","Members","memberId","Memberships","Merchant","Payouts","Readers","Receipts","Roles","roleId","Subaccounts","operatorId","Transactions","txnId","SumUp"],"mappings":"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"}