openapi: 3.0.0
info:
  title: Account Management API
  description: >
    # Changelog


    All notable changes to the API.


    ## 2026-04-01


    > **new** On-demand payouts.

    >

    > - [POST
    /v1/accounts/{oid}/management/payout-destinations/{payout_destination_id}/payouts](#operation/oid_mgmnt_payout_destinations_payouts_post)


    ## 2026-03-25


    > **new** Add endpoint for listing Bambora IPP submerchant onboardings

    >

    > - [GET
    /v1/accounts/{aid}/management/settings/connections/bambora-ipp-submerchants](#operation/aid_account_settings_connections_bambora_ipp_get)


    ## 2026-03-20


    > **update** Add `payment_product_type_category` as a price package price
    dimension. Also add enum values and descriptions for the price `name`
    property.

    >

    > - [GET
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_get)

    > - [POST
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_post)

    > - [PUT
    /v1/accounts/{oid}/management/price-packages/{price_package_id}](#operation/aid_mgmnt_price_packages_put)

    > - [GET
    /v1/accounts/{aid}/management/price-package](#operation/aid_account_price_package_get)


    > **update** Update Mastercard Match terminate and search response to use
    new values from Match Pro API. Replace `cat_flag` with `is_proprietorship`
    and `is_transaction_laundering` in terminate request. Update all MATCH
    response definitions per MATCH Pro spec, and use snake_case for all schemas.

    >

    > - [POST
    /v1/accounts/{aid}/compliance-search/match/terminate](#operation/accounts_aid_search_match_terminate_merchant_post)

    > - [POST
    /v1/accounts/{aid}/compliance-search/match](#operation/accounts_aid_search_match_post)

    > - [GET
    /v1/accounts/{aid}/compliance-search/match/{irn}](#operation/accounts_aid_search_match_get)


    ## 2026-03-11


    > **update** Add `TERMINATED` to approval status for approvals filtering and
    response status.

    >

    > - [GET
    /v1/accounts/{aid}/management/settings/approvals/payments](#operation/aid_management_settings_approvals_payment_get)

    > - [GET
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_get)


    ## 2026-03-09


    > **new** New query parameters for Payout destination collection

    >

    > - [GET
    /v1/accounts/{aid}/management/payout-destinations](#operation/aid_mgmnt_payout_destinations_get)


    ## 2026-03-04


    > **update** Add `ipp` Checkout service feature

    >

    > - [PUT
    /v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - [GET
    /v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)


    ## 2026-02-25


    > **update** Add `organization.country` and `organization.type` to location
    organization input.

    >

    > - [POST
    /v1/accounts/{aid}/management/locations](#operation/aid_account_management_locations_post)

    > - [PUT
    /v1/accounts/{aid}/management/locations/{location_id}](#operation/aid_account_management_locations_lid_put)


    ## 2026-02-23


    > **update** Add `payout_interval_type`, `number_of_locations`,
    `number_of_terminals` to `AuthPayoutDestinationReadOnly`

    >

    > - [GET
    /v1/accounts/{aid}/managment/payout-destinations](#operation/aid_mgmnt_payout_destinations_get)



    ## 2026-02-21


    > **update** Add `kravia` to `payment_methods` of `ApprovalPayments`

    >

    > - [GET
    /v1/accounts/{aid}/management/settings/approvals/payments](#operation/aid_management_settings_approvals_payment_get)

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payments](#operation/aid_management_settings_approvals_payment_post)


    ## 2026-02-20


    > **update** Add support for `terminals` to location responses and
    `terminals_summary` to location collection entries.

    >

    > **update** Add `status` to terminal.

    >

    > - [GET
    /v1/accounts/{aid}/management/locations](#operation/aid_account_management_locations_get)

    > - [GET
    /v1/accounts/{aid}/management/locations/{location_id}](#operation/aid_account_management_locations_lid_get)

    > - [ PUT
    /v1/accounts/{aid}/management/locations/{location_id}](#operation/aid_account_management_locations_lid_put)

    > - [DELETE
    /v1/accounts/{aid}/management/locations/{location_id}](#operation/aid_account_management_locations_lid_delete)



    ## 2026-02-28


    > Add endpoint to onboard merchant to Two and endpoint to get the
    connection.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/two](#operation/aid_account_settings_connections_two_get)

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/two](#operation/aid_account_settings_connections_two_post)


    ## 2026-02-13


    > **update** Add `invoice_delivery_method` support for Kravia connection.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_get)

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_post)

    >

    > **new** Add endpoint for updating Kravia invoice delivery mode.

    > - PUT
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_put)


    ## 2026-02-10


    > **update** Add `website` and `coordinates` properties to [location
    management endpoints](#tag/account-locations)


    ## 2026-01-16


    > **update** Add `allowed_merchant_category_codes` property to Account
    `onboarding`

    >

    > Restricts the MCC codes available for selection during merchant
    onboarding.

    >

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)


    ## 2026-01-12


    > **new** New query parameter for accounts collection: `services`

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2025-12-31


    > **update** Document support for 404 status from callback endpoint

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/cdd/cases/{id}/callback](#operation/aid_management_settings_cdd_cases_callback)


    ## 2025-12-16


    > **update** add `operator_payout_destination` property to location
    management endpoints

    >

    > [GET location details](#operation/aid_account_management_locations_get)

    > [GET location list](#operation/aid_account_management_locations_lid_get)


    ## 2025-12-15


    > **update** Added `location_name` and `number_of_terminals` properties to
    the [location endpoints](#tag/account-locations)


    ## 2025-12-09


    > **update** remove `device_serial_number` property for update operation

    >

    > [PUT
    /v1/accounts/{aid}/management/terminals/{terminal_id}](#operation/aid_account_management_terminals_termid_put)


    ## 2025-12-09


    > - Removed entity management endpoints for `/entities` and
    `/transfer-instruments`

    > - Removed POST endpoint for entity management `/payout-destinations`

    > - Updated [GET payout
    destinations](#operation/aid_mgmnt_payout_destinations_get)


    ## 2025-11-20


    > **update** Add `public_business_name` to `AuthenticatedAccountUser`

    >

    > - GET [/v1/account/user](#operation/account_user_get)


    ## 2025-10-31


    > **new** Add new `locations` and `terminals` endpoints to replace
    documented entity API

    > - [POST/GET/DELETE locations](#tag/account-locations)

    > - [POST/GET/DELETE terminals](#tag/account-terminals)


    ## 2025-10-28


    > **update** Add `configuration` property to Kravia connection response to
    include merchant configuration details.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_get)


    ## 2025-10-27


    > Add endpoint to onboard merchant to Kravia and endpoint to get the
    connection.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_get)

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/kravia](#operation/aid_account_settings_connections_kravia_post)


    ## 2025-10-20


    > Add endpoint to onboard merchant to Click-to-pay and endpoint to get the
    connection.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/clicktopay](#operation/aid_account_settings_connections_visa_click_to_pay_get)

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/clicktopay](#operation/aid_account_settings_connections_visa_click_to_pay_post)


    ## 2025-10-06


    > Remove pattern requirement for `billing.billing_statement.name`

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    ## 2025-09-25


    > Add new property `public_business_name` to Account `company`

    > Represents the public business name of the company, also known as "Doing
    business as" business name.

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    ## 2025-09-15


    > Add new scope `write:accounts:/assets` for creating upload URLs

    > Extend the create upload URL endpoint with
    `write:dintero:/management/accounts` access

    >

    > - POST
    [v1/accounts/{aid}/management/assets](#operation/aid_account_assets_post)


    ## 2025-09-09


    > Support more mime types for creating an upload URL

    >

    > - POST
    [v1/accounts/{aid}/management/assets](#operation/aid_account_assets_post)


    ## 2025-08-27


    > Add new property `attachments` to Account

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    ## 2025-08-26


    > Add new property `terms` to Account `company`

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)



    ## 2025-08-25


    > Add new property `contacts` to Account `company`

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    ## 2025-08-22


    > Add new property `billing_statement` to Account `billing`

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - POST
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - GET
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - PUT
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - DELETE
    [/v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    ## 2025-08-19


    > Add new property `onboarding` to Account settings

    >

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_aid_get)

    > - PUT
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)


    ## 2025-06-01


    > Add new endpoints for Entity Management

    > - [Entities](#tag/entities)

    > - [Stores](#tag/stores)

    > - [Transfer Instruments](#tag/transfer-instruments)

    > - [Payout Destinations](#tag/payout-destinations)


    ## 2025-05-12


    > Add `country` query parameter to accounts collection

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2025-04-01


    > Adds Mastercard Tokenization enrollment

    >

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/mastercard-tokenization](#operation/aid_account_settings_connections_mastercard_tokenization_post)

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/mastercard-tokenization](#operation/aid_account_settings_connections_mastercard_tokenization_get)

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2025-03-31


    > **new** Add support for updating API Client name and description

    > - [PATCH
    /v1/accounts/{oid}/auth/clients/{id}](#operation/aid_auths_clients_id_patch)


    > **new** Document support for new dintero scopes

    > - [POST
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_post)

    > - [PUT
    /v1/accounts/{oid}/management/price-packages/{price_package_id}](#operation/aid_mgmnt_price_packages_put)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}/price-packages](#operation/aid_account_settings_price_packages_put)


    ## 2025-03-02


    > **new** `source_price_package_id` property in `PricePackageMeta`
    definition to keep track of the price package a price package is based on.

    >

    > - [GET
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_get)

    > - [POST
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_post)


    ## 2025-03-01


    > Endpoint for signing up to Swish PayFac

    >

    > - [POST
    /management/settings/connections/swish-payfac](#operation/aid_account_settings_connections_swish_payfac_post)


    > Adds Dintero PSP connection.

    >

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/dintero-psp](#operation/aid_account_settings_connections_dintero_psp_post)

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/dintero-psp](#operation/aid_account_settings_connections_dintero_psp_get)


    > Changes to Visa Tokenization enrollment, rename from visa-tokens to
    visa-tokenization

    >

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/visa-tokenization](#operation/aid_account_settings_connections_visa_tokenization_post)

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/visa-tokenization](#operation/aid_account_settings_connections_visa_tokenization_get)

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    > Changes to 3D-Secure enrollment, make the API stateful and algin it to the
    other connections.

    >

    > - POST
    [/v1/accounts/{aid}/management/settings/connections/mastercard-3ds](#operation/aid_account_settings_connections_mastercard_3ds_post)

    > - GET
    [/v1/accounts/{aid}/management/settings/connections/mastercard-3ds](#operation/aid_account_settings_connections_mastercard_3ds_get)

    > - GET
    [/v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - GET
    [/v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2025-02-03


    > Support individual sellers in "New seller approval" endpoint.

    >

    > - POST
    [/v1/accounts/{oid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_post)


    ## 2025-02-01


    > Extend update price packages endpoint with new query parameter
    `remove_default_price_package` to support removing the default price package
    from the partner configuration of a given partner account.

    >

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}/price-packages](#operation/aid_account_settings_price_packages_put)


    ## 2025-02-02


    > Extend account users API with new query parameter `search` to look up
    users by email and/or name

    >

    > - [GET
    /v1/accounts/{oid}/management/users](#operation/aid_accounts_aid_mgmnt_users_get)


    ## 2025-02-01


    > Extend partner API with new optional property for account: `configuration`

    > The `configuration` property can be used to set various configurations on
    a

    > partner account.

    >

    > Currently, only "default price package" is supported—which lets you
    configure

    > a given partner account with a default price package that should be
    assigned

    > to new merchants created from said partner, if nothing else is specified.

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}/price-packages](#operation/aid_account_settings_price_packages_put)

    > - [GET /management/settings](#operation/aid_account_aid_get)


    > Extend update price packages endpoint with new query parameter
    `remove_default_price_package` to support removing the default price package
    from the partner configuration of a given partner account.

    >

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}/price-packages](#operation/aid_account_settings_price_packages_put)


    ## 2025-01-07


    > Add endpoint for enrollment to 3D-Secure with Mastercard

    >

    > - [PUT
    /v1/accounts/{oid}/management/settings/connections/3d-secure-enrollment](#operation/aid_account_settings_connections_3ds_enrollment_post)


    > Set merchant category codes as a required field.

    >

    > - [POST
    /v1/accounts/{aid}/compliance-search/vmss/terminate](#operation/accounts_aid_search_vmss_terminate_merchant_post)


    ## 2025-01-01


    > Extend price package API with PUT price package endpoint for updating an

    > existing price package.

    >

    > - [PUT
    /v1/accounts/{oid}/management/price-packages/{price_package_id}](#operation/aid_mgmnt_price_packages_put)


    ## 2024-12-09


    > Add endpoint for adding merchant to Visa Merchant Screening Service.

    > Make category and tradeOverInternet optional in VMSS inquiry request.

    >

    > - [POST
    /v1/accounts/{aid}/compliance-search/vmss/terminate](#operation/accounts_aid_search_vmss_terminate_merchant_post)

    > - [POST
    /v1/accounts/{aid}/compliance-search/vmss](#operation/accounts_aid_search_vmss_post)


    ## 2024-11-12


    > Add endpoint for querying Visa Merchant Screening Service.

    >

    > - [POST
    /v1/accounts/{aid}/compliance-search/vmss](#operation/accounts_aid_search_vmss_post)


    ## 2024-11-01


    > Extend partner API with additional optional read-only property for account

    > `prev_credit_rating`.

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [POST
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)


    ## 2024-11-01


    > Add option to filter price packages by price package ID with new query
    parameter.

    >

    > - [GET
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_get)


    ## 2024-10-17


    > Add `pricing_conditions` to `price_package` to support defining pricing
    conditions for the price package.


    > - [POST
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_post)


    ## 2024-10-04


    > Remove requirement for `price_package_id` in `custom_price_package` when
    creating an account.


    > - [POST
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)


    ## 2024-10-03


    > Add endpoint for getting price package on account


    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}/price-package](#operation/aid_account_price_package_get)


    ## 2024-10-02


    > Revert adding endpoint and definitions for price package comparison


    ## 2024-10-01


    > Extend endpoint to support archiving active payout destination approvals.

    >

    > - [DELETE
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations/{id}](#aid_management_settings_approvals_payout_destinations_id_delete)


    ## 2024-09-11


    > **Break** Change body for sending termination inquiry

    > **Break** Change URL for MATCH search to avoid conflict with existing API

    > Add endpoint for adding a terminated merchant to MATCH

    > Add enum for termination reason code

    >

    > - [POST
    /v1/accounts/{aid}/compliance-search/match/terminate](#operation/accounts_aid_search_match_terminate_merchant_post)

    > - [POST
    /v1/accounts/{aid}/compliance-search/match](#operation/accounts_aid_search_match_post)

    > - [GET
    /v1/accounts/{aid}/compliance-search/match/{irn}](#operation/accounts_aid_search_match_get)


    ## 2024-09-06


    > Add endpoints for sending termination inquiry to Mastercard MATCH and
    fetching

    > result of a termination inquiry by its Inquiry Reference Number (IRN)

    >

    > - [POST
    /v1/accounts/{aid}/search/match](#operation/accounts_aid_search_match_post)

    > - [GET
    /v1/accounts/{aid}/search/match/{irn}](#operation/accounts_aid_search_match_get)


    ## 2024-08-13


    > - Add `custom_price_package` when creating an account. This property can
    be used to create a new custom price package for the account.

    > - Add new endpoint for comparing products in price packages.

    > - Add `creation_state` to price package properties to indicate if the
    price package is a custom price package or not.

    >

    > - [POST
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - [GET
    /v1/accounts/{oid}/management/price-packages/diff/{pid}](#operation/aid_mgmnt_price_packages_diff_pid_get)


    ## 2024-08-12


    > - Revert change to extend `invites` property when creating an account

    > - Add a new property `invite_users` property that replaces the extended
    spec

    > - for backwards compatibility, the `invites` property will still be
    supported

    > - [POST
    /v1/accounts/{aid}/management/accounts](#operation/aid_mgmnt_accounts_post)


    ## 2024-08-06


    > Extend `invites` property when creating an account

    > with support for first name and last name.

    > Include optional `invitation_note` property when creating an account

    > that can be used to add a note to the invitation email.

    >

    > - [POST
    /v1/accounts/{aid}/management/accounts](#operation/aid_mgmnt_accounts_post)


    ## 2024-07-01


    > Extend the account services with optional read-only features properties

    > to track the service feature requested by merchant and their current

    > status

    > Extend endpoint for updating account settings with support for

    > updating services features

    >

    > - [PUT
    /v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - [POST /management/accounts](#operation/aid_mgmnt_accounts_post)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)


    ## 2024-05-31


    > Extend partner API with additional optional read-only properties for
    account

    > with `most_expensive_product_price`, `gift_card_revenue_percentage`,

    > `credit_rating`, and `currency`

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2024-04-30


    > Add support for configuring TOTP MFA for account user

    >

    > - [PUT /v1/account/user/mfa/totp](#operation/account_user_mfa_totp_put)


    ## 2024-03-31


    > Add `form_submitter` to approvals. Add  `payout_interval_type` payout
    destination approvals.

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payments](#operation/aid_management_settings_approvals_payment_post)

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_post)


    ## 2024-02-22


    > Add `invites` and `actions` to creation of account

    >

    > - [POST
    /v1/accounts/{aid}/management/accounts](#operation/aid_mgmnt_accounts_post)


    ## 2024-02-01


    > Add new payment option `billie` when applying for payment methods

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payments](#operation/aid_management_settings_approvals_payment_post)


    ## 2024-01-01


    > Add new payment method `klarna.billie`

    >

    > - [POST
    /management/settings/connections/klarna](#operation/aid_account_settings_connections_klarna_post)

    > - [GET
    /management/settings/connections/klarna](#operation/aid_account_settings_connections_klarna_get)


    > Add new price package APIs. New endpoint for managing price packages

    > that can be used when creating new accounts via the partner API

    >

    > - [GET
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_get)

    > - [POST
    /v1/accounts/{oid}/management/price-packages](#operation/aid_mgmnt_price_packages_post)

    > - [PUT
    /v1/accounts/{oid}/management/price-packages/{price_package_id}@custom-price-packages](#operation/aid_mgmnt_price_packages_ppid_custom_post)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}/price-packages](#operation/aid_account_settings_price_packages_put)


    ## 2023-12-01


    > Add endpoints for Visa Tokenization connection signup

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/connections/visa-tokens](#operation/aid_account_settings_connections_visa_tokens_post)

    > - [GET
    /v1/accounts/{aid}/management/settings/connections/visa-tokens](#operation/aid_account_settings_connections_visa_tokens_get)


    > Extend bambora connection with ability to set token_scope

    >

    > - [POST
    /management/settings/connections/bambora/{callback_reference}](#operation/aid_account_settings_connections_bambora_callback_post)


    > Extend the account user with new aggrement property that can be used

    > to track the terms and conditions accepted by the account user

    >

    > - [POST /management/users](#operation/aid_accounts_aid_mgmnt_users_post)

    > - [PUT
    /management/users/{uid}](#operation/aid_accounts_aid_mgmnt_users_put)

    > - [GET /account/user](#operation/account_user_get)


    ## 2023-11-01


    > Extend partner API with additional optional properties for account

    > with `price_package`, `sale_channel` remove unsupported

    > `statistics.latest`

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)


    > Extend partner API with additional optional read-only properties for
    account

    > with `payment_case_status`, `projected_sales`, `average_transaction_value`

    > `merchant_category_code` and `delivery_timeline`

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)


    > Add new endpoint for archiving payout destination approvals that are not
    active.

    >

    > - [DELETE
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations/{id}](#aid_management_settings_approvals_payout_destinations_id_delete)


    ## 2023-09-01


    > Add new endpoint for posting Bambora Direct connection

    >

    > - [POST
    /management/settings/connections/bambora-direct](#operation/aid_account_settings_connections_bambora_direct_post)

    >

    > NB! **Deprecates** old Bambora connection endpoint:

    >

    > - [POST
    /management/settings/connections/bambora](#operation/aid_account_settings_connections_bambora_post)


    ## 2023-08-01


    > Extend partner API with additional properties for account with

    > `statistics.metrics`, `permissions`, `company` and applicant.

    >

    > - [POST
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#tagoperation/aid_accounts_aid_put)

    > - [POST /v1/accounts/{oid}/signup](#operation/accounts_oid_signup_post)


    ## 2023-06-01


    > Extend response bodies with `approvals_payments_statuses`  and
    `approvals_payout_destinations_statuses` for partners accounts management.

    >

    > - [POST /management/accounts](#operation/aid_mgmnt_accounts_get)

    > - [GET /management/accounts](#operation/aid_mgmnt_accounts_post)

    > - [GET /management/accounts/{aid}](#operation/aid_accounts_aid_get)

    > - [PUT /management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [DELETE
    /management/accounts/{aid}](#operation/aid_mgmnt_accounts_aid_delete)


    > Add new endpoints for managing Bambora PayFac connections

    >

    > - [POST
    /management/settings/connections/bambora-payfac](#operation/aid_account_settings_connections_bambora_payfac_post)

    > - [GET
    /management/settings/connections/bambora-payfac](#operation/aid_account_settings_connections_bambora_payfac_get)


    ## 2023-04-01


    > Add new endpoints for managing Klarna connection

    >

    > - [POST
    /management/settings/connections/klarna](#operation/aid_account_settings_connections_klarna_post)

    > - [GET
    /management/settings/connections/klarna](#operation/aid_account_settings_connections_klarna_get)


    ## 2023-01-20


    > Extend applicants with optional signup_reference.


    ## 2022-10-06


    > Payout destinations are now referred to as Sellers, the data model is
    unchanged.


    ## 2022-07-01


    > **Break** Require `includes=events.case.contracts` to get CDD contract
    details

    > from cases endpoint. The default response will now by default exclude
    contract

    > details from response

    >

    > - [GET
    /v1/accounts/{aid}/management/settings/cdd/cases](#tag/account-cdd/operation/aid_management_settings_cdd_cases_get)


    ## 2022-06-01


    > Add support for filtering sub-accounts on `connection`,
    `connection_status` and `payment_options`

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2022-05-01


    > Add support for including `payout_destination_name` and

    > `payout_destination_description` properties when creating diligence cases

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/cdd/cases](#operation/aid_management_settings_cdd_cases_post)

    > - [GET
    /v1/accounts/{aid}/management/settings/cdd/cases](#operation/aid_management_settings_cdd_cases_get)

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_post)

    > - [GET
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_get)


    > Add support for updating `payex`, `collector`, `swish` and `bambora`
    connections

    >

    > - [POST
    /v1/accounts/{oid}/management/accounts/{aid}/connections/{connection}/events](#operation/aid_accounts_aid_connections_events_post)


    ## 2022-04-01


    > Add support for customer user login via Open ID connect. Configure `oidc`
    in

    > the client grant and use the new authorize endpoint to let the user be

    > verified and identified by external authorization server. The
    authorization

    > code received after authorization received by the user can be used to get
    a

    > Dintero access token via the token endpoint

    >

    > - [POST
    /v1/accounts/{oid}/auth/client-grants](#operation/aid_auths_client_grants_post)

    > - [GET
    /v1/accounts/{oid}/auth/oidc/authorize](#operation/aid_auths_oidc_authorize_get)

    > - [POST
    /v1/accounts/{oid}/auth/oidc/token](#operation/aid_auths_oidc_token_post)


    ## 2022-02-08


    > Add new endpoints for initiating a new payout destination application and
    listing payout destination applications

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_post)

    > - [GET
    /v1/accounts/{aid}/management/settings/approvals/payout-destinations](#operation/aid_management_settings_approvals_payout_destinations_get)


    ## 2022-02-01


    > Add endpoint for adding Vipps overrides

    >

    > - [PUT
    /v1/accounts/{aid}/management/settings/connections/vipps/overrides](#operation/aid_account_settings_connections_vipps_overrides_put)


    ## 2021-10-01


    > Add endpoints for managing customer due diligence cases

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/cdd/cases](#operation/aid_management_settings_cdd_cases_post)

    > - [GET
    /v1/accounts/{aid}/management/settings/cdd/cases](#operation/aid_management_settings_cdd_cases_get)


    ## 2021-06-01


    > Add support for configuring SMS MFA for account user

    >

    > - [PUT /v1/account/user/mfa/sms](#operation/account_user_mfa_sms_put)


    ## 2021-05-01


    > Add support for `phone_number` in `account.company` and `account.billing`

    >

    > - [PUT
    /v1/accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)


    > Add new endpoints for managing Bambora connection

    >

    > - [POST
    /management/settings/connections/bambora](#operation/aid_account_settings_connections_bambora_post)

    > - [GET
    /management/settings/connections/bambora](#operation/aid_account_settings_connections_bambora_get)

    > - [POST
    /management/settings/connections/bambora/{callback_reference}](#operation/aid_account_settings_connections_bambora_callback_post)


    ## 2021-04-01


    > Add support for `account_manager`

    >

    > - [POST /accounts/{oid}/signup](#operation/accounts_oid_signup_post)

    > - [POST
    /accounts/{oid}/signup/prefill](#operation/accounts_oid_signup_prefill_post)

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)


    > Add support for filter on services and connections.

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)


    > Extend the Account to support new properties, `progression`, `reseller_id`
    and

    `statistics` to services.

    >

    > - [GET
    /v1/accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_get)

    > - [PUT
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_get)


    > Add support for account events.

    >

    > - [POST
    /v1/accounts/{oid}/management/accounts/{aid}/events](#operation/aid_mgmnt_accounts_events_post)

    > - [GET
    /v1/accounts/{oid}/management/accounts/{aid}/events](#operation/aid_mgmnt_accounts_events_get)


    ## 2021-03-01


    > Make Swish cert and passphrase not required

    >

    > - [POST
    /v1/accounts/{aid}/management/settings/connections/swish/{callback_reference}](#operation/aid_account_settings_connections_swish_callback_post)


    > Add support for changing account user password

    >

    > - [PUT
    /v1/accounts/{aid}/account/user/password](#operation/account_user_password_put)


    > Add support for `authorize` when verifying a signup.

    >

    > - [POST
    /v1/accounts/{aid}/signup/verify](#operation/accounts_oid_signup_verify_post)


    ## 2021-02-01


    > Document `429 Too Many Requests` response from

    >

    > - [POST
    /v1/accounts/{aid}/auth/token](#operation/aid_auths_oauth_token_post)

    > - [POST
    /v1/accounts/{aid}/auth/passwordless](#operation/aid_auth_account_passwordless_post)


    > **Break**: Require `ident_type` and `ident` to be include when requesting
    token

    > with `grant_type=authorization_code`

    >

    > - [POST
    /v1/accounts/{aid}/auth/token](#operation/aid_auths_oauth_token_post)


    > Add support for sending verification code for passwordless login via SMS,
    and

    > `session_id={uuid} to resend the same verification code again

    > Remove unsupported request options,`send=link` and `type=account`.

    >

    > - [POST
    /v1/accounts/{aid}/auth/passwordless](#operation/aid_auth_account_passwordless_post)


    ## 2021-01-01


    > Add support for logging on without MFA even if configured with MFA

    >

    > - [POST
    /v1/accounts/{oid}/auth/token](#operation/aid_auths_oauth_token_post)


    > Add support for managing account users scopes with roles.

    >

    > - [Roles](#tag/roles)

    > - [POST /management/users](#operation/aid_accounts_aid_mgmnt_users_post)

    > - [PUT
    /management/users/{uid}](#operation/aid_accounts_aid_mgmnt_users_put)


    ## 2020-11-01


    > Extend the endpoint for getting user accounts to include the accounts

    > `display_name` and `icon_url`.

    >

    > - [GET /account/user](#operation/account_user_get)


    > Add support for account users authenticated by external Identity
    providers.

    > External authentication is limited to account users created with

    > `authentication_type=external`.

    >

    > - [POST /management/users](#operation/aid_accounts_aid_mgmnt_users_get)

    >

    > Following endpoints has been updated to allow Bearer authorization using

    > ID token issued by external Identity provider.

    >

    > - [GET /account/user](#operation/account_user_get)

    > - [POST /auth/token](#operation/aid_auths_oauth_token_post)

    >

    > Account has been updated with `jwks.uri` property that is required to

    > validate the ID tokens issued by external identity providers.


    ## 2020-09-01


    > Add new endpoint for handling HTTP redirect with ID token query parameter

    >

    > - [POST /auth/redirect](#operation/aid_auths_oauth_redirect_post)


    > Add new endpoint for uploading assets

    >

    > - [POST /management/assets](#tag/account-assets)


    ## 2020-07-01


    > Add new endpoints for managing Swish connection

    >

    > - [POST
    /management/settings/connections/swish](#operation/aid_account_settings_connections_swish_post)

    > - [GET
    /management/settings/connections/swish](#operation/aid_account_settings_connections_swish_get)

    > - [POST
    /management/settings/connections/swish/{callback_reference}](#operation/aid_account_settings_connections_swish_callback_post)


    ## 2020-05-01


    > Extend the AccountCompany with `email` and `technical_email`

    >

    > - [PUT
    /accounts/{aid}/management/settings](#operation/aid_account_settings_put)

    > - [POST
    /accounts/{oid}/management/accounts](#operation/aid_mgmnt_accounts_post)

    > - [PUT
    /accounts/{oid}/management/accounts/{aid}](#operation/aid_accounts_aid_put)


    ## 2020-01-31


    > Add support for `applicant.agreement.attachments`

    >

    > - [POST
    /accounts/{oid}/signup](http://localhost:8080/#operation/accounts_oid_signup_post)

    >


    > Add support for enabling MFA (OOB) for auth users.

    >

    > - [POST /auth/users](#operation/aid_auth_users_post)


    ## 2019-12-31


    > Extend the AccountApplicant with support for

    > `promo_code` and utm campaign codes.

    >

    > - [POST /signup](#operation/accounts_oid_signup_post)


    ## 2019-11-31


    > Add support for creating client with description

    >

    > - [POST /auth/clients](#operation/aid_auth_clients_post)


    ## 2019-09-31


    > Extend settings with PayEx connections

    >

    > - [GET /management/settings](#operation/aid_account_aid_get)

    > - [GET /management/accounts](#operation/aid_mgmnt_accounts_get)


    ## 2019-07-31


    > Add new endpoints for managing PayEx connection

    >

    > - [POST
    /management/settings/connections/payex/{payment_product_type}](#operation/aid_account_settings_connections_payex_post)

    > - [GET
    /management/settings/connections/payex/{payment_product_type}](#operation/aid_account_settings_connections_payex_get)

    > - [POST
    /management/settings/connections/payex/{payment_product_type}/{callback_reference}](#operation/aid_account_settings_connections_payex_callback_post)


    ## 2019-06-31


    > The scope required for accessing endpoint has changed,

    > we will continue to support the old scopes but they was removed from

    > the documentation


    > Support `search`, `limit` and `starting_after` query parameter

    > when listing partner accounts

    >

    > - [GET /management/accounts](#operation/aid_mgmnt_accounts_get)


    > Support for issuing exchange token for a sub-account,

    > to allow partner accounts to manage sub accounts.

    >

    > - [POST
    /auth/impersonate_token](#operation/aid_auths_oauth_exchange_token_post)


    ## 2019-05-31


    > Support for including a Refresh Token when requesting

    > an Access Token. Use `grant-type=refresh_token` to get an Access Token

    > from a Refresh Token.

    >

    > - [POST /auth/token](#operation/aid_auths_oauth_token_post)


    > Support for revoking a Refresh Token

    >

    > - [POST /auth/revoke](#operation/aid_auths_oauth_revoke_post)


    ## 2018-12-17


    > Rename typo in Account definition

    > All `bussiness_name` properties renamed to `business_name`
  contact:
    name: API Integration Support
    email: integration@dintero.com
  version: LATEST
  license:
    name: UNLICENSED
    url: https://dintero.com
security:
  - JWT: []
tags:
  - name: auth users
    x-displayName: users
    description: Admin users
  - name: account users
    x-displayName: users
    description: |
      Admin user for an account. The user is allowed to manage the
      account and administrate access via client/grants
  - name: onboarding
    description: |
      Onboard a merchant to the Dintero platform
  - name: account-onboarding
    x-displayName: account
    description: |
      Manage the signup of a new merchant account
  - name: account-onboarding-prefill
    x-displayName: account-prefill
    description: |
      Manage prefilled signup of a new merchant account
  - name: account-connections
    x-displayName: connections
    description: |
      Manage setup of account connections to external services
  - name: account-settings
    x-displayName: settings
    description: Manage account settings
  - name: connection-onboarding
    x-displayName: connections
    description: |
      Manage the setup of a new account connection
  - name: account-fraud-search
    x-displayName: searches
    description: |
      Search external registers for any issues related to the account
  - name: account-assets
    x-displayName: assets
    description: |
      Manage account assets
  - name: account-locations
    x-displayName: locations
    description: |
      Manage account locations
  - name: account-terminals
    x-displayName: terminals
    description: |
      Manage account terminals
  - name: account-cdd
    x-displayName: due diligence
    description: |
      Manage account KYC/AML cases
  - name: approvals
    x-displayName: approvals
    description: |
      Account approval processes
  - name: price-packages
    x-displayName: price packages
    description: Manage price packages for the account
  - name: payout-destinations
    x-displayName: payout destinations
    description: |
      Payout destinations
  - name: payout-instructions
    x-displayName: payout instructions
    description: |
      A payout instruction is owned by and entity and instructs how
      payout will be done to the entity

      The instructions includes information about transfer instruments is
      enabled and what transfer instruments to use given a specific payout
      currency
  - name: account-price-package
    x-displayName: price package
    description: Manage price package on the account
paths:
  /account/user:
    get:
      operationId: account_user_get
      summary: Authenticated User
      description: |
        Get public and private profile information when authenticated
        through Bearer auth

        > Use ID token as Bearer token if the user was authenticated
        > externally. The ID token must include a `email` claim that
        > identifies the account user.

        scopes:
        - openid
        - aws.cognito.signin.user.admin
      x-scopes:
        - openid
        - aws.cognito.signin.user.admin
      tags:
        - account users
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AuthenticatedAccountUserResponse'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /account/user/mfa/sms:
    put:
      operationId: account_user_mfa_sms_put
      summary: Configure SMS MFA
      description: |
        Update the user SMS MFA configuration
      x-scopes:
        - openid
        - aws.cognito.signin.user.admin
      tags:
        - account users
      security:
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - enabled
              properties:
                phone_number:
                  type: string
                  pattern: ^\+?\d{5,15}$
                  description: |
                    mobile number of a person / company, ITU/E.123 format with
                    international prefix (+PPNNNNNNNNN...)

                    **required** when enabling SMS MFA
                enabled:
                  type: boolean
        required: true
      responses:
        '201':
          description: Accepted
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /account/user/mfa/totp:
    put:
      operationId: account_user_mfa_totp_put
      summary: Configure TOTP MFA
      description: |
        Update the user TOTP MFA configuration
      x-scopes:
        - openid
        - aws.cognito.signin.user.admin
      tags:
        - account users
      security:
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - enabled
              properties:
                user_code:
                  type: string
                  description: >
                    The one time password computed using the secret code
                    returned by [Associate TOTP
                    MFA](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html)
                enabled:
                  type: boolean
        required: true
      responses:
        '201':
          description: Accepted
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /account/user/password:
    post:
      operationId: account_user_password_put
      summary: Change User password
      description: |
        Change the password for the account user

        scopes:
        - openid
      x-scopes:
        - openid
      tags:
        - account users
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - previous_password
                - proposed_password
              properties:
                previous_password:
                  type: string
                proposed_password:
                  type: string
      security:
        - JWT: []
      responses:
        '201':
          description: Accepted
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/auth/mfa/challenge:
    post:
      operationId: aid_auth_mfa_challenge_post
      summary: Challenge request
      description: |
        Request a challenge for multi-factor authentication (MFA) based
        on the challenge types supported by the user.

        The challenge_type is how the user will get the challenge
        and prove possession. Supported challenge types include:

          - `oob`: for SMS messages or out-of-band (OOB)

        Use the response to request access token from the
        [auth/token](#operation/aid_auths_oauth_token_post) endpoint
        with `grant_type=mfa_oob`

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/mfa
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/mfa
      tags:
        - challenge
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthChallenge'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MfaChallengeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/auth/mfa/recovery:
    post:
      operationId: aid_auth_mfa_recovery_post
      summary: Recovery
      description: |
        Request a recovery for user with multi-factor
        authentication (MFA) enabled.

        A recovery is done with two out-of-band (OOB) challenges
        over different channels.

        Use the response to request access token from the
        [auth/token](#operation/aid_auths_oauth_token_post) endpoint
        with `grant_type=mfa_oob`.

        A `403 status` with `mfa_required` error will be returned on success,
        use the response to request a new challenge from the
        [auth/mfa/challenge](#operation/aid_auth_mfa_challenge_post) endpoint.

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/mfa
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/mfa
      tags:
        - challenge
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Challenge'
                - required:
                    - username
                    - audience
                  properties:
                    username:
                      type: string
                      description: The end user's identifier.
                    audience:
                      type: string
                      example: https://api.dintero.com/v1/accounts/P00000000
                      description: >
                        The unique identifier of the target API you want to
                        access.

                        The audience must be a grant associated with the client
                        used

                        in the request
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MfaRecoveryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/auth/users:
    post:
      operationId: aid_auth_users_post
      summary: Create User
      description: |
        Create a new user

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      tags:
        - auth users
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - $ref: '#/components/schemas/AuthenticatedUser'
                - required:
                    - password
                  properties:
                    password:
                      type: string
                      description: The user's password
                      minLength: 8
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/UserCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/auth/users/{username}:
    put:
      operationId: aid_auth_users_username_put
      summary: Update user
      description: |
        Update existing user with new password

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      tags:
        - auth users
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: username
          description: |
            Username identifying the user
          in: path
          required: true
          schema:
            type: string
            maxLength: 255
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - required:
                    - password
                  properties:
                    password:
                      type: string
                      description: The user's password
                      minLength: 8
                    links:
                      $ref: '#/components/schemas/AuthUserLinks'
                    mfa:
                      $ref: '#/components/schemas/AuthUserMfa'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/UserUpdated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: aid_auth_users_username_delete
      summary: Delete user
      description: |
        Delete existing user

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
      tags:
        - auth users
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: username
          description: |
            Username identifying the user
          in: path
          required: true
          schema:
            type: string
            maxLength: 255
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/UserDeleted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/auth/users/{username}/change_username:
    post:
      operationId: aid_auth_users_username_change_username_post
      summary: Change username
      description: |
        Update existing users username

        scopes:
        - admin:accounts
      x-scopes:
        - admin:accounts
      tags:
        - auth users
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: username
          description: |
            Username identifying the user
          in: path
          required: true
          schema:
            type: string
            maxLength: 255
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - required:
                    - username
                  properties:
                    username:
                      type: string
                      description: The user's new usernname
                      minLength: 1
                      maxLength: 255
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/UserUpdated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/assets:
    post:
      operationId: aid_account_assets_post
      summary: Create asset upload url
      description: |
        Create an upload URL that can be used to transfere the asset

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/assets
        - write:dintero:/management/accounts
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/assets
        - write:dintero:/management/accounts
      tags:
        - account-assets
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - size_bytes
                - mime_type
              properties:
                size_bytes:
                  type: integer
                  minimum: 1
                  maximum: 2000000
                  description: Size in bytes of the asset file to be uploaded.
                mime_type:
                  type: string
                  description: MIME type of the asset to be uploaded
                  enum:
                    - image/png
                    - image/jpeg
                    - application/pdf
                    - application/vnd.ms-excel
                    - >-
                      application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                    - text/csv
                access:
                  type: string
                  description: Who can access the file?
                  enum:
                    - private
                    - public
                  default: public
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AssetUploadUrl'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/locations:
    post:
      operationId: aid_account_management_locations_post
      summary: Create Location
      description: |
        Create a location

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-locations
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationInput'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Location'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_management_locations_get
      summary: Get Locations
      description: |
        Get details about the account locations

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-locations
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/PayoutDestinationId'
        - $ref: '#/components/parameters/LocationIncludes'
        - $ref: '#/components/parameters/startingAfter'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/LocationCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/locations/{location_id}:
    get:
      operationId: aid_account_management_locations_lid_get
      summary: Location details
      description: |
        Get location details

        scopes:
        - admin:accounts
        - read:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/LocationIdPath'
      tags:
        - account-locations
      x-scopes:
        - admin:accounts
        - read:accounts
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Location'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_account_management_locations_lid_put
      summary: Update Location
      description: |
        Update location properties
        scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-locations
      x-scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/LocationIdPath'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationUpdateInput'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Location'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: aid_account_management_locations_lid_delete
      summary: Delete location
      description: |
        Delete single location

        scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/LocationIdPath'
      tags:
        - account-locations
      x-scopes:
        - admin:accounts
        - write:accounts
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Location'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/terminals:
    post:
      operationId: aid_account_management_terminals_post
      summary: Create Terminal
      description: |
        Create a terminal

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-terminals
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TerminalInput'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Terminal'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_management_terminals_get
      summary: Get Terminals
      description: |
        Get details about the account terminals

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-terminals
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/PayoutDestinationId'
        - $ref: '#/components/parameters/LocationId'
        - $ref: '#/components/parameters/TerminalIncludes'
        - $ref: '#/components/parameters/startingAfter'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/TerminalCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/terminals/{terminal_id}:
    get:
      operationId: aid_account_management_terminals_termid_get
      summary: Terminal details
      description: |
        Get terminal details

        scopes:
        - admin:accounts
        - read:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/TerminalIdPath'
      tags:
        - account-terminals
      x-scopes:
        - admin:accounts
        - read:accounts
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Terminal'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_account_management_terminals_termid_put
      summary: Update Terminal
      description: |
        Update terminal properties
        scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-terminals
      x-scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/TerminalIdPath'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TerminalUpdateInput'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Terminal'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: aid_account_management_terminals_termid_delete
      summary: Delete terminal
      description: |
        Delete single terminal

        scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/TerminalIdPath'
      tags:
        - account-terminals
      x-scopes:
        - admin:accounts
        - write:accounts
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Terminal'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/price-package:
    get:
      operationId: aid_account_price_package_get
      summary: Price package details
      description: |
        Get details of price package set for the account.

        scopes:
          - admin:accounts
          - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-price-package
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PricePackage'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings:
    put:
      operationId: aid_account_settings_put
      summary: Update Account Settings
      description: |
        Update account settings

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-settings
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  $ref: '#/components/schemas/AccountCompany'
                billing:
                  $ref: '#/components/schemas/AccountBilling'
                services:
                  type: object
                  properties:
                    checkout:
                      type: object
                      required:
                        - features
                      properties:
                        features:
                          $ref: '#/components/schemas/CheckoutServiceFeaturesRequest'
                    payout:
                      required:
                        - features
                      properties:
                        features:
                          $ref: '#/components/schemas/PayoutServiceFeaturesRequest'
                onboarding:
                  $ref: '#/components/schemas/AccountOnboarding'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/AccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_aid_get
      summary: Get Account settings
      description: |
        Get details about the account

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-settings
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/approvals/payments:
    get:
      operationId: aid_management_settings_approvals_payment_get
      summary: |
        List payment approvals
      description: |

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - approvals
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: case_status
          description: |
            filter CDDs by status
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - DECLINED
                - UNDER_MANUAL_REVIEW
                - AUTOMATIC_REVIEW
                - WAITING_FOR_SIGNATURE
                - WAITING_FOR_DECLARATION
                - ERROR
                - ARCHIVED
                - WAITING_FOR_DETAILS
                - TERMINATED
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalsPaymentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_management_settings_approvals_payment_post
      summary: |
        New payment approval
      description: >
        Initiate an application for using Dintero payments . The application

        will contain a link to an URL where the signatory of the account will
        need

        to finish submission of the case contract and sign it. Dintero will
        perform

        a KYC, AML and bank ownership check before the application

        `case_status`will be updated to `ACTIVE`. Once the application is
        approved

        we will set up your account for using Dintero payments. Note that not
        all

        payment methods are available in all countries, and that for some
        payments

        methods some processing time must be expected before you can start
        accepting

        payments.


        scopes:

        - admin:accounts

        - write:accounts

        - write:accounts:/management/settings/approvals
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/management/settings/approvals
      tags:
        - approvals
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApprovalsPayment'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/ApprovalsPaymentCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/approvals/payout-destinations:
    get:
      operationId: aid_management_settings_approvals_payout_destinations_get
      summary: |
        List seller approvals
      description: |

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - approvals
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: payout_destination_id
          description: |
            filter CDDs by payout_destination_id
          in: query
          required: false
          schema:
            type: string
        - name: case_status
          description: |
            filter CDDs by status
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - DECLINED
                - UNDER_MANUAL_REVIEW
                - AUTOMATIC_REVIEW
                - WAITING_FOR_SIGNATURE
                - WAITING_FOR_DECLARATION
                - ERROR
                - ARCHIVED
                - WAITING_FOR_DETAILS
                - TERMINATED
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalsPayoutDestinationList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      servers:
        - url: https://api.dintero.com/v1
    post:
      operationId: aid_management_settings_approvals_payout_destinations_post
      summary: |
        New seller approval
      description: >
        Initiate an application for a new seller for Dintero Payout with

        split-payment. The application will contain a link to an URL where the

        signatory of the seller will need to finish submission of the

        case contract and sign it. Dintero will perform a KYC, AML and bank
        ownership

        check on the seller before the application `case_status`will be

        updated to `ACTIVE`. Once the application is approved, the payout

        destination will be added automatically to the Dintero Payout service.


        scopes:

        - admin:accounts

        - write:accounts

        - write:accounts:/management/settings/approvals


        ---
          For testing purposes it is possible to auto-approve or decline a new seller
          by adding one of the following values to `payout_destination_description`:

          - "AUTO_APPROVE": Approves the case automatically, the case status will be set to `ACTIVE`
          - "AUTO_DECLINE": Declines the case automatically, the case status will be set to `DECLINED`
          - "AUTO_WAITING_FOR_SIGNATURE": Leaves the signature check for the case, the case status will be set to `WAITING_FOR_SIGNATURE`

        NOTE: This behavior is only available in test mode, i.e. with an `aid`
        prefixed with "T".
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/management/settings/approvals
      tags:
        - approvals
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApprovalsPayoutDestination'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/ApprovalsPayoutDestinationCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      servers:
        - url: https://api.dintero.com/v1
  /accounts/{aid}/management/settings/approvals/payout-destinations/{id}:
    delete:
      operationId: aid_management_settings_approvals_payout_destinations_id_delete
      summary: |
        Archive seller approval
      description: |
        Archive approval where status is one of
        - ACTIVE
        - DECLINED
        - WAITING_FOR_SIGNATURE
        - WAITING_FOR_DECLARATION
        - ERROR

        This will remove the approval from the list of approvals, updates to the
        approval will be ignored.

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/management/settings/approvals
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/management/settings/approvals
      tags:
        - approvals
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: id
          description: Approval ID.
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: delete_active
          description: Delete active seller.
          in: query
          schema:
            type: boolean
      security:
        - JWT: []
      responses:
        '204':
          description: The resource was archived.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      servers:
        - url: https://api.dintero.com/v1/
    get:
      operationId: aid_management_settings_approvals_payout_destinations_id_get
      summary: |
        Get seller approval
      description: |
        Get a single seller approval by ID.

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - approvals
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: id
          description: Approval ID
          in: path
          required: true
          schema:
            type: string
            format: uuid
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalsPayoutDestination'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      servers:
        - url: https://api.dintero.com/v1/
  /accounts/{aid}/management/settings/cdd/cases:
    get:
      operationId: aid_management_settings_cdd_cases_get
      summary: |
        Get list of due diligence cases
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-cdd
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: products
          description: |
            filter CDDs by product
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - payout
                - checkout
        - name: payout_destination_id
          description: |
            filter CDDs by payout_destination_id, use * as a wildcard
          in: query
          required: false
          schema:
            type: string
        - name: case_status
          description: |
            filter CDDs by status
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - DECLINED
                - UNDER_MANUAL_REVIEW
                - AUTOMATIC_REVIEW
                - WAITING_FOR_SIGNATURE
                - WAITING_FOR_DECLARATION
                - ERROR
                - ARCHIVED
                - WAITING_FOR_DETAILS
                - TERMINATED
        - name: actions_on_approval
          description: |
            filter CDDs by actions to take on approval
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - enable_payout_account
                - enable_checkout_account
                - create_payout_destination
        - name: includes
          in: query
          description: >
            Include aditional data in the returned data that are by default
            excluded
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.case.contracts
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/CustomerDueDiligenceList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_management_settings_cdd_cases_post
      summary: |
        Create a due diligence case
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-cdd
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerDueDiligenceCase'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/CustomerDueDiligenceCaseCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/cdd/cases/{id}/callback:
    post:
      operationId: aid_management_settings_cdd_cases_callback
      summary: |
        Post updated case
      description: |
        Performs a GET on CDD Service to get the updated case (ignores body).
      tags:
        - account-cdd
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: id
          description: Case ID
          in: path
          required: true
          schema:
            type: string
        - name: signature
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/mastercard-3ds:
    post:
      operationId: aid_account_settings_connections_mastercard_3ds_post
      summary: Mastercard 3D-Secure signup
      description: |
        Enrol the merchant into 3D-Secure for Mastercard
        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/Mastercard3DSConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Mastercard3DSConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_mastercard_3ds_get
      summary: Get Mastercard 3D-Secure signup status
      description: |
        Check status for enrolling the merchant into 3D-Secure for Mastercard
        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: sync
          in: query
          required: false
          description: >
            Use this parameter to check the status of the enrollment in the 3rd
            party system and update

            the status in the Dintero system.
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/Mastercard3DSConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/bambora-payfac:
    post:
      operationId: aid_account_settings_connections_bambora_payfac_post
      summary: Bambora PayFac signup
      description: |
        Initialize Bambora PayFac signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: force_new_signup
          in: query
          description: >
            Will allow signing up again even if there are previous pending
            signups.
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/BamboraPayFacConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/bambora-direct:
    post:
      operationId: aid_account_settings_connections_bambora_direct_post
      summary: Bambora Direct signup
      description: |
        Initialize Bambora Direct signup

        scopes:
          - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/BamboraDirectConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_bambora_direct_get
      summary: Get Bambora signup status
      description: |
        Get details about the Bambora configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/bambora:
    post:
      operationId: aid_account_settings_connections_bambora_post
      summary: Bambora signup
      description: >
        **DEPRECATED** 


        Old signup for bambora. Please use Bambora Direct or Bambora Payfac for
        new signups.


        Requires the account company to be configured with `organization_number`

        [PUT /management/settings](#operation/aid_account_settings_put)


        scopes:

        - admin:accounts

        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/BamboraConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_bambora_get
      summary: Get Bambora signup status
      description: |
        Get details about the Bambora configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/bambora/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_bambora_callback_post
      summary: Bambora Callback
      description: |
        Handle callback from Bambora signup

        Completes the Bambora signup, enables Bambora for Checkout

        scopes:
        - write:accounts:/management/settings/connections/bambora
        - write:accounts
      x-scopes:
        - write:accounts:/management/settings/connections/bambora
        - write:accounts
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: callback_reference
          in: path
          required: true
          description: Authorization header Bearer JWT payload `sub`
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BamboraConnectionCallback'
        required: true
      responses:
        '200':
          description: Signup
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/bambora-ipp-submerchants:
    get:
      operationId: aid_account_settings_connections_bambora_ipp_get
      summary: List Bambora IPP submerchants
      description: >
        List Bambora in-person payment (IPP) submerchant onboardings for the
        account.


        scopes:

        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: status
          in: query
          description: |
            Filter onboardings by status
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - pending
                - approved
                - rejected
        - name: includes
          in: query
          description: |
            Include additional data in the response

            - `locations` - Include location IDs associated with the submerchant
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - locations
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/BamboraIppSubmerchantCollectionResponse'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/collector:
    post:
      operationId: aid_account_settings_connections_collector_post
      summary: Collector Bank signup
      description: |
        Initialize Collector Bank signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/CollectorConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/CollectorConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_collector_get
      summary: Get Collector Bank signup status
      description: |
        Get details about the Collector Bank configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/CollectorConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/collector/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_collector_callback_post
      summary: Collector Bank Callback
      description: |
        Handle callback from Collector Bank signup

        Completes the Collector Bank signup, enables Collector Bank for Checkout

        scopes:
        - write:accounts:/management/settings/connections/collector
        - write:accounts
        - admin:dintero
      x-scopes:
        - write:accounts:/management/settings/connections/collector
        - write:accounts
        - admin:dintero
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: callback_reference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectorConnectionCallback'
        required: true
      responses:
        '200':
          description: Signup
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/common:
    post:
      operationId: aid_account_settings_connections_common_post
      summary: Common signup
      description: |
        Initialize Common signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  allOf:
                    - $ref: '#/components/schemas/CommonConnectionSignup'
                    - type: object
                      properties:
                        applicant:
                          type: object
                          properties:
                            social_security_number:
                              maxLength: 11
                              minLength: 11
                              type: string
                              description: >
                                The social security number of the applicant.
                                Only

                                needed for Vipps.
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/CommonConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_common_get
      summary: Get Common signup status
      description: |
        Get details about the Common configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/CommonConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/common/signup:
    post:
      operationId: aid_account_settings_connections_common_signup_url_post
      summary: Get link to the Common signup object with sensitive signup data
      description: |
        Endpoint used by the Dintero Onboarding Team, get link to the common
        configuration signup object.

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          description: Common connection
          content:
            application/json:
              schema:
                type: object
                properties:
                  ref:
                    description: Temporary link to signup object
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/dintero-psp:
    post:
      operationId: aid_account_settings_connections_dintero_psp_post
      summary: Dintero PSP signup
      description: |
        Initialize Dintero PSP signup.

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/DinteroPspConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/DinteroPspConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_dintero_psp_get
      summary: Get Dintero PSP signup status
      description: |
        Get details about the Dintero PSP configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/DinteroPspConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/instabank:
    post:
      operationId: aid_account_settings_connections_instabank_post
      summary: Instabank signup
      description: |
        Initialize Instabank signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/InstabankConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/InstabankConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_instabank_get
      summary: Get Instabank signup status
      description: |
        Get details about the Instabank

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/InstabankConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/instabank/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_instabank_callback_post
      summary: Instabank Callback
      description: |
        Handle callback from Instabank signup

        Completes the Instabank signup, enables Instabank for Checkout

        scopes:
        - write:accounts:/management/settings/connections/instabank
      x-scopes:
        - write:accounts:/management/settings/connections/instabank
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: callback_reference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstabankConnectionCallback'
        required: true
      responses:
        '202':
          description: Callback handled
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/klarna:
    post:
      operationId: aid_account_settings_connections_klarna_post
      summary: Klarna signup
      description: |
        Initialize Klarna signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: force_new_signup
          in: query
          description: >
            Will allow signing up again even if there are previous pending
            signups.
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/KlarnaConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KlarnaConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_klarna_get
      summary: Get Klarna signup status
      description: |
        Get details about the Klarna configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KlarnaConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/kravia:
    post:
      operationId: aid_account_settings_connections_kravia_post
      summary: Kravia Signup
      description: |
        Initialize Kravia signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/KraviaConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KraviaConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_account_settings_connections_kravia_put
      summary: Kravia Update
      description: |
        Update Kravia connection configuration.

        Currently supports updating invoice delivery mode.

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KraviaConnectionUpdate'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KraviaConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_kravia_get
      summary: Get Kravia signup status
      description: |
        Get details about the Kravia configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KraviaConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/two:
    post:
      operationId: aid_account_settings_connections_two_post
      summary: Two signup
      description: |
        Initialize Two signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: force_new_signup
          in: query
          description: >
            Will allow signing up again even if there are previous pending
            signups.
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/TwoConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/TwoConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_two_get
      summary: Get Two signup status
      description: |
        Get details about the Two configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/TwoConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/vipps-psp:
    post:
      operationId: aid_account_settings_connections_vipps_psp_post
      summary: Vipps PSP Signup
      description: |
        Initialize Vipps PSP signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/VippsPspConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VippsPspConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_vipps_psp_get
      summary: Get Vipps PSP signup status
      description: |
        Get details about the Vipps PSP configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VippsPspConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/applepay:
    post:
      operationId: aid_account_settings_connections_apple_pay_post
      summary: Apple Pay Signup
      description: |
        Initialize Apple Pay signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/ApplePayConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApplePayConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_account_settings_connections_apple_pay_put
      summary: Apple Pay Update
      description: |
        Update Apple Pay connection with additional domains

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplePayConnectionUpdate'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApplePayConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_apple_pay_get
      summary: Get Apple Pay signup status
      description: |
        Get details about the Apple Pay configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ApplePayConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/payex/{payment_product_type}:
    post:
      operationId: aid_account_settings_connections_payex_post
      summary: PayEx signup
      description: |
        Initialize PayEx signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: payment_product_type
          in: path
          required: true
          schema:
            type: string
            enum:
              - payex.creditcard
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/PayExConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PayExConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_payex_get
      summary: Get PayEx signup status
      description: |
        Get details about the Vipps

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: payment_product_type
          in: path
          required: true
          schema:
            type: string
            enum:
              - payex.creditcard
      responses:
        '200':
          $ref: '#/components/responses/PayExConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/payex/{payment_product_type}/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_payex_callback_post
      summary: PayEx Callback
      description: |
        Handle callback from PayEx signup

        Completes the PayEx signup, enables PayEx for Checkout

        scopes:
        - write:accounts:/management/settings/connections/payex
        - write:accounts
      x-scopes:
        - write:accounts:/management/settings/connections/payex
        - write:accounts
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: payment_product_type
          in: path
          required: true
          schema:
            type: string
            enum:
              - payex.creditcard
        - name: callback_reference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayExConnectionCallback'
        required: true
      responses:
        '200':
          description: Signup
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/payex/overrides:
    put:
      operationId: aid_account_settings_connections_payex_overrides_put
      summary: PayEx overrides
      description: |
        Add PayEx overrides for pre-existing connection

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                overrides:
                  type: array
                  minItems: 0
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - store_id
                      - credentials
                    properties:
                      store_id:
                        type: string
                        example: '999'
                      credentials:
                        type: object
                        required:
                          - payee_id
                        properties:
                          payee_id:
                            type: string
                            example: 803-518c-4fa0-9b0f-177e871f21dd
                          token:
                            type: string
                            example: >-
                              eb4835ac0b0835ad8f886c0b077a49bc28f200ac03ba543ebea8bba8a62e143d
                          subsite:
                            type: string
                            example: '1234678'
        required: true
      responses:
        '200':
          description: Override
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/santander/overrides:
    put:
      operationId: aid_account_settings_connections_santander_overrides_put
      summary: Santander overrides
      description: |
        Add Santander overrides for pre-existing connection

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                overrides:
                  type: array
                  minItems: 0
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - store_id
                      - credentials
                    properties:
                      store_id:
                        type: string
                        example: '999'
                      credentials:
                        type: object
                        required:
                          - store_email
                          - store_token
                        properties:
                          store_email:
                            type: string
                          store_token:
                            type: string
        required: true
      responses:
        '200':
          description: Override
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/swish:
    post:
      operationId: aid_account_settings_connections_swish_post
      summary: Swish signup
      description: |
        Initialize Swish signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/SwishConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/SwishConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_swish_get
      summary: Get Swish signup status
      description: |
        Get details about the Swish configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          $ref: '#/components/responses/SwishConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/swish-payfac:
    post:
      operationId: aid_account_settings_connections_swish_payfac_post
      summary: Swish payfac signup
      description: |
        Initialize Swish signup

        Requires a case_id created from a payment approval

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/SwishPayfacConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/SwishConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/swish/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_swish_callback_post
      summary: Swish Callback
      description: |
        Handle callback from Swish signup

        Completes the Swish signup, enables Swish for Checkout

        scopes:
        - write:accounts:/management/settings/connections/swish
      x-scopes:
        - write:accounts:/management/settings/connections/swish
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: callback_reference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwishConnectionCallback'
        required: true
      responses:
        '200':
          description: Signup
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/swish/overrides:
    put:
      operationId: aid_account_settings_connections_swish_overrides_put
      summary: Swish overrides
      description: |
        Add Swish overrides for pre-existing connection

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                overrides:
                  type: array
                  minItems: 0
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - store_id
                      - credentials
                    properties:
                      store_id:
                        type: string
                        example: '999'
                      credentials:
                        type: object
                        required:
                          - swish_number
                        properties:
                          swish_number:
                            type: string
        required: true
      responses:
        '200':
          description: Override
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/vipps:
    post:
      operationId: aid_account_settings_connections_vipps_post
      summary: Vipps signup
      description: |
        Initialize Vipps signup

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VippsConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_account_settings_connections_vipps_put
      summary: Vipps signup
      description: |
        Reinitialize Vipps signup if connection is not enabled.

        Requires the account company to be configured with `organization_number`
        [PUT /management/settings](#operation/aid_account_settings_put)

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VippsConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_vipps_get
      summary: Get Vipps signup status
      description: |
        Get details about the Vipps

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VippsConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/vipps/{callback_reference}:
    post:
      operationId: aid_account_settings_connections_vipps_callback_post
      summary: Vipps Callback
      description: |
        Handle callback from Vipps signup

        Completes the Vipps signup, enables Vipps for Checkout

        scopes:
        - write:accounts:/management/settings/connections/vipps
      x-scopes:
        - write:accounts:/management/settings/connections/vipps
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: callback_reference
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VippsConnectionCallback'
        required: true
      responses:
        '200':
          description: Signup
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/vipps/overrides:
    put:
      operationId: aid_account_settings_connections_vipps_overrides_put
      summary: Vipps overrides
      description: |
        Add Vipps overrides for pre-existing connection

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                overrides:
                  type: array
                  minItems: 0
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - store_id
                      - credentials
                    properties:
                      store_id:
                        type: string
                        example: '999'
                      credentials:
                        type: object
                        required:
                          - merchantSerialNumber
                        properties:
                          merchantSerialNumber:
                            type: string
                            example: '123456'
        required: true
      responses:
        '200':
          description: Override
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/visa-tokenization:
    post:
      operationId: aid_account_settings_connections_visa_tokenization_post
      summary: Visa Tokenization Signup
      description: |
        Initialize Visa Tokenization signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/VisaTokenizationConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VisaTokenizationConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_visa_tokenization_get
      summary: Get Visa Tokenization signup status
      description: |
        Get details about the Visa Tokenization configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VisaTokenizationConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/clicktopay:
    post:
      operationId: aid_account_settings_connections_visa_click_to_pay_post
      summary: Visa Click-to-pay Signup
      description: |
        Initialize Visa Click-to-pay signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/VisaClickToPayConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VisaClickToPayConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_visa_click_to_pay_get
      summary: Get Visa Click-to-Pay signup status
      description: |
        Get details about the Visa Click-to-Pay configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VisaClickToPayConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/management/settings/connections/mastercard-tokenization:
    post:
      operationId: aid_account_settings_connections_mastercard_tokenization_post
      summary: Mastercard Tokenization Signup
      description: |
        Initialize Mastercard Tokenization signup

        scopes:
        - admin:dintero
      x-scopes:
        - admin:dintero
      tags:
        - account-connections
        - connection-onboarding
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - signup
              properties:
                signup:
                  $ref: '#/components/schemas/MastercardTokenizationConnectionSignup'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MastercardTokenizationConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_account_settings_connections_mastercard_tokenization_get
      summary: Get Mastercard Tokenization signup status
      description: |
        Get details about the Mastercard Tokenization configuration

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account-connections
      parameters:
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MastercardTokenizationConnectionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/authorize:
    post:
      operationId: aid_auths_oauth_authorize_post
      summary: Authorize Passwordless link
      description: |
        This endpoint is used to authorize Passwordless link sent to user
        by email/sms.

        A valid request will redirect to
        This is the OAuth 2.0 grant that Client-side web apps
        utilize in order to access an API.
      tags:
        - authenticate
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: audience
          in: query
          required: true
          description: |
            The unique identifier of the target API you want to access.
          schema:
            type: string
        - name: scope
          in: query
          description: The scopes which you want to request authorization for.
          schema:
            type: string
            enum:
              - openid
        - name: response_type
          in: query
          required: true
          description: |
            This will specify the type of token you will receive at
            the end of the flow. Use token to get only an access_token

            If `response_type=token`, after the user authenticates with the
            provider, this will redirect them to your application callback URL
            while passing the access_token in the address location.hash.
            This is used for Single Page Apps and on Native Mobile SDKs.
          schema:
            type: string
            enum:
              - authenticate
        - name: client_id
          in: query
          required: true
          description: |
            Your application's Client ID.
          schema:
            type: string
        - name: state
          in: query
          description: |
            An opaque value the clients adds to the initial request that Dintero
            includes when redirecting the back to the client. This value must
            be used by the client to prevent CSRF attacks.
          schema:
            type: string
        - name: redirect_uri
          in: query
          description: |
            The URL to which Dintero will redirect the browser after
            authorization has been granted by the user.

            The `redirect_uri` value must be specified as a valid
            callback URL under your Client's Settings.
          schema:
            type: string
        - name: verification_code
          in: query
          description: one-time verification-code
          required: true
          schema:
            type: string
        - name: connection
          in: query
          description: The name of the connection configured to your client.
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '302':
          description: Found
          headers:
            Location:
              description: >
                Redirect URL, example:

                https://YOUR_APP/callback#access_token=TOKEN&state=STATE&token_type=TYPE&expires_in=SECONDS
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/client-grants:
    get:
      operationId: aid_auths_client_grants_get
      summary: Client grants collection
      description: |
        Manage your Client Grants (also called Client Credentials Grants).
        Using Client Grants, your Client can request an access token using
        its credentials (a Client ID and a Client Secret).
        The access token then represents your Client during API calls.

        Use the Grant type to limit how the grant can be used when requesting
        an access token. A Grant with type `password` can only be used when
        requesting an access token with grant_type set to `password`.

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - grants
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: audience
          description: |
            filter client grants by audience
          in: query
          required: false
          schema:
            type: string
            maximum: 1
        - name: client_id
          description: |
            filter client grants by client_id
          in: query
          required: false
          schema:
            type: string
            maximum: 1
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/GrantCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_auths_client_grants_post
      summary: Create client grant
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - grants
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Grant'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/GrantCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/client-grants/{id}:
    delete:
      operationId: aid_auths_client_grants_id_delete
      summary: |
        Delete client grant
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - grants
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: id
          in: path
          required: true
          description: |
            The id of the client grant to delete
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/GrantDeleted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/clients:
    get:
      operationId: aid_auth_clients_get
      summary: Clients collection
      description: |
        Retrieve a list of all client applications

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_auth_clients_post
      summary: Create Client
      description: |
        Creates a new client application.

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Client'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientWithSecret'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/clients/{id}:
    get:
      operationId: aid_auths_clients_id_get
      summary: Get Client
      description: |
        Retrieves a client by its id.

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: id
          in: path
          required: true
          description: |
            The id of the client
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: aid_auths_clients_id_delete
      summary: Delete Client
      description: |
        Deletes a client and all its related assets

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: id
          in: path
          required: true
          description: |
            The id of the client
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    patch:
      operationId: aid_auths_clients_id_patch
      summary: Update Client
      description: |
        Update client details

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: id
          in: path
          required: true
          description: |
            The id of the client
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientPatch'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/clients/{id}/rotate-secret:
    post:
      operationId: aid_auths_clients_id_rotate_post
      summary: Rotate a client secret.
      description: |
        Rotate a client secret.

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - clients
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: id
          in: path
          required: true
          description: |
            The id of the client
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ClientWithSecret'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/keys:
    get:
      operationId: aid_auths_keys_get
      summary: Get public keys
      description: |
        Retrieve the JSON Web Key Set (JWKS) that can be used
        to validate `access_token`

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - keys
      parameters:
        - $ref: '#/components/parameters/owner'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/KeysCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/oidc/authorize:
    get:
      operationId: aid_auths_oidc_authorize_get
      summary: Authorize with OIDC
      tags:
        - authenticate
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: audience
          in: query
          required: true
          description: >
            The unique identifier of the target API you want to access. The
            audience must have

            a Grant with OIDC configured
          schema:
            type: string
        - name: response_type
          in: query
          required: true
          schema:
            type: string
            enum:
              - code
        - name: client_id
          in: query
          required: true
          description: |
            The client_id of your application
          schema:
            type: string
        - name: redirect_uri
          in: query
          required: true
          description: >
            The URL to redirect after authorization has been granted by the
            user.
          schema:
            type: string
        - name: scope
          in: query
          description: Scope of the access request, space-separated list.
          schema:
            type: string
        - name: client_token
          in: query
          description: |
            Authorization token to use if no authorization header is included
          example: eyJhbGci...t7P4
          schema:
            type: string
      responses:
        '302':
          description: Found
          headers:
            Location:
              description: |
                Redirect URL, example:
                https://identityserver.example.com/access/auth?client_id=XXX...
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/oidc/token:
    post:
      operationId: aid_auths_oidc_token_post
      summary: Token verified by OIDC
      description: >
        Use this endpoint to obtains an access token by presenting its
        authorization

        grant


        scopes:

        - write:accounts:/auth/users
      x-scopes:
        - write:accounts:/auth/users
      tags:
        - authenticate
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - audience
                - code
                - grant_type
                - client_id
              properties:
                grant_type:
                  type: string
                  enum:
                    - authorization_code
                code:
                  type: string
                client_id:
                  type: string
                redirect_uri:
                  type: string
                  description: |
                    The redirect URL which the user agent is redirected to after
                    finishing a login.
                audience:
                  type: string
                  example: https://api.dintero.com/v1/accounts/P00000000
                  description: |
                    The unique identifier of the target API you want to access.
                    The audience must be a grant associated with the client that
                    has `oidc` configured
        required: true
      responses:
        '200':
          $ref: '#/components/responses/TokenGranted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/passwordless:
    post:
      operationId: aid_auth_account_passwordless_post
      summary: Passwordless
      description: |
        Passwordless connections do not require the user to
        remember a password. Instead, another mechanism is used
        to prove identity, such as a one-time code sent through
        email or SMS, every time the account user logs in.

        - The client_id/audience must have a grant with type
          `authorization_code` to allow sending verification-code
        - This endpoint is designed to be called from the client-side
          and is subjected to rate limits

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/passwordless
        - write:accounts:/auth/passwordless-sms
        - write:accounts:/auth/passwordless-email
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/passwordless
        - write:accounts:/auth/passwordless-sms
        - write:accounts:/auth/passwordless-email
      tags:
        - authenticate
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordLess'
        required: true
      security:
        - JWT: []
      responses:
        '204':
          description: Request processed
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/passwordless/code:
    post:
      operationId: aid_auth_passwordless_post
      summary: Passwordless Code
      description: |
        Passwordless connections do not require the user to
        remember a password. Instead, another mechanism is used
        to prove identity, such as a one-time code sent through
        email or SMS, every time the account user logs in.

        Use this endpoint to generate a one-time verification-code that can
        be sent to the user.

        The client_id/audience must have a grant with type
        `authorization_code` to allow creating a verification-code

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/passwordless/code
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/passwordless/code
      tags:
        - authenticate
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - required:
                    - audience
                    - client_id
                    - user_id
                  properties:
                    audience:
                      type: string
                      description: >
                        The unique identifier of the target API you want to
                        grant the user
                    client_id:
                      type: string
                      description: >
                        The client whoose grants will be granted to the user,
                        the
                    user_id:
                      type: string
                      description: |
                        The user_id / subject to grant access
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccessCode'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/redirect:
    post:
      operationId: aid_auths_oauth_redirect_post
      summary: Redirect with ID token
      description: |
        Use this endpoint to redirect to an URL with a
        ID token added.
      tags:
        - authenticate
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - redirect_uri
              properties:
                redirect_uri:
                  description: |
                    The HTTP URL to redirect to
                  format: uri
                  pattern: ^https?://.*
                custom_claims:
                  description: |
                    Include custom claims to the ID token. Custom claims will be
                    prefixed by `ext_`.
                  type: object
                  maxProperties: 5
                  additionalProperties:
                    type: string
                    minLength: 1
                    maxLength: 100
                claims:
                  type: array
                  items:
                    type: string
                    enum:
                      - name
                      - email
                  description: |
                    Specify optional claims to include in the ID token
        required: true
      responses:
        '200':
          $ref: '#/components/responses/RedirectUrl'
        '302':
          $ref: '#/components/responses/RedirectFound'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/revoke:
    post:
      operationId: aid_auths_oauth_revoke_post
      summary: Revoke Token
      description: >
        Use this endpoint to invalidate a Refresh Token if it has been
        compromised.


        scopes:

        - admin:accounts

        - write:accounts

        - create:accounts:auth:refresh_token
      x-scopes:
        - admin:accounts
        - write:accounts
        - create:accounts:auth:refresh_token
      tags:
        - authenticate
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokeToken'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/roles:
    get:
      operationId: aid_auths_roles_get
      summary: Roles collection
      description: |
        Retrieve filtered list of roles that can be assigned to users.

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - roles
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: search
          description: |
            lookup roles matching id, name and description
          in: query
          schema:
            type: string
        - name: name
          description: |
            lookup roles by name
          in: query
          schema:
            type: string
        - name: include_deleted
          description: |
            include deleted roles in the response
          in: query
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/RoleCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_auths_roles_post
      summary: Create a role
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - roles
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        $ref: '#/components/requestBodies/AuthRole'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/RoleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/roles/{role_id}:
    get:
      operationId: aid_auths_roles_id_get
      summary: |
        Get role
      description: |

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - roles
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: role_id
          in: path
          required: true
          description: |
            The id of the rule to delete
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/RoleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_auths_roles_id_put
      summary: |
        Update role
      description: |

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - roles
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: role_id
          in: path
          required: true
          description: |
            The id of the rule to delete
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/AuthRole'
      responses:
        '200':
          $ref: '#/components/responses/RoleUpdated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: aid_auths_roles_id_delete
      summary: |
        Delete role
      description: |
        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - roles
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: role_id
          in: path
          required: true
          description: |
            The id of the rule to delete
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/RoleDeleted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/auth/token:
    post:
      operationId: aid_auths_oauth_token_post
      summary: Get Token
      description: |
        Use this endpoint to directly request an access_token

        ### Client Access Token
        Use HTTP Basic authentication scheme for
        authenticating grant_type `client_credentials`, use
        client_id/client_secret as user/password.

        ### Code/Password Token
        Use HTTP Bearer authentication scheme for authenticating
        grant_type `authorization_code` or `password`, where the
        Bearer value must be a JWT toke with access to the token
        endpoint.

        ### Account User Token
        Use HTTP Bearer authentication scheme for authenticating
        grant_type `account_user_token`, where the Bearer value
        must be a account user JWT token.

        > Use ID token as Bearer toke if the user was authenticated
        > externally. The ID must include a `email` claim that
        > identifies the account user.

        ### Refresh Token
        Use HTTP Bearer authentication scheme for authenticating
        grant_type `refresh_token` where the Bearer value **must**
        be an Access Token for the clients that was used to create
        the Refresh Token.

        ### Multi-factor authentication (MFA)

        When a request is made to the endpoint to get an access token,
        normally you either get an error, or you get an access token.
        However, when the MFA is enabled, the endpoint may return a new
        error with `error.code: mfa_required`.

        When an `mfa_required` error is returned, the client must perform
        a `challenge`. This is done by sending a request to the
        [auth/mfa/challenge](#operation/aid_auth_mfa_challenge_post) endpoint

        To verify MFA using an OOB challenge, the client must make a request to
        this endpoint with `grant_type=mfa-oob`. Include the `oob_code` you
        received from the challenge response, as well as the `mfa_token` you
        received as part of mfa_required error.

        scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
        - write:accounts:/auth/users/no-mfa
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:accounts:/auth/users
        - write:accounts:/auth/users/no-mfa
      tags:
        - authenticate
      security:
        - clientAuth: []
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthToken'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - properties:
                      mfa_token:
                        type: string
                        description: >
                          Included in the response if `mfa_required` in
                          `error.code` is

                          returned. The client must then perform a `challenge`.
                          This

                          is done by sending a request to the

                          [/mfa/challenge](#operation/aid_auth_mfa_challenge_post)

                          endpoint.
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts:
    get:
      operationId: aid_mgmnt_accounts_get
      summary: Accounts collection
      description: |
        Get list of accounts filtered by the partner account

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: search
          description: |
            lookup accounts where search term match account id
          in: query
          schema:
            type: string
        - name: connection
          in: query
          description: >
            Filter accounts by payment connection applications.


            Will return an account if it has applied, been approved or rejected
            for all the given connections.


            Example:
            `connection=payex&connection=vipps&connection=collector&connection=swish`
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: connection_status
          in: query
          description: >
            Filter accounts by connection status


            Will return an account if all statuses are represented among the
            connections.


            If the `connection`-filter is set, it will filter on the status only
            on those connections.


            Example:
            `connection_status=pending&connection_status=enabled&connection_status=declined`
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: payment_option
          in: query
          description: >
            Filter account by enabled payment_options


            Will return an account if all the given payment_options are enabled
            on the account.


            Example:
            `payment_option=payex.creditcard&payment_option=vipps&payment_option=collector.invoice`
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: account_manager
          in: query
          description: |
            filter account by account_manager
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: country
          in: query
          description: |
            filter account by country
          example:
            - SE
            - 'NO'
          explode: true
          schema:
            type: array
            items:
              type: string
            minLength: 2
            maxLength: 2
        - name: services
          in: query
          description: |
            filter account by service status
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - checkout.status.enabled
                - checkout.status.disabled
                - payout.status.enabled
                - payout.status.disabled
                - customers.status.enabled
                - customers.status.disabled
                - discounts.status.enabled
                - discounts.status.disabled
                - shopping.status.enabled
                - shopping.status.disabled
                - receipts.status.enabled
                - receipts.status.disabled
                - wallets.status.enabled
                - wallets.status.disabled
                - ledger.status.enabled
                - ledger.status.disabled
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ExtendedAccountCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_mgmnt_accounts_post
      summary: Create Account
      description: |
        Create an account from an partner account

        scopes:
        - admin:accounts
        - write:accounts
        - public:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
        - public:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - properties:
                    partner_id:
                      type: string
                      description: |
                        The id of the partner to associate with the account
                      format: ^[PT]{1}(?=(?:.{3})$)[0-9]*$
                      readOnly: false
                    applicant:
                      $ref: '#/components/schemas/AccountApplicant'
                    invites:
                      type: array
                      description: |
                        Users to invite to the account by email
                      items:
                        type: string
                        format: email
                      example:
                        - user@example.com
                    invite_users:
                      type: array
                      description: |
                        Users to invite to the account with name and email
                      items:
                        type: object
                        description: |
                          The user to invite to the account with name and email
                        required:
                          - email
                          - first_name
                          - last_name
                        properties:
                          email:
                            type: string
                            description: |
                              The email of the user to invite
                            format: email
                            example: user@example.com
                          first_name:
                            type: string
                            description: |
                              The first name of the user to invite
                            example: John
                          last_name:
                            type: string
                            description: |
                              The last name of the user to invite
                            example: Doe
                    invitation_note:
                      type: string
                      description: |
                        A note to include in the invitation email
                      example: Welcome to the account
                    actions:
                      type: array
                      description: |
                        The actions to perform on the account
                        - 'send_invite' - send an invite to the applicant
                      items:
                        type: string
                        enum:
                          - send_invite
                      example:
                        - send_invite
                    custom_price_package:
                      type: object
                      description: |
                        Custom price package to apply to the account
                      allOf:
                        - $ref: '#/components/schemas/PricePackageCustomCreateData'
                - $ref: '#/components/schemas/Account'
                - $ref: '#/components/schemas/AccountPrivateDetails'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ExtendedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts/{aid}:
    delete:
      operationId: aid_mgmnt_accounts_aid_delete
      summary: Delete Account
      description: |
        Delete an account

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ExtendedAccountDeleted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: aid_accounts_aid_get
      summary: Get Account
      description: |
        Get account details

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ExtendedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_accounts_aid_put
      summary: Update Account
      description: |
        Update an account

        scopes:
        - admin:accounts
        - write:accounts
        - write:dintero:/management/accounts
      x-scopes:
        - admin:accounts
        - write:accounts
        - write:dintero:/management/accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - properties:
                    active:
                      type: boolean
                      description: |
                        Activation the account is only allowed by client with
                        scope `mgmnt:admin`
                      readOnly: false
                    partner_id:
                      type: string
                      description: >
                        Changing `partner_id` is only allowed by client with
                        scope

                        `mgmnt:admin`
                      format: ^[PT]{1}(?=(?:.{3})$)[0-9]*$
                      readOnly: false
                    configuration:
                      $ref: '#/components/schemas/PartnerConfiguration'
                    platform_type:
                      type: string
                      readOnly: false
                      description: >
                        Optional type of platform for merchants using split
                        payout.
                      enum:
                        - marketplace
                        - aggregator
                - $ref: '#/components/schemas/Account'
                - $ref: '#/components/schemas/AccountPrivateDetails'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/ExtendedAccountUpdated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts/{aid}/connections/{connection}/events:
    post:
      operationId: aid_accounts_aid_connections_events_post
      summary: Update connection status
      description: |
        Update an account connection with new status and add an event

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
        - name: connection
          description: |
            The connection to update.

            `payex.creditcard` is deprecated in favor of `payex`
          in: path
          required: true
          schema:
            type: string
            enum:
              - instabank
              - vipps
              - payex.creditcard
              - payex
              - collector
              - swish
              - bambora
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountConnectionEvent'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountConnectionEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts/{aid}/events:
    get:
      operationId: aid_mgmnt_accounts_events_get
      summary: Account events
      description: |
        Get list of account events

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
        - name: type
          description: |
            filter events by type
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - comment
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountEventCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_mgmnt_accounts_events_post
      summary: Create Account Event
      description: |
        Create an account event

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountEvent'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts/{aid}/partner_onboarding_link:
    post:
      operationId: aid_accounts_aid_partner_onboarding_link_post
      summary: Partner onboarding link
      description: |
        Partner onboarding link

        scopes:
        - admin:dintero
        - write:dintero:/management/accounts
      x-scopes:
        - admin:dintero
        - write:dintero:/management/accounts
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
      security:
        - JWT: []
      responses:
        '200':
          description: Onboarding link created
          content:
            application/json:
              schema:
                type: object
                properties:
                  partner_onboarding_url:
                    type: string
                    example: https://onboarding.dintero.com/?partner=P18400000
                  client_id:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/accounts/{aid}/price-packages:
    put:
      operationId: aid_account_settings_price_packages_put
      summary: Update price packages
      description: |
        Update the price packages available for the partner account.

        scopes:
          - admin:dintero
          - write:dintero:/management/accounts/price-packages
      x-scopes:
        - admin:dintero
        - write:dintero:/management/accounts/price-packages
      tags:
        - accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/accountId'
        - name: remove_default_price_package
          description: >
            Remove default price package from the partner configuration of the

            partner account.


            Please note that in order for the default price package to be

            successfully removed, both this query parameter needs to be set and
            the

            `default_price_package` in the request body needs to be empty or

            undefined—otherwise, a new default price package might be added.
          in: query
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - price_packages
              properties:
                price_packages:
                  type: array
                  items:
                    $ref: '#/components/schemas/PricePackageId'
                default_price_package:
                  type: string
                  description: >
                    Default price package to assign to new merchants.


                    Use the price package ID of the price package.


                    Please note that the price package must exist and the price
                    package ID

                    must be included in the `price_packages` array.
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PricePackageAccountCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/compliance-search/match:
    post:
      operationId: accounts_aid_search_match_post
      summary: MATCH register search
      description: >
        Search the MATCH register for any potential matches related to fraud for
        the account


        scopes:

        - read:accounts:/match
      x-scopes:
        - read:accounts:/match
      tags:
        - account-fraud-search
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: limit
          in: query
          description: |
            A limit on the number of objects to be returned. Limit can range
            between 1 and 100 items, and the default is 20 items.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: starting_after
          in: query
          description: >
            Zero-based offset to start from. A value of 10 will start with the
            11th item
          schema:
            type: integer
            minimum: 0
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchTerminationRequest'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MatchSearch'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/compliance-search/match/terminate:
    post:
      operationId: accounts_aid_search_match_terminate_merchant_post
      summary: Add a terminated merchant to MATCH
      description: |
        Add a terminated merchant to Mastercard MATCH

        scopes:
        - write:accounts:/match
      x-scopes:
        - write:accounts:/match
      tags:
        - account-fraud-search
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchTerminateMerchant'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MatchAddMerchantResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/compliance-search/match/{irn}:
    get:
      operationId: accounts_aid_search_match_get
      summary: Get MATCH register search
      description: |
        Get result of a MATCH inquiry by the inquiry reference number (IRN)

        scopes:
        - read:accounts:/match
      x-scopes:
        - read:accounts:/match
      tags:
        - account-fraud-search
      parameters:
        - $ref: '#/components/parameters/accountId'
        - name: irn
          description: >
            The inquiry reference number (IRN) returned by the termination
            inquiry to MATCH
          in: path
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: |
            A limit on the number of objects to be returned. Limit can range
            between 1 and 100 items, and the default is 20 items.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: starting_after
          in: query
          description: >
            Zero-based offset to start from. A value of 10 will start with the
            11th item
          schema:
            type: integer
            minimum: 0
            default: 0
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/MatchSearch'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/compliance-search/vmss:
    post:
      operationId: accounts_aid_search_vmss_post
      summary: VMSS register search
      description: >
        Search the Visa Merchant Screening Service register for any potential
        matches related to fraud for the account


        scopes:

        - read:accounts:/vmss
      x-scopes:
        - read:accounts:/vmss
      tags:
        - account-fraud-search
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VMSSInquiryRequest'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VMSSInquiry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{aid}/compliance-search/vmss/terminate:
    post:
      operationId: accounts_aid_search_vmss_terminate_merchant_post
      summary: Add a terminated merchant to VMSS
      description: |
        Add a terminated to Visa Merchant Screening Service

        scopes:
        - write:accounts:/vmss
      x-scopes:
        - write:accounts:/vmss
      tags:
        - account-fraud-search
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VMSSTermianteMerchantRequest'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/VMSSTerminateMerchant'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/users:
    get:
      operationId: aid_accounts_aid_mgmnt_users_get
      summary: Users Collection
      description: |
        Get list of all users with access to the account

        scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account users
      x-scopes:
        - admin:accounts
        - read:accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: expand
          in: query
          description: |
            Expand properties in the response
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
              enum:
                - roles
        - name: search
          in: query
          description: |
            Search for users by email or name
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountUserCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_accounts_aid_mgmnt_users_post
      summary: Create User
      description: |
        Create and grant user access to the account

        scopes:
        - admin:accounts
        - write:accounts
      x-scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account users
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: expand
          in: query
          description: |
            Expand properties in the response
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
              enum:
                - roles
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - email
              properties:
                email:
                  type: string
                  example: customer@example.com
                name:
                  type: string
                  example: John Doe
                scope:
                  type: array
                  items:
                    type: string
                    minItems: 1
                    example: receipts:write
                authentication_type:
                  description: |
                    - `external`: authentication of the user will be done
                      externally, Dintero will not manage user password. Requires
                      the account to be configured with `jwks.uri`.
                  type: string
                  enum:
                    - external
                roles:
                  type: array
                  items:
                    type: object
                    required:
                      - id
                    properties:
                      id:
                        type: string
                        description: Role ID
                  description: >
                    Create user with one or more roles. The authorization used
                    to

                    create the user must have access to use the role, i.e. have
                    the

                    same scopes as granted by the role.
                  example:
                    - id: 7b288256-f4f8-4370-bb63-7157652ead21
                    - id: 42e75d9b-af5a-41bc-bf21-ed30444a268e
                agreement:
                  $ref: '#/components/schemas/AccountAgreement'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountUserResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/users/{uid}:
    delete:
      operationId: aid_accounts_aid_mgmnt_users_delete
      summary: Delete User
      description: |
        Delete a user from an account

        scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account users
      x-scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/user'
        - name: expand
          in: query
          description: |
            Expand properties in the response
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
              enum:
                - roles
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountUserDeleted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: aid_accounts_aid_mgmnt_users_put
      summary: Update User
      description: |
        Update user

        scopes:
        - admin:accounts
        - write:accounts
      tags:
        - account users
      x-scopes:
        - admin:accounts
        - write:accounts
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/user'
        - name: expand
          in: query
          description: |
            Expand properties in the response
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
              enum:
                - roles
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - properties:
                    name:
                      type: string
                      example: John Doe
                    scope:
                      type: array
                      items:
                        type: string
                        minItems: 1
                        example: receipts:write
                    roles:
                      type: array
                      items:
                        type: object
                        required:
                          - id
                        properties:
                          id:
                            type: string
                            description: Role ID
                      description: >
                        Create user with one or more roles. The authorization
                        used to

                        create the user must have access to use the role, i.e.
                        have the

                        same scopes as granted by the role.
                      example:
                        - id: 7b288256-f4f8-4370-bb63-7157652ead21
                        - id: 42e75d9b-af5a-41bc-bf21-ed30444a268e
                    agreement:
                      $ref: '#/components/schemas/AccountAgreement'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AccountUserUpdated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/users/{uid}/activities:
    get:
      operationId: aid_accounts_aid_mgmnt_users_activities_get
      summary: Get user activity log
      description: |
        Get activities for User

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - account users
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/user'
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AuditEventCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/signup:
    post:
      operationId: accounts_oid_signup_post
      summary: Signup to Dintero Account
      x-scopes:
        - create:account
      description: |
        Initiate a signup for Dintero Account

        - An email verification request will be sent to the applicant,
          that contains a code that must be sent to
          [POST /account/{oid}/signup/verify](#operation/accounts_oid_signup_verify_post)

        - A welcome email will be sent after verification of the applicant email
          is completed. The email contains links to Backoffice

        scopes:
        - create:account
      tags:
        - account-onboarding
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountSignupRequest'
        required: true
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/signup/prefill:
    post:
      operationId: accounts_oid_signup_prefill_post
      summary: Pre-fill a sign up for a new Dintero Account
      x-scopes:
        - create:applicant
      description: >
        Pre-fill a sign up form for a new Dintero Account


        - An email verification request will be sent to the applicant,
          that contains a link where the merchant can accept the terms and create a new account.

          [POST /account/{oid}/signup/prefill/{prefill_id}](#operation/accounts_oid_signup_prefill_accept_post)

        - An email will be sent after accepting the terms. The email contains a
        link to the Backoffice as well as a password


        scopes:

        - create:applicant
      tags:
        - account-onboarding-prefill
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        $ref: '#/components/requestBodies/AccountSignupPreFillRequest'
      responses:
        '200':
          $ref: '#/components/responses/AccountSignupPrefillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/signup/prefill/{prefill_id}:
    post:
      operationId: accounts_oid_signup_prefill_accept_post
      summary: Accept pre-filled sign up for a new Dintero Account
      x-scopes:
        - create:account
      description: >
        Accept a prefilled sign up form for a new Dintero Account


        - An email will be sent after accepting the terms if no auhtorize query
        is included.
          The email contains a link to the Backoffice as well as a password

        scopes:

        - create:account
      tags:
        - account-onboarding-prefill
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: prefill_id
          in: path
          required: true
          schema:
            type: string
        - name: authorize
          in: query
          description: |
            Request access tokens to be included in the response.
          schema:
            type: string
            enum:
              - Bearer
      requestBody:
        $ref: '#/components/requestBodies/AccountSignupPreFillRequest'
      responses:
        '200':
          $ref: '#/components/responses/AccountSignupAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      operationId: accounts_oid_signup_prefill_get
      summary: Get pending pre-filled sign up for a new Dintero Account
      x-scopes:
        - create:account
      description: |
        Get a prefilled a sign up form for a new Dintero Account by id, not yet
        accepted by the applicant.

        scopes:
        - create:account
      tags:
        - account-onboarding-prefill
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: prefill_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/AccountSignupPrefillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/signup/verify:
    post:
      operationId: accounts_oid_signup_verify_post
      summary: Verify signup
      x-scopes:
        - create:account
      description: >
        Complete the signup for a Dintero Account by sending the verification
        code

        sent to the applicant


        scopes:

        - create:account
      tags:
        - account-onboarding
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: verification_code
          in: query
          required: true
          description: >
            Verification code sent to the applicant email when requesting a
            signup

            [POST /accounts/{oid}/signup](#operation/accounts_oid_signup_post)
          schema:
            type: string
        - name: authorize
          in: query
          description: |
            Request access tokens to be included in the response.
          schema:
            type: string
            enum:
              - Bearer
      responses:
        '200':
          $ref: '#/components/responses/EmailAuthorizedUserResponse'
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{partner_id}/auth/exchange_token:
    post:
      operationId: aid_auths_oauth_exchange_token_post
      summary: Exchange Token
      description: |
        Use this endpoint to exchange access_token to a sub-account

        scopes:
        - admin:accounts
        - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - authenticate
      security:
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/partnerId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Exchange'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/price-packages:
    get:
      operationId: aid_mgmnt_price_packages_get
      summary: Price package collection
      description: |
        Get list of price packages available for the account.

        scopes:
          - admin:accounts
          - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - price-packages
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startingAfter'
        - name: type
          in: query
          explode: true
          schema:
            type: array
            items:
              type: string
              default: default
              enum:
                - default
                - account
        - name: price_package_id
          description: Filter by Price Package ID.
          in: query
          required: false
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PricePackageCollection'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: aid_mgmnt_price_packages_post
      summary: Create Price package
      description: |
        Create a new price package

        scopes:
          - admin:dintero
          - write:dintero:/management/price-packages
      x-scopes:
        - admin:dintero
        - write:dintero:/management/price-packages
      tags:
        - price-packages
      parameters:
        - $ref: '#/components/parameters/owner'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricePackageCreateData'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PricePackage'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/price-packages/{price_package_id}:
    put:
      operationId: aid_mgmnt_price_packages_put
      summary: Update price package
      description: |
        Update an existing price package.

        scopes:
          - admin:dintero
          - write:dintero:/management/price-packages
      x-scopes:
        - admin:dintero
        - write:dintero:/management/price-packages
      tags:
        - price-packages
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/PricePackageId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricePackageUpdateData'
        required: true
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/PricePackage'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/payout-destinations:
    get:
      operationId: aid_mgmnt_payout_destinations_get
      summary: Payout destination collection
      description: |
        Get list of payout destinations

        scopes:
          - admin:accounts
          - read:accounts
      x-scopes:
        - admin:accounts
        - read:accounts
      tags:
        - payout-destinations
      parameters:
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/startingAfter'
        - $ref: '#/components/parameters/limit'
        - name: search
          in: query
          description: >
            Search payout destinations by organisation details,
            `payout_destination_id`, id.
          schema:
            type: string
        - $ref: '#/components/parameters/AuthPayoutDestinationCaseStatus'
        - name: country
          in: query
          description: |
            Search payout destinations by country
          example: 'NO'
          explode: true
          schema:
            type: array
            items:
              type: string
              format: iso3166-2
        - name: location_id
          in: query
          description: |
            Search payout destinations by associated location ids
          example: L123
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: terminal_id
          in: query
          description: |
            Search payout destinations by associated terminal ids
          example: T123
          explode: true
          schema:
            type: array
            items:
              type: string
      security:
        - JWT: []
      responses:
        '200':
          $ref: '#/components/responses/AuthPayoutDestinationCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /accounts/{oid}/management/payout-destinations/{payout_destination_id}/payouts:
    post:
      operationId: oid_mgmnt_payout_destinations_payouts_post
      summary: On-demand payout
      description: |
        Create a payout for the given payout destination by consolidating all
        pending funds from any payout interval account (week, month) into the
        daily payout account. The funds will then be included in the next daily
        payout run.

        This is useful when you want existing pending payouts to be
        disbursed without waiting for the original schedule, or when you
        want to manually trigger a payout outside the normal interval.

        scopes:
          - write:accounts:/on-demand-payouts
      x-scopes:
        - write:accounts:/on-demand-payouts
      tags:
        - payout-destinations
      parameters:
        - $ref: '#/components/parameters/owner'
        - name: payout_destination_id
          in: path
          required: true
          description: The payout destination identifier
          schema:
            type: string
      security:
        - JWT: []
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
x-tagGroups:
  - name: auth
    tags:
      - authenticate
      - clients
      - grants
      - roles
      - keys
      - auth users
      - challenge
  - name: Partner
    tags:
      - accounts
      - price-packages
  - name: Payout Destinations
    tags:
      - payout-destinations
  - name: Account
    tags:
      - account-settings
      - account-connections
      - account users
      - account-assets
      - account-locations
      - account-terminals
      - account-cdd
      - approvals
      - account-price-package
  - name: onboarding
    tags:
      - account-onboarding
      - account-onboarding-prefill
      - connection-onboarding
      - account-fraud-search
servers:
  - url: https://api.dintero.com/v1
components:
  parameters:
    accountId:
      name: aid
      description: |
        An id that uniquely identifies the account.
      in: path
      required: true
      schema:
        type: string
        format: ^[PT]{1}\d{8}$
        minLength: 9
        maxLength: 9
    PayoutDestinationId:
      name: payout_destination_id
      description: Filter by Payout Destination ID
      in: query
      required: false
      example: PPD-MX9421N
      explode: true
      schema:
        type: array
        items:
          type: string
          maxItems: 10
    LocationIncludes:
      name: includes
      description: >
        Include related data.

        Use `operator_payout_destinations` to include payout destinations for
        terminal operators associated with this location.
      in: query
      required: false
      example: operator_payout_destinations
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - operator_payout_destinations
        maxItems: 1
    startingAfter:
      name: starting_after
      in: query
      description: |
        cursor for use in pagination. starting_after is an object ID
        that defines your place in the list. For instance, if you make
        a list request and receive 100 objects, end the result contains
          `paging_token=pt1`, your subsequent call can include
        `starting_after=pt1` in order to fetch the next page of the list.
      required: false
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: |
        A limit on the number of objects to be returned. Limit can range
        between 1 and 100 items, and the default is 10 items.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    LocationIdPath:
      name: location_id
      description: location id
      in: path
      required: true
      schema:
        type: string
        maxLength: 255
    LocationId:
      name: location_id
      description: Filter by Location ID
      in: query
      required: false
      example: L312
      explode: true
      schema:
        type: array
        items:
          type: string
          maxItems: 10
    TerminalIncludes:
      name: includes
      description: >
        Include related data. Use `location` to include basic location details
        along with the main payout destination for the location.
      in: query
      required: false
      example: location
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - location
        maxItems: 1
    TerminalIdPath:
      name: terminal_id
      description: terminal id
      in: path
      required: true
      schema:
        type: string
        maxLength: 255
    owner:
      name: oid
      description: |
        An id that uniquely identifies the account or owner (partner)
      in: path
      required: true
      schema:
        type: string
        format: ^[PT]{1}(?=(?:.{3}|.{8})$)[0-9]*$
    user:
      name: uid
      description: |
        Id identifying the user
      in: path
      required: true
      schema:
        type: string
        maxLength: 255
    partnerId:
      name: partner_id
      description: |
        An id that uniquely identifies the partner account
      in: path
      required: true
      schema:
        type: string
        format: ^[PT]{1}\d{3}00000$
        minLength: 9
        maxLength: 9
    PricePackageId:
      name: price_package_id
      description: price package id
      in: path
      required: true
      schema:
        type: string
    AuthPayoutDestinationCaseStatus:
      name: case_status
      description: Filter by case status
      in: query
      required: false
      example: ACTIVE
      explode: true
      schema:
        type: array
        items:
          type: string
          enum:
            - ACTIVE
            - DECLINED
            - UNDER_MANUAL_REVIEW
            - AUTOMATIC_REVIEW
            - WAITING_FOR_SIGNATURE
            - WAITING_FOR_DECLARATION
            - ERROR
            - ARCHIVED
            - WAITING_FOR_DETAILS
            - TERMINATED
  responses:
    AuthenticatedAccountUserResponse:
      description: User account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthenticatedAccountUser'
    AccessForbidden:
      description: Access forbidden, invalid JWT token was used
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad / Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too Many Requests
      headers:
        Retry-After:
          description: |
            Indicates how long the user agent should wait
            in seconds before making a follow-up request.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    MfaChallengeResponse:
      description: Challenge response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MfaChallenge'
    NotFound:
      description: Resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    MfaRecoveryResponse:
      description: Recovery response
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/MfaChallenge'
              - properties:
                  mfa_token:
                    type: string
    UserCreated:
      description: User created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthenticatedUser'
    UserUpdated:
      description: User updated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthenticatedUser'
    UserDeleted:
      description: User deleted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthenticatedUser'
    AssetUploadUrl:
      description: Upload URL
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UploadUrl'
    LocationCollection:
      description: List of locations
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LocationCollection'
    Location:
      description: Location
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Location'
    TerminalCollection:
      description: List of terminals
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TerminalCollection'
    Terminal:
      description: Terminal
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Terminal'
    PricePackage:
      description: Price package
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PricePackageResponse'
    AccountResponse:
      description: Account
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Account'
              - $ref: '#/components/schemas/AccountReadOnly'
              - type: object
                properties:
                  configuration:
                    $ref: '#/components/schemas/PartnerConfiguration'
                  onboarding:
                    $ref: '#/components/schemas/AccountOnboarding'
    ApprovalsPaymentList:
      description: List of ApprovalsPaymentResponse objects
      content:
        application/json:
          schema:
            type: object
            properties:
              payments:
                type: array
                items:
                  $ref: '#/components/schemas/ApprovalsPaymentResponse'
    ApprovalsPaymentCreated:
      description: Created ApprovalsPaymentResponse
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApprovalsPaymentResponse'
    ApprovalsPayoutDestinationList:
      description: List of ApprovalsPayoutDestinationResponse objects
      content:
        application/json:
          schema:
            type: object
            properties:
              payout_destinations:
                type: array
                items:
                  $ref: '#/components/schemas/ApprovalsPayoutDestinationResponse'
    ApprovalsPayoutDestinationCreated:
      description: Created ApprovalsPayoutDestinationResponse
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApprovalsPayoutDestinationResponse'
    ApprovalsPayoutDestination:
      description: ApprovalsPayoutDestinationResponse
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApprovalsPayoutDestinationResponse'
    CustomerDueDiligenceList:
      description: CustomerDueDiligenceCase collection
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CustomerDueDiligenceCaseResponse'
    CustomerDueDiligenceCaseCreated:
      description: Customer Due Diligence case created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerDueDiligenceCaseResponse'
    Mastercard3DSConnectionResponse:
      description: Mastercard 3DS Connection response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Mastercard3DSConnection'
    BamboraConnectionResponse:
      description: Bambora Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BamboraConnection'
    BamboraIppSubmerchantCollectionResponse:
      description: Bambora IPP Submerchant Collection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BamboraIppSubmerchantCollection'
    CollectorConnectionResponse:
      description: Collector connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CollectorConnection'
    CommonConnectionResponse:
      description: Common connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CommonConnection'
    DinteroPspConnectionResponse:
      description: Dintero Psp Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DinteroPspConnection'
    InstabankConnectionResponse:
      description: Instabank Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InstabankConnection'
    KlarnaConnectionResponse:
      description: Klarna Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KlarnaConnection'
    KraviaConnectionResponse:
      description: Kravia Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KraviaConnection'
    TwoConnectionResponse:
      description: Two Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TwoConnection'
    VippsPspConnectionResponse:
      description: Vipps PSP Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VippsPspConnection'
    ApplePayConnectionResponse:
      description: Apple Pay Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplePayConnection'
    PayExConnectionResponse:
      description: PayEx Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PayExConnection'
    SwishConnectionResponse:
      description: Swish connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SwishConnection'
    VippsConnectionResponse:
      description: Vipps connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VippsConnection'
    VisaTokenizationConnectionResponse:
      description: Visa Tokenization Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VisaTokenizationConnection'
    VisaClickToPayConnectionResponse:
      description: Visa Click-to-Pay Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VisaClickToPayConnection'
    MastercardTokenizationConnectionResponse:
      description: Mastercard Tokenization Connection
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MastercardTokenizationConnection'
    GrantCollection:
      description: Grant Collection
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Grant'
    GrantCreated:
      description: Grant created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Grant'
    GrantDeleted:
      description: Grant deleted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Grant'
    ClientCollection:
      description: Client Collection
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Client'
    ClientWithSecret:
      description: Client with secret
      content:
        application/json:
          schema:
            type: object
            allOf:
              - $ref: '#/components/schemas/Client'
              - properties:
                  client_secret:
                    type: string
                    example: JYCRP/x7iBGWA1fun0J9laH5sEg5cP9g/4QivhfGzm4
                    readOnly: true
    ClientResponse:
      description: Client
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Client'
    KeysCollection:
      description: Keys Collection
      content:
        application/json:
          schema:
            type: array
            items:
              type: object
              properties:
                alg:
                  description: The algorithm for the key
                  type: string
                  example: RS256
                kty:
                  description: The key type
                  type: string
                  enum:
                    - RSA
                use:
                  description: The intended use of the public key
                  type: string
                  enum:
                    - sig
                'n':
                  description: The modulus for a standard pem
                  type: string
                  example: >
                    lC4ehVB6W0OCtNPnz8udYH9Ao83B6EKnHA5eTcMOap_lQZ-nKtS1lZwBj4wXRVc1XmS0d2OQFA1VMQ-dHLDE3CiGfsGqWbaiZFdW7U

                    GLO1nAwfDdH6xp3xwpKOMewDXbAHJlXdYYAe2ap-CE9c5WLTUBU6JROuWcorHCNJisj1aExyiY5t3JQQVGpBz2oUIHo7NRzQoKimvp

                    dMvMzcYnTlk1dhlG11b1GTkBclprm1BmOP7Ltjd7aEumOJWS67nKcAZzl48Zyg5KtV11V9F9dkGt25qHauqFKL7w3wu-DYhT0hmyFc

                    wn-tXS6e6HQbfHhR_MQxysLtDGOk2ViWv8AQ
                e:
                  description: The exponent for a standard pem
                  type: string
                  example: AQAB
                kid:
                  description: The unique identifier for the key
                  type: string
                  example: a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0
    TokenGranted:
      description: Success
      content:
        application/json:
          schema:
            required:
              - access_token
              - token_type
              - expires_in
            properties:
              access_token:
                type: string
                description: A JWT access token
                example: eyJhbGci...t7P4
              token_type:
                type: string
                enum:
                  - Bearer
              expires_in:
                type: integer
                description: |
                  The lifetime in seconds of the access token.  For
                  example, the value "3600" denotes that the access token will
                  expire in one hour from the time the response was generated.
                example: 86400
              user_info:
                description: |
                  Details about the user provided by the authentication
                  server
                type: object
                required:
                  - authority
                properties:
                  authority:
                    type: string
                    format: url
                    example: https://identityserver.example.com/access
                  value:
                    type: object
                    description: >
                      User information provided by OIDC, properties included
                      depends on

                      the authority
                    properties:
                      sub:
                        type: string
                        example: c06c4afe-d9e1-4c5d-939a-177d752a0944
                      name:
                        type: string
                        example: Ada Lovelace
    AccessCode:
      description: Access code
      content:
        application/json:
          schema:
            type: object
            properties:
              verification_code:
                type: string
                description: The verification code
    RedirectUrl:
      description: |
        Response with redirect URL in response body. `Accept: application/json`
      content:
        application/json:
          schema:
            type: object
            properties:
              redirect_uri:
                description: |
                  The HTTP URL to redirect to with ID token
                format: uri
                pattern: ^https?://.*
                example: https://example.dintero.com/reports/123.pdf?id_token=XB...
    RedirectFound:
      description: Redirect to URL with ID token
      headers:
        Location:
          description: "the URL to redirect to\n\n- `id_token` will be included in the redirect URL as a\n  `query` parameter\n\nA valid `id_token` will contain following claims\n\n query name | type         | description                    | required\n----------- | :----------: | ------------------------------ | :-----------:\nsub         |   string     | User Id                        | true\nemail       |   string     | User email                     | false\nname        |   string     | User name                      | false\naud         |   string     | Redirect URI                   | true\niss         |   string     | Issuer (Dintero)               | true\nexp         |   int        | Token expiry                   |\_true\next_property name* |   string  | Custom claims                  |\_false\n\n```\n{\n  \"kid\" : \"1234example\"\n  \"alg\" : \"RS256\"\n}\n\n{\n  \"aud\": \"${redirect_uri}\n  \"iss\": \"https://P12345678@api.dintero.com\",\n  \"sub\": \"dintero:user:id\",\n  \"email\": \"janedoe@example.com\"\n  \"exp\": 1386899131,\n  \"property name*\": \"custom-claim\"\n}\n```\nThe kid (key ID) should be used to match specific key to use when validating\nthe `id_token`. The `aud` in a valid token will contain the original `redirect_uri`\n(without id_token) that should be used to authorize the request.\n"
          schema:
            type: string
    RoleCollection:
      description: Role Collection
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AuthRole'
    RoleResponse:
      description: Role
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthRole'
    RoleUpdated:
      description: Role updated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthRole'
    RoleDeleted:
      description: Role deleted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthRole'
    ExtendedAccountCollection:
      description: List of Accounts
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ExtendedAccount'
    ExtendedAccountResponse:
      description: Account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExtendedAccount'
    ExtendedAccountUpdated:
      description: Account updated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExtendedAccount'
    ExtendedAccountDeleted:
      description: Account deleted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExtendedAccount'
    AccountConnectionEventResponse:
      description: Connection event
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountConnectionEvent'
    AccountEventCollection:
      description: Account events
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AccountEvent'
    AccountEventResponse:
      description: Account event
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountEvent'
    PricePackageAccountCollection:
      description: List of price packages
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountPricePackages'
    MatchSearch:
      description: Possible merchant matches from MATCH
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MatchSearchResponse'
    MatchAddMerchantResponse:
      description: MATCH merchant ID
      content:
        application/json:
          schema:
            type: object
            properties:
              merchant_reference_number:
                type: integer
                description: |
                  Unique ID to identify the added merchant in MATCH
    VMSSInquiry:
      description: Possible merchant matches from VMSS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VMSSInquiryResponse'
    VMSSTerminateMerchant:
      description: The added VMSS record
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VMSSTerminateMerchantResponse'
    AccountUserCollection:
      description: User collection
      content:
        application/json:
          schema:
            type: array
            items:
              allOf:
                - $ref: '#/components/schemas/AccountAdminUser'
    AccountUserResponse:
      description: Account user
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountAdminUser'
    AccountUserUpdated:
      description: Account user updated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountAdminUser'
    AccountUserDeleted:
      description: Account user deleted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountAdminUser'
    AuditEventCollection:
      description: List of Audit events
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AuditEvent'
    AccountSignupPrefillResponse:
      description: Account Signup
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountSignupPreFillRequest'
    AccountSignupAccepted:
      description: Pre-filled sign up accepted by applicant
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/AccountSignupPreFillRequest'
              - $ref: '#/components/schemas/EmailAuthorizedUser'
    EmailAuthorizedUserResponse:
      description: Authorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EmailAuthorizedUser'
    PricePackageCollection:
      description: List of price packages
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PricePackageCollectionResponse'
    AuthPayoutDestinationCollection:
      description: List of payout destinations
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthPayoutDestinationCollection'
    NoContent:
      description: >-
        No content, the service completed successfully and there is no content
        to be returned.
  requestBodies:
    AccountSignupPreFillRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountSignupPreFillRequest'
      required: true
    AuthRole:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthRole'
      required: true
  securitySchemes:
    clientAuth:
      type: http
      description: |
        Authorization by using the **Basic** schema with client_id and
        client_secret as username/password
      scheme: basic
    JWT:
      type: apiKey
      name: Authorization
      description: >
        Bearer authentication (also called token authentication) should be

        used when accessing the API.


        Use [Get
        Token](https://docs.dintero.com/api.html#operation/aid_auths_oauth_token_post)

        to get an access token for client credentials


        Authorization by using the **Bearer** schema

        The content of the header should look like the following:

            Authorization: Bearer {access_token}

        where the **access_token** is JSON Web Tokens (JWT).
      in: header
      x-example: Bearer <access_token>
  schemas:
    account_user:
      type: object
      x-discriminator-value: account_user
      allOf:
        - $ref: '#/components/schemas/AuthToken'
    authorization_code:
      type: object
      x-discriminator-value: authorization_code
      allOf:
        - $ref: '#/components/schemas/AuthToken'
        - required:
            - verification_code
            - audience
            - ident_type
            - ident
          properties:
            ident_type:
              type: string
              enum:
                - email
                - user_id
            ident:
              type: string
              description: >
                The email that was use when requesting `verification_code`

                from [POST
                /v1/accounts/{oid}/auth/passwordless](#operation/aid_auth_account_passwordless_post)
            verification_code:
              type: string
              description: >-
                The one-time Passwordless verification-code to exchange for a
                access token
            audience:
              type: string
              example: https://api.dintero.com/v1/accounts/P00000000
              description: |
                The unique identifier of the target API you want to access.
                The audience must be a grant associated with the client
    client_credentials:
      description: Client token credential
      x-discriminator-value: client_credentials
      type: object
      allOf:
        - $ref: '#/components/schemas/AuthToken'
        - required:
            - audience
          properties:
            audience:
              type: string
              example: https://api.dintero.com/v1/accounts/P00000000
              description: |
                The unique identifier of the target API you want to access.
                The audience must be a grant associated with the client
    mfa_oob:
      type: object
      x-discriminator-value: mfa_oob
      allOf:
        - $ref: '#/components/schemas/AuthToken'
        - required:
            - oob_code
            - binding_code
            - mfa_token
          properties:
            oob_code:
              type: string
              description: The `oob_code` received from the challenge response
            binding_code:
              type: string
              description: The binding code sent _out of band_.
            mfa_token:
              type: string
              description: The `mfa_token` received as part of mfa_required error.
    password:
      type: object
      x-discriminator-value: password
      allOf:
        - $ref: '#/components/schemas/AuthToken'
        - required:
            - username
            - password
            - audience
          properties:
            username:
              type: string
              description: |
                The end user's identifier.
            password:
              type: string
              description: |
                The end user's password.
            audience:
              type: string
              example: https://api.dintero.com/v1/accounts/P00000000
              description: |
                The unique identifier of the target API you want to access.
                The audience must be a grant associated with the client
    refresh_token:
      type: object
      x-discriminator-value: refresh_token
      description: |
        Refresh an Access Token using a Refresh Token
      allOf:
        - $ref: '#/components/schemas/AuthToken'
        - required:
            - refresh_token
          properties:
            refresh_token:
              type: string
              description: |
                The Refresh Token to use.
    AccountEventComment:
      x-discriminator-value: comment
      allOf:
        - $ref: '#/components/schemas/AccountEvent'
        - required:
            - event_type
            - body
            - visibility
          properties:
            event_type:
              description: |
                The event_type corresponding to comment event
              type: string
              enum:
                - comment
            body:
              type: string
            visibility:
              type: string
              enum:
                - private
    AccountEventStatistics:
      x-discriminator-value: statistics
      allOf:
        - $ref: '#/components/schemas/AccountEvent'
        - required:
            - event_type
            - statistics
          properties:
            event_type:
              description: |
                The event_type corresponding to comment event
              type: string
              enum:
                - statistics
            statistics:
              $ref: '#/components/schemas/AccountMonthlyStatistics'
    AccountUserConfig:
      type: object
      description: Account user configurations
      properties:
        mfa:
          type: object
          properties:
            sms:
              type: object
              properties:
                updated_at:
                  type: string
                  format: date-time
                enabled:
                  type: boolean
            totp:
              type: object
              properties:
                updated_at:
                  type: string
                  format: date-time
                enabled:
                  type: boolean
    AccountAgreement:
      type: object
      description: |
        Defines an terms and conditions agreement between
        a company or user and Dintero
      properties:
        name:
          description: Defines the name of the agreement
          type: string
        version:
          description: Defines the version of the agreement
          type: string
        personal_guarantee_accepted:
          description: |
            The applicant/user has read and accepted the terms of
            a personal guarantee.
          type: boolean
        attachments:
          description: attachment policies
          type: array
          items:
            type: object
            properties:
              name:
                description: Defines the name of the attachment
                type: string
                example: Cookie Policy
              version:
                description: Defines the version of the attachment
                type: string
    AuthenticatedAccountUser:
      type: object
      required:
        - id
        - accounts
      properties:
        id:
          type: string
        configuration:
          $ref: '#/components/schemas/AccountUserConfig'
        accounts:
          type: array
          items:
            type: object
            required:
              - user
              - account_id
            properties:
              account_id:
                type: string
                example: P12345678
                description: The id that uniquely identifies the account
              business_name:
                type: string
                example: TKP technology AS
              public_business_name:
                type: string
                example: TKP tech
              organization_number:
                type: string
                example: 123456789MVA
              display_name:
                type: string
                example: TKP tech instore AS
              icon_url:
                description: >
                  Url to icon. The image should have equal height and width,
                  around 50px.

                  Will be used to personalize the backoffice and checkout.
                type: string
                format: uri
                maxLength: 240
              user:
                type: object
                required:
                  - id
                  - email
                properties:
                  id:
                    type: string
                    description: An UUID that uniquely identifies the account user
                  last_seen_at:
                    type: string
                    format: date-time
                  scope:
                    type: array
                    items:
                      type: string
                      minItems: 1
                      example: receipts:write
                  name:
                    type: string
                    description: The name of the user in the account
                  email:
                    type: string
                    example: customer@example.com
                  agreement:
                    $ref: '#/components/schemas/AccountAgreement'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            errors:
              type: array
              description: The nested error(s) encountered during validation
              items:
                type: object
            message:
              type: string
              description: The human readable description of the error/warning
    Challenge:
      type: object
      description: Challenge recovery
      required:
        - challenge_type
      properties:
        challenge_type:
          type: string
          description: |
            The challenge type accepted by your application
          enum:
            - oob
        oob_channel:
          type: string
          description: |
            The channel to use for OOB. Can only be provided when
            `challenge_type` is oob.
          enum:
            - sms
            - email
          default: sms
    AuthChallenge:
      description: multi-factor authentication (MFA) challenge
      allOf:
        - $ref: '#/components/schemas/Challenge'
        - required:
            - mfa_token
          properties:
            mfa_token:
              type: string
              description: |
                The token received from `mfa_required` error.
    MfaChallenge:
      type: object
      properties:
        challenge_type:
          type: string
          enum:
            - oob
        binding_method:
          type: string
          enum:
            - prompt
        oob_code:
          type: string
          example: bkaiew...akas
    Entity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: |
            An UUID that uniquely identifies the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        deleted_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
    AuthUserLinks:
      type: array
      description: |
        Links to resources related to the user, links is required when
        MFA is enabled.
      items:
        type: object
        properties:
          rel:
            type: string
            description: |
              The relationship between the user and the linked resource
              - `customers_user`: A link to the customer user resource.
                The link will be used to lookup email or phone_number if
                MFA is enabled on the user.
              - `email`: The link includes the email to use in
                email OOB message. Fallback if no `customers_user` rel
                is provided.
              - `phone_number`: The link includes the phone_number to
                use in SMS OOB message. Fallback if no `customers_user`
                rel is provided.
            example: customers_user
            enum:
              - email
              - phone_number
              - customers_user
          href:
            type: string
            description: The URL of the link
      example:
        - rel: customers_user
          href: https://api.dintero.com/v1/accounts/P12345678/users/99919
        - rel: phone_number
          href: tel:+4799999999
        - rel: email
          href: mailto:name@email.com
    AuthUserMfa:
      type: object
      description: |
        Require Multi-factor authentication (MFA) for the user
      required:
        - challenge_type
      properties:
        challenge_type:
          type: string
          description: |
            The challenges types enabled (required) by the user.    enum:
            - oob
        oob_channels:
          type: array
          description: >
            The supported channels to use for OOB. Can only be used if
            `channel_type`

            is `oob`.
          items:
            type: string
            enum:
              - sms
              - email
    AuthenticatedUser:
      type: object
      description: A user with password
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - username
          properties:
            username:
              type: string
              description: The user's username.
              minLength: 1
              maxLength: 255
            links:
              $ref: '#/components/schemas/AuthUserLinks'
            mfa:
              $ref: '#/components/schemas/AuthUserMfa'
    UploadUrl:
      type: object
      properties:
        public_url:
          type: string
          format: string
          description: |
            The public URL the asset will be made available from after the
            upload has completed.
        upload_url:
          type: string
          format: url
          description: |
            An URL to upload the asset to.

            - The content type header value must be the same as the `mime_type`
            - The content length header value must be the same as the size of
              the file and the `size_bytes`.

            **Upload example**
            ```
            curl -X PUT
              -H 'Content-Type: {mime_type}' \
              -H 'Content-Length: {size_bytes}' \
              --upload-file <file> \
              {upload_url}
            ```
        upload_expires_in:
          type: integer
          description: |
            The number of seconds until the upload url is no longer valid
    TerminalStatus:
      type: string
      description: The status of the terminal
      readOnly: true
      enum:
        - DELETED
        - ACTIVE
        - INACTIVE
    LocationTerminalSummary:
      type: object
      description: Summary of terminal statuses for this location
      required:
        - status
        - count
      properties:
        status:
          $ref: '#/components/schemas/TerminalStatus'
        count:
          type: integer
          description: Number of terminals with this status
          example: 1
    Address:
      type: object
      required:
        - address_line
        - postal_place
        - country
      properties:
        address_line:
          type: string
          example: Sommerkroveien 34
        address_line_2:
          type: string
          example: PB 123
        postal_code:
          type: string
          example: '0349'
        postal_place:
          type: string
          example: Oslo
        country:
          type: string
          format: iso-3166-1
          description: |
            ISO 3166-1 country code
          example: 'NO'
    PayoutDestinationId:
      type: string
      maxLength: 40
      pattern: ^[A-Za-z0-9_-]+$
      example: PD032
    LocationUpdateInput:
      type: object
      properties:
        organization:
          type: object
          description: The organization for the location
          required:
            - organization_number
          properties:
            organization_number:
              type: string
            country:
              type: string
              readOnly: true
              pattern: ^[A-Z]{2}$
              description: ISO 3166-1 country code for the organization number
              example: 'NO'
            type:
              type: string
              default: main_unit
              enum:
                - main_unit
                - sub_unit
            name:
              type: string
            trade_name:
              type: string
        location_name:
          type: string
        email:
          type: string
          format: email
        phone_number:
          type: string
          format: E.164
          pattern: ^\+[1-9]\d{1,14}$
          description: A phone number in E.164 format
          example: '+4799999999'
        address:
          $ref: '#/components/schemas/Address'
        coordinates:
          type: object
          properties:
            latitude:
              type: number
              format: float
              example: 59.949923
            longitude:
              type: number
              format: float
              example: 10.766888
          required:
            - latitude
            - longitude
          description: The coordinates of the location
        website:
          type: string
        payout_destination:
          type: object
          description: >
            The payout destination associated with this location.


            A location with a payout destination will get all its properties

            (address, phone_number +++) set by validated data so you

            will not be allowed to set custom address when payout destination

            is set


            The organization_number must match the organization number of the

            payout destination


            These exceptions do not apply to payout destination's sub-units
            where

            different sub-unit organization_number is allowed and the details
            will

            be set by what is available in the public registers.
          required:
            - payout_destination_id
          properties:
            payout_destination_id:
              $ref: '#/components/schemas/PayoutDestinationId'
    LocationInput:
      allOf:
        - $ref: '#/components/schemas/LocationUpdateInput'
        - type: object
          required:
            - location_id
          properties:
            location_id:
              type: string
              example: L312
              maxLength: 20
    ApprovalStatus:
      type: string
      enum:
        - ACTIVE
        - DECLINED
        - UNDER_MANUAL_REVIEW
        - AUTOMATIC_REVIEW
        - WAITING_FOR_SIGNATURE
        - WAITING_FOR_DECLARATION
        - ERROR
        - ARCHIVED
        - WAITING_FOR_DETAILS
        - TERMINATED
    LegalEntityType:
      type: string
      description: >
        - For a company seller select `company` or leave blank. Required fields
        are
          `organization_number` and `country_code`.
        - For an individual seller select `individual`. Provide optional fields
        in
          the individual object.
      enum:
        - company
        - individual
    LocationPayoutDestination:
      type: object
      required:
        - status
        - type
      properties:
        merchant_category_code:
          type: string
          pattern: ^\d{1,4}
          format: mcc
          example: '2741'
        status:
          $ref: '#/components/schemas/ApprovalStatus'
        type:
          $ref: '#/components/schemas/LegalEntityType'
    OperatorPayoutDestination:
      type: object
      required:
        - payout_destination_id
        - status
        - type
      properties:
        payout_destination_id:
          type: string
          description: The unique identifier of the payout destination
        organization_number:
          type: string
          description: National organization number valid in the country specified
        name:
          type: string
          description: The name of the organization
        trade_name:
          type: string
          description: The trade name of the organization
        merchant_category_code:
          type: string
          pattern: ^\d{1,4}
          format: mcc
          example: '2741'
        status:
          $ref: '#/components/schemas/ApprovalStatus'
        type:
          $ref: '#/components/schemas/LegalEntityType'
    LocationReadOnly:
      type: object
      required:
        - id
        - created_at
        - created_by
        - updated_at
        - updated_by
        - status
        - verified
        - number_of_terminals
      properties:
        id:
          type: string
        created_at:
          type: string
        created_by:
          type: string
        updated_at:
          type: string
        updated_by:
          type: string
        status:
          type: string
          enum:
            - DELETED
            - ACTIVE
            - SUSPENDED
        verified:
          type: boolean
          description: The location data have been verified
        number_of_terminals:
          type: integer
          description: Number of terminals associated with a location
        payout_destination:
          $ref: '#/components/schemas/LocationPayoutDestination'
        operator_payout_destinations:
          type: array
          description: >
            Operator destinations associated with this location. Included when
            includes=operator_payout_destinations is used.
          items:
            $ref: '#/components/schemas/OperatorPayoutDestination'
    LocationBase:
      type: object
      allOf:
        - $ref: '#/components/schemas/LocationInput'
        - $ref: '#/components/schemas/LocationReadOnly'
    LocationCollection:
      type: object
      additionalProperties: false
      required:
        - locations
      properties:
        starting_after:
          type: string
        locations:
          type: array
          items:
            allOf:
              - type: object
                properties:
                  terminals_summary:
                    type: array
                    description: |
                      Summary of terminals for this location.
                    readOnly: true
                    items:
                      $ref: '#/components/schemas/LocationTerminalSummary'
              - $ref: '#/components/schemas/LocationBase'
    LocationTerminal:
      type: object
      required:
        - terminal_id
        - device_serial_number
      properties:
        terminal_id:
          type: string
          example: T312
        device_serial_number:
          type: string
          example: 181f1a3e-b81b-4460-a01b-2a3be2a253a1
        status:
          $ref: '#/components/schemas/TerminalStatus'
    Location:
      type: object
      allOf:
        - $ref: '#/components/schemas/LocationBase'
        - type: object
          properties:
            terminals:
              type: array
              description: |
                Terminals associated with this location.
              items:
                $ref: '#/components/schemas/LocationTerminal'
    TerminalUpdateInput:
      type: object
      properties:
        device_model:
          type: string
        location_id:
          type: string
    TerminalInput:
      allOf:
        - $ref: '#/components/schemas/TerminalUpdateInput'
        - type: object
          required:
            - terminal_id
            - device_serial_number
          properties:
            terminal_id:
              type: string
              example: T312
            device_serial_number:
              type: string
              example: 181f1a3e-b81b-4460-a01b-2a3be2a253a1
    Terminal:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/TerminalInput'
        - type: object
          properties:
            status:
              $ref: '#/components/schemas/TerminalStatus'
    TerminalReadOnly:
      type: object
      properties:
        location:
          type: object
          description: >
            Location details are included when the includes=location query
            parameter is used.
          properties:
            id:
              type: string
            location_name:
              type: string
    TerminalCollection:
      type: object
      additionalProperties: false
      required:
        - terminals
      properties:
        starting_after:
          type: string
        terminals:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Terminal'
              - $ref: '#/components/schemas/TerminalReadOnly'
    PricePackageMeta:
      type: object
      required:
        - name
        - description
      properties:
        name:
          type: string
        description:
          type: string
        pricing_conditions:
          type: string
        source_price_package_id:
          description: |
            The ID of the price package that this price package is based on.
          type: string
        metadata:
          type: object
          maxProperties: 40
          description: |
            A set of key/value pairs that you can attach to price package.
    PricePackagePrice:
      type: object
      additionalProperties: false
      required:
        - type
        - amounts
        - dimensions
      properties:
        type:
          type: string
          enum:
            - blend
            - ic++
        amounts:
          description: |
            All the fees for the product
          type: array
          minItems: 1
          items:
            type: object
            required:
              - unit_amount
              - flat_amount
            properties:
              name:
                type: string
                enum:
                  - default
                  - eu
                  - non_eu
                  - invoice
                  - invoice_b2b
                  - invoice_b2b_grouped
                  - invoice_b2c
                  - installment
                  - monthly_fee
                  - tx_fee
                description: >
                  Identifies the price variation within a product:


                  | Name | Description | Applicable `product_id` |

                  |---|---|---|

                  | `default` (or omitted) | Single price for all variations of
                  a payment method | Any non-creditcard product |

                  | `eu` | Price for EU-issued cards | `checkout.*.visa`,
                  `checkout.*.mastercard` |

                  | `non_eu` | Price for non-EU-issued or non-consumer cards |
                  `checkout.*.visa`, `checkout.*.mastercard` |

                  | `installment` | Walley installment payments |
                  `checkout.capture.walley` |

                  | `invoice` | Walley B2C invoice payments |
                  `checkout.capture.walley` |

                  | `invoice_b2b` | B2B invoice payments |
                  `checkout.capture.walley`, `checkout.capture.kravia`,
                  `checkout.capture.two` |

                  | `invoice_b2b_grouped` | Grouped B2B invoice payments |
                  `checkout.capture.kravia` |

                  | `invoice_b2c` | Kravia B2C invoice payments |
                  `checkout.capture.kravia` |

                  | `monthly_fee` | Dintero monthly fee, separate from
                  per-transaction prices | `checkout.dintero` |

                  | `tx_fee` | Dintero per-transaction fee, added on top of all
                  other payment method prices | `checkout.dintero` |
              description:
                type: string
              flat_amount:
                type: integer
                example: 250
              unit_amount:
                type: string
                description: |
                  The unit depends on the context/product. The unit of checkout
                  payment is the transaction amount
                format: number
                example: '0.025'
        dimensions:
          type: array
          description: >
            The dimensions is used to decide what price alternative is
            applicable,

            one one price alternative will be used for a "cost" event
          example:
            - name: currency
              values:
                - NOK
                - SEK
            - name: card.issuer_country
              values:
                - 'NO'
                - SE
            - name: payment_product_type_category
              values:
                - invoice
                - b2b_invoice
          items:
            type: object
            additionalProperties: false
            required:
              - name
              - values
            properties:
              name:
                type: string
                enum:
                  - currency
                  - card.issuer_country
                  - payment_product_type_category
                description: >
                  | Name | Description |

                  |---|---|

                  | `currency` | ISO 4217 currency code |

                  | `card.issuer_country` | ISO 3166-1 alpha-2 country code of
                  the card issuer |

                  | `payment_product_type_category` | Klarna only. Possible
                  values: `card`, `invoice`, `fixed_amount`, `base_account`,
                  `direct_debit`, `direct_bank_transfer`, `b2b_invoice`,
                  `slice_it_by_card`, `pay_later_by_card`, `pay_by_card`,
                  `fixed_sum_credit` |
              values:
                type: array
                items:
                  type: string
    PricePackageProduct:
      type: object
      required:
        - namespace
        - product_id
        - prices
      properties:
        namespace:
          type: string
          enum:
            - checkout
            - payout
            - orders
        product_id:
          type: string
          description: |
            **Examples**
              - checkout.capture.apple_pay
              - checkout.capture.card
              - checkout.capture.google_pay
              - checkout.capture.instabank
              - checkout.capture.klarna
              - checkout.capture.mobilepay
              - checkout.capture.vipps
              - checkout.capture.walley
              - checkout.monthly.service_fee
          example: checkout.capture.card
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PricePackagePrice'
    PricePackageProducts:
      type: object
      required:
        - products
      properties:
        products:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/PricePackageProduct'
    PricePackageId:
      type: object
      required:
        - price_package_id
      properties:
        price_package_id:
          type: string
    PricePackageCreateData:
      type: object
      allOf:
        - $ref: '#/components/schemas/PricePackageMeta'
        - $ref: '#/components/schemas/PricePackageProducts'
        - $ref: '#/components/schemas/PricePackageId'
    PricePackageAdditionalData:
      allOf:
        - type: object
          properties:
            creation_state:
              type: string
              description: >
                How the price package was created.

                - **`pristine`**: The price package does not differ from the
                original price package.

                - **`custom`**: The price package has been customized from the
                original price package.
              enum:
                - pristine
                - custom
    PricePackage:
      type: object
      description: >
        This object contains the details for a price package that can be given
        to

        zero or more accounts
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/PricePackageCreateData'
        - $ref: '#/components/schemas/PricePackageAdditionalData'
        - type: object
          required:
            - type
          properties:
            type:
              readOnly: true
              description: |
                The price package type.
                - **`account`**: Price package active for the account
                - **`default`**: Price package available for the partner account
              type: string
              enum:
                - default
                - account
    PricePackageResponse:
      type: object
      required:
        - price_package
      properties:
        price_package:
          $ref: '#/components/schemas/PricePackage'
    AccountJwks:
      type: object
      properties:
        jwks:
          readOnly: true
          description: |
            Alternative JWKS configured for validating access token issued by
            external authentication.
          required:
            - name
            - uri
          properties:
            name:
              description: |
                Short name identifying the issuer.
              type: string
            uri:
              type: string
              format: uri
              example: >-
                https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/jwks.json
    AccountPaymentSummary:
      type: object
      properties:
        payment_case_status:
          allOf:
            - $ref: '#/components/schemas/ApprovalStatus'
            - readOnly: true
        projected_sales:
          type: string
          readOnly: true
          description: Projected sales declared by merchant.
        average_transaction_value:
          type: string
          readOnly: true
        merchant_category_code:
          type: string
          readOnly: true
          description: Merchant category code declared by merchant.
          format: mcc
        delivery_timeline:
          type: string
          readOnly: true
          enum:
            - P0W
            - P1D
            - P2D
            - P5D
            - P2W
            - P4W
            - P12W
            - P1Y
        most_expensive_product_price:
          type: string
          readOnly: true
          description: Price of most expensive product declared by merchant.
        gift_card_revenue_percentage:
          type: string
          readOnly: true
          description: |
            Percentage of revenue coming from gift card transactions
            declared by merchant.
        credit_rating:
          type: string
          readOnly: true
          description: The most recent credit rating of the merchant.
        prev_credit_rating:
          type: string
          readOnly: true
          description: The previous credit rating of the merchant.
        currency:
          type: string
          enum:
            - NOK
            - SEK
            - DKK
            - EUR
          readOnly: true
          description: >
            The currency of the various values declared by the merchant, such as

            `most_expensive_product_price`, `average_transaction_value`, and so
            on.
    UtmCampaign:
      type: object
      title: campaign
      properties:
        utm_source:
          type: string
          title: Campaign Source
          description: |
            Use utm_source to identify a search engine, newsletter name,
            or other source.
          example: google
        utm_medium:
          type: string
          title: Campaign Medium
          description: >
            Use utm_medium to identify a medium such as email or cost-per-
            click.
          example: cpc
        utm_campaign:
          type: string
          title: Campaign Name
          description: |
            Used for keyword analysis. Use utm_campaign to identify a
            specific product promotion or strategic campaign.
          example: spring_sale
        utm_term:
          type: string
          title: Campaign Term
          description: |
            Used for paid search. Use utm_term to note the keywords
            for this ad.
          example: running+shoes
        utm_content:
          type: string
          title: Campaign Content
          description: |
            Used for A/B testing and content-targeted ads. Use utm_content
            to differentiate ads or links that point to the same URL.
          example: textlink
    AccountApplicant:
      type: object
      required:
        - email
        - agreement
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        email:
          type: string
          example: customer@example.com
        phone_number:
          type: string
          description: |
            A phone number in E.164 number formatting.
          format: ^\+?[1-9]\d{1,14}$
          example: '+4799999999'
        agreement:
          $ref: '#/components/schemas/AccountAgreement'
        recaptcha_sitekey:
          type: string
          description: |
            The public site key used for reCAPTCHA
          example: 6LdE_pIUAAAAAHbiL0uHjHg2Mgn2IILTvZdA_Ux-
        recaptcha_response:
          type: string
          description: |
            A response from a reCAPTCHA check
          example: >-
            03AOLTBLSbzmXKXuAz9N--DsZ1xWmhfx6okCheBPesOsNmRSdkfcO4E5CkeBQQFJkC_emfE_KF0P8C3T57Nr9eOon_PVTEIq1NUpRS5oGkGMhr1vxVe1F7txMYUc4ClxUDLxWiW5WgnDvWHC7gOnlJZKvxVE4gn7qAJijE6SFMXkvFOwoWcx_kONmBHGnXHGgxIe2M8G-FkIKr0WZbQIDYmDaiQxb6mL1L70UGOyO280v2Pp65JB1mSohdeJLdQhHeye6v6__H9_M0GxDGd8s-LoLUY5Vq9hKbAs8MCsh2OFwtpbTYGfqmDbTwsc2v8SqOOZ86uKXwl7gyk3RHXT27m8Rv8iZAs2Ym5w
        promo_code:
          type: string
          description: Promotion code
        signup_reference:
          type: string
          description: >-
            An optional reference that can be used to identify the signup when
            the account has been created.
        utm:
          $ref: '#/components/schemas/UtmCampaign'
    AccountCompanyTerms:
      description: |
        Terms of company account.
      type: object
      properties:
        type:
          type: string
          enum:
            - all
            - sales
            - cookies
            - privacy
        href:
          type: string
          format: uri
    AccountCompanyContact:
      description: |
        Contact details for a company.
      type: object
      properties:
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          format: email
        website:
          type: string
          format: uri
        type:
          type: string
          enum:
            - support
            - disputes
    AccountCompany:
      description: |
        The details of an account company
      type: object
      required:
        - business_name
        - address
      properties:
        business_name:
          type: string
          example: TKP tech AS
        display_name:
          type: string
          example: TKP tech instore AS
          description: >-
            The name of the company as displayed in Dintero systems. If not set,
            defaults to business_name.
        organization_number:
          type: string
          description: Companys identification number
          example: 123456789MVA
        industry:
          type: string
          example: computer industry
        website:
          type: string
          format: uri
          maxLength: 120
        terms_url:
          type: string
          format: uri
          maxLength: 240
        bank_name:
          type: string
          description: The name of the bank where the company's bank account is
        account_number:
          type: string
          description: The company's bank account number
        address:
          $ref: '#/components/schemas/Address'
        email:
          type: string
          format: email
          example: contact@business.dintero.com
        technical_email:
          type: string
          format: email
          example: tech_support@business.dintero.com
          description: |
            Technical email. Dintero will use this email when contacting
            the company about technical issues.
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        branding:
          type: object
          properties:
            icon_url:
              description: >
                Url to icon. The image should have equal height and width,
                around 50px.


                Will be used to personalize the backoffice and checkout.
              type: string
              format: uri
              maxLength: 240
            logo_url:
              description: |
                Url to logo. Will be used in receipts, emails, etc.
              type: string
              format: uri
              maxLength: 240
        merchant_category_code:
          type: string
          format: mcc
        average_transaction_value:
          type: string
        most_expensive_product_price:
          type: string
        projected_sales:
          type: string
        terms:
          type: array
          description: >
            Terms of company account. If `terms_url` is set, this property will
            include a term of type `all` that corresponds to the `terms_url`.

            If the opposite is true, `terms_url` will be set corresponding to
            the first term of type `all`.
          items:
            allOf:
              - $ref: '#/components/schemas/AccountCompanyTerms'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/AccountCompanyContact'
        public_business_name:
          type: string
          example: TKP tech
          description: Public name of the business, as displayed to customers
    AccountBillingStatement:
      description: |
        The details of the billing statement for the account
      type: object
      properties:
        name:
          type: string
          description: The name to be displayed on the billing statement
          minLength: 2
          maxLength: 22
          example: John Doe
        phone_number:
          type: string
          description: >
            The phone number to be displayed on the billing statement, ITU/E.123
            format with

            international prefix (+PPNNNNNNNNN...)
          pattern: ^\+?\d{5,15}$
          example: '+4745454545'
    AccountBilling:
      description: |
        The details of the billing for the account
      type: object
      required:
        - business_name
        - address
      properties:
        business_name:
          type: string
          example: TKP tech AS
        organization_number:
          type: string
          description: Companys identification number
          example: 123456789MVA
        address:
          $ref: '#/components/schemas/Address'
        email:
          description: Billing email
          type: string
          example: billing@business.dintero.com
        reference:
          description: Billing reference
          type: string
          maxLength: 120
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        billing_statement:
          $ref: '#/components/schemas/AccountBillingStatement'
    Subscription:
      type: object
      description: Subscription plan for the account
      required:
        - interval
        - plan
      properties:
        interval:
          type: string
          description: |
            The frequency with which a subscription should be billed.
          enum:
            - month
            - year
        plan:
          type: string
          description: |
            The price plan which a billing is based on
          enum:
            - transaction_fee
            - per_customer_fee
        support:
          type: string
          description: The support service enabled
          enum:
            - office_hours
            - 24_7_extended
        metadata:
          type: object
          maxProperties: 40
          description: |
            A set of key/value pairs that you can attach to a subscription
            object. It can be useful for storing additional information about
            the subscription in a structured format.
    Attachment:
      description: >
        An attachment is a file or document associated with a reference and a
        uri.
      type: object
      required:
        - ref
        - href
      properties:
        ref:
          type: string
          description: |
            The reference to the attachment.
        href:
          type: string
          format: uri
          description: |
            The URI of the attachment.
    Account:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/AccountJwks'
        - $ref: '#/components/schemas/AccountPaymentSummary'
        - required:
            - applicant
            - company
            - billing
          properties:
            applicant:
              description: The individual completing the account registration
              allOf:
                - $ref: '#/components/schemas/AccountApplicant'
                - properties:
                    agreement:
                      type: object
                      properties:
                        accepted_at:
                          description: |
                            defines the date of the account terms and conditions
                            agreement in ISO 8601 format with a timezone
                          type: string
                          format: date-time
                          readOnly: true
            company:
              $ref: '#/components/schemas/AccountCompany'
            billing:
              $ref: '#/components/schemas/AccountBilling'
            subscription:
              $ref: '#/components/schemas/Subscription'
            attachments:
              type: array
              items:
                $ref: '#/components/schemas/Attachment'
            account_id:
              type: string
              description: The id that uniquely identifies the account.
              readOnly: true
            partner_id:
              type: string
              description: The id of the partner associated with the account
              format: ^[PT]{1}(?=(?:.{3})$)[0-9]*$
              readOnly: true
            livemode:
              type: boolean
              description: |
                Flag indicating whether the account exists in live
                mode and test mode.
              default: false
            active:
              type: boolean
              description: The account is active
              default: false
              readOnly: true
            language_code:
              type: string
              description: |
                The preferred language for the account as defined by
                <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
                (IETF BCP 47, "Tags for Identifying Languages").
            platform_type:
              type: string
              description: |
                Optional type of platform for merchants using split payout.
              readOnly: true
              enum:
                - marketplace
                - aggregator
            allowed_merchant_category_codes:
              type: array
              description: >-
                Restricts the MCC codes available for selection during merchant
                onboarding.
              items:
                type: string
                pattern: ^\d{4}$
    AccountConnectionEvent:
      type: object
      required:
        - status
        - event
      properties:
        id:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        status:
          type: string
          enum:
            - pending
            - enabled
            - failed
            - declined
        event:
          type: string
          example: signature_required
        description:
          description: short description about the event
          type: string
          example: Vipps awaiting signature
        metadata:
          maxProperties: 40
          description: |
            A set of key/values that you can attach to a connection
            event.
          example:
            signature_link: https://sig.example.com/K34K244
    AccountConnectionMeta:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        metadata:
          type: object
          maxProperties: 40
          description: |
            A set of key/value pairs that you can attach to a subscription
            object. It can be useful for storing additional information about
            the subscription in a structured format.
        status:
          description: |
            The status of the connection
          type: string
          enum:
            - pending
            - enabled
            - failed
            - declined
        events:
          description: |
            List of events recorded, an event is created when the
            connection is updated with new status
          type: array
          items:
            $ref: '#/components/schemas/AccountConnectionEvent'
        schema:
          type: number
          description: |
            The version of the schema used for the connection
          readOnly: true
    AccountConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnectionMeta'
        - properties:
            configuration:
              type: object
              required:
                - payment_options
              properties:
                payment_options:
                  description: |
                    Payment options supported by this connection
                  type: array
                  items:
                    type: object
                    required:
                      - currencies
                      - type
                    properties:
                      currencies:
                        type: array
                        items:
                          type: string
                          format: iso4217-code
                          example: NOK
                      type:
                        type: string
    ApplePayPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - dintero_psp.applepay
          details:
            type: object
            description: |
              Configuration details for the payment option
            properties:
              domain_names:
                description: >
                  An array of domain names used for embedding the checkout with
                  Apple Pay. The value is just the domain name, without the
                  protocol, port or path.
                type: array
                items:
                  type: string
                  example: example.dintero.com
    ApplePayConnectionConfiguration:
      type: object
      description: |
        The configuration for the Apple Pay connection.
      required:
        - merchant_id
        - payment_options
      properties:
        merchant_id:
          type: string
          description: |
            The Apple Pay merchant identifier.
        payment_options:
          $ref: '#/components/schemas/ApplePayPaymentOptions'
    ApplePayConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/ApplePayPaymentOptions'
        domain_names:
          description: >
            An array of domain names used for payment. Just the domain name,
            without the protocol.
          type: array
          items:
            type: string
            example: example.dintero.com
    ApplePayConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signups
            - configuration
          properties:
            configuration:
              $ref: '#/components/schemas/ApplePayConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/ApplePayConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
    BamboraConnectionConfiguration:
      type: object
      description: >
        Bambora configuration for the merchant


        The Bambora configuration includes a `secret_token` stored safely and
        never exposed
      required:
        - merchant_number
        - md5_key
      properties:
        merchant_number:
          type: string
        md5_key:
          type: string
        access_token:
          type: number
        secret_token:
          type: string
        token_scope:
          type: string
    BamboraPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - bambora.creditcard
              - bambora.mobilepay
              - bambora.vipps
              - bambora.applepay
    BamboraDirectConnectionSignup:
      type: object
      required:
        - case_id
        - merchant_number
        - md5_key
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
        merchant_number:
          type: string
          example: P12345678
        md5_key:
          type: string
          example: ae45ase
        payment_options:
          $ref: '#/components/schemas/BamboraPaymentOptions'
    BamboraConnectionSignup:
      type: object
      required:
        - payment_options
        - bank_name
        - account_number
        - revenue
      properties:
        payment_options:
          $ref: '#/components/schemas/BamboraPaymentOptions'
        store_type:
          type: array
          items:
            type: string
            enum:
              - online
              - instore
              - remote
        revenue:
          type: object
          properties:
            currency:
              type: string
              format: iso4217-code
              example: NOK
              description: |
                The three-character ISO-4217 currency for the expected amounts.
                https://en.wikipedia.org/wiki/ISO_4217
            yearly_revenue:
              type: string
              example: 100.000-250.000 NOK
            highest_transaction_amount:
              type: string
              example: 500-1000 NOK
              description: |
                estimated highest amount in a single transaction
            average_amount:
              type: string
              example: 250-500 NOK
              description: |
                average amount of transactions
            accept_prepaid:
              description: The company accepts advanced payments
              type: boolean
            subscriptions_or_memberships:
              description: The company sells subscriptions or memberships
              type: boolean
            gift_cards:
              description: The company sells gift cards
              type: boolean
        bank_name:
          type: string
          description: The name of the bank where the company's bank account is
        account_number:
          type: string
          description: The company's bank account number
        ownership:
          type: object
          properties:
            ownership_structure:
              type: string
              enum:
                - owners_with_more_than_25
                - no_owners_with_more_than_25
                - complex
            owners:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: >-
                      Name of owner, or representative of the company owning
                      shares.
                  legal_name:
                    type: string
                    description: Name of company. Required if the owner is a company.
                  date_of_birth:
                    type: string
                    description: Date of birth of the signee.
                    example: 1990-09-20T00:00:00.000Z
                  percentage:
                    type: number
                    example: 25
                    description: Ownership percentage
        verifications:
          type: object
          description: >
            Verify that the business complies with the following requirements
            from the payment connections.
          properties:
            terms_and_conditions:
              description: >
                The payment site displays terms and conditions, including return
                policy, delivery options and a

                privacy policy.
              type: boolean
            terms_and_conditions_url:
              description: >
                Url to terms and conditions, including return policy, delivery
                options and a

                privacy policy.
              type: string
            contact_information:
              description: >
                The company's contact information is easily available, including
                organization number, phone number

                and address
              type: boolean
            payment_site:
              description: >-
                Customers have access to a payment site. Applies to online
                stores.
              type: boolean
            clear_pricing:
              description: All products and services have clearly marked prices.
              type: boolean
            payment_product_logos:
              description: Visa and Mastercard logos are visible on the payment site.
              type: boolean
        signature:
          type: object
          description: |
            Signatures from general manager or someone with signature authority
          properties:
            signatures:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  email:
                    type: string
            politically_exposed_person:
              description: >
                If you or owner is a politically exposed person according to the
                money laundering act
              type: boolean
            politically_exposed_associated:
              description: >
                If you or owner is closesely associated with an politically
                exposed person

                according to the money laundering act
              type: boolean
        applicant:
          description: |
            The person signing up for payment connection.
          type: object
          properties:
            phone_number:
              type: string
              description: |
                A phone number in E.164 number formatting.
              format: ^\+?[1-9]\d{1,14}$
              example: '+4799999999'
    BamboraPayFacConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case in auth service
          type: string
          format: uuid
        merchant_number:
          type: string
          example: P12345678
        md5_key:
          type: string
          example: ae45ase
        payment_options:
          $ref: '#/components/schemas/BamboraPaymentOptions'
        mcc:
          type: string
          format: iso-18245
          example: 5814
          description: |
            A four-digit Merchant Category Code (MCC) for the store
            [ISO 18245:2003](https://www.iso.org/standard/33365.html)

            Overrides what is previously set on the case.
    BamboraConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - properties:
            configuration:
              $ref: '#/components/schemas/BamboraConnectionConfiguration'
            direct_signups:
              type: array
              description: |
                The Bambora direct signups received for this account.
              items:
                allOf:
                  - $ref: '#/components/schemas/BamboraDirectConnectionSignup'
                  - required:
                      - created_at
                      - signup_id
                    properties:
                      signup_id:
                        type: string
                        description: |
                          Unique ID for the signup
                        format: uuid
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
                      callback_at:
                        type: string
                        format: date-time
                        description: |
                          Callback when Bambora approved the signup
            signup:
              description: >
                **DEPRECATED** 


                Signup object present for Bambora signups with the old `POST
                /connections/bambora` endpoint.
              allOf:
                - $ref: '#/components/schemas/BamboraConnectionSignup'
                - required:
                    - created_at
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when Bambora approved the signup
            submerchant_signups:
              type: array
              description: |
                The signups received for this account

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/BamboraPayFacConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
                      callback_at:
                        type: string
                        format: date-time
                        description: |
                          Callback when Bambora approved the signup
    CollectorConnectionConfiguration:
      type: object
      description: >
        Collector Bank configuration for the merchant


        The Collector configuration includes a `password` stored safely and
        never exposed
      properties:
        username:
          type: string
        store_id:
          type: number
        country:
          type: string
          format: iso-3166-1
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - collector.invoice
                  - collector.invoice_b2b
                  - collector.installment
    CollectorConnectionSignup:
      type: object
      required:
        - legal_name
        - organization_number
        - bank_name
        - account_number
        - website
        - payment_options
      properties:
        business_name:
          type: string
          description: Name of the merchant, if it differs from legal_name
        legal_name:
          type: string
        organization_number:
          type: string
          example: 123456789MVA
        bank_name:
          type: string
          description: The name of the bank where the company's bank account is
        account_number:
          type: string
          description: The company's bank account number
        website:
          type: string
          description: Company's website url
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - collector.invoice
                  - collector.installment
    CollectorConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signup
          properties:
            configuration:
              $ref: '#/components/schemas/CollectorConnectionConfiguration'
            signup:
              allOf:
                - $ref: '#/components/schemas/CollectorConnectionSignup'
                - required:
                    - created_at
                    - url
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    url:
                      type: string
                      description: >
                        Signup URL from Collector, where merchant can complete
                        the signup
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when Collector approved the signup
    PaymentOptions:
      type: array
      items:
        type: object
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - dintero.zero
              - swish.swish
              - payex.creditcard
              - payex.vipps
              - payex.mobilepay
              - collector.invoice
              - collector.installment
              - collector.invoice_b2b
              - instabank.finance
              - instabank.invoice
              - instabank.postponement
              - instabank.installment
              - vipps
              - bambora.creditcard
              - bambora.mobilepay
              - bambora.vipps
              - klarna.klarna
              - klarna.billie
    CommonConnectionSignup:
      type: object
      required:
        - payment_options
        - store_type
      properties:
        payment_options:
          $ref: '#/components/schemas/PaymentOptions'
        store_type:
          type: array
          items:
            type: string
            enum:
              - online
              - instore
              - remote
        package:
          type: string
          description: |
            What pricing strategy to use for this company.
          example: Checkout 195 NOK/month + 1.5%
        revenue:
          type: object
          properties:
            currency:
              type: string
              format: iso4217-code
              example: NOK
              description: |
                The three-character ISO-4217 currency for the expected amounts.
                https://en.wikipedia.org/wiki/ISO_4217
            yearly_revenue:
              type: string
              example: 100.000-250.000 NOK
            highest_transaction_amount:
              type: string
              example: 500-1000 NOK
              description: |
                estimated highest amount in a single transaction
            average_amount:
              type: string
              example: 250-500 NOK
              description: |
                average amount of transactions
            accept_prepaid:
              description: The company accepts advanced payments
              type: boolean
            subscriptions_or_memberships:
              description: The company sells subscriptions or memberships
              type: boolean
            gift_cards:
              description: The company sells gift cards
              type: boolean
            estimated_percentage_per_payment_type:
              description: Estimates of revenue in percentages per payment store_type
              type: array
              items:
                type: object
                properties:
                  percentage:
                    type: number
                    minimum: 0
                    maximum: 100
                  type:
                    type: string
                    enum:
                      - swish.swish
                      - payex.creditcard
                      - payex.vipps
                      - payex.mobilepay
                      - collector.invoice
                      - collector.installment
                      - collector.invoice_b2b
                      - instabank.finance
                      - instabank.invoice
                      - instabank.postponement
                      - instabank.installment
                      - vipps
                      - bambora.creditcard
                      - bambora.mobilepay
                      - bambora.vipps
        bank_accounts:
          description: |
            Will only support one bank account for the time being
          type: array
          minItems: 1
          maxItems: 1
          items:
            type: object
            properties:
              account_number:
                type: string
                description: The bank account number
              account_number_type:
                type: string
                description: |
                  What format the account number is.
                enum:
                  - iban
                  - mod11
              bank_name:
                type: string
                description: The name of the bank
              account_statement_url:
                type: string
                format: uri
                pattern: https?://*
                example: https://example.dintero.com/c/photos/account_statement.pdf
                description: >
                  Document or image to prove that the account number belongs to
                  the company.
        ownership:
          type: object
          properties:
            ownership_structure:
              type: string
              enum:
                - owners_with_more_than_25
                - no_owners_with_more_than_25
                - complex
            owners:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: >-
                      Name of owner, or representative of the company owning
                      shares.
                  legal_name:
                    type: string
                    description: Name of company. Required if the owner is a company.
                  date_of_birth:
                    type: string
                    description: Date of birth of the owner.
                    example: 1990-09-20T00:00:00.000Z
                  social_security_number:
                    type: string
                    description: Social security number of the owner.
                  percentage:
                    type: number
                    example: 25
                    description: Ownership percentage
                  address:
                    $ref: '#/components/schemas/Address'
        verifications:
          type: object
          description: >
            Verify that the business complies with the following requirements
            from the payment connections.
          properties:
            terms_and_conditions:
              description: >
                The payment site displays terms and conditions, including return
                policy, delivery options and a

                privacy policy.
              type: boolean
            terms_and_conditions_url:
              description: >
                Url to terms and conditions, including return policy, delivery
                options and a

                privacy policy.
              type: string
            contact_information:
              description: >
                The company's contact information is easily available, including
                organization number, phone number

                and address
              type: boolean
            payment_site:
              description: >-
                Customers have access to a payment site. Applies to online
                stores.
              type: boolean
            payment_site_url:
              description: |
                Url to payment site.
              type: string
            demo_site_url:
              description: |
                Url to demo site.
              type: string
            clear_pricing:
              description: All products and services have clearly marked prices.
              type: boolean
            payment_product_logos:
              description: Visa and Mastercard logos are visible on the payment site.
              type: boolean
        signature:
          type: object
          description: |
            Signatures from general manager or someone with signature authority
          properties:
            signatures:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  email:
                    type: string
            politically_exposed_person:
              description: >
                If you or owner is a politically exposed person according to the
                money laundering act
              type: boolean
            politically_exposed_associated:
              description: >
                If you or owner is closesely associated with an politically
                exposed person

                according to the money laundering act
              type: boolean
        applicant:
          description: |
            The person signing up for payment connection.
          type: object
          properties:
            first_name:
              type: string
              example: John
            last_name:
              type: string
              example: Doe
            email:
              type: string
              example: customer@example.com
            phone_number:
              type: string
              description: |
                A phone number in E.164 number formatting.
              format: ^\+?[1-9]\d{1,14}$
              example: '+4799999999'
            social_security_number:
              type: string
              description: Social security number of the owner.
        company_information:
          type: object
          description: |
            Information on what your company does
          properties:
            industry:
              type: string
              enum:
                - goods
                - services
                - subscriptions_or_memberships
                - charity
                - travel_and_entertainment
                - food_and_beverages
                - other
            company_category:
              type: string
              description: |
                Company MCC code
              enum:
                - '4722'
                - '5021'
                - '5045'
                - '5122'
                - '5211'
                - '5399'
                - '5499'
                - '5691'
                - '5699'
                - '5712'
                - '5719'
                - '5732'
                - '5811'
                - '5812'
                - '5813'
                - '5814'
                - '5816'
                - '5817'
                - '5932'
                - '5941'
                - '5944'
                - '5945'
                - '5971'
                - '5977'
                - '5993'
                - '5999'
                - '7011'
                - '7033'
                - '7298'
                - '7299'
                - '7392'
                - '7399'
                - '7512'
                - '7922'
                - '7929'
                - '7991'
                - '7997'
                - '7999'
                - '8299'
                - '8398'
                - '8641'
                - '8699'
                - '8999'
            mcc:
              type: object
              description: More data about the mcc code selected
              properties:
                mcc:
                  type: string
                range:
                  type: object
                  properties:
                    start:
                      type: string
                    end:
                      type: string
                    description:
                      type: string
                    reserved:
                      type: boolean
                iso_description:
                  type: string
                usda_description:
                  type: string
                stripe_description:
                  type: string
                stripe_code:
                  type: string
                visa_description:
                  type: string
                visa_req_clearing_name:
                  type: string
            company_description:
              type: string
              description: >
                Description of the product or services that the company accepts
                payments from
        payment_method_specific:
          type: object
          description: |
            Any properties specifically needed for a certain payment method
          properties:
            payex:
              type: object
              properties:
                signup_url:
                  type: string
                  description: |
                    Link to payex form
            instabank:
              type: object
              required:
                - total_number_of_transactions
                - total_volume_of_transactions
                - finance_number_of_transactions
                - finance_volume_of_transactions
              description: >
                These fields must be filled out if instabank is a chosen payment
                method
              properties:
                total_number_of_transactions:
                  type: string
                  minLength: 1
                  description: |
                    Estimated number of transactions
                total_volume_of_transactions:
                  type: string
                  minLength: 1
                  description: |
                    Estimated yearly transaction volume
                finance_number_of_transactions:
                  type: string
                  minLength: 1
                  description: |
                    Estimated number of finance transactions
                finance_volume_of_transactions:
                  type: string
                  minLength: 1
                  description: |
                    Estimated yearly volume of finance transactions
    CommonConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnectionMeta'
        - required:
            - signup
          properties:
            signup:
              allOf:
                - $ref: '#/components/schemas/CommonConnectionSignup'
                - required:
                    - created_at
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                - properties:
                    payment_method_specific:
                      type: object
                      description: >
                        Any properties specifically needed for a certain payment
                        method
                      properties:
                        vipps:
                          type: object
                          properties:
                            signup_url:
                              type: string
                              description: |
                                Link to vipps form
    DinteroPspConnectionConfiguration:
      type: object
      description: |
        Visa Tokenization configuration for the merchant
      required:
        - client_app_id
        - relationship_id
      properties:
        visa_net_client_id:
          type: string
        acquirer_merchant_id:
          type: string
        vipps_merchant_serial_number:
          type: string
          example: '123456'
        visa_token_client_app_id:
          type: string
        visa_token_relationship_id:
          type: string
          example: 10000000-20000000000
        mastercard_token_src_dpa_id:
          type: string
          example: src_dpa_56068
        mastercard_token_service_id:
          type: string
          example: SECURE_COF_MERCHANT_OBO#TESTPROJECT_PROD-PGMNAME#01
        google_pay_merchant_gateway_id:
          type: string
          example: dintero-test
    DinteroPspPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - dintero_psp.creditcard
    DinteroPspConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case id in auth service.
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/DinteroPspPaymentOptions'
    DinteroPspConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/DinteroPspConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/DinteroPspConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    InstabankConnectionConfiguration:
      type: object
      description: |
        Instabank configuration for the merchant
      properties:
        payment_product_codes:
          type: object
          description: |
            Instabank Product Codes
          required:
            - instabank.invoice
            - instabank.finance
          properties:
            instabank.finance:
              type: string
              example: '630'
            instabank.invoice:
              type: string
              example: '632'
        organization_number:
          type: string
        payment_options:
          type: array
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - instabank.invoice
                  - instabank.finance
    InstabankConnectionSignup:
      type: object
      required:
        - email
        - phone_number
        - total_number_of_transactions
        - total_volume_of_transactions
        - finance_number_of_transactions
        - finance_volume_of_transactions
        - industry
        - payment_options
        - account_number
      properties:
        email:
          type: string
          example: customer@example.com
        phone_number:
          type: string
          description: |
            A phone number in E.164 number formatting.
          format: ^\+?[1-9]\d{1,14}$
          example: '+4799999999'
        total_number_of_transactions:
          type: string
          minLength: 1
          description: |
            Estimated number of transactions
        total_volume_of_transactions:
          type: string
          minLength: 1
          description: |
            Estimated yearly transaction volume
        finance_number_of_transactions:
          type: string
          minLength: 1
          description: |
            Estimated number of finance transactions
        finance_volume_of_transactions:
          type: string
          minLength: 1
          description: |
            Estimated yearly volume of finance transactions
        industry:
          type: string
          example: computer industry
        account_number:
          type: string
          description: >
            The account number for where settlement payout is transfered to.
            Must be

            a checking account in a Norwegian bank.
          format: modulus11
          minLength: 11
          maxLength: 11
          example: '12345678911'
        payment_options:
          type: array
          minItems: 1
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - instabank.invoice
                  - instabank.finance
    InstabankConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signup
          properties:
            configuration:
              $ref: '#/components/schemas/InstabankConnectionConfiguration'
            signup:
              allOf:
                - $ref: '#/components/schemas/InstabankConnectionSignup'
                - required:
                    - created_at
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when Instabank approved the signup
    KlarnaPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - klarna.klarna
              - klarna.billie
    KlarnaConnectionConfiguration:
      type: object
      description: |
        Klarna configuration for the merchant
      properties:
        credentials:
          type: array
          description: |
            The Klarna credentials created for this account
          items:
            type: object
            required:
              - case_id
              - merchant_id
              - username
            properties:
              case_id:
                description: |
                  The id to the case id in auth service
                type: string
                format: uuid
              merchant_id:
                type: string
              username:
                type: string
        payment_options:
          $ref: '#/components/schemas/KlarnaPaymentOptions'
    KlarnaConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/KlarnaPaymentOptions'
        price_package:
          description: |
            Name of the Dintero price package for the merchant. 
            The price package must be registered with Klarna as a price plan.
          type: string
          example: EU_DINTERO_PP001
        mcc:
          type: string
          format: iso-18245
          example: 5814
          description: |
            A four-digit Merchant Category Code (MCC) for the store
            [ISO 18245:2003](https://www.iso.org/standard/33365.html)

            Overrides what is previously set on the case.
    KlarnaConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/KlarnaConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/KlarnaConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
                      callback_at:
                        type: string
                        format: date-time
                        description: |
                          Callback when Klarna approved the signup
    KraviaConnectionSettlementType:
      type: string
      description: >
        Indicates whether settlement is done directly to the merchant or handled
        by Dintero
      enum:
        - direct
        - via_dintero
    KraviaPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - kravia.invoice_b2b
              - kravia.invoice_b2c
              - kravia.invoice_b2b_grouped
    InvoiceDeliveryMethod:
      type: string
      description: |
        Configure how invoices are delivered to customers.

         - `provider`: Dintero delivers the invoice to the customer
         - `merchant`: Invoice PDF is available for the merchant to deliver
      enum:
        - provider
        - merchant
      default: provider
    KraviaConnectionConfiguration:
      type: object
      description: |
        Kravia configuration for the merchant
      properties:
        credentials:
          type: array
          description: |
            The Kravia credentials created for this account
          items:
            type: object
            required:
              - case_id
              - merchant_id
            properties:
              case_id:
                description: |
                  The id to the case id in auth service
                type: string
                format: uuid
              merchant_id:
                type: string
              settlement_type:
                $ref: '#/components/schemas/KraviaConnectionSettlementType'
        payment_options:
          $ref: '#/components/schemas/KraviaPaymentOptions'
        invoice_delivery_method:
          $ref: '#/components/schemas/InvoiceDeliveryMethod'
    KraviaConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/KraviaPaymentOptions'
        settlement_type:
          $ref: '#/components/schemas/KraviaConnectionSettlementType'
    KraviaConnection:
      allOf:
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/KraviaConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/KraviaConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    Mastercard3DSConnectionSignup:
      type: object
      required:
        - case_id
      properties:
        case_id:
          description: |
            The id to the case id in auth service.
          type: string
          format: uuid
    Mastercard3DSConnection:
      allOf:
        - required:
            - signups
          properties:
            configuration:
              type: object
              description: |
                Mastercard 3DS configuration for the merchant
              required:
                - status
              properties:
                status:
                  type: string
                  enum:
                    - enabled
                    - failed
                    - pending
                    - declined
                  description: |
                    The status of the configuration
            events:
              type: array
              description: |
                The events received for this account.
              items:
                allOf:
                  - $ref: '#/components/schemas/AccountConnectionEvent'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when event was initiated
                        type: string
                        format: date-time
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/Mastercard3DSConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    MastercardTokenizationConnectionConfiguration:
      type: object
      description: |
        Mastercard Tokenization configuration for the merchant
      required:
        - token_src_dpa_id
        - token_service_id
      properties:
        token_src_dpa_id:
          type: string
        token_service_id:
          type: string
    MastercardTokenizationConnectionSignup:
      type: object
      required:
        - case_id
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
    MastercardTokenizationConnection:
      allOf:
        - required:
            - signups
          properties:
            configuration:
              $ref: >-
                #/components/schemas/MastercardTokenizationConnectionConfiguration
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: >-
                      #/components/schemas/MastercardTokenizationConnectionSignup
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    PayExConnectionConfiguration:
      type: object
      description: >
        PayEx configuration for the merchant


        The PayEx configuration includes a `token` stored safely and never
        exposed
      properties:
        payee_id:
          type: string
        subsite:
          type: string
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - payex.creditcard
    PayExConnectionSignupContact:
      type: object
      required:
        - name
        - phone_number
        - email
      description: Contact information for the person in the given role
      properties:
        name:
          type: string
          example: John Doe
          description: Name of the contact person
        phone_number:
          type: string
          description: >
            Phone number for the contact person. A phone number in E.164 number
            formatting.
          format: ^\+?[1-9]\d{1,14}$
          example: '+4799999999'
        email:
          type: string
          description: Contact person's e-mail
          example: customer@example.com
    PayExConnectionSignup:
      type: object
      required:
        - payment_options
      properties:
        business_name:
          type: string
          description: Name of the merchant, if it differs from legal_name
        legal_name:
          type: string
        organization_number:
          type: string
          example: 123456789MVA
        applicant_contact:
          $ref: '#/components/schemas/PayExConnectionSignupContact'
        accounting_contact:
          $ref: '#/components/schemas/PayExConnectionSignupContact'
        bank_name:
          type: string
          description: The name of the bank where the company's bank account is
        account_number:
          type: string
          description: The company's bank account number
        website:
          type: string
          description: Company's website url
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - payex.creditcard
    PayExConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signup
          properties:
            configuration:
              $ref: '#/components/schemas/PayExConnectionConfiguration'
            signup:
              allOf:
                - $ref: '#/components/schemas/PayExConnectionSignup'
                - required:
                    - created_at
                    - url
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    url:
                      type: string
                      description: >
                        Signup URL from PayEx, where merchant can complete the
                        signup
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when PayEx approved the signup
    PayExConnectionConfigurationV2:
      type: object
      description: >
        PayEx configuration for the merchant


        The PayEx configuration includes a `token` stored safely and never
        exposed
      properties:
        payee_id:
          type: string
        subsite:
          type: string
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - payex.creditcard
                  - payex.swish
                  - payex.vipps
    PayExConnectionV2:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signup
          properties:
            creditcard:
              $ref: '#/components/schemas/PayExConnection'
            configuration:
              $ref: '#/components/schemas/PayExConnectionConfigurationV2'
            signup:
              allOf:
                - $ref: '#/components/schemas/PayExConnectionSignup'
                - required:
                    - created_at
                    - url
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    url:
                      type: string
                      description: >
                        Signup URL from PayEx, where merchant can complete the
                        signup
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when PayEx approved the signup
    SwishConnectionConfiguration:
      type: object
      description: >
        Swish configuration for the merchant


        The Collector configuration includes a `password` stored safely and
        never exposed
      properties:
        swish_number:
          type: string
          description: The merchant's Swish number
          example: '1231182293'
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - swish.swish
    SwishConnectionSignup:
      type: object
      required:
        - legal_name
        - organization_number
        - website
        - payment_options
      properties:
        business_name:
          type: string
          description: Name of the merchant, if it differs from legal_name
        legal_name:
          type: string
        organization_number:
          type: string
          example: 123456789MVA
        bank_name:
          type: string
          description: The name of the bank where the company's bank account is
        account_number:
          type: string
          description: The company's bank account number
        website:
          type: string
          description: Company's website url
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: SEK
              type:
                type: string
                enum:
                  - swish.swish
    SwishConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - type: object
          properties:
            configuration:
              $ref: '#/components/schemas/SwishConnectionConfiguration'
            signups:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - direct
                      - payfac
                  created_at:
                    type: string
                  callback_at:
                    type: string
                  data:
                    type: object
                    properties:
                      business_name:
                        type: string
                      legal_name:
                        type: string
                      organization_number:
                        type: string
                      bank_name:
                        type: string
                      account_number:
                        type: string
                      website:
                        type: string
                      case_id:
                        type: string
                      swish_number:
                        type: string
                      payment_options:
                        type: array
                        items:
                          type: object
                          properties:
                            currencies:
                              type: array
                              items:
                                type: string
                            type:
                              type: string
                              enum:
                                - swish.swish
            signup:
              description: Deprecated, replaced by signups
              allOf:
                - $ref: '#/components/schemas/SwishConnectionSignup'
                - required:
                    - created_at
                  properties:
                    created_at:
                      description: |
                        The time when signup was initiated
                      type: string
                      format: date-time
                    callback_at:
                      type: string
                      format: date-time
                      description: |
                        Callback when Swish approved the signup
    TwoPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - two.invoice_b2b
    TwoConnectionConfiguration:
      type: object
      description: |
        Two configuration for the merchant
      properties:
        credentials:
          type: array
          description: |
            The Two credentials created for this account
          items:
            type: object
            required:
              - case_id
            properties:
              case_id:
                description: |
                  The id to the case id in auth service
                type: string
                format: uuid
        payment_options:
          $ref: '#/components/schemas/TwoPaymentOptions'
    TwoConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/TwoPaymentOptions'
    TwoConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/TwoConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/TwoConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
    VippsConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signup
          properties:
            signup:
              type: object
              required:
                - created_at
              properties:
                created_at:
                  description: |
                    The time when signup was initiated
                  type: string
                  format: date-time
                id:
                  type: string
                  description: |
                    Signup ID from Vipps
                  example: 81b83246-5c19-7b94-875b-ea6d1114f099
                url:
                  type: string
                  description: >
                    Signup URL from Vipps, where merchant can complete the
                    signup
                callback_at:
                  type: string
                  format: date-time
                  description: >
                    Result from callback received from Vipps after merchant
                    completed

                    the signup, and Vipps approved it.
                expires_at:
                  type: string
                  format: date-time
                  description: |
                    The Vipps signup URL expires after 30 days.
            configuration:
              description: >
                Vipps configuration for the merchant, received from signup
                callback

                The vipps configuration includes a `client_secret` stored safely
                and

                never exposed
              properties:
                payment_options:
                  type: array
                  items:
                    type: object
                    required:
                      - type
                    properties:
                      type:
                        type: string
                        enum:
                          - vipps
                merchant_name:
                  type: string
                  example: Vipps
                created_time:
                  type: string
                  example: '00:00:00'
                merchant_serial_number:
                  type: string
                  example: '123456'
                client_id:
                  type: string
                  format: uuid
                  example: 51358942-08c8-4d50-99f4-a9aa970b5f5b
                subscription_keys:
                  type: array
                  items:
                    type: object
                    properties:
                      product:
                        type: string
                        example: Access
                      ocp_apim_subscription_key:
                        type: string
                        example: de897dbb-0cd3-4445-b003-ac8214ac4638
    VippsPspPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - dintero_psp.vipps
    VippsPspConnectionConfiguration:
      type: object
      description: |
        Vipps PSP configuration for the merchant
      required:
        - merchant_serial_number
      properties:
        merchant_serial_number:
          description: Merchant serial number generated by vipps
          type: string
          pattern: ^[0-9]{6}$
          example: '123456'
        payment_options:
          $ref: '#/components/schemas/VippsPspPaymentOptions'
    VippsPspConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
        - logo
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/VippsPspPaymentOptions'
        logo:
          type: string
          description: >
            Base64 encoded string of merchant logo which will be displayed in
            Vipps app. 

            The logo must be in PNG format. Square images are recommended. 

            The longest side cannot be more than 1000 pixels. Minimum size is
            100 x 100 pixels.
    VippsPspConnection:
      allOf:
        - $ref: '#/components/schemas/AccountConnection'
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/VippsPspConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/VippsPspConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
    VisaTokenizationConnectionConfiguration:
      type: object
      description: |
        Visa Tokenization configuration for the merchant
      required:
        - client_app_id
        - relationship_id
      properties:
        client_app_id:
          type: string
          description: |
            Unique identifier of merchant in VTS system
        relationship_id:
          type: string
          description: |
            Identifies relationship between merchant and us in VTS system
    VisaTokenizationConnectionSignup:
      type: object
      required:
        - case_id
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
    VisaTokenizationConnection:
      allOf:
        - required:
            - signups
          properties:
            configuration:
              $ref: '#/components/schemas/VisaTokenizationConnectionConfiguration'
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/VisaTokenizationConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    AccountService:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        updated_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        status:
          type: string
          enum:
            - enabled
            - disabled
        progression:
          type: string
          enum:
            - not_applied
            - applied
            - live
            - frozen
            - deactivated
        metadata:
          type: object
          maxProperties: 40
          description: |
            A set of key/value pairs that you can attach to a subscription
            object. It can be useful for storing additional information about
            the subscription in a structured format.
    ServiceFeatureStatus:
      type: string
      description: |
        Whether the feature is operational

        **enabled**
        > Indicates that the Feature might be used

        **pending**
        > Indicates that the Feature can't be used but that the `status`
        > eventually changes to either `declined` or `enabled` without
        > user intervention.

        **disabled**
        > Indicates that the Feature have been disabled

        **declined**
        > Indicates that the Feature can't be used and either requires some
        > action by the user or is permanently disabled
      enum:
        - declined
        - disabled
        - enabled
        - pending
    ServiceFeature:
      type: object
      required:
        - requested
        - status
      properties:
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: datetime
          readOnly: true
        updated_by:
          type: string
          readOnly: true
        updated_at:
          type: string
          format: datetime
          readOnly: true
        requested:
          type: string
          enum:
            - enable
            - disable
        status:
          $ref: '#/components/schemas/ServiceFeatureStatus'
    CheckoutServiceFeatures:
      type: object
      properties:
        applepay:
          $ref: '#/components/schemas/ServiceFeature'
        billie:
          $ref: '#/components/schemas/ServiceFeature'
        clicktopay:
          $ref: '#/components/schemas/ServiceFeature'
        collector:
          $ref: '#/components/schemas/ServiceFeature'
        creditcard:
          $ref: '#/components/schemas/ServiceFeature'
        googlepay:
          $ref: '#/components/schemas/ServiceFeature'
        instabank:
          $ref: '#/components/schemas/ServiceFeature'
        klarna:
          $ref: '#/components/schemas/ServiceFeature'
        mobilepay:
          $ref: '#/components/schemas/ServiceFeature'
        santander:
          $ref: '#/components/schemas/ServiceFeature'
        swish:
          $ref: '#/components/schemas/ServiceFeature'
        vipps:
          $ref: '#/components/schemas/ServiceFeature'
        kravia:
          $ref: '#/components/schemas/ServiceFeature'
        two:
          $ref: '#/components/schemas/ServiceFeature'
        ipp:
          $ref: '#/components/schemas/ServiceFeature'
    AccountCheckoutGateway:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        progression:
          type: string
          enum:
            - not_applied
            - waiting_for_dintero
            - waiting_for_gateway
            - waiting_for_merchant
            - rejected
            - live
            - frozen
            - deactivated
    CheckoutAccountService:
      allOf:
        - $ref: '#/components/schemas/AccountService'
        - properties:
            features:
              $ref: '#/components/schemas/CheckoutServiceFeatures'
            gateways:
              type: object
              description: |
                All gateways requires an `enabled` connection
              properties:
                santander:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                collector:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                instabank:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                vipps:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                swish:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                bambora:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                payex:
                  type: object
                  properties:
                    creditcard:
                      $ref: '#/components/schemas/AccountCheckoutGateway'
                    swish:
                      $ref: '#/components/schemas/AccountCheckoutGateway'
                klarna:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                dintero_psp:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                kravia:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                two:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
                seitatech:
                  $ref: '#/components/schemas/AccountCheckoutGateway'
    PayoutServiceFeatures:
      type: object
      description: |
        Payout features
      properties:
        split_payment:
          $ref: '#/components/schemas/ServiceFeature'
        daily_payouts:
          $ref: '#/components/schemas/ServiceFeature'
    PayoutAccountService:
      allOf:
        - $ref: '#/components/schemas/AccountService'
        - properties:
            features:
              $ref: '#/components/schemas/PayoutServiceFeatures'
    AccountReadOnly:
      type: object
      properties:
        connections:
          type: object
          readOnly: true
          description: |
            Connections to external services registered on the merchant account
          properties:
            applepay:
              $ref: '#/components/schemas/ApplePayConnection'
            bambora:
              $ref: '#/components/schemas/BamboraConnection'
            collector:
              $ref: '#/components/schemas/CollectorConnection'
            common:
              $ref: '#/components/schemas/CommonConnection'
            dintero_psp:
              $ref: '#/components/schemas/DinteroPspConnection'
            instabank:
              $ref: '#/components/schemas/InstabankConnection'
            klarna:
              $ref: '#/components/schemas/KlarnaConnection'
            kravia:
              $ref: '#/components/schemas/KraviaConnection'
            mastercard_3ds:
              $ref: '#/components/schemas/Mastercard3DSConnection'
            mastercard_tokenization:
              $ref: '#/components/schemas/MastercardTokenizationConnection'
            payex:
              $ref: '#/components/schemas/PayExConnectionV2'
            swish:
              $ref: '#/components/schemas/SwishConnection'
            two:
              $ref: '#/components/schemas/TwoConnection'
            vipps:
              $ref: '#/components/schemas/VippsConnection'
            vipps_psp:
              $ref: '#/components/schemas/VippsPspConnection'
            visa_tokenization:
              $ref: '#/components/schemas/VisaTokenizationConnection'
        services:
          type: object
          readOnly: true
          description: |
            Status on services enabled on the merchant account
          properties:
            checkout:
              $ref: '#/components/schemas/CheckoutAccountService'
            customers:
              $ref: '#/components/schemas/AccountService'
            discounts:
              $ref: '#/components/schemas/AccountService'
            shopping:
              $ref: '#/components/schemas/AccountService'
            receipts:
              $ref: '#/components/schemas/AccountService'
            wallets:
              $ref: '#/components/schemas/AccountService'
            payout:
              $ref: '#/components/schemas/PayoutAccountService'
            ledger:
              $ref: '#/components/schemas/AccountService'
    PartnerConfiguration:
      type: object
      description: |
        Configuration options for the account.
      properties:
        default_price_package:
          type: string
          description: >
            Default price package to assign to new merchants.


            Use the price package ID of the price package.


            Please note that the price package must exist and be available to
            the

            partner account in question.
    AccountOnboarding:
      type: object
      properties:
        payment_channels:
          type: array
          items:
            type: string
            enum:
              - online
              - physical
              - payment_links
        integration_types:
          type: array
          items:
            type: string
            enum:
              - plugin
              - custom
        platforms:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              integration_type:
                type: string
                enum:
                  - plugin
              channel:
                type: string
                enum:
                  - online
                  - physical
        requested_payment_methods:
          type: array
          items:
            type: string
            enum:
              - creditcard
              - clicktopay
              - applepay
              - googlepay
              - vipps
              - mobilepay
              - swish
              - klarna
              - billie
              - walley
              - kravia
              - two
        currencies:
          type: array
          items:
            type: string
            format: currency
        allowed_merchant_category_codes:
          type: array
          description: >-
            Restricts the MCC codes available for selection during merchant
            onboarding.
          items:
            type: string
            pattern: ^\d{4}$
    ServiceFeatureRequest:
      type: object
      required:
        - requested
      properties:
        requested:
          type: string
          description: |
            Whether the Account should have the Feature
          enum:
            - enable
            - disable
    CheckoutServiceFeaturesRequest:
      type: object
      description: |
        Checkout features
      properties:
        applepay:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        billie:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        clicktopay:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        collector:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        creditcard:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        googlepay:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        instabank:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        klarna:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        mobilepay:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        santander:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        swish:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        vipps:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        two:
          $ref: '#/components/schemas/ServiceFeatureRequest'
    PayoutServiceFeaturesRequest:
      type: object
      description: |
        Payout features
      properties:
        split_payment:
          $ref: '#/components/schemas/ServiceFeatureRequest'
        daily_payouts:
          $ref: '#/components/schemas/ServiceFeatureRequest'
    ApprovalsPaymentProduct:
      type: string
      description: |
        The type of product that the merchant wants to use for their business.
         - `checkout` the merchant accepts payouts to a single bank account
           (per currency).
         - `split_payment` needed for partners, marketplaces and platforms that
           will onboard sellers that will receive payouts to the sellers' own bank
           accounts.
      enum:
        - checkout
        - split_payment
    ApprovalsBankAccount:
      type: object
      required:
        - bank_account_currency
        - payout_currency
      properties:
        bank_name:
          type: string
          description: Name of the Bank used
        bank_account_number:
          type: string
          description: BBAN, national bank account number
        bank_account_number_type:
          type: string
          enum:
            - IBAN
            - BBAN
          description: >
            The type of bank account number. Will default to BBAN in
            bank_country_code

            is norwegian. Will default to IBAN in all other countries.
        bank_account_country_code:
          type: string
          format: iso-3166-1
          description: >
            Country code, must be a two letter ISO 3166-1-alpha-2 country code.
            If not

            set we default to the country_code of parent approval object.
          maxLength: 2
          minLength: 2
        bank_account_currency:
          type: string
          format: iso4217-code
          example: NOK
          description: |
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        payout_currency:
          type: string
          format: iso4217-code
          example: NOK
          description: |
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        bank_identification_code:
          type: string
          example: DNBANOKKXXX
          description: >
            A BIC code, or Bank Identifier Code also know as SWIFT code,
            consistin of

            8 to 11 alphanumeric characters.
    ApprovalsPayment:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - country_code
            - organization_number
            - bank_accounts
            - payment_methods
            - products
          properties:
            products:
              type: array
              items:
                type: object
                required:
                  - product
                properties:
                  product:
                    $ref: '#/components/schemas/ApprovalsPaymentProduct'
            payment_methods:
              description: |
                Payment methods that the merchant wants to accept.
              type: array
              items:
                type: object
                required:
                  - payment_method
                properties:
                  payment_method:
                    type: string
                    enum:
                      - creditcard
                      - applepay
                      - clicktopay
                      - vipps
                      - swish
                      - mobilepay
                      - klarna
                      - walley
                      - santander
                      - netaxept
                      - instabank
                      - googlepay
                      - billie
                      - kravia
                      - two
            country_code:
              type: string
              format: iso-3166-1
              description: >
                Country code, must be a two letter ISO 3166-1-alpha-2 country
                code
              maxLength: 2
              minLength: 2
            organization_number:
              type: string
              description: |
                National organization number valid in the country specified.
            bank_accounts:
              type: array
              minItems: 1
              maxItems: 1
              description: |
                Bank account information about the seller. Currently
                the contract service only supports one bank_account per payout
                destination.
              items:
                $ref: '#/components/schemas/ApprovalsBankAccount'
            form_submitter:
              type: object
              description: >
                The user that will submit the form. If the email is set the user
                will be notified

                about the form via email.
              properties:
                email:
                  type: string
                  format: email
                  description: |
                    The email of the user that will submit the form.
                name:
                  type: string
                  description: |
                    The name of the user that will submit the form.
                title:
                  type: string
                  description: |
                    The title of the user that will submit the form.
    ApprovalsPaymentResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApprovalsPayment'
        - properties:
            case_status:
              $ref: '#/components/schemas/ApprovalStatus'
            links:
              type: array
              items:
                type: object
                properties:
                  href:
                    type: string
                    description: The URL of the link.
                    format: uri
                  rel:
                    type: string
                    description: |
                      Specifies the type of link
                    enum:
                      - contract_url
                      - cdd_case_url
                      - dintero_cdd_case_url
                      - declaration_url
                      - signed_contract_file_url
            mcc:
              type: string
              format: iso-18245
              example: 5814
              description: |
                A four-digit Merchant Category Code (MCC) for the store
                [ISO 18245:2003](https://www.iso.org/standard/33365.html)

                The MCC set on the case
    Individual:
      type: object
      description: |
        Used only if `type` is `individual`.
      additionalProperties: false
      properties:
        name:
          type: string
        birth_date:
          type: string
          format: date
        phone_number:
          type: string
        email:
          type: string
          format: email
        address_line:
          type: string
          example: Sommerkroveien 34
        address_line_2:
          type: string
          example: PB 123
        address_postal_code:
          type: string
          example: '0349'
        address_city:
          type: string
          example: Oslo
        address_country:
          type: string
          format: iso-3166-1
          description: |
            ISO 3166-1 country code
          example: 'NO'
    ApprovalsPayoutDestination:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - payout_destination_id
            - payout_reference
            - bank_accounts
          properties:
            language:
              type: string
              maxLength: 2
              enum:
                - en
                - 'no'
              description: >-
                The language that will be used in emails, declaration form,
                signing page etc.
            payout_destination_id:
              type: string
              maxLength: 40
              description: |
                ID of seller to create when the contract has been completed,
                signed, and approved.
            payout_destination_name:
              type: string
              maxLength: 60
              description: The name of the seller
            payout_destination_description:
              type: string
              maxLength: 1000
              description: Description of the seller
            payout_reference:
              type: string
              maxLength: 60
              description: >
                A static reference that will be included on bank payments, the

                name of the service the payout-destination will be enrolled
                into.

                Eg. if yor platform is an "Uber for lawnmowers" called "Mowber"

                the payout_reference should be "Mowber".
            type:
              $ref: '#/components/schemas/LegalEntityType'
            country_code:
              type: string
              format: iso-3166-1
              description: >
                Country code, must be a two letter ISO 3166-1-alpha-2 country
                code.

                Required if type is omitted or set to `company`.
              maxLength: 2
              minLength: 2
            organization_number:
              type: string
              description: >
                National organization number valid in the country specified.
                Required

                if type is omitted or set to `company`.
            individual:
              $ref: '#/components/schemas/Individual'
            bank_accounts:
              type: array
              minItems: 1
              maxItems: 1
              description: |
                Bank account information about the seller. Currently
                the contract service only supports one bank_account per payout
                destination.
              items:
                $ref: '#/components/schemas/ApprovalsBankAccount'
            payout_interval_type:
              type: string
              description: >
                The interval of the payout. The interval can be `daily`,
                `weekly` or `monthly`.
              enum:
                - daily
                - weekly
                - monthly
            form_submitter:
              type: object
              description: >
                The user that will submit the form. If the email is set the user
                will be notified

                about the form via email.
              properties:
                email:
                  type: string
                  format: email
                  description: |
                    The email of the user that will submit the form.
                name:
                  type: string
                  description: |
                    The name of the user that will submit the form.
                title:
                  type: string
                  description: |
                    The title of the user that will submit the form.
            settlement_report_configuration:
              type: object
              required:
                - emails
              properties:
                emails:
                  type: array
                  description: >-
                    Emails that will receive settlement reports by email for
                    this payout destination
                  minItems: 1
                  items:
                    type: string
                    format: email
            report_configuration:
              type: object
              description: >-
                Optional settings for automatically creating report
                configurations when the payout destination is created.
              required:
                - create_report_configuration
              properties:
                create_report_configuration:
                  type: boolean
                  description: >
                    If enabled a report configuration for this sellers
                    transactions is added when the payout destination is
                    created.
                email:
                  type: string
                  format: email
                  description: |
                    Optional email used in report configuration.
                schedule:
                  type: string
                  description: >
                    Optional report configuration schedule, will match the
                    payout interval if not otherwise specified.
                  enum:
                    - daily
                    - weekly
                    - monthly
                reference:
                  type: string
                  description: >
                    Optional reference, will use `payout_destination_id` if not
                    specified.
                content_types:
                  type: array
                  description: >-
                    Optional content types for the report, default is both
                    `application/pdf` and `text/csv`.
                  items:
                    type: string
                    enum:
                      - application/pdf
                      - text/csv
    ApprovalsPayoutDestinationResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/ApprovalsPayoutDestination'
        - properties:
            case_status:
              $ref: '#/components/schemas/ApprovalStatus'
            links:
              type: array
              items:
                type: object
                properties:
                  href:
                    type: string
                    description: The URL of the link.
                    format: uri
                  rel:
                    type: string
                    description: |
                      Specifies the type of link
                    enum:
                      - contract_url
                      - cdd_case_url
                      - dintero_cdd_case_url
                      - declaration_url
                      - signed_contract_file_url
    CustomerDueDiligenceCase:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - case_for
            - products
            - case_request
          properties:
            package:
              type: string
              description: |
                What pricing strategy to use for this company.
            case_for:
              type: object
              required:
                - account_id
              properties:
                account_id:
                  type: string
                payout_destination_id:
                  type: string
                  maxLength: 40
                  description: |
                    If set the case will apply to the seller id for the given
                    account.
                payout_destination_name:
                  type: string
                  maxLength: 60
                  description: The name of the seller
                payout_destination_description:
                  type: string
                  maxLength: 1000
                  description: Description of the seller
                payout_reference:
                  type: string
                  maxLength: 60
                  description: >
                    A static reference that will be included on bank payments
                    made via the payout_destination_id
            actions_on_approval:
              type: array
              items:
                type: string
                minItems: 1
                enum:
                  - enable_payout_account
                  - enable_checkout_account
                  - create_payout_destination
            products:
              type: array
              items:
                type: string
                minItems: 1
                enum:
                  - payout
                  - checkout
            payment_options:
              $ref: '#/components/schemas/PaymentOptions'
            case_request:
              type: object
              description: >
                Case object that will be submitted to the CDD service. See docs
                at https://docs.quickr.no/
              required:
                - checks
                - countryCode
                - organizationNumber
                - requireContractSigning
              properties:
                checks:
                  type: array
                  items:
                    type: string
                    minItems: 1
                    enum:
                      - KYC
                      - AML
                      - RISK
                      - INDUSTRY
                      - BANK_OWNERSHIP
                countryCode:
                  type: string
                  description: >
                    Country code, must be a two letter ISO 3166-1-alpha-2
                    country code
                  maxLength: 2
                  minLength: 2
                organizationNumber:
                  type: string
                  description: |
                    National organization number valid in the country specified.
                requireContractSigning:
                  type: boolean
                details:
                  type: object
                  description: >
                    Refer to docs at https://docs.quickr.no/. These properties
                    are populated in the contract and by checks performed
                callbackUrl:
                  type: string
                  description: >-
                    Autogenerated. Quickr POSTS to this url when the case is
                    updated
                referenceId:
                  type: string
    CustomerDueDiligenceCaseResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/CustomerDueDiligenceCase'
        - required:
            - events
            - account_id
          properties:
            account_id:
              readOnly: true
              type: string
            events:
              readOnly: true
              type: array
              items:
                description: Updates to case
                type: object
                required:
                  - id
                  - event
                  - created_at
                  - request_id
                properties:
                  id:
                    type: number
                    description: Starts at 1, increment by 1 for each event
                  request_id:
                    type: string
                  case_status:
                    $ref: '#/components/schemas/ApprovalStatus'
                  event:
                    type: string
                    enum:
                      - case_created
                      - case_updated
                      - enable_payout_account
                      - enable_checkout_account
                      - create_payout_destination
                  created_at:
                    type: string
                    format: date-time
                    description: |
                      The date-time when the event was created
                    readOnly: true
                  error:
                    type: string
                    description: |
                      Error message if the event contains an error
                    readOnly: true
                  case:
                    type: object
                    description: |
                      Case object as received from the CDD service
                  created:
                    type: object
                    description: |
                      Response when the case was created
                    required:
                      - case_id
                      - contract_url
                    properties:
                      case_id:
                        type: string
                      contract_url:
                        type: string
    BamboraConnectionCallback:
      type: object
      required:
        - merchant_number
        - md5_key
        - payment_options
      properties:
        merchant_number:
          type: string
          example: P12345678
        md5_key:
          type: string
          example: ae45ase
        access_token:
          type: string
        secret_token:
          type: string
        token_scope:
          type: string
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - bambora.creditcard
                  - bambora.vipps
    BamboraIppSubmerchant:
      type: object
      required:
        - id
        - pf_account_id
        - proxy_mid
        - status
        - created_at
      properties:
        id:
          type: string
          format: uuid
          description: |
            Unique ID for the onboarding
        pf_account_id:
          type: string
          description: |
            PayFac account ID assigned for the submerchant
        proxy_mid:
          type: string
          description: |
            Proxy merchant ID associated with the onboarding
        virtual_account_id:
          type: string
          description: |
            Virtual account ID assigned by Bambora
        status:
          type: string
          enum:
            - pending
            - approved
            - rejected
          description: |
            Current status of the onboarding

            - `pending` - Created but not yet processed by Bambora
            - `approved` - Bambora approved the submerchant
            - `rejected` - Bambora rejected the submerchant
        location_ids:
          type: array
          items:
            type: string
          description: |
            IDs of the locations associated with this onboarding
        request_data:
          type: object
          properties:
            legal_id:
              type: string
              description: |
                Legal entity ID (organization number)
            legal_name:
              type: string
              description: |
                Legal entity name
            legal_address:
              type: string
              description: |
                Legal entity street address
            legal_city:
              type: string
              description: |
                Legal entity city
            legal_postcode:
              type: string
              description: |
                Legal entity postcode
            legal_country:
              type: string
              description: |
                Legal entity country
            dba_name:
              type: string
              description: |
                Trading/business name
            dba_address:
              type: string
              description: |
                Business street address
            dba_city:
              type: string
              description: |
                Business city
            dba_postcode:
              type: string
              description: |
                Business postcode
            contact_email:
              type: string
              description: |
                Contact email
            contact_phone:
              type: string
              description: |
                Contact phone number
            contact_name:
              type: string
              description: |
                Contact name
        error_reason_code:
          type: string
          description: |
            Error reason code if the onboarding was rejected
        error_reason_description:
          type: string
          description: |
            Human-readable error description if the onboarding was rejected
        enrolled_at:
          type: string
          format: date-time
          description: |
            Time when the submerchant was enrolled
        created_at:
          type: string
          format: date-time
          description: |
            Time when the onboarding was created
        updated_at:
          type: string
          format: date-time
          description: |
            Time when the onboarding was last updated
    BamboraIppSubmerchantCollection:
      type: object
      required:
        - submerchants
      properties:
        submerchants:
          type: array
          items:
            $ref: '#/components/schemas/BamboraIppSubmerchant'
        starting_after:
          type: string
    CollectorConnectionCallback:
      type: object
      required:
        - username
        - payment_options
      properties:
        username:
          type: string
          example: c_user
        password:
          type: string
          example: my_collector_bank_password
          description: >
            The password for the given username. Password is optional _if_ using
            dintero:admin and one of the standard usernames
        store_id:
          type: number
          description: |
            **Deprecated** in favour of `stores.store_id`.

            Store id for B2C
        country:
          type: string
          format: iso-3166-1
          description: |
            **Deprecated** in favour of `stores.country`.
        stores:
          description: Configured stores in the Collector Partner Portal
          type: array
          items:
            type: object
            properties:
              store_id:
                type: number
              country:
                type: string
                format: iso-3166-1
              currency:
                type: string
                example: NOK
                description: |
                  The three-character ISO-4217 currency.
                  https://en.wikipedia.org/wiki/ISO_4217
              segment:
                type: string
                description: The type of customers this store id is used for
                enum:
                  - B2C
                  - B2B
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - collector.invoice
                  - collector.installment
                  - collector.invoice_b2b
    InstabankConnectionCallback:
      type: object
      description: Instabank Callback
      required:
        - organization_number
      properties:
        organization_number:
          type: string
    KraviaConnectionUpdate:
      type: object
      required:
        - invoice_delivery_method
      properties:
        invoice_delivery_method:
          $ref: '#/components/schemas/InvoiceDeliveryMethod'
    ApplePayConnectionUpdate:
      type: object
      required:
        - domain_names
      properties:
        domain_names:
          type: array
          items:
            type: string
            example: ecom.example.com
    PayExConnectionCallback:
      type: object
      required:
        - payee_id
        - payment_options
      properties:
        token:
          type: string
          example: eb4835ac0b0835ad8f886c0b077a49bc28f200ac03ba543ebea8bba8a62e143d
        payee_id:
          type: string
          example: 803-518c-4fa0-9b0f-177e871f21dd
        subsite:
          description: >
            Perform split settlements on payments. The subsite must be resolved
            with

            PayEx reconciliation before being used.
          type: string
          example: '1234678'
          maxLength: 40
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - payex.creditcard
    SwishPayfacConnectionSignup:
      type: object
      required:
        - case_id
        - swish_number
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case in auth service
          type: string
          format: uuid
        swish_number:
          description: The Swish number to be used for the merchant
          example: '1231182293'
        payment_options:
          description: Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - swish.swish
    SwishConnectionCallback:
      type: object
      required:
        - swish_number
      properties:
        swish_number:
          type: string
          description: The merchant's Swish number
          example: '1231182293'
        cert:
          type: string
          description: >
            Base 64 encoded string of the certificate. Can be in PEM or P12
            format.

            If PEM, key and ca are required.
        key:
          type: string
          description: Base 64 encoded string of the public key
        passphrase:
          description: The passphrase for the certificate
          type: string
        ca:
          description: Base 64 encoded string of the CA of the certificate
          type: string
        payment_options:
          description: |
            Payment options to enable for this connection
          type: array
          items:
            type: object
            required:
              - currencies
              - type
            properties:
              currencies:
                type: array
                items:
                  type: string
                  format: iso4217-code
                  example: NOK
              type:
                type: string
                enum:
                  - swish.swish
    VippsConnectionCallback:
      type: object
      properties:
        signup-id:
          type: string
          example: 81b83246-5c19-7b94-875b-ea6d1114f099
        orgnumber:
          type: string
          example: '692493206'
        merchant-name:
          type: string
          example: Vipps
        createdTime:
          type: string
          example: '00:00:00'
        merchantSerialNumber:
          type: string
          example: '123456'
        client_Id:
          type: string
          example: 51358942-08c8-4d50-99f4-a9aa970b5f5b
        client_Secret:
          type: string
          example: verysecret123
        subscriptionKeys:
          type: array
          items:
            type: object
            properties:
              product:
                type: string
                example: Access
              ocp-apim-subscription-key:
                type: string
                example: de897dbb-0cd3-4445-b003-ac8214ac4638
    VisaClickToPayPaymentOptions:
      description: |
        Payment options to enable for this connection
      type: array
      items:
        type: object
        required:
          - currencies
          - type
        properties:
          currencies:
            type: array
            items:
              type: string
              format: iso4217-code
              example: NOK
          type:
            type: string
            enum:
              - dintero_psp.clicktopay
    VisaClickToPayConnectionSignup:
      type: object
      required:
        - case_id
        - payment_options
      properties:
        case_id:
          description: |
            The id to the case id in auth service
          type: string
          format: uuid
        payment_options:
          $ref: '#/components/schemas/VisaClickToPayPaymentOptions'
    VisaClickToPayConnection:
      allOf:
        - required:
            - signups
          properties:
            signups:
              type: array
              description: |
                The signups received for this account.

                Will be unique per `case_id` and `store_id`.
              items:
                allOf:
                  - $ref: '#/components/schemas/VisaClickToPayConnectionSignup'
                  - required:
                      - created_at
                    properties:
                      created_at:
                        description: |
                          The time when signup was initiated
                        type: string
                        format: date-time
        - $ref: '#/components/schemas/AccountConnectionMeta'
    Grant:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - client_id
            - audience
            - scope
          properties:
            client_id:
              type: string
            audience:
              type: string
              example: https://api.dintero.com/v1/accounts/P00000000
            scope:
              type: array
              items:
                type: string
                minItems: 1
                example: receipts:write
            type:
              description: |
                Limit the usage of the grant. A grant with grant_types set
                to only `authorization_code` cannot be used in
                [Get Token](#operation/aid_auths_oauth_token_post) when
                calling the endpoint with `grant_type=client_credentials`
              default: any
              type: string
              enum:
                - any
                - authorization_code
                - client_credentials
                - password
            oidc:
              description: >
                Open ID connect configuration for the Grant. The option enables
                client

                to verify the identify of the End-User based on the
                authentication

                performed by an authorization server


                The grant type must be set to `authorization_code` when
                configured.
              required:
                - authority
                - client_id
                - client_secret
              properties:
                client_id:
                  type: string
                client_secret:
                  type: string
                authority:
                  type: string
                  description: >
                    The authority for the authentication, the authority must
                    support

                    OpenID connect discovery


                    example:
                    https://identityserver.example.com/access/.well-known/openid-configuration
                  format: url
                  example: https://identityserver.example.com/access
    Client:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - properties:
            name:
              type: string
            description:
              type: string
            client_id:
              type: string
              description: Your client ID.
            callbacks:
              type: array
              items:
                type: string
    ClientPatch:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
    PasswordLess:
      type: object
      required:
        - client_id
        - connection
        - audience
      properties:
        audience:
          type: string
          description: |
            The unique identifier of the target API you want to access.
        client_id:
          type: string
        connection:
          type: string
          description: |
            How to send the code to the user.
          enum:
            - email
            - sms
        email:
          type: string
          description: |
            The user's email address
        type:
          type: string
          description: |
            Passwordless for type company/customer requires that
            the email is registered to a customers users
          enum:
            - company
            - customer
          default: customer
        send:
          type: string
          description: |
            Use `code` to send a verification code.
          default: code
          enum:
            - code
        login_session_id:
          type: string
          description: |
            Use `login_session_id` to resend the same verifcation code to
            an alternative connection.
    RevokeToken:
      type: object
      required:
        - token
      properties:
        token:
          type: string
          example: YOUR_REFRESH_TOKEN
    AuthRole:
      type: object
      description: |
        Role that can be assigned to users
      required:
        - scope
      properties:
        id:
          type: string
          format: uuid
          description: |
            An UUID that uniquely identifies the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        deleted_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          example: order support
        description:
          type: string
          example: Administrate orders
        scope:
          type: array
          items:
            type: string
            minItems: 1
          example:
            - read:accounts
            - read:billing
            - admin:shopping
    AuthToken:
      type: object
      discriminator:
        propertyName: grant_type
      required:
        - grant_type
      properties:
        grant_type:
          type: string
    AccessToken:
      type: object
      required:
        - access_token
        - token_type
        - expires_in
      properties:
        access_token:
          type: string
          description: A JWT access token
          example: eyJhbGci...t7P4
        token_type:
          type: string
          enum:
            - Bearer
        expires_in:
          type: integer
          description: |
            The lifetime in seconds of the access token.  For
            example, the value "3600" denotes that the access token will
            expire in one hour from the time the response was generated.
          example: 86400
        refresh_token:
          type: string
          description: |
            Token that can be used to request new tokens when the existing
            Access Token expire.

            You can only get a Refresh Token if the Access Token used in the
            request has scope:

             - `create:accounts:auth:refresh_token`

            and the `grant-type` is one of:

             - `authorization_code`
             - `password`

            **NOTE**:
             - A Single-Page Application should not ever receive a Refresh Token,
               this information is sensitive and should not be exposed client-side
               in a browser.
             - Refresh token must be stored securely by an application since
               they allow a user to remain authenticated essentially forever.
    ReportedVolume:
      type: object
      required:
        - type
        - period
        - currency
        - volume
        - count
      properties:
        type:
          type: string
          enum:
            - monthly
            - weekly
        period:
          type: string
          description: |
            Format depend on type, e.g. `2023-09` for monthly and `2023-W40`
            for weekly
          format: iso-8601
        currency:
          type: string
          format: iso-4217
        volume:
          type: integer
        count:
          type: integer
    AccountPrivateDetails:
      type: object
      description: |
        Account properties that are private and managed by the
        root partner.
      properties:
        progression:
          type: string
          enum:
            - applied
            - live
            - frozen
            - deactivated
          description: |
            Status assigned to the account by the account partner
            > value is not visible for the merchant.
        reseller_id:
          type: string
          description: |
            Reseller id assigned by the account partner
            > value is not visible for the merchant
          example: DINTERO_ACCOUNT:99900000
        account_manager:
          type: object
          required:
            - email
          description: |
            Account manager responsible for the account.
            > value is not visible for the merchant
          properties:
            email:
              type: string
              example: employee@dintero.com
        permissions:
          description: List the permission granted the account
          type: array
          items:
            type: object
            required:
              - effect
              - action
            properties:
              effect:
                type: string
                enum:
                  - allow
                  - deny
              action:
                type: array
                minItems: 1
                maxItems: 1
                items:
                  type: string
                  enum:
                    - checkout:auto_capture
                    - notifications:publish
        sale_channel:
          type: string
          enum:
            - DIRECT
            - INBOUND
            - PARTNER
            - REFERRAL
        price_package:
          type: string
        statistics:
          type: object
          description: Statistics for the account
          properties:
            checkout_captures:
              description: Statistics about transactions captured
              type: array
              readOnly: true
              items:
                $ref: '#/components/schemas/ReportedVolume'
              example:
                - type: monthly
                  periode: 2023-09
                  currency: NOK
                  volume: 3921930
                  count: 131
                - type: weekly
                  periode: 2023-W33
                  currency: NOK
                  volume: 980482
                  count: 32
            metrics:
              description: key metrics about the account
              properties:
                checkout:transaction:first_capture_at:
                  type: string
                  format: datetime
                checkout:transaction:last_capture_at:
                  type: string
                  format: datetime
        services:
          type: object
          properties:
            checkout:
              type: object
              required:
                - features
              properties:
                features:
                  $ref: '#/components/schemas/CheckoutServiceFeatures'
            payout:
              required:
                - features
              properties:
                features:
                  $ref: '#/components/schemas/PayoutAccountService'
    AccountApprovals:
      type: object
      properties:
        approvals_payments_statuses:
          type: object
          description: Count of statuses of payments approvals
          properties:
            ACTIVE:
              type: number
            DECLINED:
              type: number
            UNDER_MANUAL_REVIEW:
              type: number
            AUTOMATIC_REVIEW:
              type: number
            WAITING_FOR_SIGNATURE:
              type: number
            WAITING_FOR_DECLARATION:
              type: number
            WAITING_FOR_DETAILS:
              type: number
            ERROR:
              type: number
            ARCHIVED:
              type: number
            TERMINATED:
              type: number
        approvals_payout_destinations_statuses:
          type: object
          description: >-
            Count of statuses of payout destinations approvals (aka seller
            approvals)
          properties:
            ACTIVE:
              type: number
            DECLINED:
              type: number
            UNDER_MANUAL_REVIEW:
              type: number
            AUTOMATIC_REVIEW:
              type: number
            WAITING_FOR_SIGNATURE:
              type: number
            WAITING_FOR_DECLARATION:
              type: number
            WAITING_FOR_DETAILS:
              type: number
            ERROR:
              type: number
            ARCHIVED:
              type: number
            TERMINATED:
              type: number
    ExtendedAccount:
      allOf:
        - $ref: '#/components/schemas/Account'
        - $ref: '#/components/schemas/AccountPrivateDetails'
        - $ref: '#/components/schemas/AccountReadOnly'
        - $ref: '#/components/schemas/AccountApprovals'
        - type: object
          properties:
            configuration:
              $ref: '#/components/schemas/PartnerConfiguration'
    PricePackageCustomCreateData:
      type: object
      allOf:
        - $ref: '#/components/schemas/PricePackageMeta'
        - $ref: '#/components/schemas/PricePackageProducts'
    AccountEvent:
      type: object
      discriminator:
        propertyName: event_type
      description: |
        Events registered on the account
      required:
        - event_type
      properties:
        event_type:
          type: string
        id:
          type: string
          description: |
            An id that uniquely identifies the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          description: |
            The ID of the user/client created the resource
          readOnly: true
    AccountPricePackages:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          required:
            - price_packages
          properties:
            price_packages:
              type: array
              items:
                $ref: '#/components/schemas/PricePackageId'
    MatchRequestAddress:
      type: object
      properties:
        address_line:
          type: string
          description: First line of the address, usually includes street name and number
          minLength: 1
          maxLength: 60
        address_line_2:
          type: string
          description: >-
            Second line of the address, usually includes apartment number or
            suite number
          maxLength: 60
        city:
          type: string
          description: The name of the city for a merchant location
          minLength: 1
          maxLength: 40
        postal_code:
          type: string
          description: The postal code for a merchant location
          minLength: 1
          maxLength: 10
        country:
          type: string
          description: >
            The country in which the address resides. \

            Valid values are three digit alpha country codes as defined in ISO
            3166-1 (See https://en.wikipedia.org/wiki/ISO_3166-1)
          minLength: 1
          maxLength: 3
      required:
        - address_line
        - city
        - postal_code
        - country
    MatchRequestPrincipal:
      type: array
      description: List of ultimate beneficial owners
      minItems: 1
      maxItems: 5
      items:
        type: object
        required:
          - first_name
          - last_name
          - email
          - phone_number
          - address
        properties:
          first_name:
            type: string
            description: The first name of the principal owner of the business
            minLength: 1
            maxLength: 40
          last_name:
            type: string
            description: The last name of the principal owner of the business
            minLength: 1
            maxLength: 40
          email:
            type: string
            description: Email Id of a principal.
            example: abc@xxx.com
            minLength: 1
            maxLength: 100
            pattern: ^[a-zA-Z0-9!#$&*+/\?`@{|}~^.\-]+(\.com|\.net|\.org|\.edu)?$
          phone_number:
            type: string
            description: >
              The merchant’s business phone number, including area code.

              - For U.S. numbers - Must be exactly 10 digits and cannot start
              with 0 or 1.

              - For non-U.S. numbers - Can be up to 25 digits. Do not include
              the country code.

              - Formatting - Digits only. Do not use symbols or formatting
              characters (e.g., parentheses, spaces, or dashes).
            example: '3165557625'
            minLength: 1
            maxLength: 25
            pattern: ^[0-9]+$
          date_of_birth:
            type: string
            description: |
              The date of birth of the principal owner.
              Format: YYYY-MM-DD
            example: ‘1980-01-01’
            format: date
          address:
            type: object
            required:
              - address_line
              - city
              - country
            properties:
              address_line:
                type: string
                description: >-
                  First line of the address, usually includes street name and
                  number
                minLength: 1
                maxLength: 60
              address_line_2:
                type: string
                description: >-
                  Second line of the address, usually includes apartment number
                  or suite number
                maxLength: 60
              city:
                type: string
                description: The name of the city for a merchant location
                minLength: 1
                maxLength: 40
              postal_code:
                type: string
                description: The postal code for a merchant location
                minLength: 1
                maxLength: 10
              country:
                type: string
                description: >
                  The country in which the address resides. \

                  Valid values are three digit alpha country codes as defined in
                  ISO 3166-1 (See https://en.wikipedia.org/wiki/ISO_3166-1)
                minLength: 1
                maxLength: 3
    MatchRequestMerchant:
      type: object
      properties:
        business_name:
          type: string
          description: The name of the business assigned by the principal owner(s)
          minLength: 1
          maxLength: 60
        trade_name:
          type: string
          description: >-
            The name used by a merchant that could be different from the legal
            name of the business
          maxLength: 110
        website_url:
          type: string
          description: URL to website of business
          maxLength: 4000
        address:
          $ref: '#/components/schemas/MatchRequestAddress'
        principals:
          $ref: '#/components/schemas/MatchRequestPrincipal'
        phone_number:
          type: string
          description: >-
            The Business or Merchant's phone number. Should not contain country
            code and should be digits only
          maxLength: 25
        merchant_category:
          type: string
          minLength: 1
          maxLength: 4
          description: |
            A classification code used in authorization, clearing,
            and other transactions or reports to identify the type of merchant.
          example: '1234'
      required:
        - business_name
        - principals
        - address
        - phone_number
        - merchant_category
    MatchRequestSearchCriteria:
      required:
        - search_all
      type: object
      properties:
        search_all:
          type: string
          description: >
            Determines if the inquiry is worldwide or not.

            The inquiry request can be either worldwide or regions and/or
            countries based.

            It cannot be both. If it is not worldwide search (search_all = N)
            and if 

            both region and country are not specified, then search will happen
            for USA.

            Valid values are Y or N
        region:
          type: array
          description: |
            Region in which the inquiry results must be obtained.

            (1) - U.S. REGION;
            (A) - CANADA;
            (B) - CARIB,C AMERICA,MEX,S AMERICA;
            (C) - ASIA/PACIFIC;
            (D) - EUROPE;
            (E) - SOUTH ASIA MIDDLE EAST AFRICA;

            A maximum of 6 regions may be submitted.
          items:
            type: string
          example:
            - '1'
            - A
            - D
        country:
          type: array
          description: >
            The three digit country code of the principal owner.

            Valid values are three digit alpha country codes as defined in ISO
            3166-1 (See https://en.wikipedia.org/wiki/ISO_3166-1)
          items:
            type: string
          example:
            - NOR
            - USA
            - CAN
    MatchTerminationRequest:
      type: object
      properties:
        merchant:
          $ref: '#/components/schemas/MatchRequestMerchant'
        search_criteria:
          $ref: '#/components/schemas/MatchRequestSearchCriteria'
      required:
        - merchant
        - search_criteria
    MatchAddress:
      type: object
      properties:
        address_line_one:
          type: string
          description: First line of the address, usually includes street name and number
          minLength: 1
          maxLength: 60
        address_line_two:
          type: string
          description: >-
            Second line of the address, usually includes apartment number or
            suite number
          maxLength: 60
        city:
          type: string
          description: The name of the city for a merchant location.
          minLength: 1
          maxLength: 40
        country_subdivision:
          type: string
          description: >-
            The abbreviated state or province code for a merchant location (only
            supported for US and Canada merchants).
          maxLength: 2
        province:
          type: string
          description: The name of the province for the location.
          maxLength: 3
        postal_code:
          type: string
          description: The postal code for a merchant location
          minLength: 1
          maxLength: 10
        country:
          type: string
          description: >-
            The country in which the address resides. Valid values are three
            digit alpha country codes as defined in ISO 3166-1 (See
            https://en.wikipedia.org/wiki/ISO_3166-1)
          minLength: 1
          maxLength: 3
    MatchDriversLicense:
      type: object
      properties:
        number:
          type: string
          description: >-
            The drivers license number of a principal owner. Required when
            Drivers License Country is provided. Should not be provided if
            Drivers License Country is not provided.
          maxLength: 25
        country_subdivision:
          type: string
          description: >-
            The abbreviated state or province code for a merchant location (only
            supported for US and Canada merchants). Required when Drivers
            License Country is 'USA'. Should not be provided for non-US Drivers
            License Country.
          maxLength: 2
        country:
          type: string
          description: >-
            The three digit country code of the principal owner. Valid values
            are three digit alpha country codes as defined in ISO 3166-1.
            Required when Drivers License Number is provided. Should not be
            provided if Drivers License Number is not provided.
          maxLength: 3
    MatchPrincipal:
      type: array
      items:
        type: object
        properties:
          first_name:
            type: string
            description: The first name of the principal owner of the business.
            minLength: 1
            maxLength: 40
          middle_initial:
            type: string
            description: >-
              The middle initial of the name of the principal owner of the
              business.
          last_name:
            type: string
            description: The last name of the principal owner of the business.
            minLength: 1
            maxLength: 40
          address:
            $ref: '#/components/schemas/MatchAddress'
          phone_number:
            type: string
            description: >-
              The Business or Merchant's phone number. Should not contain
              country code and should be digits only
            maxLength: 25
          email:
            type: string
            description: Email Id of a principal owner of the business.
          alt_phone_number:
            type: string
            description: The Business or Merchant's alternate phone number
            maxLength: 25
          national_id:
            type: string
            description: >-
              The Social Security number of a principal owner. If the principal
              owner is not from the U.S. Region, then use their national ID card
              number.
            maxLength: 35
          drivers_license:
            $ref: '#/components/schemas/MatchDriversLicense'
    MatchTerminationReason:
      type: string
      example: '13'
      enum:
        - '01'
        - '02'
        - '03'
        - '04'
        - '05'
        - '07'
        - '08'
        - '09'
        - '10'
        - '11'
        - '12'
        - '13'
        - '14'
      description: >
        A two digit numeric code indication why a particular merchant was
        terminated.


        * 01 - Account Data Compromise

        * 02 - Common Points of Purchase

        * 03 - Laundering

        * 04 - Excessive Chargebacks

        * 05 - Excessive Fraud

        * 06 - Reserved for Future Use

        * 07 - Fraud Conviction

        * 08 - MasterCard Questionable Merchant Audit Program

        * 09 - Bankruptcy/Liquidation/Insolvency

        * 10 - Violation of MasterCard Standards

        * 11 - Merchant collusion

        * 12 - PCI Data Security Standard, Noncompliance

        * 13 - Illegal Transactions

        * 14 - Identity Theft
    MatchUrl:
      type: object
      properties:
        urls:
          type: array
          items:
            type: string
            maxLength: 4000
    MatchUrlGroup:
      type: object
      properties:
        exact_match_urls:
          $ref: '#/components/schemas/MatchUrl'
        close_match_urls:
          $ref: '#/components/schemas/MatchUrl'
        no_match_urls:
          $ref: '#/components/schemas/MatchUrl'
    MatchMerchant:
      type: object
      properties:
        name:
          type: string
          description: The name of the business assigned by the principal owner(s)
          minLength: 1
          maxLength: 60
        doing_business_as_name:
          type: string
          description: >-
            The name used by a merchant that could be different from the legal
            name of the business
          maxLength: 110
        address:
          $ref: '#/components/schemas/MatchAddress'
        phone_number:
          type: string
          description: >-
            The Business or Merchant's phone number. Should not contain country
            code and should be digits only
          maxLength: 25
        alt_phone_number:
          type: string
          description: The Business or Merchant's alternate phone number
          maxLength: 25
        national_tax_id:
          type: string
          description: The Merchant national tax ID (only provided in the US and is masked)
          maxLength: 35
        country_subdivision_tax_id:
          type: string
          description: >-
            The Merchant Country Subdivision tax ID (only provided in the US and
            is masked)
          maxLength: 35
        urls:
          type: array
          description: Website addresses of the merchant
          items:
            type: string
            maxLength: 4000
        principals:
          $ref: '#/components/schemas/MatchPrincipal'
        added_on_date:
          type: string
          description: Date the merchant was added to the MATCH database (ISO 8601 format).
          example: 2024-01-17T00:00:00.000Z
        termination_reason_code:
          $ref: '#/components/schemas/MatchTerminationReason'
        added_by_acquirer_id:
          type: string
          description: The Member ICA that has added the merchant to the MATCH system
          maxLength: 11
        url_groups:
          type: array
          items:
            $ref: '#/components/schemas/MatchUrlGroup'
        comments:
          type: string
          description: Brief comments on why Merchant is added
          example: Added for reasons of fraud
          maxLength: 500
    MatchPrincipalMatch:
      type: object
      properties:
        name:
          type: string
        address:
          type: string
        phone_number:
          type: string
        alt_phone_number:
          type: string
        national_id:
          type: string
        drivers_license:
          type: string
        email:
          type: string
        date_of_birth:
          type: string
    MatchMerchantMatch:
      type: object
      description: >
        Object showing which field in the merchant data that matched the
        inquiry.

        Each field has a string value of M00, M01 or M02.


        M00 - No match for the given field


        M01 - Exact match for the given field


        M02 - Phonetic match for the given field


        A phonetic match can happen for words that sound similar (e.g. easy and
        EZ)

        or minor typographical differences, such as Rob and Bob
      properties:
        name:
          type: string
        doing_business_as_name:
          type: string
        phone_number:
          type: string
        address:
          type: string
        alt_phone_number:
          type: string
        country_subdivision_tax_id:
          type: string
        national_tax_id:
          type: string
        principal_matches:
          type: array
          items:
            $ref: '#/components/schemas/MatchPrincipalMatch'
    MatchSearchResponse:
      type: object
      properties:
        starting_after:
          type: integer
          description: >
            cursor for use in pagination. starting_after is the zero-based index
            to start the next request after.

            For instance, if you send a request that starts at index 0 and
            returns 10 items, a subsequent call can include starting_after=10 in
            order to fetch items starting with item 11.


            If there are no more items this field is not returned.
        inquiry_reference_number:
          type: string
          description: Reference number to look up inquiry result
        possible_matches:
          type: array
          items:
            type: object
            properties:
              total_merchant_matches:
                type: number
                description: Total number of possible matches on terminated merchants
              terminated_merchants:
                type: array
                items:
                  type: object
                  properties:
                    merchant:
                      $ref: '#/components/schemas/MatchMerchant'
                    merchant_match:
                      $ref: '#/components/schemas/MatchMerchantMatch'
    MatchTerminateMerchant:
      type: object
      properties:
        merchant:
          allOf:
            - $ref: '#/components/schemas/MatchRequestMerchant'
            - required:
                - phone_number
            - type: object
              required:
                - merchant_id
                - merchant_category
                - is_proprietorship
                - is_transaction_laundering
              properties:
                merchant_id:
                  type: string
                  minLength: 1
                  maxLength: 15
                  description: >
                    The identifier assigned to a merchant by an acquirer. An
                    acquirer ID and 

                    merchant ID combination must be unique and merchant ID
                    should be less than 15 characters.
                  example: '1234567890'
                merchant_category:
                  type: string
                  minLength: 1
                  maxLength: 4
                  description: >
                    A classification code used in authorization, clearing,

                    and other transactions or reports to identify the type of
                    merchant.
                  example: '1234'
                is_proprietorship:
                  type: string
                  enum:
                    - 'Y'
                    - 'N'
                  description: Y if the merchant is a sole proprietorship
                  example: 'N'
                is_transaction_laundering:
                  type: string
                  enum:
                    - 'Y'
                    - 'N'
                  description: Y if the merchant was terminated for transaction laundering
                  example: 'N'
                principals:
                  type: array
                  minItems: 1
                  maxItems: 5
                  items:
                    type: object
                    required:
                      - date_of_birth
                    properties:
                      date_of_birth:
                        type: string
                        description: |
                          The date of birth of the principal owner.
                          Format: YYYY-MM-DD
                        example: 1980-01-01T00:00:00.000Z
                        format: date
        termination:
          type: object
          required:
            - termination_reason
            - agreement_start_date
            - agreement_termination_date
          properties:
            termination_reason:
              $ref: '#/components/schemas/MatchTerminationReason'
            agreement_start_date:
              type: string
              description: |
                Date the merchant entered into agreement with the acquirer
                Format: YYYY-MM-DD
              example: 2013-12-31T00:00:00.000Z
              format: date
            agreement_termination_date:
              type: string
              description: |
                Date the agreement was terminated with the merchant
                Format: YYYY-MM-DD
              example: 2013-12-31T00:00:00.000Z
              format: date
            comment:
              type: string
              description: Comment on why the merchant is added
              example: Added due to fraud
      required:
        - merchant
        - termination
    VMSSAddress:
      type: object
      required:
        - city
        - countryOrRegion
        - streetAddress
      properties:
        city:
          type: string
          description: The city of the merchant's or agent's registered address.
          minLength: 2
          maxLength: 30
          example: St Albans
        countryOrRegion:
          type: string
          description: >-
            The country or region of the merchant's or agent's registered
            address.
          pattern: ([A-Z]){2}
          minLength: 2
          maxLength: 2
          example: 'NO'
        streetAddress:
          type: string
          description: >
            The street details of the merchant's or agent's registered address
            that should include,

            in this order as applicable: building number/name, street number and
            name, shop number, floor number.
          minLength: 4
          maxLength: 40
          example: 80 Wood Street
        stateOrProvince:
          type: string
          description: >-
            The state or province of the merchant's or agent's registered
            address.
          minLength: 2
          maxLength: 20
          example: CA
        zipOrPostalCode:
          type: string
          description: >-
            The postal code or zip code for the merchant's or agent's registered
            address. Required for the US.
          minLength: 3
          maxLength: 8
          example: SA82GF
    VMSSPrincipal:
      title: >-
        Up to 5 individuals that are registered as the merchant or agent
        principal/owner.
      type: array
      items:
        required:
          - name
        type: object
        properties:
          SSN:
            maxLength: 11
            minLength: 11
            type: string
            description: The merchant or agent principal's/owner’s social security number.
          name:
            maxLength: 35
            minLength: 5
            type: string
            description: |
              The name of the individual that is registered as the merchant
              or agent principal/owner.
            example: Bill Smith
          principalID:
            maxLength: 30
            minLength: 0
            type: string
            description: The merchant or agent principal's/owner's id from VMSS 1.0.
            example: '07043453'
          passportNumber:
            maxLength: 30
            minLength: 0
            type: string
            description: The merchant or agent principal's/owner's passport number.
            example: '07043453'
          businessPhoneNumber:
            maxLength: 15
            minLength: 8
            type: string
            description: |
              The merchant or agent principal's/owner's corporate/business
              contact number.
            example: '+861071111222'
          driverLicenseNumber:
            maxLength: 20
            minLength: 0
            type: string
            description: The merchant or agent principal's/owner's driver license number.
            example: '07043453'
          businessEmailAddress:
            maxLength: 40
            minLength: 4
            type: string
            description: |
              The merchant or agent principal's/owner's corporate/business
              email address.
            example: billsmith@snapphoto.com
          residentIDOrNationalID:
            maxLength: 30
            minLength: 0
            type: string
            description: |
              The merchant or agent principal's/owner's resident ID number
              or National ID number. This is required for clients in CEMEA.
            example: '07043453'
    VMSSFinancialAccounts:
      title: Up to 3 financial accounts
      type: array
      items:
        type: object
        properties:
          intBankAccountNumber:
            maxLength: 34
            minLength: 4
            type: string
            description: |
              An International Bank Account Number that can be verified by
              a checksum.
            example: NO8330001234567
          financialAccountNumber:
            maxLength: 20
            minLength: 0
            type: string
            description: |
              A code assigned by a financial institution to uniquely identify
              a customer account within the financial institution.
            example: '8090765400'
          financialInstitutionID:
            maxLength: 10
            minLength: 0
            type: string
            description: |
              A unique code that identifies a Financial Institution; for
            example: '101010'
    VMSSRequestMerchant:
      type: object
      required:
        - DBAName
        - address
        - businessPhoneNumbers
        - principals
      properties:
        address:
          $ref: '#/components/schemas/VMSSAddress'
        taxID:
          maxLength: 30
          minLength: 6
          type: string
          description: >
            A Tax Identification Code registered for the merchant or agent;

            for example, a Value Added Tax (VAT) Number in the UK or a Federal
            Tax

            ID Number in US.
          example: GB123456789
        DBAName:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            The “Doing-Business-As” Name that the merchant or agent operates
            under.
          example: Snap Photoshop Ltd
        category:
          maxLength: 1
          minLength: 1
          pattern: '[0-5]'
          type: string
          description: |-
            Business Category of the Terminated Record defined as follows:
            0 = Merchant
            1 = Payment Facilitator
            2 = Independent Sales Organization
            3 = Marketplace
            4 = Staged Digital Wallet Operator
            5 = Sponsored Merchant
          example: '1'
        legalName:
          maxLength: 70
          minLength: 4
          type: string
          description: >
            The parent or holding company legally registered name if this

            name is different from the Trading Name/DBA Name. For a sole
            proprietor,

            this field shall be omitted.
          example: Snap Photoshop Ltd
        principals:
          $ref: '#/components/schemas/VMSSPrincipal'
        webAddresses:
          maxItems: 3
          minItems: 0
          type: array
          description: >
            The registered web address of the merchant or agent. You may

            enter up to 3 web addresses. A web address is required when
            tradeOverInternet

            is true.
          items:
            maxLength: 40
            minLength: 4
            type: string
            example: https://u.nu
        financialAccts:
          $ref: '#/components/schemas/VMSSFinancialAccounts'
        tradeOverInternet:
          type: boolean
          description: |
            An indicator identifying if the merchant or agent trades over
            the Internet.
          default: false
          example: false
        businessEmailAddress:
          maxLength: 40
          minLength: 4
          type: string
          description: The primary email address registered for the merchant or agent.
          example: billsmith@snapphoto.com
        businessPhoneNumbers:
          maxItems: 3
          minItems: 1
          type: array
          description: |
            The primary phone number registered for the merchant or agent.
            You may enter up to 3 phone numbers.
          items:
            maxLength: 15
            minLength: 8
            type: string
            example: '+861071111222'
        merchantCategoryCodes:
          maxItems: 5
          minItems: 0
          type: array
          description: >
            A four-digit numeric code describing the merchant’s type of

            business product or service, also known as the merchant category
            code

            (MCC).
          items:
            maxLength: 5
            minLength: 1
            pattern: \d{4}
            type: string
            example: '5411'
        businessRegistrationNumber:
          maxLength: 30
          minLength: 2
          type: string
          description: >
            A Business Registration Number such as Commercial Registration,

            Ministry of Commerce certificate number or equivalent registration
            number

            for the merchant or agent.
          example: '452349600005'
    VMSSInquiryRequest:
      type: object
      properties:
        merchant:
          $ref: '#/components/schemas/VMSSRequestMerchant'
      required:
        - merchant
    VMSSTerminatedRecord:
      required:
        - address
        - businessPhoneNumbers
        - cardAcceptorIDs
        - category
        - contractEndDate
        - contractStartDate
        - DBAName
        - incorportationStatus
        - primaryListingReason
        - principals
        - tradeInternationally
        - tradeOverInternet
        - merchantCategoryCodes
      type: object
      properties:
        taxID:
          maxLength: 30
          minLength: 6
          type: string
          description: >
            A Tax Identification Code registered for the merchant or agent;

            for example, a Value Added Tax (VAT) Number in the UK or a Federal
            Tax

            ID Number in US.
          example: GB123456789
        DBAName:
          maxLength: 70
          minLength: 1
          type: string
          description: |
            The “Doing-Business-As” Name that the merchant or agent operates
            under.
          example: Snap Photoshop Ltd
        address:
          $ref: '#/components/schemas/VMSSAddress'
        category:
          maxLength: 1
          minLength: 0
          pattern: '[0-5]'
          type: string
          description: |-
            Business Category of the Terminated Record defined as follows:
            0 = Merchant
            1 = Payment Facilitator
            2 = Independent Sales Organization
            3 = Marketplace
            4 = Staged Digital Wallet Operator
            5 = Sponsored Merchant
          example: '1'
        legalName:
          maxLength: 70
          minLength: 4
          type: string
          description: >
            The parent or holding company legally registered name if this

            name is different from the Trading Name/DBA Name. For a sole
            proprietor,

            this field shall be omitted.
          example: Snap Photoshop Ltd
        principals:
          $ref: '#/components/schemas/VMSSPrincipal'
        webAddresses:
          title: >
            The registered web address of the merchant or agent. You may enter

            up to 3 web addresses. A web address is required when
            tradeOverInternet

            is true.
          maxItems: 3
          minItems: 0
          type: array
          description: >
            The registered web address of the merchant or agent. You may

            enter up to 3 web addresses. A web address is required when
            tradeOverInternet

            is true.
          items:
            maxLength: 40
            minLength: 4
            type: string
            example: https://u.nu
        financialAccts:
          $ref: '#/components/schemas/VMSSFinancialAccounts'
        cardAcceptorIDs:
          title: |
            A unique reference identifying the sales establishment requesting
            the transaction. You may enter up to 5 Card Acceptor IDs.
          maxItems: 5
          minItems: 1
          type: array
          items:
            maxLength: 15
            minLength: 1
            type: string
            description: |
              A unique reference identifying the sales establishment requesting
              the transaction. You may enter up to 5 Card Acceptor IDs.
            example: '12345678910111'
        contractEndDate:
          maxLength: 10
          minLength: 10
          type: string
          description: |
            The date on which the merchant's or agent's contract agreement
            was terminated.
          example: 2019-11-14T00:00:00.000Z
        contractStartDate:
          maxLength: 10
          minLength: 10
          type: string
          description: |
            The date on which the merchant's or agent's contract agreement
            was granted.
          example: 2019-11-01T00:00:00.000Z
        tradeOverInternet:
          type: boolean
          description: |
            An indicator identifying if the merchant or agent trades over
            the Internet.
          default: false
          example: false
        businessEmailAddress:
          maxLength: 40
          minLength: 4
          type: string
          description: The primary email address registered for the merchant or agent.
          example: billsmith@snapphoto.com
        businessPhoneNumbers:
          title: |
            The primary phone number registered for the merchant or agent. You
            may enter up to 3 phone numbers.
          maxItems: 3
          minItems: 1
          type: array
          description: |
            The primary phone number registered for the merchant or agent.
            You may enter up to 3 phone numbers.
          items:
            maxLength: 15
            minLength: 8
            type: string
            example: '+861071111222'
        incorportationStatus:
          maxLength: 1
          minLength: 1
          pattern: '[1-6]|-1'
          type: string
          description: >-
            The incorporation status registered for the merchant or agent
            defined as follows:

            1 = Individual/Sole Proprietor

            2 = Partnership

            3 = Corporation

            4 = Medical or Legal Corporation 5 = Association / Estate / Trust

            6 = Non-Profit Organization

            -1 = Unknown (returned for legacy listings)
          example: '3'
        primaryListingReason:
          maxLength: 103
          minLength: 2
          type: string
          description: |
            The primary reason for the termination of the merchant's or
            agent's contract.
          example: 29-Bankruptcy/Liquidation/Insolvency
        tradeInternationally:
          type: boolean
          description: |
            An indicator identifying if the merchant or agent trades across
            international borders or territories.
          example: true
          default: false
        merchantCategoryCodes:
          title: |
            A four-digit numeric code describing the merchant’s type of business
            product or service, also known as the merchant category code (MCC).
          maxItems: 5
          minItems: 0
          type: array
          description: >
            A four-digit numeric code describing the merchant’s type of

            business product or service, also known as the merchant category
            code

            (MCC).
          items:
            maxLength: 5
            minLength: 1
            pattern: \d{4}
            type: string
            example: '5411'
        paymentFacilitatorBID:
          maxLength: 8
          minLength: 8
          pattern: \d{8}
          type: string
          description: |
            The business ID as registered with Visa to uniquely identify
            a payment facilitator.
          example: '10000108'
        secondaryListingReason:
          maxLength: 103
          minLength: 2
          type: string
          description: |
            The secondary reason for the termination of the merchant's
            or agent's contract.
          example: 34-Merchant Identity Theft
        acquirerAssignedMerchantID:
          maxLength: 30
          minLength: 2
          type: string
          description: >
            A unique Merchant Identification Number assigned by the Acquirer

            or by the Payment Facilitator in the case of a Sponsored Merchant.
            Mandatory

            for Merchant.
          example: '36654773'
        businessRegistrationNumber:
          maxLength: 30
          minLength: 2
          type: string
          description: >
            A Business Registration Number such as Commercial Registration,

            Ministry of Commerce certificate number or equivalent registration
            number

            for the merchant or agent.
          example: '452349600005'
        paymentFacilitatorCountryOrRegion:
          maxLength: 2
          minLength: 2
          pattern: ([A-Z]){2}
          type: string
          description: The country or region of the payment facilitator.
          example: 'NO'
    VMSSAddressMatch:
      type: object
      properties:
        city:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        streetAddress:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        countryOrRegion:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        stateOrProvince:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        zipOrPostalCode:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
    VMSSPrincipalsMatch:
      title: The principalMatch array.
      type: array
      items:
        type: object
        properties:
          SSN:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          name:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          principalID:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          passportNumber:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          businessPhoneNumber:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          driverLicenseNumber:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          businessEmailAddress:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          residentIDOrNationalID:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
    VMSSFinancialAccountsMatch:
      title: The financialAcctMatch array.
      type: array
      items:
        type: object
        properties:
          intBankAccountNumber:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          financialAccountNumber:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
          financialInstitutionID:
            maxLength: 1
            minLength: 1
            pattern: ([NEP]){1}
            type: string
            description: |-
              The indicator of the match type for the data field.
              N = No Match
              E = Exact Match
              P = Partial Match
            example: 'N'
    VMSSTerminatedRecordMatch:
      type: object
      properties:
        taxID:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        DBAName:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        legalName:
          maxLength: 35
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        addressMatch:
          $ref: '#/components/schemas/VMSSAddressMatch'
        webAddresses:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        principalsMatch:
          $ref: '#/components/schemas/VMSSPrincipalsMatch'
        tradeOverInternet:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        financialAcctsMatch:
          $ref: '#/components/schemas/VMSSFinancialAccountsMatch'
        businessEmailAddress:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        businessPhoneNumbers:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        merchantCategoryCodes:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
        businessRegistrationNumber:
          maxLength: 1
          minLength: 1
          pattern: ([NEP]){1}
          type: string
          description: |-
            The indicator of the match type for the data field.
            N = No Match
            E = Exact Match
            P = Partial Match
          example: 'N'
    VMSSMatchedRecord:
      title: Array of the matched records.
      type: array
      items:
        type: object
        properties:
          acquirerBID:
            maxLength: 8
            minLength: 8
            pattern: \d{8}
            type: string
            description: |
              Visa assigned Business Identifier (BID) of the Acquirer for
              the terminated contract.
            example: '10048640'
          acquirerName:
            maxLength: 240
            minLength: 0
            type: string
            description: Name of the Acquirer for the terminated contract.
            example: Bank of ABC
          terminatedRefID:
            maxLength: 36
            minLength: 1
            type: string
            description: |
              A system-generated terminated record reference identification
              number.
            example: 61e8aa42-d252-4e74-9dcc-85134f37a181
          terminatedRecord:
            $ref: '#/components/schemas/VMSSTerminatedRecord'
          terminatedRecordMatch:
            $ref: '#/components/schemas/VMSSTerminatedRecordMatch'
          acquirerCountryOrRegion:
            maxLength: 2
            minLength: 2
            pattern: ([A-Z]){2}
            type: string
            description: The country or region of the Acquirer for the terminated contract.
            example: 'NO'
    VMSSInquiryResponse:
      type: object
      properties:
        searchTerminatedResponse:
          type: object
          properties:
            possibleMatches:
              type: object
              properties:
                matchedRecords:
                  $ref: '#/components/schemas/VMSSMatchedRecord'
                totalCount:
                  type: integer
                  description: Number of possibly matched records returned in the response.
            searchRequestRef:
              type: object
              properties:
                acquirerBID:
                  maxLength: 8
                  minLength: 8
                  pattern: \d{8}
                  type: string
                  description: |
                    Visa assigned Business Identifier (BID) of the Acquirer for
                    the Search request.
                  example: '10048640'
                globalSearch:
                  type: boolean
                  description: >
                    An indicator identifying if the inquiry is worldwide or
                    regional

                    based. True means Global Search and False means Regional
                    Search.
                  default: false
                  example: false
                searchRequestRefID:
                  maxLength: 99999999
                  minLength: 0
                  type: string
                  description: A system-generated Search request reference id.
                  example: SRCH123412
                acquirerCountryOrRegion:
                  maxLength: 2
                  pattern: ([A-Z]){2}
                  type: string
                  description: >-
                    The country or region of the Acquirer for the Search
                    request.
                  example: 'NO'
                terminatedRecordSearchCriteria:
                  $ref: '#/components/schemas/VMSSRequestMerchant'
        status:
          type: object
          properties:
            statusDescription:
              type: string
              description: Status Description.
              minLength: 0
              maxLength: 256
              example: Success
            statusCode:
              type: string
              description: Status Code.
              minLength: 6
              maxLength: 6
              example: API000
    VMSSTermianteMerchantRequest:
      type: object
      properties:
        merchant:
          $ref: '#/components/schemas/VMSSTerminatedRecord'
      required:
        - merchant
    VMSSTerminateMerchantResponse:
      type: object
      properties:
        addResponse:
          type: object
          properties:
            acquirerBID:
              maxLength: 8
              minLength: 8
              pattern: \d{8}
              type: string
              description: |
                Visa assigned Business Identifier (BID) of the Acquirer for
                the Search request.
              example: '10048640'
            acquirerCountryOrRegion:
              maxLength: 2
              pattern: ([A-Z]){2}
              type: string
              description: The country or region of the Acquirer for the Search request.
              example: 'NO'
            acquirerName:
              minLength: 0
              maxLength: 240
              type: string
              description: Name of the Acquirer for the terminated contract.
              example: Dintero
            action:
              minLength: 1
              maxLength: 10
              type: string
              description: Action type.
              example: Add
            terminatedRefID:
              minLength: 1
              maxLength: 36
              type: string
              description: >-
                A system-generated terminated record reference identification
                number.
              example: 61e8aa42-d252-4e74-9dcc-85134f37a181
            terminatedRecord:
              $ref: '#/components/schemas/VMSSTerminatedRecord'
        status:
          type: object
          properties:
            statusDescription:
              type: string
              description: Status Description.
              minLength: 0
              maxLength: 256
              example: Success
            statusCode:
              type: string
              description: Status Code.
              minLength: 6
              maxLength: 6
              example: API000
    AccountUser:
      type: object
      description: An admin user for the account
      allOf:
        - $ref: '#/components/schemas/Entity'
        - required:
            - email
          properties:
            email:
              type: string
              example: customer@example.com
            name:
              type: string
              example: John Doe
            scope:
              type: array
              items:
                type: string
                minItems: 1
                example: receipts:write
            authentication_type:
              readOnly: true
              type: string
            agreement:
              $ref: '#/components/schemas/AccountAgreement'
    AccountAdminUser:
      type: object
      description: An admin user for the account
      allOf:
        - $ref: '#/components/schemas/AccountUser'
        - properties:
            roles:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/AuthRole'
                  - required:
                      - id
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: |
                          An UUID that uniquely identifies the resource
            last_seen_at:
              type: string
              format: date-time
            configuration:
              $ref: '#/components/schemas/AccountUserConfig'
    AuditEvent:
      type: object
      description: |
        Audit event, an **actor** takes an **action** on and
        **entity** within a **context**
      required:
        - id
        - created_at
        - action
        - entity
        - context
      properties:
        id:
          type: string
          format: uuid
          description: |
            An UUID that uniquely identifies the resource
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
        action:
          type: string
          example: auth.token
          description: Name of the action
        actor:
          type: string
          description: User ID who initiated the action.
        entity:
          type: string
          description: ID of the target entity of the action
        context:
          type: object
          description: Context for the event
          example:
            ip: 93.184.216.34
            user_agent: Mozilla/5.0 ..
    AccountSignupRequest:
      type: object
      properties:
        applicant:
          $ref: '#/components/schemas/AccountApplicant'
        company:
          $ref: '#/components/schemas/AccountCompany'
        billing:
          $ref: '#/components/schemas/AccountBilling'
        account_manager:
          type: object
          required:
            - email
          description: |
            Account manager responsible for the account.
            > value is not visible for the merchant
          properties:
            email:
              type: string
              example: employee@dintero.com
        external_integrations:
          type: object
          properties:
            wallmob_signup:
              type: object
              required:
                - merchant_type
                - password
              properties:
                merchant_type:
                  type: string
                  enum:
                    - company
                    - nonprofit
                password:
                  minLength: 6
                  type: string
      required:
        - applicant
    AccountSignupPreFillRequest:
      type: object
      properties:
        prefill_id:
          type: string
          description: Auto-generated id
        applicant:
          $ref: '#/components/schemas/AccountApplicant'
        company:
          $ref: '#/components/schemas/AccountCompany'
        billing:
          $ref: '#/components/schemas/AccountBilling'
        account_manager:
          type: object
          required:
            - email
          description: |
            Account manager responsible for the account.
            > value is not visible for the merchant
          properties:
            email:
              type: string
              example: employee@dintero.com
      required:
        - applicant
        - company
        - billing
    EmailAuthorizedUser:
      type: object
      properties:
        account_id:
          type: string
          format: ^\d{8}$
          description: |
            Account ID for the account created from completing the signup
        access_token:
          description: |
            Applicant user access token with `openid` scope
          type: string
        expires_in:
          description: |
            The lifetime in seconds of the access token.
          type: integer
        token_type:
          type: string
          enum:
            - Bearer
        refresh_token:
          type: string
        email:
          type: string
          description: |
            The email for the user that verified the account
        previous_password_token:
          type: string
          description: >
            A token that can be used as `previous_password`value when changing
            the password for the user via [PUT
            /v1/accounts/{aid}/account/user/password](#operation/account_user_password_put).
            Only included in the response if the signup created a new account
            user.
    Exchange:
      type: object
      required:
        - account_id
      properties:
        account_id:
          type: string
          format: ^[PT]{1}\d{8}$
          description: |
            The account_id to create exchange access_token for
    PricePackageCollectionResponse:
      type: object
      required:
        - price_packages
      properties:
        starting_after:
          type: string
        price_packages:
          type: array
          items:
            $ref: '#/components/schemas/PricePackage'
    PricePackageUpdateData:
      type: object
      allOf:
        - $ref: '#/components/schemas/PricePackageMeta'
        - $ref: '#/components/schemas/PricePackageProducts'
    LegalEntityTypeReadOnly:
      type: string
      description: |
        Type of legal entity
      enum:
        - company
        - individual
    PayoutDestinationBankAccount:
      type: object
      required:
        - bank_account_currency
      properties:
        bank_name:
          type: string
          description: Name of the Bank used
        bank_account_number:
          type: string
          description: BBAN, national bank account number
        bank_account_number_type:
          type: string
          enum:
            - IBAN
            - BBAN
          description: >
            The type of bank account number. Will default to BBAN in
            bank_country_code

            is norwegian. Will default to IBAN in all other countries.
        bank_account_country_code:
          type: string
          format: iso-3166-1
          description: >
            Country code, must be a two letter ISO 3166-1-alpha-2 country code.
            If not

            set we default to the country_code of parent approval object.
          maxLength: 2
          minLength: 2
        bank_account_currency:
          type: string
          format: iso4217-code
          example: NOK
          description: |
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        bank_identification_code:
          type: string
          example: DNBANOKKXXX
          description: >
            A BIC code, or Bank Identifier Code also know as SWIFT code,
            consistin of

            8 to 11 alphanumeric characters.
    AuthPayoutDestinationReadOnly:
      type: object
      required:
        - id
        - created_at
        - created_by
        - updated_at
        - updated_by
        - account_id
        - case_status
        - type
      properties:
        id:
          type: string
        payout_destination_id:
          $ref: '#/components/schemas/PayoutDestinationId'
        created_at:
          type: string
        created_by:
          type: string
        updated_at:
          type: string
        updated_by:
          type: string
        account_id:
          type: string
          pattern: ^[PT]{1}\d{8}$
        case_status:
          $ref: '#/components/schemas/ApprovalStatus'
        type:
          $ref: '#/components/schemas/LegalEntityTypeReadOnly'
        merchant_category_code:
          type: string
          pattern: ^\d{1,4}
          format: mcc
          example: '2741'
        organization:
          type: object
          description: Organization data for company type of payout destination
          required:
            - organization_number
          properties:
            organization_number:
              type: string
            name:
              type: string
            trade_name:
              type: string
        individual:
          $ref: '#/components/schemas/Individual'
        address:
          $ref: '#/components/schemas/Address'
        bank_accounts:
          type: array
          minItems: 1
          maxItems: 2
          description: |
            Bank accounts associated with the payout destination.
          items:
            $ref: '#/components/schemas/PayoutDestinationBankAccount'
        payout_interval_type:
          type: string
          enum:
            - day
            - week
            - month
        number_of_locations:
          type: integer
          description: Number of locations associated with the payout destination
        number_of_terminals:
          type: integer
          description: Number of terminals associated with the payout destination
    AuthPayoutDestination:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/AuthPayoutDestinationReadOnly'
    AuthPayoutDestinationCollection:
      type: object
      description: Collection of payout destinations.
      additionalProperties: false
      required:
        - payout_destinations
      properties:
        starting_after:
          type: string
        payout_destinations:
          type: array
          items:
            $ref: '#/components/schemas/AuthPayoutDestination'
    ServiceStatistic:
      type: object
      properties:
        start_at:
          type: string
          format: datetime
        end_at:
          type: string
          format: datetime
        type:
          type: string
          example: checkout/capture
        total_count:
          type: number
        total_metric_value:
          type: number
    AccountMonthlyStatistics:
      type: object
      readOnly: true
      properties:
        checkout:
          required:
            - payment_product_types
          properties:
            payment_product_types:
              type: array
              items:
                allOf:
                  - required:
                      - payment_product_type
                      - operation
                      - currency
                    properties:
                      operation:
                        type: string
                        enum:
                          - capture
                          - refund
                      currency:
                        type: string
                        example: NOK
                        description: |
                          The three-character ISO-4217 currency.
                          https://en.wikipedia.org/wiki/ISO_4217
                      payment_product_type:
                        type: string
                  - $ref: '#/components/schemas/ServiceStatistic'
        shopping:
          required:
            - orders
          properties:
            orders:
              type: array
              items:
                allOf:
                  - required:
                      - operation
                    properties:
                      operation:
                        type: string
                        enum:
                          - create
                  - $ref: '#/components/schemas/ServiceStatistic'
