openapi: 3.0.3
info:
  contact:
    email: support@marqeta.com
    name: Marqeta
  description: Marqeta's Core API endpoints, conveniently annotated to enable code
    generation (including SDKs), test cases, and documentation. Currently in beta.
  termsOfService: https://www.marqeta.com/api-terms
  title: Core API
  version: 3.0.25
servers:
  - url: /v3
security:
  - mqAppAndAccessToken: [
      ]
tags:
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/acceptedcountries` endpoint to manage the countries where you authorize your cardholders to transact.
    name: Accepted Countries
  - description: |-
      The account holder group is a Marqeta platform resource that allows you to configure multiple account holders (user and/or business resources) as a group.
      It allows certain settings to be selectively applied, depending on whether or not an account holder has passed verification (KYC).

      You associate an account holder with an account holder group using the optional `account_holder_group_token` field in the user or business resource.
      Any account holder that you do not explicitly associate with a group is automatically associated with the program's default account holder group.
      The default group's name is "Default account holder group", its token is `DEFAULT_AHG`, and its configuration uses the default configuration values.
    name: Account Holder Groups
  - description: |-
      An authorization control limits spending by specified users at specified merchants.
      You can limit spending at a single merchant or at a group of merchants, and you can limit spending by a single user, users with a particular card product, or all users.

      You can block spending at all merchants by default and then allow it for specific merchants, or you can allow spending at all merchants by default and block it at specific merchants.

      [TIP]
      See <</developer-guides/controlling-spending, Controlling Spending>> for a tutorial that walks you through the creation of a spend control, as well as links to more information about merchant category codes.
    name: Authorization Controls
  - description: |-
      Auto reload enables you to automatically load a specified amount into an account when the account balance falls below a defined threshold.

      Auto reloads execute only when the account balance falls below the trigger value due to spending.
      They do not execute due to unloading of funds or because of lack of funds when a user or business is first created.

      You can define auto reloads at the level of an account holder, a card product, or a program.
      Each auto reload draws from a single funding source.

      In the case of auto reloads defined at more than one level, the following order of precedence (first to last) determines which auto reload is executed:

      . Account holder
      . Card product
      . Program
    name: Auto Reload
  - description: |-
      Use the `/balances` endpoint to retrieve the following general purpose account (GPA) balance details for a user or business:

      * *Ledger balance* - When using standard funding: The funds that are available to spend immediately, including funds from any authorized transactions that have not yet cleared.
      When using Just-in-Time (JIT) Funding: Authorized funds that are currently on hold, but not yet cleared.
      * *Available balance* - The ledger balance minus any authorized transactions that have not yet cleared.
      Also known as the cardholder's purchasing power.
      If you are using JIT Funding, this balance is usually 0.00.
      * *Cached balance* - Not currently used.
      * *Credit balance* - Not currently used.
      * *Pending credits* - ACH loads that have been accepted, but for which the funding time has not yet elapsed.
    name: Balances
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/banktransfers` endpoint to move funds between your program funding or cardholder account and an external account over the ACH Network.
      This kind of bank transfer is also known as ACH origination.

      You can create the following types of transfers:

      * *Push* funds from your program funding or cardholder account to an external account.
      * *Pull* funds from your external account into your program funding or cardholder account.

      You must have an existing bank account at a US bank to fund or receive funds from your Marqeta account.
      To add an external program funding source account to the Marqeta platform, send a `POST` request to the `/fundingsources/program/ach` endpoint to PUSH or PULL money from or to the Program Funding Account.
      To add an external account holder funding source account to the Marqeta platform, send a `POST` request to the `/fundingsources/ach` endpoint to PUSH or PULL money from or to the Cardholder Account.

      For more information on ACH funding, see <</developer-guides/ach-origination, ACH Origination>>.
    name: Funding via ACH
  - name: internal
  - description: |-
      Use the `/bulkissuances` endpoint to order physical payment cards in bulk.

      For more information on cards, card products, and bulk card ordering, see <</developer-guides/about-cards, About Cards>>.

      Some attributes of the `bulkissuance` object can also be defined in an associated `card` or `cardproduct` object.
      If you define one of these attributes in more than one object, the Marqeta platform applies an order of precedence to determine which attribute to use at fulfillment time.
      The order of precedence is as follows:

      . `card`
      . `bulkissuance`
      . `cardproduct`

      Defining an attribute in an object with higher precedence does not overwrite the same attribute in a lower-precedence object; the Marqeta platform ignores these lower-precedence attributes.

      For more information on cards, see <</developer-guides/about-cards, About Cards>>.
    name: Bulk Card Orders
  - description: |-
      A business is a type of account holder that cannot directly hold cards, but can have parent/child relationships with card-holding users.
      A business can monitor and control card use by a specified group of users.
      Every business has a general purpose account (GPA).

      For information on how to create a user that has a child-to-parent hierarchical relationship to the business, see <</core-api/users#_create_user, Create User>>.

      [NOTE]
      A user can simultaneously be a child of a business and a parent of other users if the user is not configured to use the parent's account balances and the user's children are configured to use the parent's account balances.
      For more information on account holders, see <</developer-guides/about-account-holders, About Account Holders>>.
    name: Businesses
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/businesstransitions` endpoints to transition business resources between states, as well as to retrieve and list state changes for a business resource.
    name: Business Transitions
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      //This source file is used by InfoDev to generate API reference documentation. File location in GitHub is:
      //openapi/cardproducts/openapi.yaml

      The card products resource represents the behavior and functionality of one or more cards (either physical or virtual).
      For example, attributes of the card product determine whether the associated cards can be used at an ATM and/or online and whether they are currently enabled.
      For physical cards, the card product determines color and other printing specifications for when the cards are manufactured and personalized.
      You can optionally associate authorization controls and/or velocity controls with card products to restrict where and how associated cards are used.

      If your program is Managed by Marqeta, then Marqeta will create the card products for your production environment.

      Some attributes of the `cardproduct` object can also be defined in an associated `bulkissuance` or `card` object.
      If you define one of these attributes in more than one object, the Marqeta platform applies an order of precedence to determine which attribute to use at fulfillment time.
      The order of precedence is as follows:

      . `card`
      . `bulkissuance`
      . `cardproduct`

      Defining an attribute in an object with higher precedence does not overwrite the same attribute in a lower-precedence object; the Marqeta platform ignores these lower-precedence attributes.

      For more information on cards, see <</developer-guides/about-cards, About Cards>>.
    name: Card Products
  - description: |-
      The `card` resource represents a payment card.
      Cards are derived from and controlled by the `cardproduct` resource.
      For more information on cards, see <</developer-guides/about-cards, About Cards>>.

      Some attributes of the `card` resource can be defined in an associated `bulkissuance` or `cardproduct` resource.
      If you define one of these attributes in more than one object, the order of precedence at fulfillment time is as follows:

      . `card`
      . `bulkissuance`
      . `cardproduct`

      Defining an attribute in an object with higher precedence overrides, but does not overwrite, the attribute in a lower-precedence object.
    name: Cards
  - description: Use the `/cardtransitions` API to set the state of an existing card.
    name: Card Transitions
  - description: |-
      Commando Mode is a fallback measure that ensures Gateway JIT-funded cards continue to function in the event that your system fails.
      If your system cannot respond to the JIT Funding request, the Marqeta platform makes a decision in your place based on defined business rules.
      The Marqeta platform stores any unsent webhooks for later transmission, ensuring that the card state and account balances on your system correspond with activity that occurred while Commando Mode was in effect.

      You can identify transactions that were funded while Commando Mode was in effect by examining the `subnetwork` field of the transaction record.

      * A `subnetwork` value of `GATEWAY_JIT` indicates that the transaction was funded through normal Gateway JIT Funding and that Commando Mode was not in effect at the time.
      * A value of `MANAGED_JIT` indicates that the transaction was funded while Commando Mode was in effect.
      In addition, the `standin_approved_by` field has a value of `COMMANDO_AUTO` or `COMMANDO_MANUAL` when Commando Mode is enabled for a transaction.

      When `COMMANDO_MANUAL` is configured, all transactions are processed via Commando Mode.
      When `COMMANDO_AUTO` is configured, Commando Mode is enabled only when a transaction times out or encounters an error.

      While Commando Mode is a form of Stand-in Processing (STIP), it is different than network STIP.
      Network STIP occurs when the card network cannot communicate with the Marqeta platform.
      Transactions handled by network STIP include the `standin_approved_by` field with a value of `NETWORK`.

      Commando Mode and Managed JIT Funding are functionally equivalent.
      See <</developer-guides/about-jit-funding, About Just-in-Time Funding>> for more information.

      [NOTE]
      Commando Mode requires additional configuration.
      To configure Commando Mode control sets, contact your Marqeta representative.
    name: Commando Mode
  - name: accepted countries
  - name: account holder groups
  - name: accounting
  - name: auth controls
  - name: authentications
  - name: auto reloads
  - name: balance APIs
  - name: balance caches
  - name: bank transfers
  - name: bulk issuances
  - name: business transitions
  - name: businesses
  - name: businessidentitycheck
  - name: caches
  - name: calculation schedules
  - name: card products
  - name: card transitions
  - name: cardholder balances
  - name: cards
  - name: chargebacks
  - name: clearing
  - name: commando modes
  - name: cron jobs
  - name: digital wallet provision requests
  - name: digital wallet token transitions
  - name: digital wallet tokens
  - name: direct deposit accounts
  - name: direct deposits
  - name: fee charges
  - name: fee refunds
  - name: fees
  - name: file processing
  - name: funding sources
  - name: Funds movement
  - name: gateways
  - name: Generic money transfers
  - name: GPA fund transfers
  - name: gpa orders
  - name: health checks
  - name: kyblog
  - name: kyc
  - name: mcc groups
  - name: merchantgroups
  - name: Operations for digital wallet token requestor maps
  - name: peer transfers
  - name: ping
  - name: pins
  - name: post transactions
  - name: program
  - name: program configs
  - name: program reserve
  - name: program transfers
  - name: push to card
  - name: real time fee groups
  - name: simulate
  - name: transactions
  - name: user transitions
  - name: users
  - name: velocity controls
  - name: web push provisioning
  - name: webhooks
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      // This source file is used by InfoDev to generate API reference documentation.
      // File location in GitHub is: openapi/feecharges/openapi.yaml

      A fee charge moves funds from the general purpose account (GPA) of an account holder to your program's fee account.
      The charge amount is determined by the fee that is assessed.
      The request returns an error if the GPA has insufficient funds to cover the fee.
      This behavior contrasts with assessing a fee using the `/gpaorders` endpoint, in which case the amount of the fee is loaded into the GPA from the funding source before the GPA is debited.
    name: Fee Charges
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      // This source file is used by InfoDev to generate API reference documentation. File location in GitHub is:
      // File location in GitHub is: openapi/feerefunds/openapi.yaml

      Use the `/feerefunds` endpoint to refund fees to your account holder's general purpose account (GPA).
    name: Fee Refunds
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      // This source file is used by InfoDev to generate API reference documentation. File location in GitHub is:
      // File location in GitHub is: openapi/fees/openapi.yaml

      A `fees` resource represents a monetary assessment against an account holder's general purpose account (GPA).
      Assessing a fee transfers funds from the account holder's GPA account to your program's fee account.
      By default, every account has a GPA account used for the funding of transfers.

      You can assess fees either post-transaction or in real time.
      Real-time fee assessment ensures the account has sufficient funds available to cover both the transaction amount and the fee before authorization of the transaction.
      To assess fees in real time, you must create a real-time fee group using the `/realtimefeegroups` endpoint.

      When assessing a post-transaction fee, you can either debit existing GPA funds, or pull in new funds from a funding source.
      To use existing GPA funds, use the `/feetransfers` endpoint.
      To pull in new funds, use the fees array in `/gpaorders`.

      [NOTE]
      If your program uses Gateway JIT Funding, you cannot assess fees.
    name: Fees
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      The address resource is your billing address.
      An active address is required in order to use a payment card funding source.
      To associate an address with a funding source, use the same `user_token` or `business_token` for both resources.

      [NOTE]
      The `/users` and `/businesses` resources also have address fields.
      Those are used for other purposes, such as KYC identity verification or as shipping addresses for physical cards.
    name: Addresses
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/fundingsources/ach`, `/fundingsources/ach/partner`, and `/fundingsources/paymentcard` endpoints to create account holder funding sources.
      A funding source enables access to funds outside of the Marqeta platform.

      For more information on users and businesses, see <</developer-guides/about-account-holders, About Account Holders>>.
    name: Account Holder Funding Sources
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/fundingsources/program` endpoint to create a program funding source.

      A program funding source represents a bank account from which funds are drawn for Managed Just-in-Time (JIT) Funding transactions.
      For more information about JIT Funding, see <</developer-guides/about-jit-funding, About Just-in-Time Funding>>.

      In the sandbox environment, each program funding source you create simulates funds for use in test transactions.
      In production environments, program funding sources are created by Marqeta and draw funds from a bank account you set up in conjunction with Marqeta.

      [NOTE]
      Your program funding source must be approved by Marqeta and the issuing bank.
      If you are using a third-party service to collect user funds, Marqeta and the issuing bank require specific reporting to ensure compliance with applicable rules and regulations.
      Contact Marqeta for more information.
    name: Program Funding Sources
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/fundingsources/programgateway` endpoint to create a program gateway funding source.

      A program gateway funding source represents a bank account from which funds are drawn for Gateway Just-in-Time (JIT) Funding transactions.
      For more information about JIT Funding, see <</developer-guides/about-jit-funding, About Just-in-Time Funding>>.

      In a sandbox environment, you can create a program gateway funding source that simulates funds for use in test transactions.
      In a production environment, you must work with a Marqeta representative to define the bank account from which the program gateway funding source draws funds.

      [NOTE]
      If you are using a third-party service to collect user funds, Marqeta and the issuing bank require specific reporting to ensure compliance with applicable rules and regulations.
      Contact Marqeta for more information.
    name: Program Gateway Funding Sources
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      The `/gpaorders` endpoint moves funds from a funding source into an
      account holder's general-purpose account (GPA).

      GPA orders can also be used to move funds from an account holder's funding source into your program's fee account.

      GPA orders can be funded by the account holder or your program.
    name: GPA Orders
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/kyc` endpoint to perform Know Your Customer (KYC) verification tasks for your account holders.

      This endpoint can only be used to perform KYC verification for individuals or businesses in the United States.

      For more information about KYC verification, see <</developer-guides/about-kyc, About KYC Verification>>.

      For more information about account holders, see <</developer-guides/about-account-holders, About Account Holders>>.
    name: KYC Verification
  - description: |-
      A merchant category code (MCC) is a four-digit number assigned by card networks to a business based on the goods or services offered by the business.
      On the Marqeta platform, an MCC group defines a set of MCCs.
      You can include an MCC group within a spend control to limit user spending at a set of merchants.

      An MCC group also allows you to automatically increase authorization amounts and to control the expiration of authorizations for the specified MCCs.
      By default, these controls apply to all cards in your program.
      An MCC group authorization control can have exceptions defined at the card product level.

      See <</developer-guides/controlling-spending, Controlling Spending>> for a tutorial that walks you through the creation of a spend control, as well as links to more information about merchant category codes.
    name: MCC Groups
  - description: |-
      Use the `/merchantgroups` endpoint to create, update, and retrieve groups of merchant identifiers (MIDs).
      You can use merchant groups for authorization controls and in card product configurations.
      For example, use a merchant group to create a <</core-api/authorization-controls#_create_a_merchant_mid_exemption, merchant exemption>> for a group of merchants rather than an individual merchant.
    name: Merchant Groups
  - description: |-
      A peer transfer moves funds from the general purpose account (GPA) of an account holder (a user or business) to another account within your program.
      Both the sender and recipient accounts must be active.

      [NOTE]
      The `/peertransfers` endpoint is only available for specific, pre-approved use cases.
      For more information about this endpoint, contact your Marqeta representative.
    name: Peer Transfers
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/pins` endpoint to create, update, or reveal a personal identification number (PIN) for a card.
    name: PINs
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the Program Reserve API to retrieve program reserve account balances and transactions.
    name: Program Reserve
  - description: |-
      A program transfer moves funds from an account holder's general purpose account (GPA) to a program funding source.
      In contrast to a fee transfer, the program transfer amount is specified by the transfer itself and can therefore be set dynamically.
      An auto reload is triggered if the GPA has insufficient funds to cover the transfer amount and auto reload is enabled.

      [NOTE]
      The `/programtransfers` endpoint is only available for specific, pre-approved use cases.
      For more information about this endpoint, contact your Marqeta representative.
    name: Program Transfers
  - description: |-
      Marqeta enables you to assess fees in real time through the use of real-time fee groups.
      A real-time fee group is a collection of fees associated with an account holder group (and thereby associated with the users and businesses that are part of that account holder group).
      Real-time fee assessment ensures that associated accounts have sufficient funds available to cover both the transaction amount and the fee before authorization of a transaction.

      Before you create a real-time fee group, you must create the individual fees (using the `/fees` endpoint) and the account holder group with which you will associate the real-time fee group (using the `/accountholdergroups` endpoint).
      Each fee in the group must be applicable to a different transaction type.
      For example, one fee could assess $1 on authorization transactions while another assesses $2 on PIN-debit transactions.

      Use of real-time fee groups requires prior approval by Marqeta.
      If you are interested in using this feature for your card program, contact your Marqeta representative for more information.

      [NOTE]
      If your program uses Gateway JIT Funding, you cannot assess fees.
    name: Real-Time Fee Groups
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      The Marqeta platform facilitates the use of digital wallets for storing tokenized cards and making payments.
      The API provides endpoints that enable mobile applications to provision tokens into a digital wallet.
      It also provides endpoints for retrieving digital wallet tokens and for managing their lifecycle through state transitions.

      For an overview of digital wallet tokens, see <</developer-guides/digital-wallets-and-tokenization, Digital Wallets and Tokenization>>.
    name: Digital Wallets Management
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      // This source file is used by InfoDev to generate API reference documentation.
      // File location in GitHub is:
      // https://github.marqeta.com/openapi/coreapi/blob/main/openapi/transactions/openapi.yaml

      The `/transactions` resource represents the electronic messages that carry information used for payment processing.
      A transaction usually originates when a cardholder attempts to make a payment, either online or at a physical point of sale.

      You can receive information about transactions as they occur by configuring webhooks.
      Learn about configuring webhooks in the <</developer-guides/about-webhooks, About Webhooks>> guide.
      See the transaction events for which you can set up webhooks in the <</core-api/event-types, Event Types>> API reference page.

      You can also retrieve transactions associated with specific cards, merchants, and account holders using the endpoints described here.

      For an overview of transactions and the `transaction` object, including the complete list of <</developer-guides/about-transactions#_transaction_response_codes, transaction response codes>>, see <</developer-guides/about-transactions, About Transactions>>.

      [TIP]
      Use the `/transactions` endpoint to retrieve smaller datasets (up to one page).
      For best performance when requesting larger datasets, use the <</diva-api/introduction, DiVA API>>.
    name: Transactions
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      The `users` resource represents a person who accesses Marqeta-administered funds via a Marqeta card (whether physical or virtual).
      This endpoint enables you to create and manage users on the Marqeta platform.

      This resource stores user attributes such as name, address, and date of birth, as well as financial information such as balances.
      By default, every user automatically has a general purpose account (GPA) that is used for the funding of transfers and is therefore an `account holder`.
      Note that account balances reside at the account holder level — there are no separate `account` or `balance` objects.

      You can use the `/users` endpoint to create parent-child relationships between two users (where one user is the parent and the other is the child) or between a business and a user (where the business is the parent and the user is the child).
      This relationship provides reporting to the parent about how cards of children are used and enables the parent to monitor and even restrict card usage.

      [NOTE]
      A user can simultaneously be a child of a business and a parent of other users if the user is not configured to use a parent's account balances and the user's child is configured to use a parent's account balances.
      For more information on account holders, see <</developer-guides/about-account-holders, About Account Holders>>.
    name: Users
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Use the `/usertransitions` endpoints to transition user resources between statuses, as well as to retrieve and list status changes for a user resource.
    name: User Transitions
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      A velocity control limits how much users can spend.
      You can configure velocity controls to limit how much users can spend and the number of transactions they can make in a given span of time.
      You can apply velocity controls to a single user, to all users associated with a particular card product, or to all users in your program.

      Only Program Managers can create or modify program-wide velocity controls.
      A `POST` or `PUT` call from a role that does not have Program Manager permissions will receive a 403 error if its `association` field is null, or if it includes all of the fields in the request body.
      Avoid this by passing a valid `user_token` or `card_product_token` in the velocity control's `association` object, indicating that the request is specific to a user or card product, and not program-wide.
      You should also only include the specific fields you want to update, because a `PUT` or `POST` with values for all fields is interpreted as a change that requires Program Manager permissions.

      See <</developer-guides/controlling-spending, Controlling Spending>> for a tutorial that walks you through the creation of a spend control.

      [NOTE]
      Each program supports a maximum of 90 spend controls (velocity controls and <</core-api/authorization-controls, authorization controls>> combined).
      The limit of 90 spend controls applies at the program level only; it does not affect the number of user-level spend controls you can use.
    name: Velocity Controls
  - description: |-
      // Conditional snippet for beta or internal content
      include::../../maturity-admonition-banner.adoc[]

      Webhooks are notifications about API events, sent as they occur.
      The Marqeta platform sends these notifications to an endpoint that is hosted in your environment and configured to receive and process them.

      Create a webhook object to represent your webhook endpoint.
      Configure it with the URL of your webhook endpoint and a set of credentials for accessing that endpoint.
      You can configure it to send notifications for a single event, a group of events by type, or all event types.
      To set up multiple webhook endpoints and route different types of event notifications to each, create multiple webhook objects and configure each to send a specific type of event notification to a specific endpoint.

      See <</developer-guides/about-webhooks, About Webhooks>> for information on notifications and a tutorial that walks you through the configuration of your webhook endpoint.

      See <</core-api/event-types, Event Types>> for reference documentation on the types of events that the Marqeta platform supports.

      [NOTE]
      Webhooks URLs are cached.
      Changes made on your webhook endpoint can take up to one hour to be applied.
    name: Webhooks
paths:
  /acceptedcountries:
    get:
      operationId: getAcceptedcountries
      parameters:
        - description: Number of accepted countries to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Name
          explode: true
          in: query
          name: name
          required: false
          schema:
            type: string
          style: form
        - description: Whitelist
          explode: true
          in: query
          name: whitelist
          required: false
          schema:
            type: boolean
          style: form
        - description: Search type
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedCountriesListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server failure
      summary: Lists all accepted countries
      tags:
        - accepted countries
  /acceptedcountries/{token}:
    get:
      operationId: getAcceptedcountriesToken
      parameters:
        - description: Accepted country token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accepted_countries_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Accepted country not found
        '500':
          content: {
            }
          description: Server failure
      summary: Returns a specific accepted country
      tags:
        - accepted countries
  /accountholdergroups:
    get:
      operationId: getAccountholdergroups
      parameters:
        - description: Number of items to retrieve. Count can be between 1 - 10 items.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: Indicates from what row to start returning data.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Field by which to sort the returned items. Use any field in
            the model, or system fields lastModifiedTime or createdTime.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountHolderGroupListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists account holder groups
      tags:
        - account holder groups
    post:
      operationId: postAccountholdergroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account_holder_group_request'
        description: Account holder group object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_holder_group_response'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates an account holder group object
      tags:
        - account holder groups
  /accountholdergroups/{token}:
    get:
      operationId: getAccountholdergroupsToken
      parameters:
        - description: Account holder group token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_holder_group_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Auto reload not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific account holder group object
      tags:
        - account holder groups
    put:
      operationId: putAccountholdergroupsToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account_holder_group_update_request'
        description: Account holder group update object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_holder_group_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates an account holder group object
      tags:
        - account holder groups
  /authcontrols:
    get:
      operationId: getAuthcontrols
      parameters:
        - description: Card product token. Use "null" to get auth controls that are
            not associated with any card product.
          explode: true
          in: query
          name: card_product
          required: false
          schema:
            type: string
          style: form
        - description: User token. Use "null" to get auth controls that are not associated
            with any user.
          explode: true
          in: query
          name: user
          required: false
          schema:
            type: string
          style: form
        - description: Number of items to retrieve. Count can be between 1 - 10 items.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Indicates from what row to start returning data.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Field by which to sort the returned items. Use any field in
            the model, or system fields lastModifiedTime or createdTime.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthControlListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all global auth control exceptions for the program
      tags:
        - auth controls
    post:
      operationId: postAuthcontrols
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_control_request'
        description: Auth control object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth_control_response'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates an auth control exception
      tags:
        - auth controls
  /authcontrols/exemptmids:
    get:
      operationId: getAuthcontrolsExemptmids
      parameters:
        - description: Card product token. Use "null" to get auth controls that are
            not associated with any card product.
          explode: true
          in: query
          name: card_product
          required: false
          schema:
            type: string
          style: form
        - description: User token. Use "null" to get auth controls that are not associated
            with any user.
          explode: true
          in: query
          name: user
          required: false
          schema:
            type: string
          style: form
        - description: Number of items to retrieve. Count can be between 1 - 10 items.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Indicates from what row to start returning data.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Field by which to sort the returned items. Use any field in
            the model, or system fields lastModifiedTime or createdTime.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthControlExemptMidsListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all auth control exempted MIDs for the program
      tags:
        - auth controls
    post:
      operationId: postAuthcontrolsExemptmids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_control_exempt_mids_request'
        description: Auth control exempt MID object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth_control_exempt_mids_response'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates an auth control for exempting MIDs
      tags:
        - auth controls
  /authcontrols/exemptmids/{token}:
    get:
      operationId: getAuthcontrolsExemptmidsToken
      parameters:
        - description: Auth control token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth_control_exempt_mids_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Auth control exception MIDs not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific auth control exemptmids
      tags:
        - auth controls
    put:
      operationId: putAuthcontrolsExemptmidsToken
      parameters:
        - description: Auth control token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_control_exempt_mids_update_request'
        required: false
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates the status an auth control exemptmids
      tags:
        - auth controls
  /authcontrols/{token}:
    get:
      operationId: getAuthcontrolsToken
      parameters:
        - description: Auth control token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth_control_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Auth control not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific auth control exception
      tags:
        - auth controls
    put:
      operationId: putAuthcontrolsToken
      parameters:
        - description: Auth control token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_control_update_request'
        description: Auth control object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auth_control_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates an auth control exception
      tags:
        - auth controls
  /autoreloads:
    get:
      operationId: getAutoreloads
      parameters:
        - description: Card product token
          explode: true
          in: query
          name: card_product
          required: false
          schema:
            type: string
          style: form
        - description: User token
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: Business token
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: Number of items to retrieve. Count can be between 1 - 10 items.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: Indicates from what row to start returning data.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Field by which to sort the returned items. Use any field in
            the model, or system fields lastModifiedTime or createdTime.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoReloadListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all auto reloads for the program
      tags:
        - auto reloads
    post:
      operationId: postAutoreloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auto_reload_model'
        description: Auto reload object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auto_reload_response_model'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates an auto reload object
      tags:
        - auto reloads
  /autoreloads/{token}:
    get:
      operationId: getAutoreloadsToken
      parameters:
        - description: Auto reload token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auto_reload_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Auto reload not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific auto reload object
      tags:
        - auto reloads
    put:
      operationId: putAutoreloadsToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auto_reload_update_model'
        description: Auto reload object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/auto_reload_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific auto reload object
      tags:
        - auto reloads
  /balances/{token}:
    get:
      operationId: getBalancesToken
      parameters:
        - description: User or Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardholder_balances'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns account balances for a cardholder
      tags:
        - cardholder balances
  /banktransfers/ach:
    get:
      operationId: getBanktransfersAch
      parameters:
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: User token
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: Business token
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: Funding source token
          explode: true
          in: query
          name: funding_source_token
          required: false
          schema:
            type: string
          style: form
        - description: A comma-delimited list of bank transfer status(s)
          explode: true
          in: query
          name: statuses
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: Object to expand
          explode: true
          in: query
          name: expand
          required: false
          schema:
            type: string
          style: form
        - description: Funding source type
          explode: true
          in: query
          name: funding_source_type
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all bank transfers
      tags:
        - bank transfers
    post:
      operationId: postBanktransfersAch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bank_transfer_request_model'
        description: Create bank transfer request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bank_transfer_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Creates an ACH bank transfer
      tags:
        - bank transfers
  /banktransfers/ach/earlyfunds:
    post:
      operationId: postApplyProvisionalCreditToBankTransfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/early_funds_request_model'
        description: Early funds request model
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bank_transfer_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Applies a provisional credit to a bank transfer
      tags:
        - bank transfers
  /banktransfers/ach/transitions:
    get:
      operationId: getBanktransfersAchTransitions
      parameters:
        - description: Number of bank transfer transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            maximum: 50
            type: integer
          style: form
        - description: Bank transfer transition token
          explode: true
          in: query
          name: token
          required: false
          schema:
            type: string
          style: form
        - description: Bank transfer token
          explode: true
          in: query
          name: bank_transfer_token
          required: false
          schema:
            type: string
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
        - description: Comma-delimited list of bank transfer states to display e.g.
            PENDING | PROCESSING | SUBMITTED | RETURNED |  COMPLETED | CANCELLED
          explode: true
          in: query
          name: statuses
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankTransferTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all bank transfer transitions
      tags:
        - bank transfers
    post:
      operationId: postBanktransfersAchTransitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bank_transfer_transition_request_model'
        description: Create bank transfer transition request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bank_transfer_transition_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Creates an ACH bank transfer transition
      tags:
        - bank transfers
  /banktransfers/ach/{token}:
    get:
      operationId: getBanktransfersAchToken
      parameters:
        - description: Bank transfer token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bank_transfer_response_model'
          description: Success
        '404':
          content: {
            }
          description: Bank transfer entry not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a bank transfer entry
      tags:
        - bank transfers
  /bulkissuances:
    get:
      operationId: getBulkissuances
      parameters:
        - description: Number of requests to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCardOrderListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all bulk issuance requests
      tags:
        - bulk issuances
    post:
      operationId: postBulkissuances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulk_issuance_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulk_issuance_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a bulk issuance request for cards
      tags:
        - bulk issuances
  /bulkissuances/{token}:
    get:
      operationId: getBulkissuancesToken
      parameters:
        - description: Bulk issuance token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulk_issuance_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Bulk issuance request not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a bulk issuance request
      tags:
        - bulk issuances
  /businesses:
    get:
      operationId: getBusinesses
      parameters:
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Business name DBA
          explode: true
          in: query
          name: business_name_dba
          required: false
          schema:
            type: string
          style: form
        - description: Business name legal
          explode: true
          in: query
          name: business_name_legal
          required: false
          schema:
            type: string
          style: form
        - description: Search type
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all businesses
      tags:
        - businesses
    post:
      operationId: postBusinesses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/business_cardholder'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/business_card_holder_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a business
      tags:
        - businesses
  /businesses/lookup:
    post:
      operationId: postBusinessesLookup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DDARequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/business_cardholder'
          description: Success
        '404':
          content: {
            }
          description: Business not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific business
      tags:
        - businesses
  /businesses/{parent_token}/children:
    get:
      operationId: getBusinessesParenttokenChildren
      parameters:
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Token of parent business
          explode: false
          in: path
          name: parent_token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessUserCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all children of a parent business
      tags:
        - businesses
  /businesses/{token}:
    get:
      operationId: getBusinessesToken
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/business_card_holder_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Business not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific business
      tags:
        - businesses
    put:
      operationId: putBusinessesToken
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/business_card_holder_update'
        description: Business object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/business_cardholder'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific business
      tags:
        - businesses
  /businesses/{token}/notes:
    get:
      operationId: getBusinessesTokenNotes
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Number of notes to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Created by
          explode: true
          in: query
          name: created_by
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of created by user roles
          explode: true
          in: query
          name: created_by_user_role
          required: false
          schema:
            type: string
          style: form
        - description: Include private notes and private fields in note response
          explode: true
          in: query
          name: include_private
          required: false
          schema:
            type: boolean
          style: form
        - description: Search type
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardHolderNoteListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '404':
          content: {
            }
          description: Business not found
        '500':
          content: {
            }
          description: Server error
      summary: Lists business notes
      tags:
        - businesses
    post:
      operationId: postBusinessesTokenNotes
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardholder_note_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardholder_note_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Creates a note for a business
      tags:
        - businesses
  /businesses/{token}/notes/{notes_token}:
    put:
      operationId: putBusinessesTokenNotesNotestoken
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Notes token
          explode: false
          in: path
          name: notes_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardholder_note_update_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardholder_note_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific note for a business
      tags:
        - businesses
  /businesses/{token}/ssn:
    get:
      operationId: getBusinessesTokenSsn
      parameters:
        - description: Business token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: full_ssn
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ssn_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific business proprietor's SSN
      tags:
        - businesses
  /businesstransitions:
    post:
      operationId: postBusinesstransitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessTransitionRequest'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessTransitionResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '412':
          content: {
            }
          description: Pre-condition setup issue
        '500':
          content: {
            }
          description: Server error
      summary: Creates a business transition
      tags:
        - business transitions
  /businesstransitions/business/{business_token}:
    get:
      operationId: getBusinesstransitionsBusinessBusinesstoken
      parameters:
        - description: Business token
          explode: false
          in: path
          name: business_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of business transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -id
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns transitions for a given business
      tags:
        - business transitions
  /businesstransitions/{token}:
    get:
      operationId: getBusinesstransitionsToken
      parameters:
        - description: Transition token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessTransitionResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Cardholder not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a business transition
      tags:
        - business transitions
  /campaigns:
    get:
      operationId: getCampaigns
      parameters:
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get campaigns.
    post:
      operationId: createCampaigns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/campaign_model'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create campaigns.
  /campaigns/{token}:
    delete:
      operationId: deleteCampaignByToken
      parameters:
        - description: Campaign token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Delete campaign by token.
    get:
      operationId: getCampaignByToken
      parameters:
        - description: Campaign token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get campaign by token.
    put:
      operationId: updateCampaignsByToken
      parameters:
        - description: Campaign token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/campaign_update_model'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Update campaigns by token.
  /campaigns/{token}/stores:
    get:
      operationId: getCampaignsTokenStores
      parameters:
        - description: Campaign token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get campaigns token stores.
  /cardproducts:
    get:
      operationId: getCardproducts
      parameters:
        - description: Number of items to retrieve. Count can be between 1 - 10 items.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Indicates from what row to start returning data.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardProductListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all card products
      tags:
        - card products
    post:
      operationId: postCardproducts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/card_product_request'
        description: Card product object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_product_response'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a card product
      tags:
        - card products
  /cardproducts/{token}:
    get:
      operationId: getCardproductsToken
      parameters:
        - description: Card product token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_product_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Card product not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific card product
      tags:
        - card products
    put:
      operationId: putCardproductsToken
      parameters:
        - description: Card product token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/card_product_update_model'
        description: Card product object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_product_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific card product
      tags:
        - card products
  /cards:
    get:
      operationId: getCards
      parameters:
        - description: Number of cards to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Last four digits of card number
          explode: true
          in: query
          name: last_four
          required: true
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists cards by the last 4 digits
      tags:
        - cards
    post:
      operationId: postCards
      parameters:
        - description: Show CVV
          explode: true
          in: query
          name: show_cvv_number
          required: false
          schema:
            default: false
            type: boolean
          style: form
        - description: Show PAN
          explode: true
          in: query
          name: show_pan
          required: false
          schema:
            default: false
            type: boolean
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/card_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a card
      tags:
        - cards
  /cards/barcode/{barcode}:
    get:
      operationId: getCardsBarcodeBarcode
      parameters:
        - description: Barcode
          explode: false
          in: path
          name: barcode
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card does not exist
        '500':
          content: {
            }
          description: Server error
      summary: Returns a card's metadata
      tags:
        - cards
  /cards/getbypan:
    post:
      operationId: postCardsGetbypan
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pan_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pan_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns user and card tokens for the specified PAN
      tags:
        - cards
  /cards/merchant/{merchant_token}:
    get:
      operationId: getCardsMerchantMerchanttoken
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: merchant_token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card does not exist
        '500':
          content: {
            }
          description: Server error
      summary: Returns a merchant onboarding card
      tags:
        - cards
    post:
      operationId: postCardsMerchantMerchanttoken
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: merchant_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/merchant_card_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a merchant onboarding card
      tags:
        - cards
  /cards/merchant/{merchant_token}/showpan:
    get:
      operationId: getCardsMerchantMerchanttokenShowpan
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: merchant_token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: show_cvv_number
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card does not exist
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific card - PAN visible
      tags:
        - cards
  /cards/user/{token}:
    get:
      operationId: getCardsUserToken
      parameters:
        - description: User token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of items to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all cards for a specific user
      tags:
        - cards
  /cards/{card_hash}/showpanbyhash:
    get:
      operationId: getCardsCardHashShowpan
      parameters:
        - description: Card Hash
          explode: false
          in: path
          name: card_hash
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: show_cvv_number
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific card - PAN visible
      tags:
        - cards
  /cards/{token}:
    get:
      operationId: getCardsToken
      parameters:
        - description: Card token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Object to expand
          explode: true
          in: query
          name: expand
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific card
      tags:
        - cards
    put:
      operationId: putCardsToken
      parameters:
        - description: Card token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/card_update_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific card
      tags:
        - cards
  /cards/{token}/showpan:
    get:
      operationId: getCardsTokenShowpan
      parameters:
        - description: Card token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: show_cvv_number
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific card - PAN visible
      tags:
        - cards
  /cardtransitions:
    post:
      operationId: postCardtransitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/card_transition_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '422':
          content: {
            }
          description: Cardholder not active
        '500':
          content: {
            }
          description: Server error
      summary: Creates a card transition object
      tags:
        - card transitions
  /cardtransitions/card/{token}:
    get:
      operationId: getCardtransitionsCardToken
      parameters:
        - description: Card token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of card transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            minimum: 0
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all card transitions
      tags:
        - card transitions
  /cardtransitions/{token}:
    get:
      operationId: getCardtransitionsToken
      parameters:
        - description: Card transition token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/card_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Transition not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a card transition object
      tags:
        - card transitions
  /chargebacks:
    get:
      operationId: getChargebacks
      parameters:
        - description: Number of chargebacks to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Network reference ID
          explode: true
          in: query
          name: network_reference_id
          required: false
          schema:
            type: string
          style: form
        - description: Transaction token
          explode: true
          in: query
          name: transaction_token
          required: false
          schema:
            type: string
          style: form
        - description: Amount
          explode: true
          in: query
          name: amount
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of chargeback states to display e.g. INITIATED
            | REPRESENTMENT | PREARBITRATION | ARBITRATION | CASE_WON | CASE_LOST
            | NETWORK_REJECTED | WITHDRAWN | WRITTEN_OFF_ISSUER | WRITTEN_OFF_PROGRAM
          explode: true
          in: query
          name: states
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - explode: true
          in: query
          name: network_case_id
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargebackListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List all chargebacks
      tags:
        - chargebacks
    post:
      operationId: postChargebacks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chargeback_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '412':
          content: {
            }
          description: Pre-condition failed. Chargeback amount is greater than user
            GPA balance
        '422':
          content: {
            }
          description: Unable to return funds back to cardholder
        '500':
          content: {
            }
          description: Server error
      summary: Creates a chargeback
      tags:
        - chargebacks
  /chargebacks/allocationacknowledgement:
    post:
      operationId: postChargebackAllocationAcknowledgment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chargeback_allocation_ack_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Creates a chargeback allocation acknowledgement
      tags:
        - chargebacks
  /chargebacks/transitions:
    post:
      operationId: postChargebacksTransitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chargeback_transition_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '422':
          content: {
            }
          description: Unable to perform chargeback transition
        '500':
          content: {
            }
          description: Server error
      summary: Creates a chargeback transition
      tags:
        - chargebacks
  /chargebacks/transitions/{token}:
    get:
      operationId: getChargebacksTransitionsToken
      parameters:
        - description: Chargeback transition token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Transition not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific chargeback transition
      tags:
        - chargebacks
  /chargebacks/{chargeback_token}/transitions:
    get:
      operationId: getChargebacksChargebacktokenTransitions
      parameters:
        - description: Number of transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: Chargeback token
          explode: false
          in: path
          name: chargeback_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargebackTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all chargeback transitions that are related to a chargeback
      tags:
        - chargebacks
  /chargebacks/{token}:
    get:
      operationId: getChargebacksToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '404':
          content: {
            }
          description: Chargeback not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific chargeback
      tags:
        - chargebacks
    put:
      operationId: putChargebacksToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargebackUpdateRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '400':
          content: {
            }
          description: Chargeback not found
        '422':
          content: {
            }
          description: Unable to update chargeback
        '500':
          content: {
            }
          description: Server error
      summary: Updates chargeback data
      tags:
        - chargebacks
  /chargebacks/{token}/grantprovisionalcredit:
    put:
      operationId: putChargebacksTokenGrantprovisionalcredit
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '400':
          content: {
            }
          description: Chargeback not found
        '422':
          content: {
            }
          description: Unable to grant provisional credit
        '500':
          content: {
            }
          description: Server error
      summary: Grants provisional credit
      tags:
        - chargebacks
  /chargebacks/{token}/reverseprovisionalcredit:
    put:
      operationId: putChargebacksTokenReverseprovisionalcredit
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chargeback_response'
          description: Success
        '400':
          content: {
            }
          description: Chargeback not found; chargeback at terminal state
        '422':
          content: {
            }
          description: Unable to reverse provisional credit
        '500':
          content: {
            }
          description: Server error
      summary: Reverses provisional credit
      tags:
        - chargebacks
  /commandomodes:
    get:
      operationId: getCommandomodes
      parameters:
        - description: Number of commando modes to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommandoModeListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all commando mode control sets
      tags:
        - commando modes
  /commandomodes/transitions/{token}:
    get:
      operationId: getCommandomodesTransitionsToken
      parameters:
        - description: Commando mode transition token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commando_mode_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Transition not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific commando mode transition
      tags:
        - commando modes
  /commandomodes/{commandomode_token}/transitions:
    get:
      operationId: getCommandomodesCommandomodetokenTransitions
      parameters:
        - description: Number of transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
        - description: Commando mode token
          explode: false
          in: path
          name: commandomode_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommandoModeTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all commando mode transitions related to a commando mode control
        set
      tags:
        - commando modes
  /commandomodes/{token}:
    get:
      operationId: getCommandomodesToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commando_mode_response'
          description: Success
        '404':
          content: {
            }
          description: Commando mode not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific commando mode control set
      tags:
        - commando modes
  /depositaccounts:
    post:
      operationId: createAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/direct_deposit_account_request'
        description: Create direct deposit account for cardholder
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_response'
          description: Created
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Creates new direct deposit account for cardholder.
      tags:
        - direct deposit accounts
  /depositaccounts/account/{account_number}/user:
    get:
      operationId: getUserForDirectDepositAccount
      parameters:
        - description: Get user associated with direct deposit account number
          explode: false
          in: path
          name: account_number
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Get User for Plain Text Account Number
      tags:
        - direct deposit accounts
  /depositaccounts/transitions:
    post:
      operationId: createTransition
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/direct_deposit_account_transition_request'
        description: Create transition for direct deposit account
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_transition_response'
          description: Created
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Creates new transition for a direct deposit account.
      tags:
        - direct deposit accounts
  /depositaccounts/transitions/{token}:
    get:
      operationId: getDirectDepositAccountTransition
      parameters:
        - description: Get specific direct deposit account transition
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_transition_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Get direct deposit account transition.
      tags:
        - direct deposit accounts
  /depositaccounts/user/{token}:
    get:
      operationId: getUserDirectDepositAccounts
      parameters:
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: Direct deposit account status
          explode: true
          in: query
          name: state
          required: false
          schema:
            enum:
              - ACTIVE
              - SUSPENDED
              - TERMINATED
              - UNSUPPORTED
              - UNACTIVATED
              - LIMITED
            type: string
          style: form
        - description: Get specific direct deposit account
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositAccountListResponse'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: List all specific direct deposit accounts.
      tags:
        - direct deposit accounts
  /depositaccounts/user/{token}/direct:
    get:
      deprecated: true
      operationId: getDepositAccountUserToken
      parameters:
        - description: Token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get deposit account user token.
  /depositaccounts/{token}:
    get:
      operationId: getDirectDepositAccount
      parameters:
        - description: Get specific direct deposit account
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Get direct deposit account.
      tags:
        - direct deposit accounts
    put:
      deprecated: true
      operationId: update
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DepositAccountUpdateRequest'
        description: Update direct deposit account
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Update direct deposit account.
      tags:
        - direct deposit accounts
  /depositaccounts/{token}/cdd:
    get:
      operationId: getCDDInfo
      parameters:
        - description: Get CDD info for a specific DDA token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_due_diligence_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Get direct deposit account transition list for card holder.
      tags:
        - direct deposit accounts
  /depositaccounts/{token}/cdd/{cddtoken}:
    put:
      operationId: updateCDDInfo
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: cddtoken
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer_due_diligence_update_response'
        description: Update CDD answers
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_due_diligence_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Update CDD answers for Direct Deposit Account
      tags:
        - direct deposit accounts
  /depositaccounts/{user_token}/transitions:
    get:
      operationId: getTransitionList
      parameters:
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
        - description: Get direct deposit account transition list for user
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/direct_deposit_account_transition_response'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Get direct deposit account transition list for card holder.
      tags:
        - direct deposit accounts
  /digitalwalletprovisionrequests/androidpay:
    post:
      description: |-
        Use this endpoint to return card data for use in provisioning a digital wallet token into Google Wallet.

        The returned card data is encrypted using the digital wallet provider's encryption key, thereby reducing your PCI compliance overhead.
      operationId: postDigitalwalletprovisionrequestsAndroidpay
      requestBody:
        content:
          application/json:
            example:
              card_token: my_card_token_0987
              device_id: my_device_id_r51j
              device_type: MOBILE_PHONE
              provisioning_app_version: 2.13.3
              wallet_account_id: my_wallet_account_id_sr51
            schema:
              $ref: '#/components/schemas/digital_wallet_android_pay_provision_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                card_token: my_card_token_1111
                created_time: 2022-11-06T22:43:20Z
                last_modified_time: 2022-11-06T22:43:20Z
                push_tokenize_request_data:
                  display_name: Visa Card
                  last_digits: '3264'
                  network: Visa
                  opaque_payment_card: my_opaque_payment_card_RUza...
                  token_service_provider: TOKEN_PROVIDER_VISA
                  user_address:
                    address1: 180 Grand Ave
                    address2: Suite 500
                    city: Oakland
                    country: US
                    name: John Doe
                    phone: '5105551212'
                    postal_code: '94612'
                    state: CA
              schema:
                $ref: '#/components/schemas/digital_wallet_android_pay_provision_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Create digital wallet token provisioning request for Google Wallet
      tags:
        - Digital Wallets Management
  /digitalwalletprovisionrequests/applepay:
    post:
      description: |-
        Use this endpoint to return card data for use in provisioning a digital wallet token into Apple Wallet.

        The returned card data is encrypted using the digital wallet provider's encryption key, thereby reducing your PCI compliance overhead.
      operationId: postDigitalwalletprovisionrequestsApplepay
      requestBody:
        content:
          application/json:
            example:
              card_token: my_card_token_1234
              certificates:
                - my_certificate_ZIzj...
                - my_certificate_SgMA...
              device_type: MOBILE_PHONE
              nonce: my_nonce_JJCF
              nonce_signature: my_nonce_signature_wbBn
              provisioning_app_version: 2.13.7
            schema:
              $ref: '#/components/schemas/digital_wallet_apple_pay_provision_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                activation_data: my_activation_data_VERF...
                card_token: my_card_token_1234
                created_time: 2023-03-22T21:22:19Z
                encrypted_pass_data: my_encrypted_pass_data_KGga...
                ephemeral_public_key: my_ephemeral_public_key_omvw...
                last_modified_time: 2023-03-22T21:22:19Z
              schema:
                $ref: '#/components/schemas/digital_wallet_apple_pay_provision_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Create digital wallet token provisioning request for Apple Wallet
      tags:
        - Digital Wallets Management
  /digitalwalletprovisionrequests/samsungpay:
    post:
      description: |-
        [NOTE]
        This endpoint is limited in availability.
        For more information, contact your Marqeta representative.

        Use this endpoint to return card data for use in provisioning a digital wallet token into Samsung Wallet.

        The returned card data is encrypted using the digital wallet provider's encryption key, thereby reducing your PCI compliance overhead.
      operationId: postDigitalwalletprovisionrequestsSamsungpay
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/digital_wallet_samsung_pay_provision_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/digital_wallet_samsung_pay_provision_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Create digital wallet token provisioning request for Samsung Wallet
      tags:
        - Digital Wallets Management
  /digitalwalletprovisionrequests/xpay:
    post:
      description: |-
        [NOTE]
        This endpoint is limited in availability.
        For more information, contact your Marqeta representative.

        Use this endpoint to return card data for use in provisioning a digital wallet token into an XPay digital wallet.

        The returned card data is encrypted using the digital wallet provider's encryption key, thereby reducing your PCI compliance overhead.
      operationId: postDigitalwalletprovisionrequestsXPay
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/digital_wallet_x_pay_provision_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/digital_wallet_x_pay_provision_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Create digital wallet token provisioning request for XPay
      tags:
        - Digital Wallets Management
  /digitalwallets/clicktopay/mastercard/checkeligibility:
    get:
      description: Use this endpoint to check if a provided BIN prefix is eligible
        for Click to Pay.
      operationId: getClicktopayMastercardCheckeligibility
      parameters:
        - description: Prefix of the bank identification number.
          explode: true
          in: query
          name: bin_prefix
          required: true
          schema:
            type: string
            x-allowableValues: |-
              A six- to nine-digit number

              *NOTE:* It is preferable to use eight- or nine-digit BIN prefixes in production environments.
              Contact your Marqeta representative for the appropriate value to use.
          style: form
        - description: Returns a list of image assets for the Click to Pay logo if
            set to `true`.
          explode: true
          in: query
          name: include_asset
          required: false
          schema:
            default: false
            type: boolean
            x-allowableValues: '`true`, `false`'
          style: form
        - explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                image_assets:
                  - media_content:
                      data: iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6...
                        (truncated for readability)
                      height: 192px
                      type: image/png
                      width: 192px
                  - media_content:
                      data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3...
                        (truncated for readability)
                      height: 192px
                      type: image/svg+xml
                      width: 192px
                is_eligible: true
              schema:
                $ref: '#/components/schemas/click_to_pay_check_eligibility_response'
          description: Eligibility check successful
        '400':
          description: Invalid binPrefix or other validation error
        '500':
          description: Internal server error
      summary: Check eligibility for Click to Pay
      tags:
        - Digital Wallets Management
  /digitalwallets/clicktopay/mastercard/enroll:
    post:
      description: Use this endpoint to enroll a card asynchronously to Click to Pay.
      operationId: postClicktopayMastercardEnroll
      parameters:
        - explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              card_token: my_card_token_1234
              locale_country: US
              locale_language: en
              user_details:
                - email_address: test@test.com
                  mobile_number:
                    country_code: '44'
                    phone_number: '1234567890'
              user_token: my_user_token_1234
            schema:
              $ref: '#/components/schemas/click_to_pay_enroll_request'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                token: my_token_0000
              schema:
                $ref: '#/components/schemas/click_to_pay_enroll_response'
          description: Enrollment Request Accepted
        '400':
          description: Invalid request or other validation error
        '500':
          description: Internal server error
      summary: Enroll a card to Click to Pay
      tags:
        - Digital Wallets Management
  /digitalwallets/clicktopay/mastercard/status/{token}:
    get:
      description: Use this endpoint to return the status of a Click to Pay request
        with a provided token.
      operationId: getClicktopayMastercardStatusToken
      parameters:
        - description: Unique identifier of the Click to Pay request.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
            x-allowableValues: Existing Click to Pay request token
          style: simple
        - explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                status: SUCCESS
                token: my_token_0000
                token_reference_id: my_token_reference_id_1600
              schema:
                $ref: '#/components/schemas/click_to_pay_status_response'
          description: Status retrieval successful
        '404':
          description: No provision request found with the token
        '500':
          description: Internal server error
      summary: Get Click to Pay enrollment status
      tags:
        - Digital Wallets Management
  /digitalwallets/wpp/applePayJWT:
    post:
      description: |-
        [NOTE]
        This endpoint is currently in beta and subject to change.
        For more information, contact your Marqeta representative.

        Use this endpoint to add a card to Apple Wallet via a web application.
      operationId: generateApplePayWPPJWT
      parameters:
        - description: Random pseudo-unique value used for troubleshooting between
            multiple parties.
          example: 123d837e-958a-4e9f-bc97-4843ec948123
          explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request_for_apple_pay_wpp_JWT'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web_push_provisioning_apple_pay_JWT_response'
          description: Ok
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Bad request
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Unauthorized
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Internal Server Error
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
      summary: Create request for Apple Wallet web push provisioning
      tags:
        - Digital Wallets Management
  /digitalwallets/wpp/googlePayPushProvisioningNotification:
    post:
      description: |-
        [NOTE]
        This endpoint is currently in beta and subject to change.
        For more information, contact your Marqeta representative.

        Use this endpoint to add a card to Google Wallet via a web application.

        This endpoint does not return a payload in response to a request.
        Instead, a successful call will return a response code only.
      operationId: sendOPCDataToGooglePay
      parameters:
        - description: Random pseudo-unique value used for troubleshooting between
            multiple parties.
          example: 123d837e-958a-4e9f-bc97-4843ec948123
          explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/sending_provisioning_data_to_google_pay_backend_request'
        required: true
      responses:
        '202':
          content: {
            }
          description: Accepted
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Bad request
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Unauthorized
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Internal Server Error
          headers:
            req-sys-id:
              description: Random pseudo-unique value used for troubleshooting between
                multiple parties.
              explode: false
              schema:
                type: string
              style: simple
      summary: Create request for Google Wallet web push provisioning
      tags:
        - Digital Wallets Management
  /digitalwallets/wpp/parameters:
    post:
      operationId: getWPPParameters
      parameters:
        - description: Random pseudo unique value used for troubleshooting between
            multiple parties. 36 char max
          example: 123d837e-958a-4e9f-bc97-4843ec948123
          explode: false
          in: header
          name: req-sys-id
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request_for_wpp_parameters'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/web_push_provisioning'
          description: Ok
          headers:
            req-sys-id:
              description: Random pseudo unique value used for troubleshooting between
                multiple parties. 36 char max
              explode: false
              schema:
                type: string
              style: simple
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Bad request
          headers:
            req-sys-id:
              description: Random pseudo unique value used for troubleshooting between
                multiple parties. 36 char max
              explode: false
              schema:
                type: string
              style: simple
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Unauthorized
          headers:
            req-sys-id:
              description: Random pseudo unique value used for troubleshooting between
                multiple parties. 36 char max
              explode: false
              schema:
                type: string
              style: simple
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message_from_web_push_provisioning_request'
          description: Internal Server Error
          headers:
            req-sys-id:
              description: Random pseudo unique value used for troubleshooting between
                multiple parties. 36 char max
              explode: false
              schema:
                type: string
              style: simple
      summary: 'API to query for the web push provisioning related parameters, such
        as: google piaid/integrator_id, apple partnerId, apple Card Template Identifier'
      tags:
        - web push provisioning
  /digitalwallettokens:
    get:
      description: Use this endpoint to retrieve a list of digital wallet tokens.
      operationId: getDigitalwallettokens
      parameters:
        - description: Number of digital wallet token resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first digital wallet token resource
            in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
        - description: Date when the digital wallet token becomes active.
          explode: true
          in: query
          name: start_date
          required: false
          schema:
            type: string
          style: form
        - description: Expiration date of the digital wallet token.
          explode: true
          in: query
          name: end_date
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the digital wallet token primary account number (PAN) within the card network.
            This value may vary, depending on the digital wallet.
            For example, the `pan_reference_id` may be different in Apple Wallet and Google Wallet for the same digital wallet token.
          explode: true
          in: query
          name: pan_reference_id
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the digital wallet token within the card network.
            The `token_reference_id` is unique at the card network level.
          explode: true
          in: query
          name: token_reference_id
          required: false
          schema:
            type: string
          style: form
        - description: Unique value representing a tokenization request (Mastercard
            only).
          explode: true
          in: query
          name: correlation_id
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of digital wallet token types to display.
          explode: true
          in: query
          name: token_type
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Name of the token requestor within the card network.

            *NOTE:* The list of example values for this field is maintained by the card networks and is subject to change.
          explode: true
          in: query
          name: token_requestor_name
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of digital wallet token states to display.
          explode: true
          in: query
          name: state
          required: false
          schema:
            type: string
          style: form
        - description: An optional embedded user object.
          explode: true
          in: query
          name: embed
          required: false
          schema:
            enum:
              - user
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalWalletTokenListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List digital wallet tokens
      tags:
        - Digital Wallets Management
  /digitalwallettokens/card/{card_token}:
    get:
      description: |-
        Use this endpoint to return an array of all digital wallet tokens for a particular card.

        This endpoint supports <</core-api/sorting-and-pagination, pagination>>.
      operationId: getDigitalwallettokensCardCardtoken
      parameters:
        - description: |-
            Unique identifier of the card.
            Used to minimize the need to exchange card details during subsequent calls, and also for troubleshooting.
          explode: false
          in: path
          name: card_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of digital wallet token resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first digital wallet token resource
            in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - address_verification:
                      name: Address Verification Name
                      postal_code: '94703'
                      street_address: 223 Elm Street
                    card_token: my_card_token_1989
                    created_time: 2022-10-03T18:55:45Z
                    device:
                      device_id: my_device_id_9575
                      ip_address: x.x.x.x
                      language_code: eng
                      location: +37.81/-122.26
                      name: Phone Name
                      phone_number: '12345678900'
                      type: MOBILE_PHONE
                    fulfillment_status: PROVISIONED
                    issuer_eligibility_decision: cardaccount.verified
                    last_modified_time: 2023-01-26T22:36:10Z
                    state: ACTIVE
                    state_reason: Card activated by cardholder
                    token: my_token_0000
                    token_service_provider:
                      pan_reference_id: my_pan_reference_id_0073
                      token_eligibility_decision: DECISION_GREEN
                      token_reference_id: my_token_reference_id_1600
                      token_requestor_id: my_token_requestor_id_0373
                      token_requestor_name: Token Requestor Name
                      token_score: '02'
                      token_type: DEVICE_SECURE_ELEMENT
                    wallet_provider_profile:
                      account:
                        score: '05'
                      device_score: '03'
                      pan_source: KEY_ENTERED
                      risk_assessment:
                        score: DECISION_YELLOW
                        version: '0001.00'
                end_index: 0
                is_more: true
                start_index: 0
              schema:
                $ref: '#/components/schemas/DigitalWalletTokenListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: List digital wallet tokens for card
      tags:
        - Digital Wallets Management
  /digitalwallettokens/{token}:
    get:
      description: Use this endpoint to retrieve a specific digital wallet token.
      operationId: getDigitalwallettokensToken
      parameters:
        - description: Unique identifier of the digital wallet token (DWT).
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                address_verification:
                  name: Address Verification Name
                  postal_code: '94703'
                  street_address: 223 Elm Street
                card_token: my_card_token_1989
                created_time: 2022-10-03T18:55:45Z
                device:
                  device_id: my_device_id_9575
                  ip_address: x.x.x.x
                  language_code: eng
                  location: +37.81/-122.26
                  name: Phone Name
                  phone_number: '12345678900'
                  type: MOBILE_PHONE
                fulfillment_status: PROVISIONED
                issuer_eligibility_decision: cardaccount.verified
                last_modified_time: 2023-01-26T22:36:10Z
                state: ACTIVE
                state_reason: Card activated by cardholder
                token: my_token_0000
                token_service_provider:
                  pan_reference_id: my_pan_reference_id_0073
                  token_eligibility_decision: DECISION_GREEN
                  token_reference_id: my_token_reference_id_1600
                  token_requestor_id: my_token_requestor_id_0373
                  token_requestor_name: Token Requestor Name
                  token_score: '02'
                  token_type: DEVICE_SECURE_ELEMENT
                wallet_provider_profile:
                  account:
                    score: '05'
                  device_score: '03'
                  pan_source: KEY_ENTERED
                  risk_assessment:
                    score: DECISION_YELLOW
                    version: '0001.00'
              schema:
                $ref: '#/components/schemas/digital_wallet_token'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve digital wallet token
      tags:
        - Digital Wallets Management
  /digitalwallettokens/{token}/showtokenpan:
    get:
      description: |-
        Use this endpoint to retrieve a digital wallet token with the entire primary account number (PAN) displayed.
        The PAN returned is of the digital wallet token and not of the card.
        (For security reasons, the PAN is not fully visible on the digital wallet token returned by `GET` `/digitalwallettokens/{token}`.)

        [WARNING]
        Sending a request to this endpoint requires PCI DSS compliance.
        You must comply with PCI DSS data security requirements if you want to store, transmit, or process sensitive card data such as the cardholder's primary account number (PAN), personal identification number (PIN), and card expiration date.
      operationId: getDigitalwallettokensTokenShowtokenpan
      parameters:
        - description: Unique identifier of the digital wallet token (DWT).
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                address_verification:
                  name: Address Verification Name
                  postal_code: '94703'
                  street_address: 223 Elm Street
                card_token: my_card_token_1989
                created_time: 2022-10-03T18:55:45Z
                device:
                  device_id: my_device_id_9575
                  ip_address: x.x.x.x
                  language_code: eng
                  location: +37.81/-122.26
                  name: Phone Name
                  phone_number: '12345678900'
                  type: MOBILE_PHONE
                fulfillment_status: PROVISIONED
                issuer_eligibility_decision: cardaccount.verified
                last_modified_time: 2023-01-26T22:36:10Z
                state: ACTIVE
                state_reason: Card activated by cardholder
                token: my_token_0000
                token_service_provider:
                  pan_reference_id: my_pan_reference_id_0073
                  token_eligibility_decision: DECISION_GREEN
                  token_pan: my_token_pan_6792
                  token_reference_id: my_token_reference_id_1600
                  token_requestor_id: my_token_requestor_id_0373
                  token_requestor_name: Token Requestor Name
                  token_score: '02'
                  token_type: DEVICE_SECURE_ELEMENT
                wallet_provider_profile:
                  account:
                    score: '05'
                  device_score: '03'
                  pan_source: KEY_ENTERED
                  risk_assessment:
                    score: DECISION_YELLOW
                    version: '0001.00'
              schema:
                $ref: '#/components/schemas/digital_wallet_token'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Card not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve digital wallet token PAN
      tags:
        - Digital Wallets Management
  /digitalwallettokentransitions:
    post:
      description: Use this endpoint to transition a digital wallet token from one
        state to another.
      operationId: postDigitalwallettokentransitions
      requestBody:
        content:
          application/json:
            example:
              digital_wallet_token:
                token: my_digital_wallet_token_0987
              reason: Passed additional identity verification
              reason_code: '18'
              state: ACTIVE
              token: my_transition_04
            schema:
              $ref: '#/components/schemas/digital_wallet_token_transition_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                channel: API
                created_time: 2023-02-23T18:57:45Z
                digital_wallet_token:
                  token: my_digital_wallet_token_0987
                fulfillment_status: PROVISIONED
                reason: Passed additional identity verification
                reason_code: '18'
                state: ACTIVE
                token: my_transition_04
                type: state.activated
              schema:
                $ref: '#/components/schemas/digital_wallet_token_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create digital wallet token transition
      tags:
        - Digital Wallets Management
  /digitalwallettokentransitions/digitalwallettoken/{token}:
    get:
      description: |-
        Use this endpoint to return an array of all transitions for a particular digital wallet token.

        This endpoint supports <</core-api/field-filtering, field filtering>>, <</core-api/sorting-and-pagination, pagination>>, and <</core-api/sorting-and-pagination, sorting>>.
      operationId: getDigitalwallettokentransitionsDigitalwallettokenToken
      parameters:
        - description: Unique identifier of the digital wallet token (DWT).
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of digital wallet transitions to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first digital wallet token in the
            returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -id
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - channel: API
                    created_time: 2023-02-23T18:57:45Z
                    digital_wallet_token:
                      token: my_digital_wallet_token_0987
                    fulfillment_status: PROVISIONED
                    reason: Passed additional identity verification
                    reason_code: '18'
                    state: ACTIVE
                    token: my_transition_04
                    type: state.activated
                  - channel: TOKEN_SERVICE_PROVIDER
                    created_time: 2023-02-23T18:44:21Z
                    digital_wallet_token:
                      token: my_digital_wallet_token_0987
                    fulfillment_status: DECISION_YELLOW
                    reason: Additional identity verification required
                    reason_code: '21'
                    state: REQUESTED
                    token: my_transition_04
                    type: fulfillment.requested
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/DigitalWalletTokenTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List transitions for digital wallet token
      tags:
        - Digital Wallets Management
  /digitalwallettokentransitions/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a specific digital wallet token transition.

        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getDigitalwallettokentransitionsToken
      parameters:
        - description: Unique identifier of the digital wallet token (DWT) transition.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                channel: API
                created_time: 2023-02-23T18:57:45Z
                digital_wallet_token:
                  token: my_digital_wallet_token_0987
                fulfillment_status: PROVISIONED
                reason: Passed additional identity verification
                reason_code: '18'
                state: ACTIVE
                token: my_transition_04
                type: state.activated
              schema:
                $ref: '#/components/schemas/digital_wallet_token_transition_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Transition not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve digital wallet token transition
      tags:
        - Digital Wallets Management
  /directdeposits:
    get:
      operationId: getDirectdeposits
      parameters:
        - description: The number of direct deposit records to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            maximum: 100
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Reversed after grace period
          explode: true
          in: query
          name: reversed_after_grace_period
          required: false
          schema:
            type: boolean
          style: form
        - description: User token
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: Business token
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: 'Comma-delimited list of direct deposit states to display e.g.
            PENDING | REVERSED | APPLIED | REJECTED '
          explode: true
          in: query
          name: direct_deposit_state
          required: false
          schema:
            enum:
              - PENDING
              - APPLIED
              - REVERSED
              - REJECTED
            type: string
          style: form
        - description: Start Settlement Date
          explode: true
          in: query
          name: start_settlement_date
          required: false
          schema:
            type: string
          style: form
        - description: End Settlement Date
          explode: true
          in: query
          name: end_settlement_date
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Retrieves a list of all direct deposit records for your program.
      tags:
        - direct deposits
  /directdeposits/accounts/{user_or_business_token}:
    get:
      deprecated: true
      operationId: getDirectdepositsAccountsUserorbusinesstoken
      parameters:
        - explode: false
          in: path
          name: user_or_business_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deposit_account'
          description: Success
        '400':
          content: {
            }
          description: Cardholder not found
        '404':
          content: {
            }
          description: Account not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns an account and routing number which can be used for direct
        deposit
      tags:
        - direct deposits
    put:
      deprecated: true
      operationId: putDirectdepositsAccountsUserorbusinesstoken
      parameters:
        - description: User or business token
          explode: false
          in: path
          name: user_or_business_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deposit_account_update_request'
        description: Deposit account update request
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/deposit_account'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific direct deposit account
      tags:
        - direct deposits
  /directdeposits/transitions:
    get:
      operationId: getDirectdepositsTransitions
      parameters:
        - description: Number of direct deposit transitions to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            maximum: 100
            type: integer
          style: form
        - description: User token
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: Business token
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: Direct deposit token
          explode: true
          in: query
          name: direct_deposit_token
          required: false
          schema:
            type: string
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
        - description: 'Comma-delimited list of direct deposit states to display e.g.
            PENDING | REVERSED | APPLIED | REJECTED '
          explode: true
          in: query
          name: states
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositTransitionListResponse'
          description: Success
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a list of direct deposit transitions
      tags:
        - direct deposits
    post:
      operationId: postDirectdepositsTransitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectDepositTransitionRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositTransitionResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Creates a direct deposit transition
      tags:
        - direct deposits
  /directdeposits/transitions/{token}:
    get:
      operationId: getDirectdepositsTransitionsToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositTransitionResponse'
          description: Success
        '404':
          content: {
            }
          description: Direct deposit transition not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a direct deposit transition
      tags:
        - direct deposits
  /directdeposits/{token}:
    get:
      operationId: getDirectdepositsToken
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDepositResponse'
          description: Success
        '404':
          content: {
            }
          description: Direct deposit entry not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a direct deposit entry
      tags:
        - direct deposits
  /feecharges:
    post:
      description: |-
        Use this endpoint to create a fee charge.
        You must pass in either `user_token` or `business_token` to associate a user or business with the fee charge.

        This is an all-or-nothing operation.
        When more than one fee is present, you must assess either all fees, or no fees.
      operationId: postFeeCharge
      requestBody:
        content:
          application/json:
            example:
              business_token: my_business_01
              fees:
                - memo: Initiation fee
                  token: my_fee_01
              token: my_feecharge_01
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/fee_transfer_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                business_token: my_business_01
                created_time: 2024-05-11T19:05:55Z
                fees:
                  - fee:
                      active: true
                      amount: 1
                      created_time: 2024-05-11T17:57:21Z
                      currency_code: USD
                      last_modified_time: 2024-05-11T17:57:21Z
                      name: My Fee 01
                      tags: My Tags
                      token: my_fee_01
                    memo: Initiation fee
                    token: my_fee_01
                    transaction_token: '162'
                token: my_feecharge_01
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/fee_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '422':
          content: {
            }
          description: Rule violations
        '500':
          content: {
            }
          description: Server error
      summary: Create fee charge
      tags:
        - Fee Charges
  /feecharges/realtime:
    post:
      operationId: postRealTimeFeeCharge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/realtime_fee_transfer_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fee_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '422':
          content: {
            }
          description: Rule violations
        '500':
          content: {
            }
          description: Server error
      summary: Creates a realTime fee charge
      tags:
        - fee charges
  /feecharges/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a specific fee charge.
        Include the fee transfer `token` path parameter to specify the fee charge to return.
      operationId: getFeeChargeToken
      parameters:
        - description: Unique identifier of the fee charge to retrieve.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                business_token: my_business_01
                created_time: 2024-05-11T19:05:55Z
                fees:
                  - fee:
                      active: true
                      amount: 1
                      created_time: 2024-05-11T17:57:21Z
                      currency_code: USD
                      last_modified_time: 2024-05-11T17:57:21Z
                      name: My Fee 01
                      tags: My Tags
                      token: my_fee_01
                    memo: Initiation fee
                    token: my_fee_01
                    transaction_token: '162'
                token: my_feetransfer_01
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/fee_transfer_response'
          description: Success
        '404':
          content: {
            }
          description: Fee charge not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve fee charge
      tags:
        - Fee Charges
  /feedback/fraud:
    post:
      description: This endpoint is to get a fraud feedback from the customer.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FraudFeedbackRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudFeedbackResponse'
          description: Fraud feedback is created successfully.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request Error
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: Unauthorized Error
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden Error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: Internal Server Error
      security:
        - zionToken: [
            ]
      summary: Creates a fraud feedback
  /feerefunds:
    post:
      description: |-
        Use this endpoint to create a fee refund.
        Include the fee charge `token` path parameter to specify the fee to return.

        If there are insufficient funds in your fee account to refund the fee, funds are drawn from your program reserve account.
      operationId: postFeeRefunds
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/fee_refund_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/fee_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '422':
          content: {
            }
          description: Rule violations
        '500':
          content: {
            }
          description: Server error
      summary: Create fee refund
      tags:
        - Fee Refunds
  /fees:
    get:
      description: |-
        Use this endpoint to list existing fees.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getFees
      parameters:
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 100
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data[]:
                  active: true
                  amount: 3.0
                  created_time: 2024-05-11T18:03:39Z
                  currency_code: USD
                  last_modified_time: 2024-05-11T18:03:39Z
                  name: My Fee 02
                  tags: My Tags
                  token: my_fee_02
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/FeeListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List fees
      tags:
        - Fees
    post:
      description: |-
        Use this endpoint to create a fee.
        Add the source details to the body of the request in link:http://www.json.org/[JSON, window="_blank"] format.
      operationId: postFees
      requestBody:
        content:
          application/json:
            example:
              amount: 1.0
              currency_code: USD
              name: My Fee 01
              tags: My Tags
              token: my_fee_01
            schema:
              $ref: '#/components/schemas/fee_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                amount: 1
                created_time: 2024-05-11T17:57:21Z
                currency_code: USD
                last_modified_time: 2024-05-11T17:57:21Z
                name: My Fee 01
                tags: My Tags
                token: my_fee_01
              schema:
                $ref: '#/components/schemas/fee_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create fee
      tags:
        - Fees
  /fees/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a fee.
        Include the `token` path parameter to specify the fee to return.
      operationId: getFeesToken
      parameters:
        - description: Unique identifier of the fee resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                amount: 1.0
                created_time: 2024-05-11T17:57:21Z
                currency_code: USD
                last_modified_time: 2024-05-11T17:57:21Z
                name: My Fee 01
                tags: My Tags
                token: my_fee_01
              schema:
                $ref: '#/components/schemas/fee_response'
          description: Success
        '404':
          content: {
            }
          description: Fee not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve fee
      tags:
        - Fees
    put:
      description: |-
        Use this endpoint to update a fee.
        Include the `token` as a path parameter to indicate the fee to update.
      operationId: putFeesToken
      parameters:
        - description: Unique identifier of the fee resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              active: false
            schema:
              $ref: '#/components/schemas/fee_update_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                active: false
                amount: 1.0
                created_time: 2024-05-11T17:57:21Z
                currency_code: USD
                last_modified_time: 2024-05-11T17:57:21Z
                name: My Fee 01
                tags: My Tags
                token: my_fee_01
              schema:
                $ref: '#/components/schemas/fee_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update fee
      tags:
        - Fees
  /fundingsources/ach:
    post:
      description: |-
        Create an ACH funding source for an existing account holder.
        Specify the account holder of the funding source by passing a user or business token.

        The response body returns details about the account, including the verification status.
        Possible ACH verification status values include `ACH_VERIFIED`, `ACH_FAILED`, and `VERIFICATION_PENDING`.
      operationId: postFundingsourcesAch
      requestBody:
        content:
          application/json:
            example:
              account_number: '987654321'
              account_type: savings
              is_default_account: false
              name_on_account: Jane Doe
              routing_number: '121000358'
              token: my_user_01_fundingsource_token_01
              user_token: my_user_01
              verification_notes: These are my verification notes.
              verification_override: true
            schema:
              $ref: '#/components/schemas/ach_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '4321'
                account_type: savings
                active: true
                created_time: 2023-02-26T18:46:06Z
                date_sent_for_verification: 2023-02-27T07:36:05Z
                date_verified: 2023-02-27T11:03:45Z
                is_default_account: false
                last_modified_time: 2023-03-26T12:44:02Z
                name_on_account: Jane Doe
                token: my_user_01_fundingsource_token_01
                user_token: my_user_01
                verification_notes: These are my verification notes.
                verification_override: true
                verification_status: ACH_VERIFIED
              schema:
                $ref: '#/components/schemas/ach_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create ACH source
      tags:
        - Account Holder Funding Sources
  /fundingsources/ach/partner:
    post:
      description: |-
        Create an ACH funding source for an existing account holder by using a third-party partner to handle account validation and provide PII account data.
        Because you don't handle any personally identifiable information (PII) yourself, using a third party when creating the funding source enables you to bypass the regulatory and compliance measures related to capturing, storing, and transmitting PII.

        With this endpoint, you can create a US-based funding source—either a checking account or a savings account—for a program or user without passing bank account details such as the account number or routing number to Marqeta.
        Instead, validating account data and account verification is handled by the third-party partner you specify, and a secure token (i.e., a Plaid `processor_token`) is shared across partners.
        By using a secure account verification platform to provide immediate verification, you shorten the wait time until the ACH funding source is ready and avoid managing the microdeposit-based account verification process.

        To create an ACH funding source for an existing account holder without validating through a third party, see <</core-api/account-holder-funding-sources#postFundingsourcesAch, Create ACH source>>.

        [NOTE]
        This endpoint assumes that you already have established a relationship with both Marqeta and the third-party account validation partner you want to use.
        In addition, you must explicitly authorize the sharing of information with the third-party partner, and enable Marqeta as a processor for your integration.
        For more information, contact your Marqeta representative.
      operationId: postFundingsourcesAchPartner
      requestBody:
        content:
          application/json:
            example:
              is_default_account: false
              partner: PLAID
              partner_account_link_reference_token: processor-sandbox-reference-token
              token: my_user_01_fundingsource_token_01
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/ach_partner_request_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '4321'
                account_type: savings
                active: true
                created_time: 2023-02-26T18:46:06Z
                date_sent_for_verification: 2023-02-27T07:36:05Z
                date_verified: 2023-02-27T11:03:45Z
                is_default_account: false
                last_modified_time: 2023-03-26T12:44:02Z
                name_on_account: Jane Doe
                partner: PLAID
                partner_account_link_reference_token: processor-sandbox-reference-token
                token: my_user_01_fundingsource_token_01
                user_token: my_user_01
                verification_notes: These are my verification notes.
                verification_override: true
                verification_status: ACH_VERIFIED
              schema:
                $ref: '#/components/schemas/ach_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create ACH source via a partner integration
      tags:
        - Account Holder Funding Sources
  /fundingsources/ach/partner/{funding_source_token}/balance:
    get:
      operationId: getAchPartnerLinkedFundingSourceBalance
      parameters:
        - description: Funding source token
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkedAccountBalanceResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieves a linked funding source balance from a partner
      tags:
        - funding sources
  /fundingsources/ach/{funding_source_token}:
    get:
      description: |-
        Retrieve a specific ACH funding source.

        The response body returns details about the account, including the verification status.
        Possible ACH verification status values are: `ACH_FAILED`, `ACH_VERIFIED`, and `VERIFICATION_PENDING`.
      operationId: getFundingsourcesAchFundingsourcetoken
      parameters:
        - description: |-
            Unique identifier of the funding source.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve existing funding source tokens for a user or to `/fundingsources/business/{business_token}` to retrieve existing funding source tokens for a business.
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '4321'
                account_type: savings
                active: true
                created_time: 2023-02-26T18:46:06Z
                date_sent_for_verification: 2023-02-27T18:00:00Z
                date_verified: 2023-02-27T18:15:00Z
                is_default_account: false
                last_modified_time: 2023-03-12T04:58:46Z
                name_on_account: Jane Doe
                token: my_user_01_fundingsource_token_01
                user_token: my_user_01
                verification_notes: These are my verification notes.
                verification_override: true
                verification_status: ACH_VERIFIED
              schema:
                $ref: '#/components/schemas/ach_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve ACH source
      tags:
        - Account Holder Funding Sources
  /fundingsources/ach/{funding_source_token}/verificationamounts:
    get:
      operationId: getFundingsourcesAchFundingsourcetokenVerificationamounts
      parameters:
        - description: Funding account token
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ach_verification_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns the dollar amounts used to verify the ACH account
      tags:
        - funding sources
  /fundingsources/addresses:
    post:
      description: |-
        Use this endpoint to create an address resource.

        When creating the address, you must pass the token of either an existing user in the `user_token` field or an existing business in the `business_token` field.
        Do not pass both.
      operationId: postFundingsourcesAddresses
      requestBody:
        content:
          application/json:
            example:
              address_1: 1234 Grove Street
              business_token: my_business_01
              city: Berkeley
              country: USA
              first_name: Jane
              last_name: Doe
              phone: '5104444444'
              postal_code: '94705'
              state: CA
              token: my_funding_source_address_biz_01
              zip: '94705'
            schema:
              $ref: '#/components/schemas/card_holder_address_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                address_1: 1234 Grove Street
                business_token: my_business_01
                city: Berkeley
                country: USA
                created_time: 2023-02-20T20:04:13Z
                first_name: Jane
                is_default_address: true
                last_modified_time: 2023-02-20T20:04:13Z
                last_name: Doe
                phone: '5104444444'
                postal_code: '94705'
                state: CA
                token: my_funding_source_address_biz_01
                zip: '94705'
              schema:
                $ref: '#/components/schemas/CardholderAddressResponse'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create address
      tags:
        - Addresses
  /fundingsources/addresses/business/{business_token}:
    get:
      description: |-
        Use this endpoint to list existing addresses for a business.
        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getFundingsourcesAddressesBusinessBusinesstoken
      parameters:
        - description: |-
            Unique identifier of the business account holder.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          explode: false
          in: path
          name: business_token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - active: true
                    address_1: 1234 Grove Street
                    business_token: my_business_01
                    city: Berkeley
                    country: USA
                    created_time: 2023-02-26T21:34:42Z
                    first_name: Jane
                    is_default_address: true
                    last_modified_time: 2023-02-27T18:55:59Z
                    last_name: Doe
                    phone: '5104444444'
                    postal_code: '94705'
                    state: CA
                    token: my_funding_source_address_bus_01
                    zip: '94705'
                  - active: true
                    address_1: 5678 Grove Street
                    business_token: my_business_01
                    city: Berkeley
                    country: USA
                    created_time: 2023-02-25T19:48:30Z
                    first_name: Jane
                    is_default_address: false
                    last_modified_time: 2023-03-25T10:17:38Z
                    last_name: Doe
                    phone: '5104444444'
                    postal_code: '94705'
                    state: CA
                    token: my_funding_source_address_bus_02
                    zip: '94705'
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/CardholderAddressListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: List business addresses
      tags:
        - Addresses
  /fundingsources/addresses/user/{user_token}:
    get:
      description: |-
        Use this endpoint to list existing addresses for a user.
        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getFundingsourcesAddressesUserUsertoken
      parameters:
        - description: Unique identifier of the user account holder.
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - active: true
                    address_1: 1234 Grove Street
                    business_token: my_user_01
                    city: Berkeley
                    country: USA
                    created_time: 2023-02-27T21:34:42Z
                    first_name: Jane
                    is_default_address: true
                    last_modified_time: 2023-02-28T18:55:59Z
                    last_name: Doe
                    phone: '5104444444'
                    postal_code: '94705'
                    state: CA
                    token: my_funding_source_address_user_01
                    zip: '94705'
                  - active: true
                    address_1: 5678 Grove Street
                    business_token: my_user_01
                    city: Berkeley
                    country: USA
                    created_time: 2023-02-25T19:48:30Z
                    first_name: Jane
                    is_default_address: false
                    last_modified_time: 2023-03-25T19:48:30Z
                    last_name: Doe
                    phone: '5104444444'
                    postal_code: '94705'
                    state: CA
                    token: my_funding_source_address_user_02
                    zip: '94705'
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/CardholderAddressListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Lists all addresses for a user
      tags:
        - Addresses
  /fundingsources/addresses/{funding_source_address_token}:
    get:
      description: Use this endpoint to retrieve a funding source address.
      operationId: getFundingsourcesAddressesFundingsourceaddresstoken
      parameters:
        - description: Unique identifier of the funding source address.
          explode: false
          in: path
          name: funding_source_address_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                address_1: 1234 Grove Street
                business_token: my_business_01
                city: Berkeley
                country: USA
                created_time: 2023-02-20T20:04:13Z
                first_name: Jane
                is_default_address: true
                last_modified_time: 2023-02-20T20:04:13Z
                last_name: Doe
                phone: '5104444444'
                postal_code: '94705'
                state: CA
                token: my_funding_source_address_biz_01
                zip: '94705'
              schema:
                $ref: '#/components/schemas/CardholderAddressResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve address
      tags:
        - Addresses
    put:
      description: Use this endpoint to update an address.
      operationId: putFundingsourcesAddressesFundingsourceaddresstoken
      parameters:
        - description: Unique identifier of the funding source address.
          explode: false
          in: path
          name: funding_source_address_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              address_1: 333 Elm Street
            schema:
              $ref: '#/components/schemas/card_holder_address_update_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                address_1: 333 Elm Street
                business_token: my_business_01
                city: Berkeley
                country: USA
                created_time: 2023-02-20T20:04:13Z
                first_name: Jane
                is_default_address: true
                last_modified_time: 2023-02-28T16:00:00Z
                last_name: Doe
                phone: '5104444444'
                postal_code: '94705'
                state: CA
                token: my_funding_source_address_biz_01
                zip: '94705'
              schema:
                $ref: '#/components/schemas/CardholderAddressResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update address
      tags:
        - Addresses
  /fundingsources/business/{business_token}:
    get:
      description: |-
        List funding sources associated with a specific business.

        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getFundingsourcesBusinessBusinesstoken
      parameters:
        - description: |-
            Unique identifier of the business account holder.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          explode: false
          in: path
          name: business_token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Type of funding source to return: ACH or payment card.
            Leave unspecified to return both types.
          explode: true
          in: query
          name: type
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - account_suffix: '4113'
                    account_type: corporate
                    active: true
                    created_time: 2023-02-26T21:26:13Z
                    exp_date: '1227'
                    is_default_account: true
                    last_modified_time: 2023-02-26T21:26:13Z
                    token: my_paymentcard_funding_source_01
                    type: paymentcard
                    user_token: my_business_01
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/FundingAccountListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: No funding accounts found
        '500':
          content: {
            }
          description: Server error
      summary: List sources for business
      tags:
        - Account Holder Funding Sources
  /fundingsources/paymentcard:
    post:
      description: |-
        Create a payment card funding source for an existing account holder.
        This endpoint returns the card type and the last four digits of the card, and then sets the `active_ field` to `true`.

        Marqeta retains only a tokenized representation of the card number.
      operationId: postFundingsourcesPaymentcard
      requestBody:
        content:
          application/json:
            example:
              account_number: '6559906559906557'
              cvv_number: '123'
              exp_date: '1227'
              is_default_account: true
              postal_code: '94608'
              token: my_paymentcard_01
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/token_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '6557'
                account_type: corporate
                active: true
                created_time: 2023-02-26T20:00:00Z
                exp_date: '1227'
                is_default_account: true
                last_modified_time: 2023-02-26T21:00:00Z
                token: my_paymentcard_01
                type: paymentcard
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/payment_card_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create payment card source
      tags:
        - Account Holder Funding Sources
  /fundingsources/paymentcard/{funding_source_token}:
    get:
      description: Retrieve a specific payment card funding source.
      operationId: getFundingsourcesPaymentcardFundingsourcetoken
      parameters:
        - description: |-
            Unique identifier of the funding source.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve existing funding source tokens for a user or to `/fundingsources/business/{business_token}` to retrieve existing funding source tokens for a business.
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '6557'
                account_type: corporate
                active: true
                created_time: 2023-02-26T20:00:00Z
                exp_date: '1227'
                is_default_account: true
                last_modified_time: 2023-02-26T21:00:00Z
                token: my_paymentcard_01
                type: paymentcard
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/payment_card_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve payment card source
      tags:
        - Account Holder Funding Sources
    put:
      description: Update a payment card funding source.
      operationId: putFundingsourcesFundingsourcetoken
      parameters:
        - description: |-
            Unique identifier of the funding source.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve existing funding source tokens for a user or to `/fundingsources/business/{business_token}` to retrieve existing funding source tokens for a business.
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              exp_date: '1227'
              is_default_account: false
            schema:
              $ref: '#/components/schemas/token_update_request'
        description: Payment card
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '6557'
                account_type: DISCOVER
                active: true
                created_time: 2023-02-26T20:00:00Z
                exp_date: '1227'
                is_default_account: false
                last_modified_time: 2023-02-26T21:00:00Z
                token: my_paymentcard_01
                type: paymentcard
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/payment_card_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update payment card source
      tags:
        - Account Holder Funding Sources
  /fundingsources/program:
    post:
      description: Create a program funding source.
      operationId: postFundingsourcesProgram
      requestBody:
        content:
          application/json:
            example:
              active: true
              name: my_programfundingsource_name
              token: my_programfundingsource_token
            schema:
              $ref: '#/components/schemas/program_funding_source_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                account: 12.003.001.000147
                active: true
                created_time: 2023-02-25T20:46:04Z
                last_modified_time: 2023-02-25T20:46:04Z
                name: my_programfundingsource_name
                token: my_programfundingsource_token
              schema:
                $ref: '#/components/schemas/program_funding_source_response'
          description: Success
        '400':
          content: {
            }
          description: Invalid fields detected
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create program source
      tags:
        - Program Funding Sources
  /fundingsources/program/ach:
    get:
      description: List ACH program funding sources.
      operationId: getAllACHFundingSources
      parameters:
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: |-
            If `true`, returns ACH funding sources from active programs only.
            If `false`, returns all ACH funding sources.
          explode: true
          in: query
          name: active
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad Request
        '404':
          content: {
            }
          description: Not Found
        '500':
          content: {
            }
          description: Server error
      summary: List ACH program sources
      tags:
        - Program Funding Sources
    post:
      description: Create an ACH program funding source.
      operationId: postFundingsourcesProgramAch
      requestBody:
        content:
          application/json:
            example:
              account_number: '888271159'
              account_type: checking
              is_default_account: true
              name_on_account: John Doe
              routing_number: '121000357'
              verification_notes: testing
              verification_override: true
            schema:
              $ref: '#/components/schemas/base_ach_request_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '1156'
                account_type: checking
                active: true
                created_time: 2023-02-27T18:40:27Z
                is_default_account: true
                last_modified_time: 2023-02-27T18:40:27Z
                name_on_account: John Doe
                token: my_program_ach_source_token
                verification_status: ACH_VERIFIED
              schema:
                $ref: '#/components/schemas/base_ach_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create ACH program source
      tags:
        - Program Funding Sources
  /fundingsources/program/{token}:
    get:
      description: Retrieve a specific program funding source, whether active or inactive.
      operationId: getFundingsourcesProgramToken
      parameters:
        - description: Unique identifier of the program funding source.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '201':
          content:
            application/json:
              example:
                account: 12.003.001.000147
                active: true
                created_time: 2023-02-25T20:46:04Z
                last_modified_time: 2023-02-25T20:46:04Z
                name: my_programfundingsource_name
                token: my_programfundingsource_token
              schema:
                $ref: '#/components/schemas/program_funding_source_response'
          description: Success
        '404':
          content: {
            }
          description: Program funding source not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve program source
      tags:
        - Program Funding Sources
    put:
      description: Update a program funding source.
      operationId: putFundingsourcesProgramToken
      parameters:
        - description: Unique identifier of the program funding source.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              active: false
              name: your_programfundingsource_name
            schema:
              $ref: '#/components/schemas/program_funding_source_update_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account: 12.003.001.000147
                active: true
                created_time: 2023-02-25T20:46:04Z
                last_modified_time: 2023-02-25T20:50:00Z
                name: your_programfundingsource_name
                token: my_programfundingsource_token
              schema:
                $ref: '#/components/schemas/program_funding_source_response'
          description: Success
        '400':
          content: {
            }
          description: Invalid fields detected
        '500':
          content: {
            }
          description: Server error
      summary: Update program source
      tags:
        - Program Funding Sources
  /fundingsources/programgateway:
    post:
      description: |-
        Creates a program gateway funding source.
        A program gateway funding source is a transaction relay that allows you to approve or decline transactions in real time.
      operationId: postFundingsourcesProgramgateway
      requestBody:
        content:
          application/json:
            example:
              basic_auth_password: my_20-to-100-character_password
              basic_auth_username: my_username
              name: my_pgfs_name
              token: my_pgfs_token
              url: https://my_secure_domain.com/my_gateway
            schema:
              $ref: '#/components/schemas/gateway_program_funding_source_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                account: 12.003.001.000155
                active: true
                basic_auth_password: my_20-to-100-character_password
                basic_auth_username: my_username
                created_time: 2023-02-28T20:00:00Z
                custom_header:
                  my_header_name_1: my_value_1
                  my_header_name_2: my_value_2
                  my_header_name_3: my_value_3
                last_modified_time: 2023-02-28T20:00:00Z
                name: my_pgfs_name
                timeout_millis: 3000
                token: my_pgfs_token
                url: https://my_secure_domain.com/my_gateway
                use_mtls: false
                version: '2'
              schema:
                $ref: '#/components/schemas/gateway_program_funding_source_response'
          description: Success
        '400':
          content: {
            }
          description: Invalid fields detected
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create program gateway source
      tags:
        - Program Gateway Funding Sources
  /fundingsources/programgateway/customheaders/{token}:
    put:
      description: Adds or updates custom HTTP headers for a specific program gateway
        funding source.
      operationId: putFundingsourcesProgramgatewayCustomHeaderToken
      parameters:
        - description: Unique identifier of the program gateway funding source.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              custom_header:
                my_header_name_1: my_value_1
                my_header_name_2: my_value_2
                my_header_name_3: my_value_3
            schema:
              $ref: '#/components/schemas/gateway_program_custom_header_update_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account: 12.003.001.000155
                active: true
                basic_auth_password: my_20-to-100-character_password
                basic_auth_username: my_username
                created_time: 2023-02-28T20:00:00Z
                custom_header:
                  my_header_name_1: my_value_1
                  my_header_name_2: my_value_2
                  my_header_name_3: my_value_3
                last_modified_time: 2023-02-28T20:00:00Z
                name: my_pgfs_name
                timeout_millis: 3000
                token: my_pgfs_token
                url: https://my_secure_domain.com/my_gateway
                use_mtls: false
                version: '2'
              schema:
                $ref: '#/components/schemas/gateway_program_funding_source_response'
          description: Success
        '400':
          content: {
            }
          description: Invalid fields detected
        '500':
          content: {
            }
          description: Server error
      summary: Update program gateway source custom headers
      tags:
        - Program Gateway Funding Sources
  /fundingsources/programgateway/{token}:
    get:
      description: Retrieves a specific program gateway funding source.
      operationId: getFundingsourcesProgramgatewayToken
      parameters:
        - description: Unique identifier of the program gateway funding source.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '201':
          content:
            application/json:
              example:
                account: 12.003.001.000155
                active: true
                basic_auth_password: my_20-to-100-character_password
                basic_auth_username: my_username
                created_time: 2023-02-28T20:00:00Z
                custom_header:
                  my_header_name_1: my_value_1
                  my_header_name_2: my_value_2
                  my_header_name_3: my_value_3
                last_modified_time: 2023-02-28T20:00:00Z
                name: my_pgfs_name
                timeout_millis: 3000
                token: my_pgfs_token
                url: https://my_secure_domain.com/my_gateway
                use_mtls: false
                version: '2'
              schema:
                $ref: '#/components/schemas/gateway_program_funding_source_response'
          description: Success
        '404':
          content: {
            }
          description: Program gateway funding source not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve program gateway source
      tags:
        - Program Gateway Funding Sources
    put:
      description: Update a program gateway funding source.
      operationId: putFundingsourcesProgramgatewayToken
      parameters:
        - description: Unique identifier of the program gateway funding source.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              active: false
              basic_auth_password: my_20-to-100-character_password
              basic_auth_username: my_username
              url: https://my_secure_domain.com/my_gateway
            schema:
              $ref: '#/components/schemas/gateway_program_funding_source_update_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                account: 12.003.001.000155
                active: false
                basic_auth_password: my_20-to-100-character_password
                basic_auth_username: my_username
                created_time: 2023-02-28T20:00:00Z
                custom_header:
                  my_header_name_1: my_value_1
                  my_header_name_2: my_value_2
                  my_header_name_3: my_value_3
                last_modified_time: 2023-02-28T20:00:00Z
                name: my_pgfs_name
                timeout_millis: 3000
                token: my_pgfs_token
                url: https://my_secure_domain.com/my_gateway
                use_mtls: false
                version: '2'
              schema:
                $ref: '#/components/schemas/gateway_program_funding_source_response'
          description: Success
        '400':
          content: {
            }
          description: Invalid fields detected
        '500':
          content: {
            }
          description: Server error
      summary: Update program gateway source
      tags:
        - Program Gateway Funding Sources
  /fundingsources/user/{user_token}:
    get:
      description: |-
        List funding sources associated with a specific user.

        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getFundingsourcesUserUsertoken
      parameters:
        - description: Unique identifier of the user account holder.
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Type of funding source to retrieve: ACH or payment card.
            Leave unspecified to return both types.
          explode: true
          in: query
          name: type
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - account_suffix: '4113'
                    account_type: corporate
                    active: true
                    created_time: 2023-02-26T20:03:05Z
                    exp_date: '1227'
                    is_default_account: true
                    last_modified_time: 2023-02-26T20:03:05Z
                    token: jane_doe_paymentcard_01
                    type: paymentcard
                    user_token: my_user_01
                  - account_suffix: '4321'
                    account_type: savings
                    active: false
                    created_time: 2023-02-26T20:03:05Z
                    date_sent_for_verification: 2023-02-27T23:27:58Z
                    is_default_account: false
                    last_modified_time: 2023-02-26T20:03:05Z
                    name_on_account: Jane Doe
                    token: jane_doe_ach_token
                    type: ach
                    user_token: my_user_01
                    verification_status: ACH_VERIFIED
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/FundingAccountListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: No funding accounts found
        '500':
          content: {
            }
          description: Server error
      summary: List sources for user
      tags:
        - Account Holder Funding Sources
  /fundingsources/{funding_source_token}/default:
    put:
      description: |-
        Configure either an ACH funding source or a payment card funding source as the default funding source.

        A default funding source is used when you omit the `funding_source_token` field from funding requests, such as a `POST` request to `/gpaorders`.
        Note that the first funding source you create is automatically set as the default (`is_default_source=true`).
      operationId: putFundingsourcesFundingsourcetokenDefault
      parameters:
        - description: |-
            Unique identifier of the funding source.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve existing funding source tokens for a user or to `/fundingsources/business/{business_token}` to retrieve existing funding source tokens for a business.
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                account_suffix: '4321'
                account_type: corporate
                active: true
                created_time: 2023-02-28T20:00:00Z
                exp_date: '1227'
                is_default_account: true
                last_modified_time: 2023-02-28T20:00:00Z
                token: jane_doe_paymentcard_token
                type: paymentcard
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/payment_card_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Set default source
      tags:
        - Account Holder Funding Sources
  /gpaorders:
    post:
      description: |-
        Use this endpoint to create an order to fund an account holder's GPA.

        You can assess a <</core-api/fees, fee>> while funding a GPA by using the optional `fees` array to attach one or more fee resources to the GPA order.
        When you create a GPA order, the GPA is first credited for the fees, then debited at funding time.
      operationId: postGpaorders
      requestBody:
        content:
          application/json:
            example:
              amount: 1000
              currency_code: USD
              funding_source_token: my_program_funding_source_01
              token: my_gpaorder_01
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/gpa_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                amount: 1000
                created_time: 2022-05-10T23:00:15Z
                currency_code: USD
                funding:
                  amount: 1000
                  source:
                    active: true
                    created_time: 2022-11-30T19:13:23Z
                    is_default_account: false
                    last_modified_time: 2022-11-30T19:13:23Z
                    name: my_program_funding_source_01
                    token: '**********e_01'
                    type: program
                funding_source_token: '**********e_01'
                last_modified_time: 2022-05-10T23:00:15Z
                response:
                  code: '0000'
                  memo: Approved or completed successfully
                state: COMPLETION
                token: my_gpaorder_01
                transaction_token: 156
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/gpa_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '422':
          content: {
            }
          description: Rule violations or declined transactions from funding source
        '500':
          content: {
            }
          description: Server error
      summary: Create GPA order
      tags:
        - GPA Orders
  /gpaorders/unloads:
    get:
      description: |-
        Use this endpoint to list all GPA unloads or GPA unloads associated with a specific user or business.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getGpaordersUnloads
      parameters:
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: |-
            Unique identifier of the user resource.

            Send a `GET` request to `/users` to retrieve user tokens.
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the business resource.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the original GPA order.

            Send a `GET` request to `/transactions?type=gpa.credit` to retrieve GPA order tokens.
          explode: true
          in: query
          name: original_order_token
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data[]:
                  amount: 500
                  created_time: 2022-11-30T23:14:50Z
                  funding:
                    amount: 500
                    source:
                      active: true
                      created_time: 2022-03-31T19:13:23Z
                      is_default_account: false
                      last_modified_time: 2022-03-31T19:13:23Z
                      name: my_program_funding_source_01
                      token: '**********e_01'
                      type: program
                  funding_source_token: '**********e_01'
                  last_modified_time: 2022-11-30T23:15:50Z
                  original_order_token: my_gpaorder_01
                  response:
                    code: '0000'
                    memo: Approved or completed successfully
                  state: COMPLETION
                  token: my_unload_01
                  transaction_token: '158'
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/GPAUnloadListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List GPA unloads
      tags:
        - GPA Orders
    post:
      description: |-
        Use this endpoint to unload a GPA order.

        Unloading a GPA order returns funds to the funding source.
        A GPA unload must be tied to an original GPA order and can be used to return the amount of the original order or a lesser amount.
      operationId: postGpaordersUnloads
      requestBody:
        content:
          application/json:
            example:
              amount: 500
              original_order_token: my_gpaorder_01
              token: my_unload_01
            schema:
              $ref: '#/components/schemas/unload_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                amount: 500
                created_time: 2022-11-30T23:14:50Z
                funding:
                  amount: 500
                  source:
                    active: true
                    created_time: 2022-03-31T19:13:23Z
                    is_default_account: false
                    last_modified_time: 2022-03-31T19:13:23Z
                    name: my_program_funding_source_01
                    token: '**********e_01'
                    type: program
                funding_source_token: '**********e_01'
                last_modified_time: 2022-11-30T23:30:50Z
                original_order_token: my_gpaorder_01
                response:
                  code: '0000'
                  memo: Approved or completed successfully
                state: COMPLETION
                token: my_unload_01
                transaction_token: '158'
              schema:
                $ref: '#/components/schemas/gpa_returns'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: GPA order token not found
        '412':
          content: {
            }
          description: Pre-condition failed. Unload amount is greater than load amount
        '500':
          content: {
            }
          description: Server error
      summary: Create GPA unload
      tags:
        - GPA Orders
  /gpaorders/unloads/{unload_token}:
    get:
      description: Use this endpoint to retrieve a specific GPA unload.
      operationId: getGpaordersUnloadsUnloadtoken
      parameters:
        - description: Unique identifier of the GPA unload.
          explode: false
          in: path
          name: unload_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 500
                created_time: 2022-11-30T23:14:50Z
                funding:
                  amount: 500
                  source:
                    active: true
                    created_time: 2022-03-31T19:13:23Z
                    is_default_account: false
                    last_modified_time: 2022-03-31T19:13:23Z
                    name: my_program_funding_source_01
                    token: '**********e_01'
                    type: program
                funding_source_token: '**********e_01'
                last_modified_time: 2022-11-30T23:15:50Z
                original_order_token: my_gpaorder_01
                response:
                  code: '0000'
                  memo: Approved or completed successfully
                state: COMPLETION
                token: my_unload_01
                transaction_token: '158'
              schema:
                $ref: '#/components/schemas/gpa_returns'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Return not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve GPA unload
      tags:
        - GPA Orders
  /gpaorders/{token}:
    get:
      description: Use this endpoint to retrieve a GPA order.
      operationId: getGpaordersToken
      parameters:
        - description: |-
            Unique identifier of the GPA order.

            Send a `GET` request to `/transactions?type=gpa.credit` to retrieve GPA order tokens.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 1000
                created_time: 2022-11-30T23:00:15Z
                currency_code: USD
                funding:
                  amount: 1000
                  source:
                    active: true
                    created_time: 2022-03-31T19:13:23Z
                    is_default_account: false
                    last_modified_time: 2022-03-31T19:13:23Z
                    name: my_program_funding_source_01
                    token: '**********e_01'
                    type: program
                funding_source_token: '**********e_01'
                last_modified_time: 2022-11-30T23:10:15Z
                response:
                  code: '0000'
                  memo: Approved or completed successfully
                state: COMPLETION
                token: my_gpaorder_01
                transaction_token: 156
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/gpa_response'
          description: Success
        '404':
          content: {
            }
          description: GPA order token not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve GPA order
      tags:
        - GPA Orders
  /kyc:
    post:
      description: |-
        Use this endpoint to verify the identity of an account holder in the United States, either a user or a business.
        You can perform KYC verification on an account holder, provided the following are true:

        * The KYC status of the account holder is `UNVERIFIED` or `LIMITED`
        * The account holder has not been submitted for KYC verification twice

        === Required fields

        In order to perform KYC verification, the user or business resource on which you perform the check must have the following fields configured with valid values:

        [cols="1a,1a"]
        |===
        | User Fields Required for KYC | Business Fields Required for KYC

        |
        * `first_name` (legal first name only, no prefixes)
        * `last_name` (legal last name only, no suffixes)
        * `address1` (cannot be a PO Box)
        * `city`
        * `state`
        * `postal_code`
        * `country`
        * `birth_date`
        * `ssn` (nine digits, no delimiters)
        * `email` (required in some cases)
        * `phone` (required in some cases)

        |
        * `business_name_legal` (128 char max)
        * `business_name_dba` ("Doing Business As" or fictitious business name; enter the legal business name in this field if your business does not use a fictitious business name)
        * `office_location` (cannot be a PO Box; `state` field must use a <<valid_state_provincial_and_territorial_abbreviations, valid two-letter state, provincial, or territorial abbreviation>>)
        * `identifications` (nine digits, no delimiters)
        * `incorporation.incorporation_type`
        * `incorporation.state_of_incorporation`
        * `date_established`
        * `proprietor_or_officer`
        * `beneficial_owner` (maximum of four beneficial owners)
        * `proprietor_is_beneficial_owner` (required if the business proprietor or officer is also a beneficial owner)
        * `attestation_consent`
        * `attester_name`
        * `attestation_date`
        |===

        ==== Valid state, provincial, and territorial abbreviations
        The following list includes all valid two-letter abbreviations for US states, territories, and military (APO/FPO/DPO) addresses.
        It also includes abbreviations for Canadian provinces and territories.
        State, provincial, and territorial abbreviations are case sensitive, and must be in uppercase as they appear in this list:

        * `AL`: Alabama
        * `AK`: Alaska
        * `AB`: Alberta
        * `AS`: American Samoa
        * `AZ`: Arizona
        * `AR`: Arkansas
        * `AE`: Armed Forces
        * `AA`: Armed Forces Americas
        * `AP`: Armed Forces Pacific
        * `BC`: British Columbia
        * `CA`: California
        * `CO`: Colorado
        * `CT`: Connecticut
        * `DE`: Delaware
        * `DC`: District of Columbia
        * `FL`: Florida
        * `GA`: Georgia
        * `GU`: Guam
        * `HI`: Hawaii
        * `ID`: Idaho
        * `IL`: Illinois
        * `IN`: Indiana
        * `IA`: Iowa
        * `KS`: Kansas
        * `KY`: Kentucky
        * `LA`: Louisiana
        * `ME`: Maine
        * `MB`: Manitoba
        * `MD`: Maryland
        * `MA`: Massachusetts
        * `MI`: Michigan
        * `MN`: Minnesota
        * `MS`: Mississippi
        * `MO`: Missouri
        * `MT`: Montana
        * `NE`: Nebraska
        * `NV`: Nevada
        * `NB`: New Brunswick
        * `NH`: New Hampshire
        * `NJ`: New Jersey
        * `NM`: New Mexico
        * `NY`: New York
        * `NF`: Newfoundland
        * `NC`: North Carolina
        * `ND`: North Dakota
        * `NT`: Northwest Territories
        * `NS`: Nova Scotia
        * `NU`: Nunavut
        * `OH`: Ohio
        * `OK`: Oklahoma
        * `ON`: Ontario
        * `OR`: Oregon
        * `PA`: Pennsylvania
        * `PE`: Prince Edward Island
        * `PR`: Puerto Rico
        * `QC`: Quebec
        * `RI`: Rhode Island
        * `SK`: Saskatchewan
        * `SC`: South Carolina
        * `SD`: South Dakota
        * `TN`: Tennessee
        * `TX`: Texas
        * `UT`: Utah
        * `VT`: Vermont
        * `VI`: Virgin Islands
        * `VA`: Virginia
        * `WA`: Washington
        * `WV`: West Virginia
        * `WI`: Wisconsin
        * `WY`: Wyoming
        * `YT`: Yukon Territory
      operationId: postKyc
      requestBody:
        content:
          application/json:
            examples:
              business_request_example:
                summary: '*Sample request body for a business*'
                value:
                  business_token: my_biz01
                  token: my_bizkyc01
              user_request_example:
                summary: '*Sample request body for a user*'
                value:
                  manual_override: false
                  token: my_userkyc01
                  user_token: my_user01
            schema:
              $ref: '#/components/schemas/kyc_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              examples:
                business_response_example:
                  summary: '*Sample response body for a business*'
                  value:
                    business_token: my_biz01
                    created_time: 2023-02-08T19:52:58Z
                    last_modified_time: 2023-02-08T19:52:58Z
                    results:
                      - component: BUSINESS
                        outcome: success
                        outcome_reasons: [
                          ]
                        reference_id: xxxxx
                      - component: PROPRIETOR
                        outcome: pending
                        outcome_reasons:
                          - SSNIssue
                          - DOBIssue
                        reference_id: yyyyy
                      - component: BENEFICIAL_OWNER1
                        outcome: pending
                        outcome_reasons:
                          - AddressIssue
                        reference_id: aaaaa
                      - component: BENEFICIAL_OWNER2
                        outcome: success
                        outcome_reasons: [
                          ]
                        reference_id: bbbbb
                      - component: BENEFICIAL_OWNER3
                        outcome: success
                        outcome_reasons: [
                          ]
                        reference_id: ccccc
                      - component: BENEFICIAL_OWNER4
                        outcome: success
                        outcome_reasons: [
                          ]
                        reference_id: ddddd
                    status: pending
                    token: my_bizkyc01
                user_response_example:
                  summary: '*Sample response body for a user*'
                  value:
                    created_time: 2023-02-08T19:52:58Z
                    last_modified_time: 2023-02-08T19:52:58Z
                    manual_override: false
                    result:
                      codes:
                        - code: AddressIssue
                      status: failure
                    token: my_userkyc01
                    user_token: my_user01
              schema:
                $ref: '#/components/schemas/kyc_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Perform KYC verification
      tags:
        - KYC Verification
  /kyc/business/{business_token}:
    get:
      description: |-
        Use this endpoint to retrieve all KYC verification results for a business.

        This endpoint supports <</core-api/sorting-and-pagination, pagination>>.

        === Business KYC outcome reasons (business response)

        The following tables describe KYC outcome reasons potentially returned in the `outcome_reasons` field of the business `result` response object when a business is in a `pending` or `failure` state.
        Where possible, they also describe acceptable documents that your customers can submit to resolve `pending` outcomes.

        ==== Outcome reasons for the business

        These outcome reasons pertain to the business organization itself.

        [cols=",,2a"]
        |===
        | Outcome Reason and State | Description | Accepted Documents

        | AddressIssue   +
        `pending`
        | Missing, invalid, mismatched, or PO Box address.
        | One of the following documents.
        Document must show the full business name and address:

        * Bank statement
        * Utility bill
        * Current lease or rental agreement
        * Insurance policy

        | BusinessNameIssue   +
        `pending`
        | Invalid or mismatched name.
        | Articles or certificate of incorporation.

        | OFACFailure   +
        `failure`
        | Business appears on an OFAC list.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        | RegistrationIssue   +
        `pending`
        | Business is inactive, not registered, or not in good standing with the Secretary of State; recently reported or not recently updated.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        | Sanctions List Non-OFAC   +
        `pending`
        | Business appears on a non-OFAC screening list, bankruptcy, or alert list.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        | TINIssue   +
        `pending`
        | Missing, invalid, or mismatched Tax Identification Number (TIN).
        | IRS Notice Letter 147C or CP575, or most recent tax return.

        |===

        ===== Outcome reasons for individuals associated with a business

        These outcome reasons pertain to individuals associated with a business: proprietors, business officers, and beneficial owners.

        [cols=",,2a"]
        |===
        | Outcome Reason and State | Description | Accepted Documents

        | AddressIssue   +
        `pending`
        | Missing, invalid, mismatched, or PO Box address.
        | One of the following documents.
        Document must show the full name and address:

        * Unexpired state-issued driver's license or identification card
        * US Military Identification Card
        * Utility bill
        * Bank statement
        * Current rental or lease agreement
        * Mortgage statement

        | DateOfBirthIssue   +
        `pending`
        | Invalid or mismatched date of birth.
        | Unexpired government-issued photo identification that shows name and date of birth:

        * Driver's license or state-issued identification card
        * Passport

        | NameIssue   +
        `pending`
        | Invalid or mismatched name.
        | Unexpired government-issued photo identification that has name and date of birth:

        * Driver's license or state-issued identification card
        * Passport or US passport card

        | NoRecordFound   +
        `failure`
        | No records were found for this individual.
        | As no record was found for this individual, supporting documentation must be provided for each attribute (name, date of birth, address, and SSN):

        * To verify an individual's address, provide one of these documents:
        ** Unexpired state-issued driver's license or identification card
        ** US Military Identification Card
        ** Utility bill
        ** Bank statement
        ** Current rental or lease agreement
        ** Mortgage statement
        * To verify an individual's name and date of birth, provide one of these documents:
        ** Driver's license or state-issued identification card
        ** Passport
        * To verify an individual's Social Security Number, provide one of these documents:
        ** Social Security card
        ** Recent W-2 or 1099 showing nine-digit SSN, full name, and address.
        ** ITIN card or document showing ITIN approval

        | OFACFailure   +
        `failure`
        | Appears on an Office of Foreign Assets Control (OFAC) list.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        | RiskIssue   +
        `failure`
        | Appears on a non-OFAC screening list, bankruptcy, or alert list, or has an insufficient record.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        //| SSNFail   +
        `failure`
        //| Social Security Number (SSN) appears on Network Alert List, is of a deceased person, or was issued before the individual's date of birth.
        //| This outcome requires a manual review by Marqeta to determine the next appropriate step.
        //Contact your Marqeta representative.
        //Code removed per https://marqeta.atlassian.net/browse/ID-3574, commenting out in case we ever add it back.

        | SSNIssue   +
        `pending`
        | Missing, invalid, or mismatched SSN.
        | * Social Security card
        * Recent W-2 or 1099 showing nine-digit SSN, full name, and address.
        * ITIN card or document showing ITIN approval

        | warmaddressalert   +
        `failure`
        | Address is a PO box or other post office address, virtual address, UPS store, mail forward, or mail drop.
        Such addresses are not valid for KYC verification.
        | One of the following documents.
        Document must show the full name and valid street address:

        * Unexpired state-issued driver's license or identification card
        * US Military Identification Card
        * Utility bill
        * Bank statement
        * Current rental or lease agreement
        * Mortgage statement
        |===
      operationId: getKycBusinessBusinesstoken
      parameters:
        - description: The unique identifier of the business resource for which you
            want to retrieve KYC verification results.
          explode: false
          in: path
          name: business_token
          required: true
          schema:
            type: string
          style: simple
        - description: The number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - business_token: my-business-token
                    created_time: 2022-09-25T05:35:02Z
                    last_modified_time: 2022-09-25T05:35:02Z
                    manual_override: false
                    result:
                      status: pending
                    token: 164dc008-1503-4932-a42d-27739346710f
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/KYCListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List KYC results for a business
      tags:
        - KYC Verification
  /kyc/user/{user_token}:
    get:
      description: |-
        Use this endpoint to retrieve all KYC results for a user.

        This endpoint supports <</core-api/sorting-and-pagination, pagination>>.

        === User KYC failure codes

        The following table lists KYC failure codes potentially returned in the response when a user does not pass verification.
        It also includes a list of acceptable documents that your customers can submit to resolve failures.

        [cols=",,2a"]
        |===
        | Failure Code and State | Description | Accepted Documents

        | AddressIssue   +
        `failure`
        | Missing, invalid, mismatched, or PO Box address.
        | One of the following documents.
        Document must show the full name and address:

        * Unexpired state-issued driver's license or identification card
        * US Military Identification Card
        * Utility bill
        * Bank statement
        * Current rental or lease agreement
        * Mortgage statement

        | DateOfBirthIssue   +
        `failure`
        | Invalid or mismatched date of birth.
        | Unexpired government-issued photo identification that shows name and date of birth:

        * Driver's license or state-issued identification card
        * Passport

        | EmailIssue   +
        `failure`
        | Invalid, insufficient, mismatched, or other risk signal on provided email address.
        | Unexpired government-issued photo identification that shows name and date of birth:

        * Driver's license or state-issued identification card
        * US Passport
        * US Military identification Card
        * Native American tribal identification card
        * Government employee identification card
        * Permanent Resident Alien Card

        | NameIssue   +
        `failure`
        | Invalid or mismatched name.
        | Unexpired government-issued photo identification that has name and date of birth:

        * Driver's license or state-issued identification card
        * Passport or US passport card

        | NoRecordFound   +
        `failure`
        | No records were found for this individual.
        | As no record was found for this individual, supporting documentation must be provided for each attribute (name, date of birth, address, and SSN):

        * To verify an individual's address, provide one of these documents:
        ** Unexpired state-issued driver's license or identification card
        ** US Military Identification Card
        ** Utility bill
        ** Bank statement
        ** Current rental or lease agreement
        ** Mortgage statement
        * To verify an individual's name and date of birth, provide one of these documents:
        ** Driver's license or state-issued identification card
        ** Passport
        * To verify an individual's Social Security Number, provide one of these documents:
        ** Social Security card
        ** Recent W-2 or 1099 showing nine-digit SSN, full name, and address.
        ** ITIN card or document showing ITIN approval

        | OFACFailure   +
        `failure`
        | Appears on an Office of Foreign Assets Control (OFAC) list.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        | PhoneIssue   +
        `failure`
        | Invalid, insufficient, mismatched, or other risk signal on provided phone number.
        | Unexpired government-issued photo identification that shows name and date of birth:

        * Driver's license or state-issued identification card
        * US Passport
        * US Military identification Card
        * Native American tribal identification card
        * Government employee identification card
        * Permanent Resident Alien Card

        | RiskIssue   +
        `failure`
        | Appears on a non-OFAC screening list, bankruptcy, or alert list, or has an insufficient record.
        | This outcome requires a manual review by Marqeta to determine the next appropriate step.
        Contact your Marqeta representative.

        //| SSNFail   +
        //`failure`
        //| Social Security Number (SSN) appears on Network Alert List, is of a deceased person, or was issued before the individual's date of birth.
        //| This outcome requires a manual review by Marqeta to determine the next appropriate step.
        //Contact your Marqeta representative.
        //Code removed per https://marqeta.atlassian.net/browse/ID-3574, commenting out in case we ever add it back.

        | SSNIssue   +
        `failure`
        | Missing, invalid, or mismatched SSN.
        | * Social Security card
        * Recent W-2 or 1099 showing nine-digit SSN, full name, and address.
        * ITIN card or document showing ITIN approval

        | warmaddressalert   +
        `failure`
        | Address is a PO box or other post office address, virtual address, UPS store, mail forward, or mail drop.
        Such addresses are not valid for KYC verification.
        | One of the following documents.
        Document must show the full name and valid street address:

        * Unexpired state-issued driver's license or identification card
        * US Military Identification Card
        * Utility bill
        * Bank statement
        * Current rental or lease agreement
        * Mortgage statement
        |===
      operationId: getKycUserUsertoken
      parameters:
        - description: Unique identifier of the user resource for which you want to
            retrieve KYC verification results.
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - created_time: 2023-03-07T23:17:36Z
                    last_modified_time: 2023-03-07T23:17:36Z
                    manual_override: false
                    result:
                      status: success
                    token: my_user_01_kyc_02
                    user_token: my_user_01
                  - created_time: 2023-03-08T18:00:00Z
                    last_modified_time: 2023-03-08T18:00:00Z
                    manual_override: false
                    result:
                      status: failure
                    token: my_user_01_kyc_01
                    user_token: my_user_01
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/KYCListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List KYC results for a user
      tags:
        - KYC Verification
  /kyc/{token}:
    get:
      description: Use this endpoint to retrieve a specific KYC result.
      operationId: getKycToken
      parameters:
        - description: Unique identifier of the KYC verification for which you want
            to retrieve the result.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                created_time: 2023-03-07T22:52:39Z
                last_modified_time: 2023-03-07T22:52:39Z
                manual_override: false
                result:
                  status: success
                token: my_user_01_kyc_01
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/kyc_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: KYC not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve KYC result
      tags:
        - KYC Verification
  /mccgroups:
    get:
      description: |-
        Use this endpoint to list all MCC groups defined in your program or list MCC groups that contain a specified code.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getMccgroups
      parameters:
        - description: Returns all MCC groups that contain the specified merchant
            category code.
          explode: true
          in: query
          name: mcc
          required: false
          schema:
            type: string
          style: form
        - description: The number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MCCGroupListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List MCC groups
      tags:
        - MCC Groups
    post:
      description: Use this endpoint to create an MCC group.
      operationId: postMccgroups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mcc_group_model'
        description: MCC group
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mcc_group_model'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create MCC group
      tags:
        - MCC Groups
  /mccgroups/{token}:
    get:
      description: Use this endpoint to retrieve a specific MCC group.
      operationId: getMccgroupsToken
      parameters:
        - description: Unique identifier of the MCC group.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mcc_group_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: MCC group not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve MCC group
      tags:
        - MCC Groups
    put:
      description: |-
        Use this endpoint to update an MCC group.
        Include the `token` path parameter to identify the MCC group to update.
        You must pass all the merchant category codes you want included in the group, including existing ones you want to retain.
      operationId: putMccgroupsToken
      parameters:
        - description: |-
            The unique identifier of the MCC group.
            Send a `GET` request to `/mccgroups` to retrieve MCC group tokens.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mcc_group_update_model'
        description: MCC group
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mcc_group_update_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update MCC group
      tags:
        - MCC Groups
  /merchantgroups:
    get:
      description: |-
        To return an array of all merchant groups, send a `GET` request to the `/merchantgroups` endpoint.

        To return an array of all merchant groups that include a specific merchant identifier, send a `GET` request to the `/merchantgroups` endpoint that includes the merchant identifier in the query parameters.
      operationId: getMerchantGroups
      parameters:
        - description: Returns all merchant groups that contain the specified merchant
            identifier.
          explode: true
          in: query
          name: mid
          required: false
          schema:
            type: string
          style: form
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - active: true
                    created_time: 2022-05-01T13:22:07Z
                    last_modified_time: 2022-05-01T13:32:07Z
                    mids:
                      - '123456789012345'
                      - '345123456789012'
                      - '123456789012'
                    name: My Merchant Group
                    token: my_merchantgroup
                  - active: true
                    created_time: 2021-05-02T01:42:07Z
                    last_modified_time: 2022-05-02T01:42:07Z
                    mids:
                      - '998877665544331'
                      - '246813579000'
                    name: My Merchant Group 01
                    token: my_merchantgroup_01
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/MerchantGroupListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List merchant groups
      tags:
        - Merchant Groups
    post:
      description: To create a merchant group, send a `POST` request to the `/merchantgroups`
        endpoint.
      operationId: postMerchantGroup
      requestBody:
        content:
          application/json:
            example:
              active: true
              mids:
                - '123456789012345'
                - '345123456789012'
                - '123456789012'
              name: My Merchant Group
              token: my_merchantgroup
            schema:
              $ref: '#/components/schemas/merchant_group_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                created_time: 2022-05-01T13:22:07Z
                last_modified_time: 2022-05-01T13:22:07Z
                mids:
                  - '123456789012345'
                  - '345123456789012'
                  - '123456789012'
                name: My Merchant Group
                token: my_merchantgroup
              schema:
                $ref: '#/components/schemas/merchant_group_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create merchant group
      tags:
        - Merchant Groups
  /merchantgroups/{token}:
    get:
      description: |-
        To retrieve a specific merchant group, send a `GET` request to the `/merchantgroups/{token}` endpoint.
        Include the merchant group `token` path parameter to specify the merchant group to return.
      operationId: getMerchantGroup
      parameters:
        - description: Unique identifier of the merchant group.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                created_time: 2022-05-01T13:22:07Z
                last_modified_time: 2022-05-01T13:32:07Z
                mids:
                  - '123456789012345'
                  - '345123456789012'
                  - '123456789012'
                  - '234567890123'
                name: My Merchant Group
                token: my_merchantgroup
              schema:
                $ref: '#/components/schemas/merchant_group_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Merchant Group not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve merchant group
      tags:
        - Merchant Groups
    put:
      description: |-
        To update a merchant group, send a `PUT` request to the `/merchantgroups/{token}` endpoint.
        Include the merchant group `token` path parameter to specify the merchant group to update.
      operationId: putMerchantGroupsToken
      parameters:
        - description: Unique identifier of the merchant group.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              active: true
              mids:
                - '234567890123'
              name: My Merchant Group
            schema:
              $ref: '#/components/schemas/merchant_group_update_request'
        description: Merchant Group
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                created_time: 2022-05-01T13:22:07Z
                last_modified_time: 2022-05-01T13:32:07Z
                mids:
                  - '123456789012345'
                  - '345123456789012'
                  - '123456789012'
                  - '234567890123'
                name: My Merchant Group
                token: my_merchantgroup
              schema:
                $ref: '#/components/schemas/merchant_group_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update merchant group
      tags:
        - Merchant Groups
  /merchants:
    get:
      operationId: getMerchants
      parameters:
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get merchants.
    post:
      operationId: createMerchant
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantModel'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create merchant.
  /merchants/{token}:
    delete:
      operationId: deleteMerchantByToken
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Delete merchant by token.
    get:
      operationId: getMerchantByToken
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get merchant by token.
    put:
      operationId: updateMerchantByToken
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantUpdateModel'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Update merchant by token.
  /merchants/{token}/stores:
    get:
      operationId: getMerchantStores
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get merchant stores.
  /merchants/{token}/transactions:
    get:
      deprecated: true
      operationId: getMerchantTransactions
      parameters:
        - description: Merchant token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -id
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get merchant transactions.
  /migration/transactions:
    post:
      operationId: migratetransaction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/internal_transaction_message'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalTransactionResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Post transaction
      tags:
        - post transactions
  /offers:
    get:
      operationId: getOffers
      parameters:
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get offers.
    post:
      operationId: createOffer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/offer_model'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create offer.
  /offers/{token}:
    delete:
      operationId: deleteOffer
      parameters:
        - description: Offer token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Delete offer.
    get:
      operationId: getOffer
      parameters:
        - description: Offer token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get offer.
    put:
      operationId: updateOffer
      parameters:
        - description: Offer token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferUpdateModel'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Update offer.
  /peertransfers:
    post:
      description: |-
        Use this endpoint to request a peer transfer.
        Add the source details to the body of the request in link:http://www.json.org/[JSON, window="_blank"] format.

        When creating a peer transfer request, you must pass in both a token to identify the transfer sender (either `sender_user_token` or `sender_business_token`) and a token to identify the transfer recipient (either `recipient_user_token` or `recipient_business_token`).
        The sender and recipient objects must already exist.

        [NOTE]
        This feature is disabled by default and requires activation by Marqeta.   +
          +
        This feature enables you to transfer or reallocate funds where the `sender_*\_token` and the `recipient_*_token` belong to the same program.
        It does not allow you to transfer or reallocate funds between different programs.
        Contact your Marqeta representative for more information.
      operationId: postPeertransfers
      requestBody:
        content:
          application/json:
            example:
              amount: 50.0
              currency_code: USD
              recipient_user_token: my_user_01_account_2
              sender_user_token: my_user_01
              token: my_peertransfer_01
            schema:
              $ref: '#/components/schemas/peer_transfer_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                amount: 50.0
                created_time: 2023-03-11T19:15:01Z
                currency_code: USD
                recipient_user_token: my_user_01_account_2
                sender_user_token: my_user_01
                token: my_peertransfer_01
              schema:
                $ref: '#/components/schemas/peer_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: 'Invalid fields detected: either sender or recipient is not
            found'
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '422':
          content: {
            }
          description: Rule violations
        '500':
          content: {
            }
          description: Server error
      summary: Create peer transfer
      tags:
        - Peer Transfers
  /peertransfers/user/{user_or_business_token}:
    get:
      description: |-
        Use this endpoint to list peer transfers sent or received by a particular account holder.
        Include a user or business token as a path parameter to identify the account holder whose transfers you want to list.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getPeertransfersUserUserorbusinesstoken
      parameters:
        - description: |-
            Existing user or business token.

            Send a `GET` request to `/users` to retrieve user tokens or to `/businesses` to retrieve business tokens.
          explode: false
          in: path
          name: user_or_business_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of peer transfer resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 25
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 40.0
                count: 1
                created_time: 2023-03-11T20:41:27Z
                currency_code: USD
                data[]: null
                end_index: 2
                is_more: false
                recipient_user_token: my_user_01_account_2
                sender_user_token: my_user_01
                start_index: 0
                token: my_peertransfer_01
              schema:
                $ref: '#/components/schemas/peer_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List peer transfers by account holder
      tags:
        - Peer Transfers
  /peertransfers/user/{user_or_business_token}/recipient:
    get:
      description: |-
        Use this endpoint to list peer transfers sent by an account holder.
        Include a user or business token as a path parameter to identify the recipient.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getPeertransfersUserUserorbusinesstokenRecipient
      parameters:
        - description: |-
            Existing user or business token.

            Send a `GET` request to `/users` to retrieve user tokens or to `/businesses` to retrieve business tokens.
          explode: false
          in: path
          name: user_or_business_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of peer transfer resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 25
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 40.0
                count: 3
                created_time: 2023-03-11T20:41:27Z
                currency_code: USD
                data[]: null
                end_index: 2
                is_more: false
                recipient_user_token: my_user_01_account_2
                sender_user_token: my_user_01
                start_index: 0
                token: my_peertransfer_01
              schema:
                $ref: '#/components/schemas/peer_transfer_response'
          description: Success
        '404':
          content: {
            }
          description: User token not found
        '500':
          content: {
            }
          description: Server error
      summary: List received peer transfers
      tags:
        - Peer Transfers
  /peertransfers/user/{user_or_business_token}/sender:
    get:
      description: |-
        Use this endpoint to list peer transfers sent by an account holder.
        Include a user or business token as a path parameter to identify the sender.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getPeertransfersUserUserorbusinesstokenSender
      parameters:
        - description: |-
            Existing user or business token.

            Send a `GET` request to `/users` to retrieve user tokens or to `/businesses` to retrieve business tokens.
          explode: false
          in: path
          name: user_or_business_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of peer transfer resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 25
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 40.0
                count: 3,
                created_time: 2023-05-11T20:41:27Z
                currency_code: USD
                data[]: null
                end_index: 2
                is_more: false
                recipient_user_token: my_user_01_account_2
                sender_user_token: my_user_01
                start_index: 0
                token: my_peertransfer_01
              schema:
                $ref: '#/components/schemas/peer_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List sent peer transfers
      tags:
        - Peer Transfers
  /peertransfers/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a peer transfer request.
        Include the peer transfer `token` as a path parameter in the URL to identify the peer transfer to return.
      operationId: getPeertransfersToken
      parameters:
        - description: Unique identifier of the peer transfer.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 50.0
                created_time: 2023-03-11T19:15:01Z
                currency_code: USD
                recipient_user_token: my_user_01_account_2
                sender_user_token: my_user_01
                token: my_peertransfer_01
              schema:
                $ref: '#/components/schemas/peer_transfer_response'
          description: Success
        '404':
          content: {
            }
          description: Transfer token not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve peer transfer
      tags:
        - Peer Transfers
  /ping:
    get:
      description: Tests if the Marqeta server is available and responsive.
      operationId: getPing
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ping_response'
          description: Success
        '500':
          content: {
            }
          description: Server error
      summary: Returns a heartbeat to the consumer
      tags:
        - ping
    post:
      operationId: postPing
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/echo_ping_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/echo_ping_response'
          description: Success
        '500':
          content: {
            }
          description: Server error
      summary: Echo test for sending payload to server
      tags:
        - ping
  /pins:
    put:
      description: |-
        Creates or updates a personal identification number (PIN) for an existing card.
        Although cardholders might choose a four-, five-, or six-digit PIN if they set their PIN at an automated teller machine, they can only set a four-digit PIN using Marqeta's Set PIN widget or the create or update PIN endpoint (`PUT /pins`).
        Cardholders can update their PIN through the API regardless of its length, but the new PIN value they choose must contain four digits.

        If you want to manage a card's PIN, first create a new control token for the card by sending a `POST` request to `/pins/controltoken`, and then use that token to update the PIN.
        You must create a card before you can manage a PIN.

        Unless PIN reveal functionality has been enabled for your program, you cannot retrieve a PIN that has previously been created.
        If the PIN has been forgotten, you must either update the card's PIN or create a new card and PIN.

        If you have enabled PIN reveal functionality for your program, you can send a `POST` request to the `/pins/reveal` endpoint to retrieve an existing PIN.
        See <</core-api/pins#revealPins, Reveal PIN>> on this page for details.

        [WARNING]
        Sending a request to this endpoint requires PCI DSS compliance.
        You must comply with PCI DSS data security requirements if you want to store, transmit, or process sensitive card data such as the cardholder's primary account number (PAN), personal identification number (PIN), and card expiration date.
      operationId: putPins
      requestBody:
        content:
          application/json:
            example:
              control_token: b4647c9a-d4b8-4091-a5ff-dd67a7bb9ffc
              pin: '5678'
            schema:
              $ref: '#/components/schemas/pin_request'
        required: false
      responses:
        '204':
          content: {
            }
          description: PIN was successfully set
        '400':
          content: {
            }
          description: Bad request
        '412':
          content: {
            }
          description: Weak PIN
        '500':
          content: {
            }
          description: Server error
      summary: Create or update PIN
      tags:
        - PINs
  /pins/controltoken:
    post:
      description: |-
        Creates a control token necessary when creating or updating a card's personal identification number (PIN).

        Creating, updating, or revealing a card's PIN is a two-step process.
        You must first create the control token that is required to create the PIN, and then you create, update, or reveal the PIN itself.

        The lifespan of the control token in a production environment is either five minutes or one hour from creation, depending on the token type.
        If multiple tokens are requested for a single card, only the most recent one is valid.
        Once redeemed, a token cannot be reused.
      operationId: postPinsControltoken
      requestBody:
        content:
          application/json:
            example:
              card_token: my_card_01
              controltoken_type: SET_PIN
            schema:
              $ref: '#/components/schemas/control_token_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                control_token: b4647c9a-d4b8-4091-a5ff-dd67a7bb9ffc
              schema:
                $ref: '#/components/schemas/control_token_response'
          description: Control token created
        '400':
          content: {
            }
          description: Bad request
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Create PIN control token
      tags:
        - PINs
  /pins/reveal:
    post:
      description: |-
        Reveals the personal identification number (PIN) of an existing, active card.
        Be aware that while a cardholder can only set a four-digit PIN using the Marqeta Set PIN widget or `PUT /pins` API, you may see a four-, five-, or six-digit PIN in cases where your cardholders have set a new PIN at an automated teller machine.

        [WARNING]
        Only use this endpoint to access a PIN in order to reveal it to its cardholder.
        Do not use this endpoint for the purpose of storing a PIN at any location.

        Sending a request to this endpoint requires PCI DSS compliance.
        You must comply with PCI DSS data security requirements if you want to store, transmit, or process sensitive card data such as the cardholder's primary account number (PAN), personal identification number (PIN), and card expiration date.

        If you want to update a card's PIN instead, send a `PUT` request to the `/pins` endpoint.
        See <</core-api/pins#putPins, Create or Update PIN>> on this page for details.

        Revealing a card's PIN is a two-step process.
        You must first create a new control token for the card by sending a `POST` request to `/pins/controltoken`, and then use that token to reveal the PIN.
      operationId: revealPins
      requestBody:
        content:
          application/json:
            example:
              cardholder_verification_method: BIOMETRIC_FINGERPRINT
              control_token: b4647c9a-d4b8-4091-a5ff-dd67a7bb9ffc
            schema:
              $ref: '#/components/schemas/pin_reveal_request'
        required: false
      responses:
        '204':
          content: {
            }
          description: PIN was successfully revealed
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Reveal PIN
      tags:
        - PINs
  /programreserve/balances:
    get:
      description: Use this endpoint to return balances for your program reserve account
        (sometimes referred to as a _program funding account_).
      operationId: getProgramreserveBalances
      responses:
        '200':
          content:
            application/json:
              example:
                available_balance: 10100.0
                balances:
                  USD:
                    available_balance: 10100.0
                    currency_code: USD
                    ledger_balance: 10100.0
                    pending_credits: 0.0
                currency_code: USD
                ledger_balance: 10100.0
                pending_credits: 0.0
              schema:
                $ref: '#/components/schemas/program_reserve_account_balance'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve reserve account balances
      tags:
        - Program Reserve
  /programreserve/deposits:
    get:
      deprecated: true
      operationId: getProgramReserveDeposits
      parameters:
        - description: Number of items to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      tags:
        - program reserve
    post:
      deprecated: true
      operationId: deposit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/program_reserve_deposit_request'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      tags:
        - program reserve
  /programreserve/transactions:
    get:
      description: |-
        Use this endpoint to return a list of credits and debits made to your program reserve account.

        This endpoint supports <</core-api/sorting-and-pagination, sorting and pagination>>.
      operationId: getProgramreserveTransactions
      parameters:
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - amount: 120.0
                    created_time: 2024-02-10T21:52:18Z
                    currency_code: USD
                    last_modified_time: 2024-02-10T21:52:18Z
                    memo: my_memo
                    tags: my, tags
                    token: my_deposit_02
                    transaction_token: '154'
                    type: CREDIT
                  - amount: 100.0
                    created_time: 2024-02-10T21:51:28Z
                    currency_code: USD
                    last_modified_time: 2024-02-10T21:51:28Z
                    memo: my_memo
                    tags: my, tags
                    token: my_deposit_01
                    transaction_token: '153'
                    type: CREDIT
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/ProgramReserveTransactionListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List program reserve transactions
      tags:
        - Program Reserve
  /programtransfers:
    get:
      description: |-
        Use this endpoint to list all program transfers.

        To narrow your result set to program transfers of a particular type or that are associated with a particular account holder, include the appropriate parameters from the following URL Query Parameters table.
        This endpoint also supports <</core-api/field-filtering, field filtering>>, <</core-api/sorting-and-pagination, pagination>>, and <</core-api/sorting-and-pagination, sorting>>.
      operationId: getProgramtransfers
      parameters:
        - description: Number of program transfers to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            maximum: 100
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
        - description: |-
            Unique identifier of the user account holder whose program transfers you want to retrieve.

            Send a `GET` request to `/users` to retrieve user tokens.
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the business account holder whose program transfers you want to retrieve.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: Unique identifier of the program transfer type to retrieve.
          explode: true
          in: query
          name: type_token
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data[]:
                  amount: 1.0
                  created_time: 2023-03-11T21:02:45Z
                  currency_code: USD
                  memo: This is my program transfer
                  tags: tag1, tag2, tag3
                  token: my_program_transfer_02
                  transaction_token: '170'
                  type_token: my_program_transfer_type_01
                  user_token: my_user_01
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/ProgramTransferListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List program transfers
      tags:
        - Program Transfers
    post:
      description: |-
        Use this endpoint to create a program transfer.
        Add the program transfer details to the body of the request in link:http://www.json.org/[JSON, window="_blank"] format.

        Include either `user_token` or `business_token` in the message body to specify the account holder whose general purpose account (GPA) will be debited by the program transfer.
        The user or business must already exist.

        [NOTE]
        If the GPA has insufficient funds to cover both the amount of the program transfer and all attached fees, then no funds are transferred.
      operationId: postProgramtransfers
      requestBody:
        content:
          application/json:
            example:
              amount: 1.0
              currency_code: USD
              memo: This is my program transfer
              tags: tag1, tag2, tag3
              token: my_program_transfer_01
              type_token: my_program_transfer_type_01
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/program_transfer'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                amount: 1.0
                created_time: 2023-03-11T20:58:30Z
                currency_code: USD
                memo: This is my program transfer
                tags: tag1, tag2, tag3
                token: my_program_transfer_01
                transaction_token: '169'
                type_token: my_program_transfer_type_01
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/program_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Not found
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '412':
          content: {
            }
          description: Pre-condition failed. Unload amount is greater than load amount
        '500':
          content: {
            }
          description: Server error
      summary: Create program transfer
      tags:
        - Program Transfers
  /programtransfers/types:
    get:
      description: |-
        Use this endpoint to list all program transfer types.

        This endpoint supports <</core-api/field-filtering, field filtering>>, <</core-api/sorting-and-pagination, pagination>>, and <</core-api/sorting-and-pagination, sorting>>.
      operationId: getProgramtransfersTypes
      parameters:
        - description: Number of program transfer types to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data[]:
                  created_time: 2023-03-15T19:53:23Z
                  last_modified_time: 2023-03-15T19:53:23Z
                  memo: This is my other program transfer type.
                  program_funding_source_token: pfs_test_01
                  tags: tag1, tag2, tag3
                  token: my_program_transfer_type_02
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/ProgramTransferTypeListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List program transfer types
      tags:
        - Program Transfers
    post:
      description: |-
        Use this endpoint to create a program transfer type.
        Add the program transfer details to the body of the request in link:http://www.json.org/[JSON, window="_blank"] format.

        You are required to pass in a `program_funding_source_token` to associate a program funding source with the program transfer type.
        You must therefore create a program funding source before creating a program transfer type.
      operationId: postProgramtransfersTypes
      requestBody:
        content:
          application/json:
            example:
              memo: This is my program transfer type.
              program_funding_source_token: my_pfs_01
              tags: tag1, tag2, tag3
              token: my_program_transfer_type_01
            schema:
              $ref: '#/components/schemas/program_transfer_type_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                created_time: 2023-03-15T19:18:50Z
                last_modified_time: 2023-03-15T19:18:50Z
                memo: This is my program transfer type.
                program_funding_source_token: my_pfs_01
                tags: tag1, tag2, tag3
                token: my_program_transfer_type_01
              schema:
                $ref: '#/components/schemas/program_transfer_type_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Program funding source not found
        '409':
          content: {
            }
          description: Token already used
        '500':
          content: {
            }
          description: Server error
      summary: Create program transfer type
      tags:
        - Program Transfers
  /programtransfers/types/{type_token}:
    get:
      description: |-
        Use this endpoint to retrieve a specific program transfer.
        Include the `type_token` path parameter to indicate the program transfer type to return.
      operationId: getProgramtransfersTypesTypetoken
      parameters:
        - description: Unique identifier of the program transfer type.
          explode: false
          in: path
          name: type_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                created_time: 2023-03-15T19:18:50Z
                last_modified_time: 2023-03-15T19:18:50Z
                memo: This is my program transfer type.
                program_funding_source_token: pfs_test_01
                tags: tag1, tag2, tag3
                token: my_program_transfer_type_01
              schema:
                $ref: '#/components/schemas/program_transfer_type_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Program transfer type not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve program transfer type
      tags:
        - Program Transfers
    put:
      description: |-
        Use this endpoint to update a program transfer type.
        Include the `type_token` path parameter to indicate the program transfer type to update.
        Add the modified detail parameters to the body of the request in link:http://www.json.org/[JSON, window="_blank"] format.
        Only values of parameters in the request are modified; all others are left unchanged.
      operationId: putProgramtransfersTypesTypetoken
      parameters:
        - description: Unique identifier of the program transfer type.
          explode: false
          in: path
          name: type_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              memo: Update program funding source.
              program_funding_source_token: pfs_test_02
            schema:
              $ref: '#/components/schemas/program_transfer_type_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                created_time: 2023-03-15T19:53:23Z
                last_modified_time: 2023-03-15T19:58:33Z
                memo: Update program funding source.
                program_funding_source_token: pfs_test_02
                tags: tag1, tag2, tag3
                token: my_program_transfer_type_02
              schema:
                $ref: '#/components/schemas/program_transfer_type_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Program transfer type not found
        '500':
          content: {
            }
          description: Server error
      summary: Update program transfer type
      tags:
        - Program Transfers
  /programtransfers/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a specific program transfer.
        Include the program transfer `token` path parameter to specify the program transfer to retrieve.
      operationId: getProgramtransfersToken
      parameters:
        - description: Unique identifier of the program transfer.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                amount: 1.0
                created_time: 2023-03-11T21:02:45Z
                currency_code: USD
                memo: This is my program transfer
                tags: tag1, tag2, tag3
                token: my_program_transfer_02
                transaction_token: '170'
                type_token: my_program_transfer_type_01
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/program_transfer_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Return not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve program transfer
      tags:
        - Program Transfers
  /pushtocards/disburse:
    get:
      operationId: getPushtocardsDisburse
      parameters:
        - description: Number of push-to-card disbursements to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushToCardDisburseListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all push-to-card disbursements
      tags:
        - push to card
    post:
      operationId: postPushtocardsDisburse
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/push_to_card_disburse_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/push_to_card_disbursement_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '422':
          content: {
            }
          description: Payment instrument is not active
        '500':
          content: {
            }
          description: Server error
      summary: Initiates a push-to-card money disbursement
      tags:
        - push to card
  /pushtocards/disburse/{token}:
    get:
      operationId: getPushtocardsDisburseToken
      parameters:
        - description: Push-to-card disbursement token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/push_to_card_disbursement_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Push-to-card disbursement not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific push-to-card disbursement
      tags:
        - push to card
  /pushtocards/paymentcard:
    get:
      operationId: getPushtocardsPaymentcard
      parameters:
        - description: Number of push-to-card payment cards to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: User token
          explode: true
          in: query
          name: user_token
          required: true
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushToCardListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Returns all push-to-card payment card details
      tags:
        - push to card
    post:
      operationId: postPushtocardsPaymentcard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/push_to_card_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/push_to_card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '422':
          content: {
            }
          description: Push-to-card information is invalid
        '500':
          content: {
            }
          description: Server error
      summary: Adds an external card to which funds will be pushed
      tags:
        - push to card
  /pushtocards/paymentcard/{token}:
    get:
      operationId: getPushtocardsPaymentcardToken
      parameters:
        - description: Push-to-card token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/push_to_card_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Push-to-card details not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific paymentcard object
      tags:
        - push to card
  /realtimefeegroups:
    get:
      description: |-
        Use this endpoint to list existing real-time fee groups.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getRealtimefeegroups
      parameters:
        - description: Number of real-time fee groups to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).

            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data[]:
                  active: true
                  created_time: 2022-11-28T00:36:11Z
                  fee_tokens[]: my_fee_01 my_fee_05
                  last_modified_time: 2022-11-28T00:36:11Z
                  name: My Real-Time Fee Group 01
                  token: my_rtfg_01
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/RealTimeFeeGroupListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List real-time fee groups
      tags:
        - Real-Time Fee Groups
    post:
      description: Use this endpoint to create a real-time fee group.
      operationId: postRealtimefeegroups
      requestBody:
        content:
          application/json:
            example:
              fee_tokens[]: my_fee_01 my_fee_05
              name: My Real-Time Fee Group 01
              token: my_rtfg_01
            schema:
              $ref: '#/components/schemas/real_time_fee_group_create_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                created_time: 2022-11-28T00:36:11Z
                fee_tokens[]: my_fee_01 my_fee_05
                last_modified_time: 2022-11-28T00:36:11Z
                name: My Real-Time Fee Group 01
                token: my_rtfg_01
              schema:
                $ref: '#/components/schemas/real_time_fee_group'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create real-time fee group
      tags:
        - Real-Time Fee Groups
  /realtimefeegroups/{token}:
    get:
      description: |-
        Use this endpoint to retrieve a specific real-time fee group.
        Include the real-time fee group `token` path parameter to specify the real-time fee group to return.
      operationId: getRealtimefeegroupsToken
      parameters:
        - description: Unique identifier of the real-time fee group.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                created_time: 2022-11-28T00:36:11Z
                fee_tokens[]: my_fee_01 my_fee_05
                last_modified_time: 2022-11-28T00:36:11Z
                name: My Real-Time Fee Group 01
                token: my_rtfg_01
              schema:
                $ref: '#/components/schemas/real_time_fee_group'
          description: Success
        '404':
          content: {
            }
          description: Real-time fee group not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve real-time fee group
      tags:
        - Real-Time Fee Groups
    put:
      description: |-
        Use this endpoint to update a real-time fee group.
        Include the real-time fee group `token` path parameter to specify the real-time fee group to update.
      operationId: putRealtimefeegroupsToken
      parameters:
        - description: Unique identifier of the real-time fee group.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              active: false
            schema:
              $ref: '#/components/schemas/real_time_fee_group_request'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                active: false
                created_time: 2022-11-28T00:36:11Z
                fee_tokens[]: my_fee_01 my_fee_05
                last_modified_time: 2022-11-28T00:45:11Z
                name: My Real-Time Fee Group 01
                token: my_rtfg_01
              schema:
                $ref: '#/components/schemas/real_time_fee_group'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update real-time fee group
      tags:
        - Real-Time Fee Groups
  /simulate/authorization:
    post:
      operationId: postSimulateAuthorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates an authorization
      tags:
        - simulate
  /simulate/authorization/advice:
    post:
      operationId: postSimulateAuthorizationAdvice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/authorization_advice_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Original transaction not found
        '500':
          content: {
            }
          description: Server error
      summary: Simulates an authorization advice transaction
      tags:
        - simulate
  /simulate/clearing:
    post:
      operationId: postSimulateClearing
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearingModel'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Original transaction not found
        '500':
          content: {
            }
          description: Server error
      summary: Simulates a clearing/settlement transaction
      tags:
        - simulate
  /simulate/directdeposits:
    post:
      operationId: postSimulateDirectdeposits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectDepositRequest'
        description: Direct deposit simulate request model
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositDepositResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates the creation of direct deposit
      tags:
        - simulate
  /simulate/financial:
    post:
      operationId: postSimulateFinancial
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/financial_request_model'
        description: Financial request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates a financial request (PIN debit) transaction with optional
        cash back
      tags:
        - simulate
  /simulate/financial/advice:
    post:
      operationId: postSimulateFinancialAdvice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/authorization_advice_model'
        description: Financial advice request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Original transaction not found
        '500':
          content: {
            }
          description: Server error
      summary: Simulates a financial advice transaction
      tags:
        - simulate
  /simulate/financial/balanceinquiry:
    post:
      operationId: postSimulateFinancialBalanceinquiry
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/balance_inquiry_request_model'
        description: Balance inquiry request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates a balance inquiry
      tags:
        - simulate
  /simulate/financial/originalcredit:
    post:
      operationId: postSimulateFinancialOriginalcredit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/orignalcredit_request_model'
        description: Orignal Credit request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates an orignal credit transaction
      tags:
        - simulate
  /simulate/financial/withdrawal:
    post:
      operationId: postSimulateFinancialWithdrawal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/withdrawal_request_model'
        description: ATM withdrawal request model
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Simulates an ATM withdrawal transaction
      tags:
        - simulate
  /simulate/reversal:
    post:
      operationId: postSimulateReversal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReversalModel'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Original transaction not found
        '500':
          content: {
            }
          description: Server error
      summary: Simulates a reversal transaction
      tags:
        - simulate
  /spaces:
    get:
      operationId: getSpaces
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get spaces.
    post:
      operationId: createSpace
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create space.
  /spaces/redis-queue/{queueName}:
    delete:
      operationId: deleteQueue
      parameters:
        - explode: false
          in: path
          name: queueName
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
  /spaces/{space}/{key}:
    delete:
      operationId: deleteSpace
      parameters:
        - explode: false
          in: path
          name: space
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: key
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Delete space.
    get:
      operationId: getSpace
      parameters:
        - explode: false
          in: path
          name: space
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: key
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: timeout
          required: false
          schema:
            format: int64
            type: integer
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get space.
    post:
      operationId: createSpaceForKey
      parameters:
        - explode: false
          in: path
          name: space
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: key
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: timeout
          required: false
          schema:
            format: int64
            type: integer
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create space for key.
  /stores:
    get:
      operationId: getStores
      parameters:
        - explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get stores.
    post:
      operationId: createStore
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/store_model'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Create store.
  /stores/mid/{mid}:
    get:
      operationId: getStoreByMid
      parameters:
        - description: Mid
          explode: false
          in: path
          name: mid
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get store by mid.
  /stores/{token}:
    delete:
      operationId: deleteStore
      parameters:
        - explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Delete store.
    get:
      operationId: getStore
      parameters:
        - description: Store token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Get store.
    put:
      operationId: updateStore
      parameters:
        - description: Store token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/store_update_model'
        required: false
      responses:
        default:
          content: {
            }
          description: successful operation
      summary: Update store.
  /transactions:
    get:
      description: |-
        List all transactions.

        By default, this endpoint returns transactions conducted within the last 30 days.
        To return transactions older than 30 days, you must include the `start_date` and `end_date` query parameters in your request.

        By default, `GET /transactions` returns transactions having either `PENDING` or `COMPLETION` states.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getTransactions
      parameters:
        - description: The number of transactions to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -user_transaction_time
            enum:
              - -created_time
              - created_time
              - -user_transaction_time
              - user_transaction_time
            type: string
          style: form
        - description: |-
            The starting date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `start_date` and `end_date` fields.
          explode: true
          in: query
          name: start_date
          required: false
          schema:
            type: string
          style: form
        - description: |-
            The ending date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `end_date` and `start_date` fields.
          explode: true
          in: query
          name: end_date
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of transaction types to include.
          explode: true
          in: query
          name: type
          required: false
          schema:
            type: string
          style: form
        - description: The unique identifier of the user account holder.
          explode: true
          in: query
          name: user_token
          required: false
          schema:
            type: string
          style: form
        - description: The unique identifier of the business account holder.
          explode: true
          in: query
          name: business_token
          required: false
          schema:
            type: string
          style: form
        - description: The unique identifier of the acting user.
          explode: true
          in: query
          name: acting_user_token
          required: false
          schema:
            type: string
          style: form
        - description: The unique identifier of the card.
          explode: true
          in: query
          name: card_token
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of transaction states to display.
          explode: true
          in: query
          name: state
          required: false
          schema:
            default: PENDING,COMPLETION
            type: string
          style: form
        - description: Specifies the API version for the request.
          explode: true
          in: query
          name: version
          required: false
          schema:
            type: string
          style: form
        - description: If `true`, the query returns additional information for diagnostic
            purposes.
          explode: true
          in: query
          name: verbose
          required: false
          schema:
            type: boolean
          style: form
        - description: Start identifier
          explode: true
          in: query
          name: start_identifier
          required: false
          schema:
            format: int64
            type: integer
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - acquirer:
                      institution_country: '840'
                      institution_id_code: '428399181'
                      retrieval_reference_number: '528294182583'
                      system_trace_audit_number: '656761'
                    acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    amount: 10.0
                    card:
                      metadata: null
                    card_security_code_verification:
                      response:
                        code: '0000'
                        memo: Card security code match
                      type: CVV1
                    card_token: 02cc766c-24a5-4c3b-adcf-0e5e27b09329
                    created_time: 2021-08-21T17:26:29Z
                    currency_code: USD
                    duration: 537
                    fraud:
                      network:
                        account_risk_score: '7'
                        transaction_risk_score: 97
                    gpa:
                      available_balance: 0.0
                      balances:
                        USD:
                          available_balance: 0.0
                          credit_balance: 0.0
                          currency_code: USD
                          impacted_amount: 10.0
                          ledger_balance: 20.0
                          pending_credits: 0.0
                      credit_balance: 0.0
                      currency_code: USD
                      impacted_amount: 10.0
                      ledger_balance: 20.0
                      pending_credits: 0.0
                    gpa_order:
                      amount: 10.0
                      created_time: 2021-08-21T17:26:30Z
                      currency_code: USD
                      funding:
                        amount: 10.0
                        gateway_log:
                          duration: 481
                          message: Approved or completed successfully
                          order_number: '1200'
                          response:
                            code: '200'
                            data:
                              jit_funding:
                                address_verification:
                                  gateway:
                                    on_file:
                                      postal_code: '94601'
                                      street_address: 2000 High St
                                    response:
                                      code: '0000'
                                      memo: Address and postal code match
                                amount: 10.0
                                method: pgfs.authorization
                                original_jit_funding_token: your-jit-funding-token
                                token: your-jit-funding-token
                                user_token: your-jit-funding-user
                          timed_out: false
                          transaction_id: your-jit-funding-token
                        source:
                          active: true
                          created_time: 2021-08-21T17:25:43Z
                          is_default_account: false
                          last_modified_time: 2021-08-21T17:25:43Z
                          name: PGFS for simulating transactions
                          token: '**********dd5f'
                          type: programgateway
                      funding_source_token: '**********dd5f'
                      jit_funding:
                        acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                        amount: 10.0
                        method: pgfs.authorization
                        token: 251bdc52-588a-4291-8c5d-6ded3a67e1a8
                        user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                      last_modified_time: 2021-08-21T17:26:30Z
                      response:
                        code: '0000'
                        memo: Approved or completed successfully
                      state: PENDING
                      token: 592b8164-a4af-45ee-ab24-13a4bb43e6b2
                      transaction_token: cd22cff7-2845-4508-a916-cf89fd9edae1
                      user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    issuer_payment_node: b9a60cd41a2cc1c23090ed3666bdbf1z
                    issuer_received_time: 2021-08-21T17:26:29Z
                    network: MARQETA
                    pos:
                      card_holder_presence: false
                      card_presence: false
                      is_recurring: false
                      pan_entry_mode: MAG_STRIPE
                      partial_approval_capable: false
                      pin_entry_mode: 'TRUE'
                      purchase_amount_only: false
                      terminal_attendance: ATTENDED
                    preceding_related_transaction_token: 06a8fe88-58b1-4682-a8ad-96eb973e1d74
                    response:
                      code: '0000'
                      memo: Approved or completed successfully
                    state: PENDING
                    subnetwork: GATEWAY_JIT
                    token: cd22cff7-2845-4508-a916-cf89fd9edae1
                    transaction_metadata:
                      payment_channel: OTHER
                    type: gpa.credit.authorization
                    user:
                      metadata: null
                    user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    user_transaction_time: 2021-08-21T17:26:29Z
                  - acquirer:
                      institution_country: '840'
                      institution_id_code: '428399181'
                      retrieval_reference_number: '528294182583'
                      system_trace_audit_number: '656761'
                    acquirer_fee_amount: 0.0
                    acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    amount: 10.0
                    approval_code: '761515'
                    card:
                      metadata: null
                    card_acceptor:
                      city: Berkeley
                      country_code: USA
                      mcc: '6411'
                      mid: '000000000011111'
                      name: Aegis Fleet Services
                      street_address: 111 Main St
                    card_security_code_verification:
                      response:
                        code: '0000'
                        memo: Card security code match
                      type: CVV1
                    card_token: 02cc766c-24a5-4c3b-adcf-0e5e27b09329
                    created_time: 2021-08-21T17:26:29Z
                    currency_code: USD
                    duration: 622
                    fraud:
                      network:
                        account_risk_score: '7'
                        transaction_risk_score: 97
                    gpa:
                      available_balance: 0.0
                      balances:
                        USD:
                          available_balance: 0.0
                          credit_balance: 0.0
                          currency_code: USD
                          impacted_amount: -10.0
                          ledger_balance: 20.0
                          pending_credits: 0.0
                      credit_balance: 0.0
                      currency_code: USD
                      impacted_amount: -10.0
                      ledger_balance: 20.0
                      pending_credits: 0.0
                    gpa_order:
                      amount: 10.0
                      created_time: 2021-08-21T17:26:30Z
                      funding:
                        amount: 10.0
                        currency_code: USD
                        funding_source_token: '**********dd5f'
                        gateway_log:
                          duration: 481
                          message: Approved or completed successfully
                          order_number: '1200'
                          response:
                            code: '200'
                            data:
                              jit_funding:
                                address_verification:
                                  gateway:
                                    on_file:
                                      postal_code: '94601'
                                      street_address: 2000 High St
                                    response:
                                      code: '0000'
                                      memo: Address and postal code match
                                amount: 10.0
                                method: pgfs.authorization
                                original_jit_funding_token: your-jit-funding-token
                                token: your-jit-funding-token
                                user_token: your-jit-funding-user
                          timed_out: false
                          transaction_id: your-jit-funding-token
                        jit_funding:
                          acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                          amount: 10.0
                          method: pgfs.authorization
                          token: 251bdc52-588a-4291-8c5d-6ded3a67e1a8
                          user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                        source:
                          active: true
                          created_time: 2021-08-21T17:25:43Z
                          is_default_account: false
                          last_modified_time: 2021-08-21T17:25:43Z
                          name: PGFS for simulating transactions
                          token: '**********dd5f'
                          type: programgateway
                        user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                      last_modified_time: 2021-08-21T17:26:30Z
                      response:
                        code: '0000'
                        memo: Approved or completed successfully
                      state: PENDING
                      token: 592b8164-a4af-45ee-ab24-13a4bb43e6b2
                      transaction_token: cd22cff7-2845-4508-a916-cf89fd9edae1
                    issuer_payment_node: b9a60cd41a2cc1c23090ed3666bdbf1z
                    issuer_received_time: 2021-08-21T17:26:29Z
                    network: VISA
                    pos:
                      card_holder_presence: false
                      card_presence: false
                      is_recurring: false
                      pan_entry_mode: MAG_STRIPE
                      partial_approval_capable: false
                      pin_entry_mode: 'TRUE'
                      purchase_amount_only: false
                      terminal_attendance: ATTENDED
                      terminal_id: TR100000
                    request_amount: 10.0
                    response:
                      code: '0000'
                      memo: Approved or completed successfully
                    settlement_date: 2021-08-21T00:00:00Z
                    state: PENDING
                    subnetwork: VISANET
                    token: 06a8fe88-58b1-4682-a8ad-96eb973e1d74
                    transaction_metadata:
                      payment_channel: OTHER
                    type: authorization
                    user:
                      metadata: null
                    user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    user_transaction_time: 2021-08-21T17:26:29Z
                end_index: 1
                is_more: true
                start_index: 0
              schema:
                $ref: '#/components/schemas/TransactionModelListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List transactions
      tags:
        - Transactions
  /transactions/fundingsource/{funding_source_token}:
    get:
      description: |-
        List transactions for a specific funding source.

        By default, this endpoint returns transactions conducted within the last 30 days.
        To return transactions older than 30 days, you must include the `start_date` and `end_date` query parameters in your request.

        By default, `GET /transactions/fundingsource/{funding_source_token}` returns transactions having either `PENDING` or `COMPLETION` states.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getTransactionsFundingsourceFundingsourcetoken
      parameters:
        - description: The unique identifier of the funding account.
          explode: false
          in: path
          name: funding_source_token
          required: true
          schema:
            type: string
          style: simple
        - description: The number of transactions to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -user_transaction_time
            enum:
              - -created_time
              - created_time
              - -user_transaction_time
              - user_transaction_time
            type: string
          style: form
        - description: |-
            The starting date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `start_date` and `end_date` fields.
          explode: true
          in: query
          name: start_date
          required: false
          schema:
            type: string
          style: form
        - description: |-
            The ending date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `end_date` and `start_date` fields.
          explode: true
          in: query
          name: end_date
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of transaction types to include.
          explode: true
          in: query
          name: type
          required: false
          schema:
            type: string
          style: form
        - description: Specifies whether to return credit or debit transactions.
          explode: true
          in: query
          name: polarity
          required: false
          schema:
            enum:
              - CREDIT
              - DEBIT
              - PENDING_CREDIT
              - PENDING_DEBIT
            type: string
          style: form
        - description: Specifies the API version for the request.
          explode: true
          in: query
          name: version
          required: false
          schema:
            type: string
          style: form
        - description: If `true`, the query returns additional information for diagnostic
            purposes.
          explode: true
          in: query
          name: verbose
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionModelListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List transactions for a funding account
      tags:
        - Transactions
  /transactions/{token}:
    get:
      description: |-
        Retrieve a specific transaction.
        Include the `token` path parameter to identify the transaction.

        [NOTE]
        Transactions are not available in real time via this endpoint, and typically appear after 30 seconds.
        On occasion, a transaction may require up to four hours to appear.
      operationId: getTransactionsToken
      parameters:
        - description: The unique identifier of the transaction.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Specifies the API version for the request.
          explode: true
          in: query
          name: version
          required: false
          schema:
            type: string
          style: form
        - description: If `true`, the query returns additional information for diagnostic
            purposes.
          explode: true
          in: query
          name: verbose
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                acquirer:
                  institution_country: '840'
                  institution_id_code: '428399181'
                  retrieval_reference_number: '528294182583'
                  system_trace_audit_number: '656761'
                acquirer_fee_amount: 0.0
                acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                amount: 10.0
                approval_code: '761515'
                card:
                  metadata: null
                card_acceptor:
                  city: Berkeley
                  country_code: USA
                  mcc: '6411'
                  mid: '000000000011111'
                  name: Aegis Fleet Services
                  street_address: 111 Main St
                card_security_code_verification:
                  response:
                    code: '0000'
                    memo: Card security code match
                  type: CVV1
                card_token: 02cc766c-24a5-4c3b-adcf-0e5e27b09329
                cardholder_authentication_data:
                  electronic_commerce_indicator: authentication_successful
                  verification_result: verified
                  verification_value_created_by: issuer_acs
                created_time: 2021-08-21T17:26:29Z
                currency_code: USD
                currency_conversion:
                  network:
                    conversion_rate: 1.0
                    dynamic_currency_conversion: false
                    original_amount: 10.0
                    original_currency_code: '840'
                duration: 622
                fraud:
                  network:
                    account_risk_score: '7'
                    transaction_risk_score: 97
                gpa:
                  available_balance: 0.0
                  balances:
                    USD:
                      available_balance: 0.0
                      credit_balance: 0.0
                      currency_code: USD
                      impacted_amount: -10.0
                      ledger_balance: 20.0
                      pending_credits: 0.0
                  credit_balance: 0.0
                  currency_code: USD
                  impacted_amount: -10.0
                  ledger_balance: 20.0
                  pending_credits: 0.0
                gpa_order:
                  amount: 10
                  created_time: 2021-08-21T17:26:30Z
                  currency_code: USD
                  funding:
                    amount: 10.0
                    gateway_log:
                      duration: 481
                      message: Approved or completed successfully
                      order_number: '1200'
                      response:
                        code: '200'
                        data:
                          - jit_funding:
                              address_verification:
                                gateway:
                                  on_file:
                                    postal_code: '94601'
                                    street_address: 2000 High St
                                  response:
                                    code: '0000'
                                    memo: Address and postal code match
                              amount: 10.0
                              method: pgfs.authorization
                              original_jit_funding_token: your-jit-funding-token
                              token: your-jit-funding-token
                              user_token: your-jit-funding-user
                      timed_out: false
                      transaction_id: your-jit-funding-token
                    source:
                      active: true
                      created_time: 2021-08-21T17:25:43Z
                      is_default_account: false
                      last_modified_time: 2021-08-21T17:25:43Z
                      name: PGFS for simulating transactions
                      token: '**********dd5f'
                      type: programgateway
                  funding_source_token: '**********dd5f'
                  jit_funding:
                    acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    amount: 10.0
                    method: pgfs.authorization
                    token: 251bdc52-588a-4291-8c5d-6ded3a67e1a8
                    user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                  last_modified_time: 2021-08-21T17:26:30Z
                  response:
                    code: '0000'
                    memo: Approved or completed successfully
                  state: PENDING
                  token: 592b8164-a4af-45ee-ab24-13a4bb43e6b2
                  transaction_token: cd22cff7-2845-4508-a916-cf89fd9edae1
                  user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                issuer_payment_node: b9a60cd41a2cc1c23090ed3666bdbf1z
                issuer_received_time: 2021-08-21T17:26:29Z
                network: VISA
                pos:
                  card_holder_presence: false
                  card_presence: false
                  is_recurring: false
                  pan_entry_mode: MAG_STRIPE
                  partial_approval_capable: false
                  pin_entry_mode: 'TRUE'
                  purchase_amount_only: false
                  terminal_attendance: ATTENDED
                  terminal_id: TR100000
                request_amount: 10.0
                response:
                  code: '0000'
                  memo: Approved or completed successfully
                settlement_date: 2021-08-21T00:00:00Z
                state: PENDING
                subnetwork: VISANET
                token: 06a8fe88-58b1-4682-a8ad-96eb973e1d74
                transaction_metadata:
                  payment_channel: OTHER
                type: authorization
                user:
                  metadata: null
                user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                user_transaction_time: 2021-08-21T17:26:29Z
              schema:
                $ref: '#/components/schemas/transaction_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Transaction token not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve transaction
      tags:
        - Transactions
  /transactions/{token}/related:
    get:
      description: |-
        List all transactions related to the specified transaction.

        By default, this endpoint returns transactions conducted within the last 30 days.
        To return transactions older than 30 days, you must include the `start_date` and `end_date` query parameters in your request.

        By default, this endpoint returns transactions of any state.
        To return transactions in specific states, you must include the `state` query parameter in your request.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getTransactionsTokenRelated
      parameters:
        - description: The unique identifier of the transaction.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: The number of transactions to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 10
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -user_transaction_time
            enum:
              - -created_time
              - created_time
              - -user_transaction_time
              - user_transaction_time
            type: string
          style: form
        - description: |-
            The starting date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `start_date` and `end_date` fields.
          explode: true
          in: query
          name: start_date
          required: false
          schema:
            type: string
          style: form
        - description: |-
            The ending date (or date-time) of a date range from which to return transactions.
            To return transactions for a single day, enter the same date in both the `end_date` and `start_date` fields.
          explode: true
          in: query
          name: end_date
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of transaction types to include.
          explode: true
          in: query
          name: type
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of transaction states to display.
          explode: true
          in: query
          name: state
          required: false
          schema:
            default: ALL
            type: string
          style: form
        - description: Specifies the API version for the request.
          explode: true
          in: query
          name: version
          required: false
          schema:
            type: string
          style: form
        - description: If `true`, the query returns additional information for diagnostic
            purposes.
          explode: true
          in: query
          name: verbose
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - acquirer:
                      institution_country: '840'
                      institution_id_code: '428399181'
                      retrieval_reference_number: '528294182583'
                      system_trace_audit_number: '656761'
                    acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    amount: 10.0
                    card:
                      metadata: null
                    card_security_code_verification:
                      response:
                        code: '0000'
                        memo: Card security code match
                      type: CVV1
                    card_token: 02cc766c-24a5-4c3b-adcf-0e5e27b09329
                    created_time: 2021-08-21T17:26:29Z
                    currency_code: USD
                    duration: 537
                    fraud:
                      network:
                        account_risk_score: '7'
                        transaction_risk_score: 97
                    gpa:
                      available_balance: 0.0
                      balances:
                        USD:
                          available_balance: 0.0
                          credit_balance: 0.0
                          currency_code: USD
                          impacted_amount: 10.0
                          ledger_balance: 20.0
                          pending_credits: 0.0
                      credit_balance: 0.0
                      currency_code: USD
                      impacted_amount: 10.0
                      ledger_balance: 20.0
                      pending_credits: 0.0
                    gpa_order:
                      amount: 10.0
                      created_time: 2021-08-21T17:26:30Z
                      funding:
                        amount: 10.0
                        currency_code: USD
                        funding_source_token: '**********dd5f'
                        gateway_log:
                          duration: 481
                          message: Approved or completed successfully
                          order_number: '1200'
                          response:
                            code: '200'
                            data:
                              jit_funding:
                                address_verification:
                                  gateway:
                                    on_file:
                                      postal_code: 94601
                                      street_address: 2000 High St
                                    response:
                                      code: '0000'
                                      memo: Address and postal code match
                                amount: 10.0
                                method: pgfs.authorization
                                original_jit_funding_token: your-jit-funding-token
                                token: your-jit-funding-token
                                user_token: your-jit-funding-user
                          timed_out: false
                          transaction_id: your-jit-funding-token
                        jit_funding:
                          acting_user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                          amount: 10.0
                          method: pgfs.authorization
                          token: 251bdc52-588a-4291-8c5d-6ded3a67e1a8
                          user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                        source:
                          active: true
                          created_time: 2021-08-21T17:25:43Z
                          is_default_account: false
                          last_modified_time: 2021-08-21T17:25:43Z
                          name: PGFS for simulating transactions
                          token: '**********dd5f'
                          type: programgateway
                        user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                      last_modified_time: 2021-08-21T17:26:30Z
                      response:
                        code: '0000'
                        memo: Approved or completed successfully
                      state: PENDING
                      token: 592b8164-a4af-45ee-ab24-13a4bb43e6b2
                      transaction_token: cd22cff7-2845-4508-a916-cf89fd9edae1
                    issuer_payment_node: b9a60cd41a2cc1c23090ed3666bdbf1z
                    issuer_received_time: 2021-08-21T17:26:29Z
                    network: MARQETA
                    pos:
                      card_holder_presence: false
                      card_presence: false
                      is_recurring: false
                      pan_entry_mode: MAG_STRIPE
                      partial_approval_capable: false
                      pin_entry_mode: 'TRUE'
                      purchase_amount_only: false
                      terminal_attendance: ATTENDED
                    preceding_related_transaction_token: 06a8fe88-58b1-4682-a8ad-96eb973e1d74
                    response:
                      code: '0000'
                      memo: Approved or completed successfully
                    state: PENDING
                    subnetwork: GATEWAY_JIT
                    token: cd22cff7-2845-4508-a916-cf89fd9edae1
                    transaction_metadata:
                      payment_channel: OTHER
                    type: gpa.credit.authorization
                    user:
                      metadata: null
                    user_token: 99f323d4-298f-4b0c-93b1-19b2d9921eb8
                    user_transaction_time: 2021-08-21T17:26:29Z
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/TransactionModelListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List related transactions
      tags:
        - Transactions
  /users:
    get:
      description: |-
        To return an array of all of a program's users, send a `GET` request to the `/users` endpoint.
        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
        To narrow your result set to users that match certain criteria, see the <<search_users,Search users>> endpoint.

        The `business_token` field is conditionally returned in the response (it cannot be set through the API).
        You can use this field in conjunction with the `parent_token` field to determine whether the user has a parent or grandparent that is a business:

        [cols="1,1,1"]
        |===
        | parent_token | business_token | Description

        | Not populated
        | Not populated
        | User does not have a parent.

        | Populated
        | Not populated
        | User's parent is a user.

        | Populated; matches `business_token`
        | Populated; matches `parent_token`
        | User's parent is a business.

        | Populated; does not match `business_token`
        | Populated; does not match `parent_token`
        | User's parent is a user and their grandparent is a business.
        |===
      operationId: getUsers
      parameters:
        - description: Number of user resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Search type.
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - account_holder_group_token: DEFAULT_AHG
                    active: true
                    address1: 1234 Grove Street
                    birth_date: 1991-01-01
                    city: Berkeley
                    country: USA
                    created_time: 2022-08-16T19:43:02Z
                    email: jane.doe@company.com
                    first_name: Jane
                    gender: F
                    identifications:
                      - type: SSN
                        value: '5555'
                    last_modified_time: 2022-08-16T19:43:02Z
                    last_name: Doe
                    metadata:
                      authentication_answer1: Cashier
                      authentication_answer2: Trabant
                      authentication_answer3: Blue
                      authentication_question1: What was your first job?
                      authentication_question2: What make was your first car?
                      authentication_question3: What is your favorite color?
                      notification_email: jane.doe@home.com
                      notification_language: spa
                    password: P@ssw0rd
                    phone: '15105551212'
                    postal_code: '94702'
                    state: CA
                    status: ACTIVE
                    token: my_user_01
                    uses_parent_account: false
                  - account_holder_group_token: DEFAULT_AHG
                    active: true
                    address1: 2345 Main Street
                    birth_date: 1992-02-02
                    city: Berkeley
                    country: USA
                    created_time: 2023-03-14T00:45:00Z
                    email: john.doe@company.com
                    first_name: John
                    gender: M
                    identifications:
                      - type: SSN
                        value: '4444'
                    last_modified_time: 2023-03-14T00:45:00Z
                    last_name: Doe
                    metadata:
                      key1: value1
                      key2: value2
                    password: my-password
                    phone: '15105551212'
                    postal_code: '94702'
                    state: CA
                    status: ACTIVE
                    token: my_user_02
                    uses_parent_account: false
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/UserCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List users
      tags:
        - Users
    post:
      description: |-
        This endpoint enables you to create a user.
        A new user's initial status depends on the <</core-api/kyc-verification, Know Your Customer (KYC) requirements>> of the program or associated <</core-api/account-holder-groups, account holder group>>.

        [cols="1,1,1,1"]
        |===
        | KYC Required | Initial User Status | User Active on Creation | User Limitations

        | Always
        | `UNVERIFIED`
        | Optional
        | Cannot load funds; cannot activate cards.

        | Conditionally
        | `LIMITED`
        | Optional
        | Restricted by rules in `accountholdergroups.pre_kyc_controls`.

        | Never
        | `ACTIVE`
        | Required
        | None.
        |===

        [NOTE]
        Use the `/usertransitions` endpoints to transition user resources between statuses and to view the history of a user's status.
        Do not set the value of the `user.active` field directly.
        For more information on status changes, see <</core-api/user-transitions#postUsertransitions, Create User Transition>>.

        To perform KYC verification on users, the user object must have the following fields configured:

        * `first_name` (legal first name only, no prefixes)
        * `last_name` (legal last name only, no suffixes)
        * `address1` (cannot be a PO Box)
        * `city`
        * `state`
        * `postal_code`
        * `country`
        * `birth_date`
        * `identifications`
        * `phone` (required in some cases)
        * `email` (required in some cases)

        [NOTE]
        The `identifications` requirement depends on your program's configuration.
        To determine if you should provide a full or abbreviated identification number, contact your Marqeta representative.
        KYC verification requires the full Social Security Number (SSN) of the user.

        To create a child user, you must identify the parent user or business and determine whether the child user shares an account with the parent.

        The parent must be an existing user or business.
        On the child user, set the `parent_token` field to the value of the parent's `token` field.
        If either the parent or the grandparent is a business, a `business_token` field is added to the user.
        This field's value is set to the token of either the parent or grandparent (whichever is the business).

        The `uses_parent_account` field determines whether the child shares balances with the parent (`true`) or whether the child balances are independent of the parent (`false`).
        If you do not specify a value for `uses_parent_account`, it is set to `false` by default (the user does not share the parent's balance) and returned in the response body.
        This field cannot be updated, so you must decide upon creation whether the child user shares the parent balance.

        Sharing an account with a parent user affects how the child user interacts with cards as follows:

        * A child user cannot spend funds if its parent is not active.
        * An active child user can activate cards, whether the parent is active or not.
      operationId: postUsers
      requestBody:
        content:
          application/json:
            example:
              address1: 1234 Grove Street
              birth_date: 1991-01-01
              city: Berkeley
              country: USA
              email: jane.doe@company.com
              first_name: Jane
              gender: F
              identifications:
                - type: SSN
                  value: '111234444'
              last_name: Doe
              metadata:
                authentication_answer1: Cashier
                authentication_answer2: Trabant
                authentication_answer3: Blue
                authentication_question1: What was your first job?
                authentication_question2: What make was your first car?
                authentication_question3: What is your favorite color?
                notification_email: jane.doe@home.com
                notification_language: spa
              password: P@ssw0rd
              phone: '15105551212'
              postal_code: '94702'
              state: CA
              token: my_user_01
              uses_parent_account: false
            schema:
              $ref: '#/components/schemas/card_holder_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                account_holder_group_token: DEFAULT_AHG
                active: true
                address1: 1234 Grove Street
                birth_date: 1991-01-01
                city: Berkeley
                corporate_card_holder: false
                country: USA
                created_time: 2023-03-26T20:21:24Z
                email: jane.doe6@company.com
                first_name: Jane
                gender: F
                last_modified_time: 2023-03-26T20:21:24Z
                last_name: Doe
                metadata:
                  authentication_answer1: Cashier
                  authentication_answer2: Trabant
                  authentication_answer3: Blue
                  authentication_question1: What was your first job?
                  authentication_question2: What make was your first car?
                  authentication_question3: What is your favorite color?
                  notification_email: jane.doe@home.com
                  notification_language: spa
                password: P@ssw0rd
                phone: '15105551212'
                ssn: '5555'
                state: CA
                status: ACTIVE
                token: my_user_01
                uses_parent_account: false
                zip: '94702'
              schema:
                $ref: '#/components/schemas/user_card_holder_response'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '412':
          content: {
            }
          description: Pre-condition setup issue
        '500':
          content: {
            }
          description: Server error
      summary: Create user
      tags:
        - Users
  /users/auth/changepassword:
    post:
      description: |-
        To change a user password, send a `POST` request to the `/users/auth/changepassword` endpoint and include the `current_password` and `new_password` in link:http://www.json.org/[JSON, window="_blank"] format in the body of the request.
        This endpoint operates in the context of a currently logged-in user.

        A successful password change returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthChangepassword
      requestBody:
        content:
          application/json:
            example:
              current_password: my_old_password
              new_password: my_new_password
            schema:
              $ref: '#/components/schemas/password_update_model'
        description: Password update object
        required: true
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Update user password
      tags:
        - Users
  /users/auth/clientaccesstoken:
    post:
      description: |-
        Each time you want to display a virtual card's sensitive data (for example, when using `marqeta.js`), you must first request a new, single-use client access token from the Marqeta platform by sending a `POST` request to the `/users/auth/clientaccesstoken` endpoint.
        Unredeemed client access tokens expire after five minutes.
      operationId: postUsersAuthClientaccesstoken
      requestBody:
        content:
          application/json:
            example:
              card_token: my_card_01
            schema:
              $ref: '#/components/schemas/client_access_token_request'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                created: 2022-07-29T12:00:00Z
                expires: 2022-07-29T12:05:00Z
                token: ewogICJ0b2tlbiI6ICI5NzIwMDkwNS00ODc0LTRkMWEtODEzMS1jMWI3NDAwNzJjM2MmYXBwbGljYXRpb25fdG9rZW49eW91cl9hcHBsaWNhdGlvbl90b2tlbiIsCiAgImFwcGxpY2F0aW9uIjogewogICAgInRva2VuIjogInlvdXJfYXBwbGljYXRpb25fdG9rZW4iLAogICAgImFjdGl2ZSI6IHRydWUsCiAgICAiY2xpZW50X2FwaV9iYXNlX3VybCI6ICJodHRwOi8vd2lkZ2V0cy1lbnYubWFycWV0YS5jb20vY2xpZW50L2FwaS92MSIsCiAgICAiYXNzZXRzX3VybCI6ICJodHRwOi8vd2lkZ2V0cy1lbnYubWFycWV0YS5jb20vY2xpZW50L2Fzc2V0cy8xLjAuMCIsCiAgICAiY2xpZW50dG9rZW5hcHBsaWNhdGlvbklkIjogIjU3MDI2OTJhMGI4ZGNlOTg1YWVmNTExMiIKICB9LAogICJhcHBsaWNhdGlvbl90b2tlbiI6IG51bGwsCiAgImV4cGlyZXMiOiAiMjAxOC0xMi0zMVQyMzo1OTo1OSswMDAwIiwKICAiY2FyZF90b2tlbiI6ICJ0b2tlbl9vZl90aGVfY2FyZF95b3VfbmVlZF90b19wcmVzZW50IiwKICAiYWNjZXNzZWQiOiBudWxsLAogICJjbGllbnR0b2tlbklkIjogIjU5MTc2Y2JlMGI4ZGNlOTg1YWVmNTEzMCIsCiAgImNyZWF0ZWQiOiAiMjAxOC0wMS0wMVQwMDowMDowMCswMDAwIgp9
              schema:
                $ref: '#/components/schemas/client_access_token_response'
          description: Created
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Create client access token
      tags:
        - Users
  /users/auth/clientaccesstoken/{token}:
    get:
      description: To retrieve application and card information using a client access
        token, send a `GET` request to the `/users/auth/clientaccesstoken/{token}`
        endpoint.
      operationId: getUsersAuthClientaccesstokenToken
      parameters:
        - description: Client access token.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Unique identifier of the `application` object.
          explode: true
          in: query
          name: application_token
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                created: 2022-07-29T12:00:00Z
                expires: 2022-07-29T12:05:00Z
                token: ewogICJ0b2tlbiI6ICI5NzIwMDkwNS00ODc0LTRkMWEtODEzMS1jMWI3NDAwNzJjM2MmYXBwbGljYXRpb25fdG9rZW49eW91cl9hcHBsaWNhdGlvbl90b2tlbiIsCiAgImFwcGxpY2F0aW9uIjogewogICAgInRva2VuIjogInlvdXJfYXBwbGljYXRpb25fdG9rZW4iLAogICAgImFjdGl2ZSI6IHRydWUsCiAgICAiY2xpZW50X2FwaV9iYXNlX3VybCI6ICJodHRwOi8vd2lkZ2V0cy1lbnYubWFycWV0YS5jb20vY2xpZW50L2FwaS92MSIsCiAgICAiYXNzZXRzX3VybCI6ICJodHRwOi8vd2lkZ2V0cy1lbnYubWFycWV0YS5jb20vY2xpZW50L2Fzc2V0cy8xLjAuMCIsCiAgICAiY2xpZW50dG9rZW5hcHBsaWNhdGlvbklkIjogIjU3MDI2OTJhMGI4ZGNlOTg1YWVmNTExMiIKICB9LAogICJhcHBsaWNhdGlvbl90b2tlbiI6IG51bGwsCiAgImV4cGlyZXMiOiAiMjAxOC0xMi0zMVQyMzo1OTo1OSswMDAwIiwKICAiY2FyZF90b2tlbiI6ICJ0b2tlbl9vZl90aGVfY2FyZF95b3VfbmVlZF90b19wcmVzZW50IiwKICAiYWNjZXNzZWQiOiBudWxsLAogICJjbGllbnR0b2tlbklkIjogIjU5MTc2Y2JlMGI4ZGNlOTg1YWVmNTEzMCIsCiAgImNyZWF0ZWQiOiAiMjAxOC0wMS0wMVQwMDowMDowMCswMDAwIgp9
              schema:
                $ref: '#/components/schemas/client_access_token_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve client access token
      tags:
        - Users
  /users/auth/login:
    post:
      description: |-
        To log in a user and return a user access token, send a `POST` request to the `/users/auth/login` endpoint and include the user details in link:http://www.json.org/[JSON, window="_blank"] format in the body of the request.

        [TIP]
        To check a user's credentials without logging out the user, call the `/users/auth/onetime` endpoint.
      operationId: postUsersAuthLogin
      requestBody:
        content:
          application/json:
            example:
              email: jane.doe@company.com
              password: P@ssw0rd
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/login_request_model'
        description: User login object
        required: false
      responses:
        '204':
          content:
            application/json:
              example:
                access_token:
                  expires: 2027-03-01T21:02:04Z
                  one_time: false
                  token: e12b1f64-1444-4aa3-83d9-347800c68e94
                user:
                  active: true
                  created_time: 2023-04-01T17:52:39Z
                  email: jane.doe@company.com
                  last_modified_time: 2023-04-01T17:52:39Z
                  password: P@ssw0rd
                  token: my_user_01
                  uses_parent_account: false
              schema:
                $ref: '#/components/schemas/login_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Log in user
      tags:
        - Users
  /users/auth/logout:
    post:
      description: |-
        To log out a user, send a `POST` request to the `/users/auth/logout` endpoint.

        A successful logout returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthLogout
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Log out user
      tags:
        - Users
  /users/auth/onetime:
    post:
      description: |-
        This endpoint returns a single-use access token.
        This type of token authorizes a single request to access API endpoints and data associated with a particular user.
        A single-use access token differs from a user access token (as returned by `POST` `/users/auth/login`) only in the number of times it can be used.

        To return a single-use access token, send a `POST` request to the `/users/auth/onetime` endpoint.
        Provide one of these sets of input data:

        * *Case #1* – Application token and user access token
        * *Case #2* – Application token, admin access token, and user token
        * *Case #3* – Application token, user's Marqeta password, and user's email address

        In each case, provide the application token as the HTTP Basic Authentication username in the request header's Authorization field.
        When applicable, provide the user access token or admin access token as the HTTP Basic Authentication password.
        When applicable, provide the user token or user's Marqeta password and email address in link:http://www.json.org/[JSON, window="_blank"] format in the request body.

        Before instantiating an embedded Marqeta widget, call this endpoint to obtain the single-use access token required as input (cases #1 and #2).

        This endpoint is also useful when you want to check a user's credentials before performing a sensitive operation without having to log out the user (case #3).

        [NOTE]
        Calling this endpoint and returning a single-use access token does not invalidate the user's current user access token.
      operationId: postUsersAuthOnetime
      requestBody:
        content:
          application/json:
            examples:
              case_one:
                summary: '*Case 1:* Authorization: Basic `my_application_token:my_user_access_token`'
                value: {
                  }
              case_three:
                summary: '*Case 3:* Authorization: Basic `my_application_token`'
                value:
                  email: jane.doe@company.com
                  password: P@ssw0rd
              case_two:
                summary: '*Case 2:* Authorization: Basic `my_application_token:my_admin_access_token`'
                value:
                  user_token: my_user_token
            schema:
              $ref: '#/components/schemas/one_time_request_model'
        description: One-time object
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                expires: 2024-04-01T00:00:00Z
                one_time: true
                token: 697e0bde-ea52-44bd-8150-0e0f83e9625d
              schema:
                $ref: '#/components/schemas/access_token_response'
          description: Created
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Create single-use token
      tags:
        - Users
  /users/auth/resetpassword:
    post:
      description: |-
        Use this endpoint to generate a password reset token for a user.
        Send a `POST` request to the `/users/auth/resetpassword` endpoint and include the user's email address in link:http://www.json.org/[JSON, window="_blank"] format in the body of the request.
        This request generates and sends an email message containing the `user_token` and `password_reset_token` to the user's email address.
        You must customize the email message with a link that passes the `user_token` and `password_reset_token` to a web page where a subsequent request updates the password.

        A successful request returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthResetpassword
      requestBody:
        content:
          application/json:
            example:
              email: jane.doe@company.com
            schema:
              $ref: '#/components/schemas/reset_user_password_email_model'
        required: false
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Request user password reset token
      tags:
        - Users
  /users/auth/resetpassword/{token}:
    post:
      description: |-
        To reset the user's password, send a `POST` request to the `/users/auth/resetpassword/{token}` endpoint that includes a password reset token generated using the `POST /users/auth/resetpassword` operation.
        Include the `user_token` and `new_password` in link:http://www.json.org/[JSON, window="_blank"] format in the body of the request.
        Include the `password_reset_token` as a path parameter.

        A successful password reset returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthResetpasswordToken
      parameters:
        - description: Password reset token generated using the `POST /users/auth/resetpassword`
            operation.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              new_password: newPassword123@
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/reset_user_password_model'
        required: false
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Reset user password
      tags:
        - Users
  /users/auth/verifyemail:
    post:
      description: |-
        Send a `POST` request to the `/users/auth/verifyemail` endpoint to request an email verification token.
        No input parameters are required because this operation is performed in the context of an authenticated user.

        This initial request generates and sends an email message containing the email verification token to the cardholder's email address.
        This email message must include a link that passes the email verification token to a web page where a subsequent request verifies the email address.

        A successful request returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthVerifyemail
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Request email verification token
      tags:
        - Users
  /users/auth/verifyemail/{token}:
    post:
      description: |-
        To verify a user's email address, send a `POST` request to the `/users/auth/verifyemail/{email_verification_token}` endpoint that includes an `email_verification_token` generated using the `POST /users/auth/verifyemail` operation.
        Include the `email_verification_token` as a path parameter.

        A successful email verification returns an empty response body with a response code of `204 No Content`.
      operationId: postUsersAuthVerifyemailToken
      parameters:
        - description: Email verification token generated using the `POST /users/auth/verifyemail`
            operation.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '204':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '500':
          content: {
            }
          description: Server error
      summary: Verify email address
      tags:
        - Users
  /users/lookup:
    post:
      description: |-
        To search for one or more users, send a `POST` request to the `/users/lookup` endpoint.
        Include in the message body any parameters by which you want to query.
        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: postUsersLookup
      parameters:
        - description: Number of user resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Search type.
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      requestBody:
        content:
          application/json:
            example:
              first_name: Jane
            schema:
              $ref: '#/components/schemas/user_card_holder_search_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - account_holder_group_token: DEFAULT_AHG
                    active: true
                    address1: 1234 Grove Street
                    birth_date: 1991-01-01
                    city: Berkeley
                    country: USA
                    created_time: 2023-03-16T20:26:28Z
                    email: jane.doe@company.com
                    first_name: Jane
                    gender: F
                    identifications:
                      - type: DRIVERS_LICENSE
                        value: '12345'
                    last_modified_time: 2023-03-16T20:26:29Z
                    last_name: Doe
                    metadata: {
                      }
                    password: P@ssw0rd
                    phone: '15105551212'
                    postal_code: '94702'
                    state: CA
                    status: ACTIVE
                    token: my_user_01
                    uses_parent_account: false
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/UserCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Search users
      tags:
        - Users
  /users/phonenumber/{phone_number}:
    get:
      operationId: getUsersPhonenumberPhonenumber
      parameters:
        - description: Phone number
          explode: false
          in: path
          name: phone_number
          required: true
          schema:
            type: string
          style: simple
        - description: Number of users to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Lists all users who match a phone number
      tags:
        - users
  /users/{parent_token}/children:
    get:
      description: |-
        To retrieve users who are children of a parent user or business, send a `GET` request to the `/users/{parent_token}/children` endpoint.
        Include the parent's user or business token as a URL path parameter.

        The `business_token` field is conditionally returned in the response (it cannot be set through the API).
        You can use this field in conjunction with the `parent_token` field to determine whether the user has a parent or grandparent that is a business:

        [cols="1,1,1"]
        |===
        | parent_token | business_token | Description

        | Not populated
        | Not populated
        | User does not have a parent.

        | Populated
        | Not populated
        | User's parent is a user.

        | Populated; matches `business_token`
        | Populated; matches `parent_token`
        | User's parent is a business.

        | Populated; does not match `business_token`
        | Populated; does not match `parent_token`
        | User's parent is a user and their grandparent is a business.
        |===

        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getUsersParenttokenChildren
      parameters:
        - description: Number of user resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Unique identifier of the parent account holder.
          explode: false
          in: path
          name: parent_token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - account_holder_group_token: DEFAULT_AHG
                    active: true
                    address1: 123 Main Street
                    city: Oakland
                    country: USA
                    created_time: 2022-08-16T19:46:58Z
                    email: john_smith@company.com
                    first_name: John
                    gender: M
                    identifications:
                      - birth_date: 1986-04-01
                        type: SSN
                        value: '7777'
                    last_modified_time: 2022-08-16T19:46:58Z
                    last_name: Smith
                    metadata: {
                      }
                    parent_token: my_user_01
                    password: P@55word
                    phone: '15101111111'
                    postal_code: '94601'
                    state: CA
                    status: ACTIVE
                    token: child_of_parent
                    uses_parent_account: true
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/UserCardHolderListResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List user child accounts
      tags:
        - Users
  /users/{token}:
    get:
      description: |-
        To retrieve a specific user, send a `GET` request to the `/users/{token}` endpoint.
        Include the user `token` path parameter to specify the user to return.

        The `business_token` field is conditionally returned in the response (it cannot be set through the API).
        You can use this field in conjunction with the `parent_token` field to determine whether the user has a parent or grandparent that is a business:

        [cols="1,1,1"]
        |===
        | parent_token | business_token | Description

        | Not populated
        | Not populated
        | User does not have a parent.

        | Populated
        | Not populated
        | User's parent is a user.

        | Populated; matches `business_token`
        | Populated; matches `parent_token`
        | User's parent is a business.

        | Populated; does not match `business_token`
        | Populated; does not match `parent_token`
        | User's parent is a user and their grandparent is a business.
        |===

        This endpoint supports <</core-api/field-filtering, field filtering>>.
      operationId: getUsersToken
      parameters:
        - description: Unique identifier of the user resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                account_holder_group_token: DEFAULT_AHG
                active: true
                address1: 1234 Grove Street
                birth_date: 1991-01-01
                city: Berkeley
                country: USA
                created_time: 2022-08-16T19:39:34Z
                email: jane.doe@company.com
                first_name: Jane
                gender: F
                identifications:
                  - type: SSN
                    value: '5555'
                last_modified_time: 2022-08-16T19:39:34Z
                last_name: Doe
                metadata:
                  authentication_answer1: Cashier
                  authentication_answer2: Trabant
                  authentication_answer3: Blue
                  authentication_question1: What was your first job?
                  authentication_question2: What make was your first car?
                  authentication_question3: What is your favorite color?
                  notification_email: jane.doe@home.com
                  notification_language: spa
                password: P@ssw0rd
                phone: '15105551212'
                postal_code: '94702'
                state: CA
                status: ACTIVE
                token: my_user_01
                uses_parent_account: false
              schema:
                $ref: '#/components/schemas/user_card_holder_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Cardholder not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve user
      tags:
        - Users
    put:
      description: |-
        To update a specific user resource, send a `PUT` request to the `/users/{token}` endpoint.
        Include the user `token` path parameter to specify the user to update.

        To unlink a child user account from a parent account, pass a null value to the `parent_token` field of the child user resource.
      operationId: putUsersToken
      parameters:
        - description: Unique identifier of the user resource you want to update.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              address1: 4321 Grove Street
            schema:
              $ref: '#/components/schemas/UserCardHolderUpdateModel'
        description: User object
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                account_holder_group_token: DEFAULT_AHG
                active: true
                address1: 4321 Grove Street
                corporate_card_holder: false
                created_time: 2023-01-29T00:12:20Z
                last_modified_time: 2023-09-23T21:41:24Z
                metadata: {
                  }
                status: ACTIVE
                token: my_user_01
                uses_parent_account: false
              schema:
                $ref: '#/components/schemas/card_holder_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update user
      tags:
        - Users
  /users/{token}/notes:
    get:
      operationId: getUsersTokenNotes
      parameters:
        - description: User token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Start index
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: Number of notes to retrieve
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Created by
          explode: true
          in: query
          name: created_by
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of created by user roles
          explode: true
          in: query
          name: created_by_user_role
          required: false
          schema:
            type: string
          style: form
        - description: Include private notes and private fields in note response
          explode: true
          in: query
          name: include_private
          required: false
          schema:
            type: boolean
          style: form
        - description: Search type
          explode: true
          in: query
          name: search_type
          required: false
          schema:
            type: string
          style: form
        - description: Comma-delimited list of fields to return (e.g. field_1,field_2,..).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: Sort order
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardHolderNoteListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '404':
          content: {
            }
          description: Cardholder not found
        '500':
          content: {
            }
          description: Server error
      summary: Lists cardholder notes
      tags:
        - users
    post:
      operationId: postUsersTokenNotes
      parameters:
        - description: User token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardholder_note_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardholder_note_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Creates a note for the cardholder
      tags:
        - users
  /users/{token}/notes/{notes_token}:
    put:
      operationId: putUsersTokenNotesNotestoken
      parameters:
        - description: User token
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Notes token
          explode: false
          in: path
          name: notes_token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cardholder_note_update_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cardholder_note_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '401':
          content: {
            }
          description: Unauthorized
        '403':
          content: {
            }
          description: Forbidden
        '500':
          content: {
            }
          description: Server error
      summary: Updates a specific note for a cardholder
      tags:
        - users
  /users/{token}/ssn:
    get:
      description: |-
        To retrieve the government-issued identification number for a user, send a `GET` request to the `/users/{token}/ssn` endpoint.
        Include the `token` path parameter to specify the user whose identification number (SSN, TIN, NIN, SIN) you wish to return.
        You can indicate whether to return the full number or the last four digits only.
      operationId: getUsersTokenSsn
      parameters:
        - description: Unique identifier of the user resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            To return the full identification number, set to `true`.
            To return only the last four digits, set to `false`.

            If the identifications array contains only the last four digits of the identification number, the `/users/{token}/ssn` endpoint will return only the last four digits, regardless of the `full_ssn` parameter.
          explode: true
          in: query
          name: full_ssn
          required: false
          schema:
            type: boolean
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                ssn: '5555'
              schema:
                $ref: '#/components/schemas/ssn_response_model'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve user identification number
      tags:
        - Users
  /usertransitions:
    post:
      description: |-
        This endpoint enables you to change a user's status, depending on your role and the previous status change.
        By changing a user's status, you can control the user's capabilities and the setting of the `user.active` field.
        Do not set the value of the `user.active` field directly.

        [cols="2a,4a,3a"]
        |===
        | The user.status Field | Description | User Limitations

        | `UNVERIFIED`
        | Initial status of a new user belonging to an account holder group where KYC is always required.

        *Allowable Transitions:*  +
        `ACTIVE`, `CLOSED`, `TERMINATED`
        | Cannot activate cards or load funds.

        *user.active Field:*  +
        `false`

        | `LIMITED`
        | Initial status of a new user belonging to an account holder group where KYC is conditionally required.

        *Allowable Transitions:*  +
        `ACTIVE`, `SUSPENDED`, `CLOSED`
        | Restricted by rules in `accountholdergroups.pre_kyc_controls`.

        *user.active Field:*  +
        `true`

        | `ACTIVE`
        | Status of a user who has passed KYC, or initial status of a new user belonging to an account holder group where KYC is never required.

        *Allowable Transitions:*  +
        `SUSPENDED`, `CLOSED`, `UNVERIFIED`
        | None.

        *user.active Field:*  +
        `true`

        | `SUSPENDED`
        | The user is temporarily inactive.

        Transitioning a suspended user to the `ACTIVE` status is restricted, based on your role and the details of the previous status change.

        *Allowable Transitions:*  +
        `ACTIVE`, `LIMITED`, `UNVERIFIED`, `CLOSED`, `TERMINATED`
        | Cannot activate cards, load funds, or transact.

        *user.active Field:*  +
        `false`

        | `CLOSED`
        | The user is permanently inactive.

        In general, the `CLOSED` status should be terminal.
        For exceptional cases, you can transition a user to other statuses, depending on your role and the details of the previous status change.
        Contact your Marqeta representative for more information.

        *Allowable Transitions:*  +
        `ACTIVE`, `LIMITED`, `UNVERIFIED`, `SUSPENDED`, `TERMINATED`
        | Cannot activate cards, load funds, or transact.

        *user.active Field:*  +
        `false`

        | `TERMINATED`
        | The user account is permanently closed.
        Use the `TERMINATED` state to comply with regulatory requirements, such as the requirement that a user account be irreversibly closed when it does not pass Know Your Customer (KYC) verification.

        *NOTE:* `TERMINATED` is a terminal status.
        You must have the Admin or Program Manager role to transition a user to the `TERMINATED` state.
        You cannot transition a user from `TERMINATED` to any other state.
        Contact your Marqeta representative for more information.

        *Allowable Transitions:*   +
        None
        | Cannot load funds, activate cards, or transact.

        *The user.active field:*   +
        `false`

        |===

        [NOTE]
        The Marqeta platform transitions a user's status in response to certain events.
        For example, a user in the `UNVERIFIED` status is transitioned to `ACTIVE` when the user passes KYC verification.
      operationId: postUsertransitions
      requestBody:
        content:
          application/json:
            example:
              channel: API
              reason: Activating user
              reason_code: '00'
              status: ACTIVE
              token: activate_05
              user_token: my_user_01
            schema:
              $ref: '#/components/schemas/UserTransitionRequest'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                channel: API
                created_time: 2023-03-15T00:00:00Z
                reason: Activating user
                reason_code: '00'
                status: ACTIVE
                token: activate_05
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/UserTransitionResponse'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '412':
          content: {
            }
          description: Pre-condition setup issue
        '500':
          content: {
            }
          description: Server error
      summary: Create user transition
      tags:
        - User Transitions
  /usertransitions/user/{user_token}:
    get:
      description: List all transitions for a given user.
      operationId: getUsertransitionsUserUsertoken
      parameters:
        - description: Unique identifier of the user resource.
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of user transitions to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -id
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - channel: API
                    created_time: 2023-03-15T00:00:00Z
                    reason: Activating user
                    reason_code: '00'
                    status: ACTIVE
                    token: activate_05
                    user_token: my_user_01
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/UserTransitionListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List transitions for user
      tags:
        - User Transitions
  /usertransitions/{token}:
    get:
      description: Retrieve a user transition.
      operationId: getUsertransitionsToken
      parameters:
        - description: Unique identifier of the user transition you want to retrieve.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                channel: API
                created_time: 2023-03-15T00:00:00Z
                reason: Activating user
                reason_code: '00'
                status: ACTIVE
                token: activate_05
                user_token: my_user_01
              schema:
                $ref: '#/components/schemas/UserTransitionResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Cardholder not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve user transition
      tags:
        - User Transitions
  /velocitycontrols:
    get:
      description: |-
        Retrieves a list of all the velocity controls associated with a specific user or card product, or lists all the velocity controls defined for your program.

        Include either a `user` or a `card_product` query parameter to indicate the user or card product whose associated velocity controls you want to retrieve (do not include both).

        To list all velocity controls for your program, omit the `user` and `card_product` query parameters from your request.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getVelocitycontrols
      parameters:
        - description: |-
            Unique identifier of the card product.
            Enter the string `null` to retrieve velocity controls that are not associated with any card product.
          explode: true
          in: query
          name: card_product
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Unique identifier of the user.
            Enter the string `null` to retrieve velocity controls that are not associated with any user.
          explode: true
          in: query
          name: user
          required: false
          schema:
            type: string
          style: form
        - description: Number of velocity control resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - active: true
                    amount_limit: 500.25
                    approvals_only: true
                    association:
                      user_token: my_user_04
                    currency_code: USD
                    include_cashback: true
                    include_credits: false
                    include_purchases: true
                    include_transfers: true
                    include_withdrawals: true
                    merchant_scope: {
                      }
                    token: my_velocitycontrol_01
                    usage_limit: 10
                    velocity_window: DAY
                end_index: 0
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/VelocityControlListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List velocity controls
      tags:
        - Velocity Controls
    post:
      description: |-
        Limits how much and how frequently a user can spend funds.
        If multiple velocity controls apply to the same user, the user cannot exceed any of the defined spending limits.

        [TIP]
        You can create program-level controls in the sandbox environment.
        However, you must work with your Marqeta representative to create program-level controls in a production environment.
      operationId: postVelocitycontrols
      requestBody:
        content:
          application/json:
            example:
              amount_limit: 500.25
              association:
                user_token: my_user_04
              currency_code: USD
              token: my_velocitycontrol_01
              usage_limit: 10
              velocity_window: DAY
            schema:
              $ref: '#/components/schemas/velocity_control_request'
        description: Velocity control object
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                amount_limit: 500.25
                approvals_only: true
                association:
                  user_token: my_user_04
                currency_code: USD
                include_cashback: true
                include_credits: false
                include_purchases: true
                include_transfers: true
                include_withdrawals: true
                merchant_scope: {
                  }
                token: my_velocitycontrol_01
                usage_limit: 10
                velocity_window: DAY
              schema:
                $ref: '#/components/schemas/velocity_control_response'
          description: Created
        '400':
          content: {
            }
          description: Bad request
        '409':
          content: {
            }
          description: Token already associated with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create velocity control
      tags:
        - Velocity Controls
  /velocitycontrols/user/{user_token}/available:
    get:
      description: |-
        Retrieves a list of the available balances of the velocity controls associated with a user.
        This operation is unavailable for velocity controls with a window of `TRANSACTION`, because available balances do not apply to single-transaction velocity windows.

        Depending on the control, the balance can include an available monetary amount, the number of transactions remaining, and the number of days remaining in the time window.

        This endpoint supports <</core-api/field-filtering, field filtering>> and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getVelocitycontrolsUserUsertokenAvailable
      parameters:
        - description: Unique identifier of the cardholder.
          explode: false
          in: path
          name: user_token
          required: true
          schema:
            type: string
          style: simple
        - description: Number of available balance resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: The sort order index of the first resource in the returned
            array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -lastModifiedTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
                data:
                  - active: true
                    amount_limit: 296.25
                    approvals_only: true
                    association: {
                      }
                    available:
                      amount: 296.0
                      days_remaining: 1
                      uses: 1
                    currency_code: USD
                    include_cashback: true
                    include_credits: false
                    include_purchases: true
                    include_transfers: true
                    include_withdrawals: true
                    merchant_scope:
                      mcc: '3058'
                    name: Jane Doe
                    token: card_3
                    usage_limit: 1
                    velocity_window: DAY
                  - active: true
                    amount_limit: 500.25
                    approvals_only: true
                    association: {
                      }
                    available:
                      amount: 500.5
                      days_remaining: 1
                      uses: 1000
                    currency_code: '840'
                    include_cashback: true
                    include_credits: false
                    include_purchases: true
                    include_transfers: true
                    include_withdrawals: true
                    merchant_scope:
                      mcc: '1234'
                    token: card_4
                    usage_limit: 1000
                    velocity_window: DAY
                end_index: 1
                is_more: false
                start_index: 0
              schema:
                $ref: '#/components/schemas/VelocityControlBalanceListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List user velocity control balances
      tags:
        - Velocity Controls
  /velocitycontrols/{token}:
    get:
      description: Retrieves a specific velocity control.
      operationId: getVelocitycontrolsToken
      parameters:
        - description: Unique identifier of the velocity control resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                amount_limit: 500.25
                approvals_only: true
                association:
                  user_token: my_user_04
                currency_code: USD
                include_cashback: true
                include_credits: false
                include_purchases: true
                include_transfers: true
                include_withdrawals: true
                merchant_scope: {
                  }
                token: my_velocitycontrol_01
                usage_limit: 10
                velocity_window: DAY
              schema:
                $ref: '#/components/schemas/velocity_control_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '404':
          content: {
            }
          description: Velocity control not found
        '500':
          content: {
            }
          description: Server error
      summary: Returns a specific velocity control
      tags:
        - Velocity Controls
    put:
      description: Updates a specific velocity control.
      operationId: putVelocitycontrolsToken
      parameters:
        - description: Unique identifier of the velocity control resource.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              amount_limit: 1000.25
              token: my_velocitycontrol_01
              usage_limit: 20
            schema:
              $ref: '#/components/schemas/velocity_control_update_request'
        description: Velocity control object
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                amount_limit: 1000.25
                approvals_only: true
                association:
                  user_token: my_user_04
                currency_code: USD
                include_cashback: true
                include_credits: false
                include_purchases: true
                include_transfers: true
                include_withdrawals: true
                merchant_scope: {
                  }
                token: my_velocitycontrol_01
                usage_limit: 20
                velocity_window: DAY
              schema:
                $ref: '#/components/schemas/velocity_control_response'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: Update velocity control
      tags:
        - Velocity Controls
  /webhooks:
    get:
      description: |-
        Returns an array of all webhooks.

        This endpoint supports <</core-api/field-filtering, field filtering>>, <</core-api/sorting-and-pagination, sorting>>, and <</core-api/sorting-and-pagination, pagination>>.
      operationId: getWebhooks
      parameters:
        - description: Set to `true` to return only active webhook configurations.
          explode: true
          in: query
          name: active
          required: false
          schema:
            default: false
            type: boolean
          style: form
        - description: Number of resources to retrieve.
          explode: true
          in: query
          name: count
          required: false
          schema:
            default: 5
            format: int32
            type: integer
          style: form
        - description: Sort order index of the first resource in the returned array.
          explode: true
          in: query
          name: start_index
          required: false
          schema:
            default: 0
            format: int32
            type: integer
          style: form
        - description: |-
            Comma-delimited list of fields to return (`field_1,field_2`, and so on).
            Leave blank to return all fields.
          explode: true
          in: query
          name: fields
          required: false
          schema:
            type: string
          style: form
        - description: |-
            Field on which to sort.
            Use any field in the resource model, or one of the system fields `lastModifiedTime` or `createdTime`.
            Prefix the field name with a hyphen (`-`) to sort in descending order.
            Omit the hyphen to sort in ascending order.
          explode: true
          in: query
          name: sort_by
          required: false
          schema:
            default: -createdTime
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              example:
                count: 1
                data:
                  - active: true
                    config:
                      basic_auth_password: my_20-to-50-character_password
                      basic_auth_username: my_username
                      custom_header:
                        my_header_name_1: my_value_1
                        my_header_name_2: my_value_2
                        my_header_name_3: my_value_3
                      secret: my_20-character-min_secret
                      url: https://my_secure_domain.com/webhook
                    created_time: 2023-02-24T23:20:28Z
                    events:
                      - '*'
                    last_modified_time: 2023-02-24T23:20:28Z
                    name: my_webhook_name
                    token: my_webhook_token
                end_index: 0
                is_more: true
                start_index: 0
              schema:
                $ref: '#/components/schemas/WebhookResponseModelListResponse'
          description: Success
        '400':
          content: {
            }
          description: Bad request
        '500':
          content: {
            }
          description: Server error
      summary: List webhooks
      tags:
        - Webhooks
    post:
      description: Creates a webhook.
      operationId: postWebhooks
      requestBody:
        content:
          application/json:
            example:
              active: true
              config:
                basic_auth_password: my_20-to-50-character_password
                basic_auth_username: my_username
                custom_header:
                  my_header_name_1: my_value_1
                  my_header_name_2: my_value_2
                secret: my_20-character-min_secret
                url: https://my_secure_domain.com/webhook
              events:
                - '*'
              name: my_webhook_name
              token: my_webhook_token
            schema:
              $ref: '#/components/schemas/webhook_request_model'
        required: false
      responses:
        '201':
          content:
            application/json:
              example:
                active: true
                config:
                  basic_auth_password: my_20-to-50-character_password
                  basic_auth_username: my_username
                  custom_header:
                    my_header_name_1: my_value_1
                    my_header_name_2: my_value_2
                  secret: my_20-character-min_secret
                  url: https://my_secure_domain.com/webhook
                created_time: 2023-02-24T23:20:28Z
                events:
                  - '*'
                last_modified_time: 2023-02-24T23:20:28Z
                name: my_webhook_name
                token: my_webhook_token
              schema:
                $ref: '#/components/schemas/webhook_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '409':
          content: {
            }
          description: Request already processed with a different payload
        '500':
          content: {
            }
          description: Server error
      summary: Create webhook
      tags:
        - Webhooks
  /webhooks/customheaders/{token}:
    put:
      description: Adds or updates a webhook's custom HTTP headers.
      operationId: putWebhooksCustomHeadersToken
      parameters:
        - description: Unique identifier of the webhook.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              custom_header:
                my_header_name_1: my_value_1
                my_header_name_2: my_value_2
                my_header_name_3: my_value_3
            schema:
              $ref: '#/components/schemas/WebhookUpdateCustomHeaderRequest'
        required: false
      responses:
        '200':
          content:
            application/json:
              example:
                active: true
                config:
                  basic_auth_password: my_20-to-50-character_password
                  basic_auth_username: my_username
                  custom_header:
                    my_header_name_1: my_value_1
                    my_header_name_2: my_value_2
                    my_header_name_3: my_value_3
                  secret: my_20-character-min_secret
                  url: https://my_secure_domain.com/webhook
                created_time: 2023-02-06T08:12:32Z
                events:
                  - transaction.*
                last_modified_time: 2023-02-26T22:07:23Z
                name: my_webhook_name
                token: my_webhook_01
              schema:
                $ref: '#/components/schemas/webhook_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Resource not found
        '500':
          content: {
            }
          description: Server error
      summary: Update webhook custom headers
      tags:
        - Webhooks
  /webhooks/{token}:
    get:
      description: Retrieves a webhook.
      operationId: getWebhooksToken
      parameters:
        - description: Unique identifier of the webhook.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook_response_model'
          description: Success
        '404':
          content: {
            }
          description: Resource not found
        '500':
          content: {
            }
          description: Server error
      summary: Retrieve webhook
      tags:
        - Webhooks
    put:
      description: |-
        Updates a webhook.

        You can also use this endpoint to disable webhooks you no longer want to receive—there is no `DELETE` method available to remove unneeded webhooks.
        To disable a webhook, use this endpoint to set its `active` field to `false`.

        For instructions on managing your webhooks via the Developer Dashboard, see the <</developer-guides/developer-tools/#_to_disable_a_webhook, Developer Tools>> guide.
      operationId: putWebhooksToken
      parameters:
        - description: Unique identifier of the webhook.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/webhook_base_model'
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/webhook_response_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Resource not found
        '500':
          content: {
            }
          description: Server error
      summary: Update webhook
      tags:
        - Webhooks
  /webhooks/{token}/ping:
    post:
      description: |-
        Pings your webhook endpoint.

        Send a ping request to your webhook endpoint to validate credentials and connectivity.
        Your webhook endpoint must be configured to respond.

        === Configuring your webhook endpoint

        When the Marqeta platform receives the ping request, it sends a `POST` request containing the following body to the URL of your webhook endpoint:

        [#ping-webhook-sample]
        [source,json]
        ----
        {
          "pings": [
            {
              "token": "marqeta",
              "payload": "healthcheck"
            }
          ]
        }
        ----

        To indicate that it is functioning properly, your webhook endpoint must respond with a status code of `200` (see <</developer-guides/signature-verification, Signature Verification>> for a code example that identifies a ping request).
        The response can optionally include a link:http://www.json.org/[JSON, window="_blank"]-formatted body, for example:

        [#ping-webhook-sample-2]
        [source,json]
        ----
        {"my_endpoint_status": "alive"}
        ----

        The Marqeta platform then responds to its requestor by echoing, as-is, the response code and body received from your webhook endpoint.

        === Using the ping facility

        To ping a webhook endpoint, send a `POST` request to `/webhooks/{token}/ping` and use the `token` path parameter to specify which webhook you want to reach.
        Include an empty, link:http://www.json.org/[JSON, window="_blank"]-formatted body in the request, that is:

        [#ping-webhook-sample-3]
        [source,json]
        ----
        {}
        ----

        The following chain of actions occurs during the successful execution of a ping operation:

        . The Marqeta platform receives the ping request (`POST` to `/webhooks/{token}/ping`).
        . The Marqeta platform sends a request to your webhook endpoint.
        . Your webhook endpoint responds with a status code of "200" and an optional body.
        . The Marqeta platform responds to its requestor by echoing, as-is, the response code and body it received from your webhook endpoint.

        [NOTE]
        If the customer-hosted endpoint fails to respond within five seconds, the Marqeta platform times out the request and responds with the following message body (where `<optional message>` represents additional details you can choose to include in the response):

        [#ping-webhook-sample-4]
        [source,json]
        ----
        {
          "error_message": "Webhook operation failed " + <optional message>,
          "error_code": "422600"
        }
        ----

        Failed pings are not automatically retried.
      operationId: postWebhooksTokenPing
      parameters:
        - description: Unique identifier of the webhook.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              example:
                pings:
                  - my_endpoint_status: alive
              schema:
                $ref: '#/components/schemas/webhook_ping_model'
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Resource not found
        '500':
          content: {
            }
          description: Server error
      summary: Ping webhook
      tags:
        - Webhooks
  /webhooks/{token}/{event_type}/{event_token}:
    post:
      description: |-
        Resends an event notification to your webhook endpoint.

        Although you send this request as a `POST`, all parameters are passed in the URL and the body is empty.
        The event notification is resent to your webhook endpoint and is also returned in the response to this request.
      operationId: postWebhooksTokenEventtypeEventtoken
      parameters:
        - description: Unique identifier of the webhook.
          explode: false
          in: path
          name: token
          required: true
          schema:
            type: string
          style: simple
        - description: Specifies the type of event you want to resend.
          explode: false
          in: path
          name: event_type
          required: true
          schema:
            enum:
              - chargebacktransition
              - digitalwallettokentransition
              - cardtransition
              - usertransition
              - businesstransition
              - transaction
              - threedstransition
            type: string
          style: simple
        - description: Unique identifier of the event for which you want to resend
            a notification.
          explode: false
          in: path
          name: event_token
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content: {
            }
          description: Success
        '400':
          content: {
            }
          description: User input error/Bad request
        '404':
          content: {
            }
          description: Resource not found
        '500':
          content: {
            }
          description: Server error
      summary: Resend event notification
      tags:
        - Webhooks
components:
  schemas:
    ACHListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of ACH funding source objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/base_ach_response_model'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    ATCInformationModel:
      properties:
        atc_discrepancy_indicator:
          type: string
        atc_discrepancy_value:
          type: number
        atc_value:
          type: number
      type: object
    AcceptedCountriesListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/accepted_countries_model'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    AccountHolderGroupListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/account_holder_group_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    AddressRequestModel:
      properties:
        address1:
          maxLength: 35
          minLength: 0
          type: string
        address2:
          maxLength: 35
          minLength: 0
          type: string
        city:
          maxLength: 35
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        postal_code:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 35
          minLength: 0
          type: string
        zip:
          maxLength: 20
          minLength: 0
          type: string
      type: object
    AddressResponseModel:
      properties:
        address1:
          maxLength: 35
          minLength: 0
          type: string
        address2:
          maxLength: 35
          minLength: 0
          type: string
        city:
          maxLength: 35
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        postal_code:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 35
          minLength: 0
          type: string
        zip:
          maxLength: 20
          minLength: 0
          type: string
      type: object
    AndroidPushTokenRequestAddress:
      description: Specifies the cardholder address.
      properties:
        address1:
          description: Street address of the cardholder.
          type: string
        address2:
          description: |-
            Additional address information for the cardholder, such as a suite or apartment number.

            `Suite 600`, for example.
          type: string
        city:
          description: City of the cardholder.
          type: string
        country:
          description: |-
            Two-character link:https://www.iso.org/iso-3166-country-codes.html[ISO alpha-2 country code, window="_blank"].
            `US`, for example.
          type: string
        name:
          description: Name of the cardholder.
          type: string
        phone:
          description: Telephone number of the cardholder.
          type: string
        postal_code:
          description: |-
            Postal code of the cardholder, such as a United States ZIP code.
            `94612`, for example.
          type: string
        state:
          description: |-
            Two-character <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, state or province code>>.
            `CA`, for example.
          type: string
        zip:
          type: string
      type: object
    Application:
      description: Contains client application information.
      properties:
        access_code:
          description: Access code of the client application.
          type: string
        assets_url:
          description: URL of the client application assets.
          type: string
        client_api_base_url:
          description: Base URL of the client API.
          type: string
        environment:
          description: Client application's environment.
          type: string
        program:
          description: Name of the program on the Marqeta platform.
          type: string
        program_short_code:
          description: Short code of the program on the Marqeta platform.
          type: string
        token:
          description: Unique identifier of the `application` object.
          type: string
      type: object
    AuthControlExemptMidsListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/auth_control_exempt_mids_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    AuthControlListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/auth_control_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    Authentication:
      description: Contains the cardholder's email address and password information.
      properties:
        email_verified:
          default: false
          description: Specifies whether the email address has been verified.
          type: boolean
        email_verified_time:
          description: Date and time when the email address was verified.
          format: date-time
          type: string
        last_password_update_channel:
          description: Specifies the channel through which the password was last changed.
          enum:
            - USER_CHANGE
            - USER_RESET
          type: string
        last_password_update_time:
          description: Date and time when the password was last changed.
          format: date-time
          type: string
      type: object
    AutoReloadListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/auto_reload_response_model'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BadRequestError:
      properties:
        error_code:
          enum:
            - '400'
          type: string
        error_message:
          type: string
      required:
        - error_code
        - error_message
      type: object
    BankTransferListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/bank_transfer_response_model'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BankTransferTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/bank_transfer_transition_response_model'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BillPayResponse:
      properties:
        amount:
          type: string
        biller_token:
          type: string
        created_time:
          type: string
        delivery_date:
          type: string
        last_modified_time:
          type: string
        payment_token:
          type: string
        payment_type:
          type: string
        processing_date:
          type: string
        status:
          type: string
        user_token:
          type: string
      type: object
    BillingAddress:
      properties:
        address:
          type: string
        compressed_zip:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        zip:
          type: string
      type: object
    BulkCardOrderListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/bulk_issuance_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BusinessCardHolderListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/business_card_holder_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BusinessTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/BusinessTransitionResponse'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    BusinessTransitionRequest:
      properties:
        business_token:
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        idempotentHash:
          type: string
        reason:
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        status:
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
            - TERMINATED
          type: string
        token:
          type: string
      required:
        - business_token
        - channel
        - reason_code
        - status
      type: object
    BusinessTransitionResponse:
      properties:
        business_token:
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        created_time:
          format: date-time
          type: string
        last_modified_time:
          format: date-time
          type: string
        reason:
          type: string
        reason_code:
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        status:
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
            - TERMINATED
          type: string
        token:
          type: string
      required:
        - channel
        - reason_code
        - status
        - token
      type: object
    BusinessUserCardHolderListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/user_card_holder_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CardFulfillmentRequest:
      properties:
        card_fulfillment_reason:
          enum:
            - NEW
            - LOST_STOLEN
            - EXPIRED
          type: string
        card_personalization:
          $ref: '#/components/schemas/card_personalization'
        shipping:
          $ref: '#/components/schemas/shipping'
      required:
        - card_personalization
      type: object
    CardFulfillmentResponse:
      description: Determines physical characteristics of a card and shipment information.
      properties:
        card_fulfillment_reason:
          description: Descriptive reason for the card fulfillment.
          enum:
            - NEW
            - LOST_STOLEN
            - EXPIRED
          type: string
        card_personalization:
          $ref: '#/components/schemas/card_personalization'
        shipping:
          $ref: '#/components/schemas/ShippingInformationResponse'
      required:
        - card_personalization
      type: object
    CardHolderNoteListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/cardholder_note_response_model'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CardListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/card_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CardProductListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/card_product_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CardTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/card_transition_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CardholderAddressListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of address objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/CardholderAddressResponse'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    CardholderAddressResponse:
      description: Contains information about the billing address of the funding source.
      properties:
        active:
          default: false
          description: Whether the address is active.
          type: boolean
        address_1:
          description: Street address of the funding source.
          maxLength: 255
          minLength: 0
          type: string
        address_2:
          description: |-
            Additional address information for the funding source.

            This field is returned if it exists in the resource.
          maxLength: 255
          minLength: 0
          type: string
        business_token:
          description: |-
            Unique identifier of the business account holder associated with the address.

            This field is returned if it exists in the resource.
          maxLength: 36
          minLength: 1
          type: string
        city:
          description: City of the funding source.
          maxLength: 40
          minLength: 0
          type: string
        country:
          description: Country of the funding source.
          maxLength: 40
          minLength: 1
          type: string
        created_time:
          description: Date and time when the address was created, in UTC.
          format: date-time
          type: string
        first_name:
          description: First name of the account holder associated with the funding
            source.
          maxLength: 40
          minLength: 0
          type: string
        is_default_address:
          default: false
          description: Whether this address is the default address used by the funding
            source.
          type: boolean
        last_modified_time:
          description: |-
            Date and time when the address was last modified, in UTC.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        last_name:
          description: Last name of the account holder associated with the funding
            source.
          maxLength: 40
          minLength: 0
          type: string
        phone:
          description: |-
            Phone number of the funding source.

            This field is returned if it exists in the resource.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: Postal code of the funding source.
          maxLength: 10
          minLength: 0
          type: string
        state:
          description: |-
            Two-character state, province, or territorial abbreviation.

            For the complete list, see <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid state, provincial, and territorial abbreviations>>.
          maxLength: 2
          minLength: 0
          type: string
        token:
          description: Unique identifier of the `funding_source_address` object.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder associated with the address.

            This field is returned if it exists in the resource.
          maxLength: 36
          minLength: 1
          type: string
        zip:
          description: United States ZIP code of the funding source.
          maxLength: 10
          minLength: 0
          type: string
      required:
        - address_1
        - city
        - country
        - created_time
        - first_name
        - last_modified_time
        - last_name
        - postal_code
        - state
        - token
        - zip
      type: object
    CashloadsResponseModel:
      properties:
        vendor_product_id:
          type: string
      type: object
    ChargebackListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/chargeback_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    ChargebackTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/chargeback_transition_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    ChargebackUpdateRequest:
      properties:
        reason_code:
          description: Either 'reason_code' or 'reason_description' is required
          type: string
        reason_description:
          description: Either 'reason_description' or 'reason_code' is required
          enum:
            - SERVICE_NOT_PROVIDED_MERCHANDISE_NOT_RECEIVED
            - CANCELLED_RECURRING_TRANSACTION
            - NOT_AS_DESCRIBED_OR_DEFECTIVE_MERCHANDISE
            - FRAUD_MULTIPLE_TRANSACTIONS
            - FRAUD_TRANSACTION
            - NO_AUTHORIZATION
            - LATE_PRESENTMENT
            - TRANSACTION_NOT_RECOGNIZED
            - INCORRECT_CURRENCY
            - INCORRECT_TRANSACTION_CODE
            - INCORRECT_CURRENCY_OR_TRANSACTION_CODE
            - INCORRECT_TRANSACTION_AMOUNT
            - INCORRECT_ACCOUNT_NUMBER
            - INCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
            - NOT_AUTHORIZED_CARD_PRESENT
            - NOT_AUTHORIZED_CARD_ABSENT
            - CREDIT_NOT_PROCESSED
            - NON_RECEIPT_OF_CASH_OR_LOAD_TRANSACTION_VALUE_AT_ATM
            - DUPLICATE_PROCESSING_OR_PAID_BY_OTHER_MEANS
          type: string
        status:
          enum:
            - ARBITRATION
            - CASE_LOST
            - CASE_WON
            - INITIATED
            - NETWORK_REJECTED
            - PREARBITRATION
            - PRE_INITIATED
            - REPRESENTMENT
            - WITHDRAWN
            - WRITTEN_OFF_ISSUER
            - WRITTEN_OFF_PROGRAM
          type: string
      type: object
    ClearingModel:
      properties:
        amount:
          type: number
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        force_post:
          default: false
          type: boolean
        is_refund:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_token:
          maxLength: 36
          minLength: 1
          type: string
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - original_transaction_token
      type: object
    CommandoModeListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/commando_mode_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CommandoModeTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/commando_mode_transition_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    CustomerDueDiligenceRequest:
      properties:
        answer:
          type: string
        question:
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - answer
        - question
      type: object
    CustomerDueDiligenceUpdateRequest:
      properties:
        answer:
          type: string
      type: object
    DDARequest:
      properties:
        dda:
          type: string
      required:
        - dda
      type: object
    DepositAccountUpdateRequest:
      properties:
        allow_immediate_credit:
          default: false
          type: boolean
      type: object
    DepositDepositResponse:
      description: Contains information about a direct deposit.
      properties:
        amount:
          description: Amount being debited or credited.
          type: number
        business_token:
          description: The unique identifier of the business account holder.
          type: string
        company_discretionary_data:
          description: Company-specific data provided by the direct deposit originator.
          type: string
        company_entry_description:
          description: Company-specific data provided by the direct deposit originator.
          type: string
        company_identification:
          description: Alphanumeric code that identifies the direct deposit originator.
          type: string
        company_name:
          description: Name of the direct deposit originator.
          type: string
        created_time:
          description: Date and time when the direct deposit account was created.
          format: date-time
          type: string
        direct_deposit_account_token:
          description: The unique identifier of the direct deposit account.
          type: string
        individual_identification_number:
          description: Accounting number by which the recipient is known to the direct
            deposit originator.
          type: string
        individual_name:
          description: Name of the direct deposit recipient.
          type: string
        last_modified_time:
          description: Date and time when the direct deposit account was last modified.
          format: date-time
          type: string
        settlement_date:
          description: Date and time when the credit or debit is applied.
          format: date-time
          type: string
        standard_entry_class_code:
          description: Three-letter code identifying the type of entry.
          type: string
        state:
          description: Current status of the direct deposit record.
          enum:
            - PENDING
            - APPLIED
            - REVERSED
            - REJECTED
          type: string
        state_reason:
          description: Explanation for why the direct deposit record is in the current
            state.
          type: string
        state_reason_code:
          description: Standard code describing the reason for the current state.
          type: string
        token:
          description: The unique identifier of the direct deposit record.
          type: string
        type:
          description: Determines whether funds are being debited from or credited
            to the account.
          enum:
            - CREDIT
            - DEBIT
          type: string
        user_token:
          description: The unique identifier of the user account holder.
          type: string
      type: object
    DigitalWalletTokenListResponse:
      properties:
        count:
          description: |-
            Number of resources returned.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of digital wallet token resources.

            Resources are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/digital_wallet_token'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    DigitalWalletTokenTransitionListResponse:
      properties:
        count:
          description: |-
            Number of resources returned.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of digital wallet token transition resources.

            Resources are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/digital_wallet_token_transition_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    DigitalWalletTokenization:
      properties:
        card_art_id:
          type: string
        provisioning_controls:
          $ref: '#/components/schemas/provisioning_controls'
      type: object
    DirectDepositAccountListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/direct_deposit_account_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    DirectDepositListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/DirectDepositResponse'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    DirectDepositRequest:
      properties:
        account_number:
          type: string
        amount:
          type: number
        company_discretionary_data:
          maxLength: 20
          minLength: 0
          type: string
        company_entry_description:
          maxLength: 10
          minLength: 0
          type: string
        company_identification:
          maxLength: 10
          minLength: 0
          type: string
        company_name:
          maxLength: 16
          minLength: 0
          type: string
        earlyPayEligible:
          default: false
          type: boolean
        individual_identification_number:
          maxLength: 22
          minLength: 0
          type: string
        individual_name:
          maxLength: 35
          minLength: 0
          type: string
        settlement_date:
          format: date-time
          type: string
        standard_entry_class_code:
          maxLength: 3
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
        type:
          enum:
            - CREDIT
            - DEBIT
          type: string
      required:
        - account_number
        - amount
        - settlement_date
        - type
      type: object
    DirectDepositResponse:
      properties:
        amount:
          type: number
        business_token:
          type: string
        company_discretionary_data:
          type: string
        company_entry_description:
          type: string
        company_identification:
          type: string
        company_name:
          type: string
        created_time:
          format: date-time
          type: string
        direct_deposit_account_token:
          type: string
        early_direct_deposit:
          type: string
        individual_identification_number:
          type: string
        individual_name:
          type: string
        last_modified_time:
          format: date-time
          type: string
        originator_status_code:
          type: string
        settlement_date:
          format: date-time
          type: string
        standard_entry_class_code:
          type: string
        state:
          enum:
            - PENDING
            - APPLIED
            - REVERSED
            - REJECTED
          type: string
        state_reason:
          type: string
        state_reason_code:
          type: string
        token:
          type: string
        trace_number:
          type: string
        type:
          enum:
            - CREDIT
            - DEBIT
          type: string
        user_token:
          type: string
      type: object
    DirectDepositTransitionListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/DirectDepositTransitionResponse'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    DirectDepositTransitionRequest:
      properties:
        channel:
          enum:
            - API
            - SYSTEM
            - PROD_SUPPORT
          type: string
        direct_deposit_token:
          type: string
        idempotentHash:
          type: string
        reason:
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          enum:
            - R01
            - R02
            - R03
            - R04
            - R06
            - R08
            - R09
            - R10
            - R11
            - R14
            - R15
            - R16
            - R17
            - R18
            - R20
            - R23
            - R24
            - R29
          type: string
        state:
          enum:
            - PENDING
            - APPLIED
            - REVERSED
            - REJECTED
          type: string
        token:
          type: string
      required:
        - channel
        - direct_deposit_token
        - reason
        - state
      type: object
    DirectDepositTransitionResponse:
      properties:
        amount:
          type: number
        business_token:
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
            - NETWORK
            - PROD_SUPPORT
            - UNSUPPORTED
          type: string
        company_discretionary_data:
          type: string
        company_entry_description:
          type: string
        company_identification:
          type: string
        company_name:
          type: string
        created_time:
          format: date-time
          type: string
        direct_deposit_account_token:
          type: string
        direct_deposit_token:
          type: string
        early_direct_deposit:
          type: string
        individual_identification_number:
          type: string
        individual_name:
          type: string
        last_modified_time:
          format: date-time
          type: string
        originator_status_code:
          type: string
        reason:
          type: string
        reason_code:
          type: string
        settlement_date:
          format: date-time
          type: string
        standard_entry_class_code:
          type: string
        state:
          enum:
            - PENDING
            - APPLIED
            - REVERSED
            - REJECTED
          type: string
        token:
          type: string
        trace_number:
          type: string
        transaction_token:
          type: string
        type:
          type: string
        user_token:
          type: string
      type: object
    DisputeModel:
      description: Contains information about a disputed transaction.
      properties:
        case_management_identifier:
          description: The unique identifier of the dispute case.
          type: string
        reason:
          description: The reason for the dispute.
          type: string
      type: object
    ExpirationOffset:
      properties:
        min_offset:
          $ref: '#/components/schemas/MinOffset'
        unit:
          description: specify if a value is provided; default is YEARS
          enum:
            - YEARS
            - MONTHS
            - DAYS
            - HOURS
            - MINUTES
            - SECONDS
          type: string
        value:
          description: specify if unit is provided; default is 4
          format: int32
          type: integer
      type: object
    FeeListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            An array of fee objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/fee_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    ForbiddenError:
      properties:
        error_code:
          enum:
            - '403'
          type: string
        error_message:
          type: string
      required:
        - error_code
        - error_message
      type: object
    FraudFeedbackRequest:
      description: of the fraud object
      properties:
        actor:
          description: This is the party making a call.
          enum:
            - UNKNOWN
            - THIRD_PARTY_FRAUD
            - CARD_USER_FRAUD
          type: string
        amount:
          type: string
        is_fraud:
          type: boolean
        status:
          description: This is the value of the status of the fraud.
          enum:
            - CONFIRMED
            - DISPUTED
          type: string
        transaction_token:
          maxLength: 64
          minLength: 3
          type: string
      required:
        - actor
        - amount
        - is_fraud
        - status
        - transaction_token
      type: object
    FraudFeedbackResponse:
      description: of the fraudfeedback response object
      properties:
        message:
          maxLength: 256
          type: string
      required:
        - message
      type: object
    FulfillmentAddressResponse:
      description: Specifies a fulfillment shipping or return address.
      properties:
        address1:
          description: |-
            Number and street of the address.

            This field is returned if it exists in the resource.
          maxLength: 255
          minLength: 0
          type: string
        address2:
          description: |-
            Additional address information.

            This field is returned if it exists in the resource.
          maxLength: 255
          minLength: 0
          type: string
        city:
          description: |-
            City of the address.

            This field is returned if it exists in the resource.
          maxLength: 40
          minLength: 0
          type: string
        country:
          description: |-
            Country of the address.

            This field is returned if it exists in the resource.
          maxLength: 40
          minLength: 0
          type: string
        first_name:
          description: |-
            First name of the addressee.

            This field is returned if it exists in the resource.
          maxLength: 40
          minLength: 0
          type: string
        last_name:
          description: |-
            Last name of the addressee.

            This field is returned if it exists in the resource.
          maxLength: 40
          minLength: 0
          type: string
        middle_name:
          description: |-
            Middle name of the addressee.

            This field is returned if it exists in the resource.
          maxLength: 40
          minLength: 0
          type: string
        phone:
          description: |-
            Telephone number of the addressee.

            This field is returned if it exists in the resource.
          maxLength: 20
          minLength: 0
          type: string
        postal_code:
          description: |-
            Postal code of the address.

            This field is returned if it exists in the resource.
          maxLength: 10
          minLength: 0
          type: string
        state:
          description: |-
            State or province of the address.

            This field is returned if it exists in the resource.
          maxLength: 32
          minLength: 0
          type: string
        zip:
          description: |-
            United States ZIP code of the address.

            This field is returned if it exists in the resource.
          maxLength: 10
          minLength: 0
          type: string
      type: object
    FulfillmentRequest:
      properties:
        card_personalization:
          $ref: '#/components/schemas/card_personalization'
        shipping:
          $ref: '#/components/schemas/shipping'
      required:
        - card_personalization
      type: object
    FulfillmentResponse:
      properties:
        card_personalization:
          $ref: '#/components/schemas/card_personalization'
        shipping:
          $ref: '#/components/schemas/ShippingInformationResponse'
      required:
        - card_personalization
      type: object
    FundingAccountListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of funding account objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/funding_account_response_model'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    GPA:
      properties:
        reload_amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        trigger_amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
      required:
        - reload_amount
        - trigger_amount
      type: object
    GPAUnloadListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of GPA unload order objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/gpa_returns'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    IdentificationRequestModel:
      description: Contains identifications associated with the cardholder.
      properties:
        expiration_date:
          description: Expiration date of the identification, if applicable.
          type: string
        type:
          description: |-
            Type of identification.

            *NOTE:* Full Social Security Number (SSN) is required for US-based cardholder KYC verification.
            Nine digits only, no delimiters.
            `123456789`, for example.
          enum:
            - SSN
            - TIN
            - SIN
            - NIN
            - PASSPORT_NUMBER
            - DRIVERS_LICENSE
            - BUSINESS_NUMBER
            - BUSINESS_TAX_ID
            - TAXPAYER_REFERENCE
          readOnly: true
          type: string
        value:
          description: Number associated with the identification.
          readOnly: true
          type: string
      required:
        - type
      type: object
    IdentificationResponseModel:
      description: Contains identifications associated with the cardholder.
      properties:
        expiration_date:
          description: Expiration date for the identification, if applicable.
          readOnly: true
          type: string
        type:
          description: Type of identification.
          enum:
            - SSN
            - TIN
            - SIN
            - NIN
            - PASSPORT_NUMBER
            - DRIVERS_LICENSE
            - BUSINESS_NUMBER
            - BUSINESS_TAX_ID
            - TAXPAYER_REFERENCE
          readOnly: true
          type: string
        value:
          description: Number associated with the identification.
          readOnly: true
          type: string
      type: object
    ImagesCarrier:
      description: Specifies personalized images that appear on the card carrier.
      properties:
        message_1:
          description: Specifies a custom message that appears on the card carrier.
          type: string
        name:
          description: Specifies a PNG image to display on the card carrier.
          type: string
      type: object
    InternalDigitalWallet:
      properties:
        address_verification:
          $ref: '#/components/schemas/address_verification'
        card:
          $ref: '#/components/schemas/internal_card'
        created_time:
          format: date-time
          type: string
        device:
          $ref: '#/components/schemas/device'
        fulfillment_status:
          type: string
        id:
          format: int64
          type: integer
        issuer_eligibility_decision:
          type: string
        last_modified_time:
          format: date-time
          type: string
        response:
          $ref: '#/components/schemas/response'
        state:
          type: string
        state_reason:
          type: string
        token:
          type: string
        token_service_provider:
          $ref: '#/components/schemas/token_service_provider'
        wallet_provider_profile:
          $ref: '#/components/schemas/wallet_provider_profile'
      type: object
    InternalGPAOrder:
      properties:
        amount:
          type: number
        created_time:
          format: date-time
          type: string
        currency:
          type: string
        fundingSource:
          $ref: '#/components/schemas/internal_funding_source'
        last_modified_time:
          format: date-time
          type: string
        memo:
          type: string
        orderState:
          enum:
            - PENDING
            - REVERSED
            - CLEARED
            - COMPLETION
            - DECLINED
            - ERROR
          type: string
        orderType:
          type: string
        originalOrderId:
          type: string
        responseCode:
          type: string
        responseMemo:
          type: string
        tags:
          type: string
        token:
          type: string
      required:
        - amount
        - token
      type: object
    InternalGatewayLog:
      properties:
        amount:
          type: number
        apiDuration:
          format: int64
          type: integer
        funding_source:
          $ref: '#/components/schemas/internal_funding_source'
        gatewayDuration:
          format: int64
          type: integer
        gatewayMerchant:
          $ref: '#/components/schemas/InternalGatewayMerchant'
        gatewayRequestMethod:
          type: string
        gatewayResponseMessage:
          type: string
        gatewayTransactionId:
          type: string
        gatewayVersion:
          type: string
        internalUser:
          $ref: '#/components/schemas/internal_user'
        memo:
          type: string
        network_metadata:
          $ref: '#/components/schemas/network_metadata'
        orderId:
          type: string
        requestMethod:
          type: string
        responseCode:
          type: string
        responseMessage:
          type: string
        responseReasonCode:
          type: string
        responseStatus:
          type: string
        responseSubCode:
          type: string
      required:
        - funding_source
      type: object
    InternalGatewayMerchant:
      properties:
        id:
          format: int64
          type: integer
        token:
          type: string
      required:
        - id
        - token
      type: object
    InternalServerError:
      properties:
        error_code:
          enum:
            - '500'
          type: string
        error_message:
          type: string
      required:
        - error_code
        - error_message
      type: object
    InternalTransactionResponse:
      properties:
        response:
          $ref: '#/components/schemas/response'
      type: object
    KYCListResponse:
      properties:
        count:
          description: |-
            Number of resources in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of KYC verification response objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/kyc_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    LinkedAccountBalanceResponse:
      properties:
        account_balance:
          type: number
        available_balance:
          type: number
        balance_iso_currency_code:
          type: string
        created_time:
          format: date-time
          type: string
        last_modified_time:
          format: date-time
          type: string
        processor_token:
          type: string
      type: object
    MCCGroupListResponse:
      properties:
        count:
          description: |-
            The number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            An array of MCC group objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/mcc_group_model'
          type: array
        end_index:
          description: |-
            The sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            The sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    MSA:
      properties:
        campaign_token:
          type: string
        reload_amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        trigger_amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
      required:
        - campaign_token
        - reload_amount
        - trigger_amount
      type: object
    MerchantGroupListResponse:
      properties:
        count:
          description: |-
            Number of resources retrieved.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of merchant group resources.

            Resources are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/merchant_group_response'
          type: array
        end_index:
          description: |-
            The sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    MerchantModel:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        name:
          maxLength: 40
          minLength: 0
          type: string
        partial_auth_flag:
          default: true
          type: boolean
        phone:
          maxLength: 10
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 2
          minLength: 0
          type: string
        token:
          description: The unique identifier of the merchant
          maxLength: 36
          minLength: 1
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      required:
        - name
      type: object
    MerchantUpdateModel:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        name:
          maxLength: 40
          minLength: 0
          type: string
        partial_auth_flag:
          default: true
          description: 1 char max
          type: boolean
        phone:
          maxLength: 40
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 255
          minLength: 0
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      type: object
    MinOffset:
      properties:
        unit:
          description: specify if a value is provided; default is expiration_offset.unit
          enum:
            - YEARS
            - MONTHS
            - DAYS
            - HOURS
            - MINUTES
            - SECONDS
          type: string
        value:
          description: specify if unit is provided; default is expiration_offset.value
          format: int32
          type: integer
      type: object
    OfferUpdateModel:
      properties:
        active:
          default: true
          type: boolean
        end_date:
          description: yyyy-MM-ddThh:mm:ssZ
          type: string
        name:
          description: 255 char max
          type: string
        start_date:
          description: yyyy-MM-ddThh:mm:ssZ
          type: string
      type: object
    OrderScope:
      properties:
        gpa:
          $ref: '#/components/schemas/GPA'
        msa:
          $ref: '#/components/schemas/MSA'
      type: object
    PTCAddress:
      properties:
        city:
          maxLength: 40
          minLength: 1
          type: string
        country:
          maxLength: 3
          minLength: 3
          type: string
        county:
          maxLength: 3
          minLength: 3
          type: string
        line1:
          maxLength: 255
          minLength: 1
          type: string
        line2:
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          type: string
        state:
          type: string
      required:
        - city
        - county
        - line1
        - postal_code
        - state
      type: object
    PTCPhone:
      properties:
        country_code:
          type: string
        number:
          maxLength: 14
          minLength: 4
          type: string
      required:
        - number
      type: object
    PTCSoftDescriptor:
      properties:
        address:
          $ref: '#/components/schemas/PTCAddress'
        email:
          type: string
        name:
          maxLength: 50
          minLength: 0
          type: string
        phone:
          $ref: '#/components/schemas/PTCPhone'
      required:
        - address
        - name
      type: object
    PrimaryContactInfoModel:
      properties:
        department:
          maxLength: 255
          minLength: 0
          type: string
        email:
          maxLength: 255
          minLength: 0
          type: string
        extension:
          maxLength: 255
          minLength: 0
          type: string
        fax:
          maxLength: 255
          minLength: 0
          type: string
        full_name:
          maxLength: 255
          minLength: 0
          type: string
        mobile:
          maxLength: 255
          minLength: 0
          type: string
        phone:
          maxLength: 255
          minLength: 0
          type: string
        title:
          maxLength: 255
          minLength: 0
          type: string
      type: object
    ProgramReserveTransactionListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            List of program reserve transactions.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/program_reserve_transaction_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    ProgramTransferListResponse:
      properties:
        count:
          description: |-
            Number of program transfer resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of program transfer objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/program_transfer_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    ProgramTransferTypeListResponse:
      properties:
        count:
          description: |-
            Number of program transfer resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of program transfer types.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/program_transfer_type_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    PushToCardDisburseListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/push_to_card_disbursement_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    PushToCardListResponse:
      properties:
        count:
          format: int32
          type: integer
        data:
          items:
            $ref: '#/components/schemas/push_to_card_response'
          type: array
        end_index:
          format: int32
          type: integer
        is_more:
          default: false
          type: boolean
        start_index:
          format: int32
          type: integer
      type: object
    RealTimeFeeGroupListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of real time fee group objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/real_time_fee_group'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    ReversalModel:
      properties:
        amount:
          type: number
        find_original_window_days:
          format: int32
          type: integer
        is_advice:
          default: false
          type: boolean
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_token:
          maxLength: 36
          minLength: 1
          type: string
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - original_transaction_token
      type: object
    ShippingInformationResponse:
      description: |-
        Specifies shipping details for the order.

        This object is returned if it exists in the resource.
      properties:
        care_of_line:
          description: |-
            Specifies the value of the care of (C/O) line on the mailing carrier.

            This field is returned if it exists in the resource.
          type: string
        method:
          description: |-
            Specifies the shipping service.

            This field is returned if it exists in the resource.
          enum:
            - LOCAL_MAIL
            - LOCAL_MAIL_PACKAGE
            - GROUND
            - TWO_DAY
            - OVERNIGHT
            - INTERNATIONAL
            - INTERNATIONAL_PRIORITY
            - LOCAL_PRIORITY
            - FEDEX_EXPEDITED
            - FEDEX_REGULAR
            - UPS_EXPEDITED
            - UPS_REGULAR
            - USPS_EXPEDITED
            - USPS_REGULAR
          type: string
        recipient_address:
          $ref: '#/components/schemas/FulfillmentAddressResponse'
        return_address:
          $ref: '#/components/schemas/FulfillmentAddressResponse'
      type: object
    Special:
      properties:
        merchant_on_boarding:
          default: false
          type: boolean
      type: object
    TransactionModelListResponse:
      properties:
        count:
          description: |-
            The number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            An array of transaction objects.
            See the <</core-api/transactions/#transaction_model, Transaction object>> description at the top of this page.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/transaction_model'
          type: array
        end_index:
          description: |-
            The sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            The sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    UnauthorizedError:
      properties:
        error_code:
          enum:
            - '401'
          type: string
        error_message:
          type: string
      required:
        - error_code
        - error_message
      type: object
    UserCardHolderListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of user objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/card_holder_model'
          type: array
        end_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    UserCardHolderUpdateModel:
      properties:
        account_holder_group_token:
          description: |-
            Associates the specified account holder group with the cardholder.
            Send a `GET` request to `/accountholdergroups` to retrieve account holder group tokens.
          maxLength: 36
          minLength: 0
          type: string
        address1:
          description: |-
            Cardholder address.

            *NOTE:* Required for KYC verification (US-based cardholders only).
            Cannot perform KYC if set to a PO Box.
          maxLength: 255
          minLength: 0
          type: string
        address2:
          description: |-
            Additional address information for the cardholder.

            *NOTE:* Cannot perform KYC if set to a PO Box.
          maxLength: 255
          minLength: 0
          type: string
        birth_date:
          description: |-
            Cardholder date of birth.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          type: string
        city:
          description: |-
            The city that corresponds to the address.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        company:
          description: Company name.
          maxLength: 255
          minLength: 0
          type: string
        corporate_card_holder:
          default: false
          description: Specifies if the cardholder holds a corporate card.
          type: boolean
        country:
          description: |-
            Country in which the cardholder resides.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        email:
          description: |-
            Valid email address for the cardholder.

            This value must be unique among cardholders.
          maxLength: 255
          minLength: 1
          type: string
        first_name:
          description: |-
            Cardholder first name.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        gender:
          description: Gender of the cardholder.
          enum:
            - F
            - M
          maxLength: 1
          minLength: 0
          type: string
        honorific:
          description: 'Cardholder title or prefix: Ms., Mr., Miss, Mrs.'
          maxLength: 10
          minLength: 0
          type: string
        id_card_expiration_date:
          description: Expiration date of the cardholder's identification card.
          type: string
        id_card_number:
          description: Cardholder's identification card number.
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          description: One or more objects containing identifications associated with
            the cardholder.
          items:
            $ref: '#/components/schemas/IdentificationRequestModel'
          type: array
        ip_address:
          description: Cardholder IP address.
          maxLength: 39
          minLength: 0
          type: string
        last_name:
          description: |-
            Cardholder last name.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Associates any additional metadata you provide with the cardholder.
          type: object
        middle_name:
          description: Cardholder middle name.
          maxLength: 40
          minLength: 0
          type: string
        nationality:
          description: Cardholder nationality.
          maxLength: 255
          minLength: 0
          type: string
        notes:
          description: Any additional information pertaining to the cardholder.
          maxLength: 255
          minLength: 0
          type: string
        parent_token:
          description: |-
            Unique identifier of an existing user or business resource.

            Required if `uses_parent_account = true`.
            This account holder is configured as the parent of the current cardholder.

            To unlink a child account from a parent account, update this field to a null value.
          maxLength: 36
          minLength: 1
          type: string
        passport_expiration_date:
          description: Expiration date of the cardholder's passport.
          type: string
        passport_number:
          description: Cardholder passport number.
          maxLength: 40
          minLength: 0
          type: string
        password:
          description: Cardholder's user account password on the Marqeta platform.
          maxLength: 255
          minLength: 0
          type: string
        phone:
          description: |-
            Cardholder telephone number (including area code), prepended by the `+` symbol and the 1- to 3-digit country calling code.
            Do not include hyphens, spaces, or parentheses.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: |-
            Postal code of the cardholder's address.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 10
          minLength: 0
          type: string
        ssn:
          description: Cardholder's Social Security Number (SSN).
          type: string
        state:
          description: |-
            State where the cardholder resides.

            *NOTE:* <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid two-character abbreviation>> required for KYC verification (US-based cardholders only).
          maxLength: 32
          minLength: 0
          type: string
        token:
          description: Unique identifier of the cardholder.
          maxLength: 36
          minLength: 1
          type: string
        uses_parent_account:
          default: false
          description: |-
            Indicates whether the child shares balances with the parent (`true`), or the child's balances are independent of the parent (`false`).

            If set to `true`, you must also include a `parent_token` in the request.
            This value cannot be updated.
          type: boolean
      type: object
    UserTransitionListResponse:
      properties:
        count:
          description: |-
            Number of resources retrieved.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of user transition resources.

            Resources are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/UserTransitionResponse'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    UserTransitionRequest:
      properties:
        channel:
          description: Mechanism by which the transaction was initiated.
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        idempotentHash:
          description: Unique hashed value that identifies subsequent submissions
            of the user transition request.
          type: string
        reason:
          description: Additional information about the status change.
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          description: |-
            Identifies the standardized reason for the transition:

            *00:* Object activated for the first time.

            *01:* Requested by you.

            *02:* Inactivity over time.

            *03:* This address cannot accept mail or the addressee is unknown.

            *04:* Negative account balance.

            *05:* Account under review.

            *06:* Suspicious activity was identified.

            *07:* Activity outside the program parameters was identified.

            *08:* Confirmed fraud was identified.

            *09:* Matched with an Office of Foreign Assets Control list.

            *10:* Card was reported lost.

            *11:* Card information was cloned.

            *12:* Account or card information was compromised.

            *13:* Temporary status change while on hold/leave.

            *14:* Initiated by Marqeta.

            *15:* Initiated by issuer.

            *16:* Card expired.

            *17:* Failed KYC.

            *18:* Changed to `ACTIVE` because information was properly validated.

            *19:* Changed to `ACTIVE` because account activity was properly validated.

            *20:* Change occurred prior to the normalization of reason codes.

            *21:* Initiated by a third party, often a digital wallet provider.

            *22:* PIN retry limit reached.

            *23:* Card was reported stolen.

            *24:* Address issue.

            *25:* Name issue.

            *26:* SSN issue.

            *27:* DOB issue.

            *28:* Email issue.

            *29:* Phone issue.

            *30:* Account/fulfillment mismatch.

            *31:* Other reason.
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        status:
          description: Specifies the new status of the user.
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
            - TERMINATED
          type: string
        token:
          description: |-
            Unique identifier of the user transition.

            If you do not include a token, the system generates one automatically.
            This token is referenced in other API calls, so we recommend that you define a simple string that is easy to remember.
            This value cannot be updated.
          type: string
        user_token:
          description: Unique identifier of the user whose status you want to transition.
          type: string
      required:
        - channel
        - reason_code
        - status
        - user_token
      type: object
    UserTransitionResponse:
      properties:
        channel:
          description: Mechanism by which the transaction was initiated.
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        reason:
          description: Additional information about the status change.
          type: string
        reason_code:
          description: |-
            Identifies the standardized reason for the transition:

            *00:* Object activated for the first time.

            *01:* Requested by you.

            *02:* Inactivity over time.

            *03:* This address cannot accept mail or the addressee is unknown.

            *04:* Negative account balance.

            *05:* Account under review.

            *06:* Suspicious activity was identified.

            *07:* Activity outside the program parameters was identified.

            *08:* Confirmed fraud was identified.

            *09:* Matched with an Office of Foreign Assets Control list.

            *10:* Card was reported lost.

            *11:* Card information was cloned.

            *12:* Account or card information was compromised.

            *13:* Temporary status change while on hold/leave.

            *14:* Initiated by Marqeta.

            *15:* Initiated by issuer.

            *16:* Card expired.

            *17:* Failed KYC.

            *18:* Changed to `ACTIVE` because information was properly validated.

            *19:* Changed to `ACTIVE` because account activity was properly validated.

            *20:* Change occurred prior to the normalization of reason codes.

            *21:* Initiated by a third party, often a digital wallet provider.

            *22:* PIN retry limit reached.

            *23:* Card was reported stolen.

            *24:* Address issue.

            *25:* Name issue.

            *26:* SSN issue.

            *27:* DOB issue.

            *28:* Email issue.

            *29:* Phone issue.

            *30:* Account/fulfillment mismatch.

            *31:* Other reason.
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        status:
          description: Specifies the new status of the user.
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
            - TERMINATED
          type: string
        token:
          description: Unique identifier of the user transition.
          type: string
        user_token:
          description: Unique identifier of the user whose status was transitioned.
          type: string
      required:
        - channel
        - reason_code
        - status
        - token
      type: object
    UserValidationRequest:
      properties:
        birth_date:
          description: yyyy-MM-dd
          format: date-time
          type: string
        phone:
          description: 'Phone #'
          maxLength: 255
          minLength: 0
          type: string
        random_name_line1_postfix:
          description: Six-char random name postfix
          maxLength: 6
          minLength: 6
          type: string
        ssn:
          description: Last four digits of SSN
          maxLength: 255
          minLength: 0
          type: string
      type: object
    UserValidationResponse:
      properties:
        birth_date:
          default: false
          description: yyyy-MM-dd
          type: boolean
        phone:
          default: false
          description: 10 char max, phone number
          type: boolean
        random_name_line1_postfix:
          default: false
          description: Six-char random name postfix
          type: boolean
        ssn:
          default: false
          description: Last four digits of SSN
          type: boolean
      required:
        - birth_date
        - phone
        - random_name_line1_postfix
        - ssn
      type: object
    ValidationsRequest:
      properties:
        user:
          $ref: '#/components/schemas/UserValidationRequest'
      type: object
    ValidationsResponse:
      properties:
        user:
          $ref: '#/components/schemas/UserValidationResponse'
      required:
        - user
      type: object
    VelocityCache:
      properties:
        cardHolderId:
          format: int64
          type: integer
        createdTime:
          format: date-time
          type: string
        lastModifiedTime:
          format: date-time
          type: string
        maxId:
          format: int64
          type: integer
        usageCount:
          format: int32
          type: integer
        usedAmount:
          type: number
        vcSignature:
          type: string
        velocityControlId:
          format: int64
          type: integer
        windowStartTime:
          format: date-time
          type: string
      type: object
    VelocityControlBalanceListResponse:
      properties:
        count:
          description: |-
            Number of velocity control resources retrieved.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of velocity control objects that include available balances.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/velocity_control_balance_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    VelocityControlListResponse:
      properties:
        count:
          description: |-
            Number of resources retrieved.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of velocity control objects.

            Objects are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/velocity_control_response'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            The sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    WebhookResponseModelListResponse:
      properties:
        count:
          description: |-
            Number of resources to retrieve.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        data:
          description: |-
            Array of webhooks resources.

            Resources are returned as appropriate to your query.
          items:
            $ref: '#/components/schemas/webhook_response_model'
          type: array
        end_index:
          description: |-
            Sort order index of the last resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
        is_more:
          default: false
          description: |-
            A value of `true` indicates that more unreturned resources exist.
            A value of `false` indicates that no more unreturned resources exist.

            This field is returned if there are resources in your returned array.
          type: boolean
        start_index:
          description: |-
            Sort order index of the first resource in the returned array.

            This field is returned if there are resources in your returned array.
          format: int32
          type: integer
      type: object
    WebhookUpdateCustomHeaderRequest:
      properties:
        custom_header:
          additionalProperties:
            type: string
          description: |-
            Additional custom information included in the HTTP header.
            For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request.
          type: object
      type: object
    accepted_countries_model:
      properties:
        country_codes:
          items:
            type: string
          type: array
        created_time:
          format: date-time
          type: string
        is_whitelist:
          default: false
          type: boolean
        last_modified_time:
          format: date-time
          type: string
        name:
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - country_codes
        - is_whitelist
        - name
      type: object
    access_token_response:
      description: Contains a cardholder's login access information.
      properties:
        accesstoken_id:
          type: string
        application:
          $ref: '#/components/schemas/Application'
        expires:
          description: Date and time when the access token expires.
          format: date-time
          type: string
        master_roles:
          description: Array of master roles.
          items:
            type: string
          type: array
        one_time:
          description: Indicates whether the access token is a single-use token.
          type: boolean
        token:
          description: Unique identifier of the access token.
          type: string
        token_type:
          description: Specifies the type of access token.
          type: string
        user_token:
          description: Unique identifier of the user resource.
          type: string
      required:
        - expires
      type: object
    account:
      description: Contains information related to the cardholder and provided by
        the digital wallet provider.
      properties:
        email_address:
          description: Digital wallet provider's email address for the cardholder.
          type: string
        id:
          description: Digital wallet provider's identity number for the cardholder.
          type: string
        score:
          description: Score from the digital wallet provider.
          type: string
      type: object
    account_funding:
      description: |-
        Contains details about account funding transactions.
        Account funding transactions move money into a cardholder's general purpose account (GPA).
      properties:
        funding_source:
          description: Specifies the type of account from which the transaction was
            funded.
          enum:
            - CREDIT
            - DEBIT
            - PREPAID
            - DEPOSIT_ACCOUNT
            - CASH
            - MOBILE_MONEY_ACCOUNT
            - NON_VISA_CREDIT
            - CHECK
            - ACH
          type: string
        receiver_account_type:
          description: Specifies the type of account receiving the funding.
          enum:
            - OTHER
            - RTN_BANK_ACCOUNT
            - IBAN
            - CARD_ACCOUNT
            - EMAIL
            - PHONE_NUMBER
            - BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE
            - WALLET_ID
            - SOCIAL_NETWORK_ID
          type: string
        receiver_name:
          description: Specifies the name of the account holder receiving the funding.
          type: string
        screening_score:
          description: |-
            Sanctions screening score to assist with meeting Anti-Money Laundering (AML) obligations.

            Higher scores indicate that the sender's data more closely resembles an entry on the regulatory watchlist.

            A value of 999 means no score was available.
          type: string
        sender_account_number:
          description: Account number of the sender funding the transaction.
          type: string
        sender_address:
          description: Street address of the sender funding the transaction.
          type: string
        sender_city:
          description: City of the sender funding the transaction.
          type: string
        sender_country:
          description: Country of the sender funding the transaction.
          type: string
        sender_name:
          description: Name of the sender funding the transaction.
          type: string
        sender_state:
          description: State or province of the sender funding the transaction.
          type: string
        transaction_purpose:
          description: Describes the purpose of the account funding transaction.
          type: string
        transaction_type:
          description: Specifies the account funding transaction type.
          enum:
            - ACCOUNT_TO_ACCOUNT
            - PERSON_TO_PERSON
            - WALLET_TRANSFER
            - MONEY_TRANSFER_BY_BANK
            - BUSINESS_TO_BUSINESS
            - DISBURSEMENT
            - GOVERNMENT_DISBURSEMENT
            - GAMBLING_PAYOUT
            - LOYALTY
            - MERCHANT_DISBURSEMENT
            - ONLINE_GAMBLING_PAYOUT
            - PENSION_DISBURSEMENT
            - PREPAID_LOADS
            - CARD_BILL_PAYMENT
            - BILL_PAYMENT
            - CASH_CLAIM
            - CASH_IN
            - CASH_OUT
            - MOBILE_AIR_TIME_PAYMENT
            - MONEY_TRANSFER_BY_MERCHANT
            - FACE_TO_FACE_MERCHANT_PAYMENT
            - GOVERNMENT_PAYMENT
            - PAYMENTS_GOODS_SERVICES
            - FUNDS_TRANSFER
            - GENERAL_BUSINESS_TO_BUSINESS_TRANSFER
            - BUSINESS_TO_BUSINESS_TRANSFER
            - CASH_DEPOSIT
            - PURCHASE_REPAYMENT
            - AFT_OR_OCT_ELIGIBILITY
            - CONSUMER_BILL_PAYMENT
            - REQUEST_TO_PAY
            - LIQUID_ASSET
            - FAST_REFUND
          type: string
      type: object
    account_holder_group_config:
      properties:
        is_reloadable:
          default: false
          type: boolean
        kyc_required:
          enum:
            - ALWAYS
            - CONDITIONAL
            - NEVER
          type: string
        pre_kyc_controls:
          $ref: '#/components/schemas/pre_kyc_controls'
        real_time_fee_group_token:
          maxLength: 36
          minLength: 0
          type: string
      type: object
    account_holder_group_request:
      properties:
        config:
          $ref: '#/components/schemas/account_holder_group_config'
        name:
          maxLength: 40
          minLength: 1
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      type: object
    account_holder_group_response:
      properties:
        config:
          $ref: '#/components/schemas/account_holder_group_config'
        name:
          description: 40 char max
          type: string
        token:
          description: 36 char max
          type: string
      type: object
    account_holder_group_update_request:
      properties:
        config:
          $ref: '#/components/schemas/account_holder_group_config'
        name:
          maxLength: 40
          minLength: 1
          type: string
      type: object
    account_name_verification_model:
      description: 'Contains name verification data: the full name entered by the
        cardholder, name data held by the Marqeta platform, and an assertion by the
        Marqeta platform as to whether the two sets of data match.'
      properties:
        on_file:
          $ref: '#/components/schemas/ani_information'
        request:
          $ref: '#/components/schemas/ani_information'
        request_type:
          enum:
            - SENDER
            - RECEIVER
          type: string
        response:
          $ref: '#/components/schemas/response'
      type: object
    account_name_verification_source:
      description: Contains account name verification data used to make JIT Funding
        decisions.
      properties:
        first_name:
          description: First or given name of the cardholder.
          type: string
        last_name:
          description: Last or family name of the cardholder.
          type: string
        middle_name:
          description: Middle name of the cardholder.
          type: string
        on_file:
          $ref: '#/components/schemas/ani_information'
        response:
          $ref: '#/components/schemas/response'
      type: object
    account_owner_model:
      description: Information about the owner of an account participating in an account
        funding or original credit transaction.
      properties:
        country_of_birth:
          description: Account owner's country of birth.
          type: string
        dob:
          description: Account owner's date of birth.
          type: string
        email_address:
          description: Account owner's email address.
          type: string
        nationality:
          description: Account owner's nationality.
          type: string
        occupation:
          description: Account owner's occupation.
          type: string
      type: object
    ach_model:
      properties:
        account_number:
          description: ACH account number.
          type: string
        account_type:
          description: Type of account.
          enum:
            - checking
            - savings
            - corporate
            - loan
          type: string
        bank_name:
          description: Name of the financial institution where the ACH account is
            held.
          type: string
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is required if a `user_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        name_on_account:
          description: Name on the ACH account.
          maxLength: 50
          minLength: 1
          type: string
        routing_number:
          description: Routing number for the ACH account.
          readOnly: true
          type: string
        token:
          description: |-
            Unique identifier of the funding source.
            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is required if a `business_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
        verification_notes:
          description: |-
            Free-form text field for holding notes about verification.
            This field is returned only if `verification_override = true`.
          type: string
        verification_override:
          default: false
          description: |-
            Allows the ACH funding source to be used, regardless of its verification status.
            Set this field to `true` if you can attest that you have verified the account on your own and that it will not be returned by the Federal Reserve.

            *NOTE:* When using `PLAID` to validate a funding source, this field is always set to `true`.
          type: boolean
      required:
        - account_number
        - account_type
        - name_on_account
        - routing_number
      type: object
    ach_partner_request_model:
      properties:
        business_token:
          description: Required if 'user_token' is null
          maxLength: 36
          minLength: 1
          type: string
        idempotentHash:
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        partner:
          description: |-
            Name of the partner who validated the account holder.
            Returned when a third-party partner was used for account validation.
          enum:
            - PLAID
          type: string
        partner_account_link_reference_token:
          description: |-
            Supplied by the account validation partner, this value is a reference to the account holder's details, such as the account number and routing number.
            Returned when a third-party partner was used for account validation.
          type: string
        token:
          description: |-
            Unique identifier of the funding source.
            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          type: string
        user_token:
          description: |-
            Supplied by the account validation partner, this value is a reference to the account holder's details, such as the account number and routing number.
            This token is required if a `business_token` is not specified.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - partner
        - partner_account_link_reference_token
      type: object
    ach_response_model:
      properties:
        account_suffix:
          description: ACH account identifier appended to the bank account number.
          type: string
        account_type:
          description: Type of account.
          type: string
        active:
          default: false
          description: Specifies whether the account is active.
          type: boolean
        bank_name:
          description: |-
            Name of the bank holding the account.
            This field is returned if it exists in the resource.
          type: string
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is returned if a `user_token` is not specified.
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        date_sent_for_verification:
          description: |-
            Date and time in UTC when the request for account validation was sent to the third-party partner.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        date_verified:
          description: |-
            Date and time when the account was verified, in UTC.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.

            This field is returned if it exists in the resource.
          type: boolean
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        name_on_account:
          description: Name on the ACH account.
          type: string
        partner:
          description: |-
            Name of the partner who validated the account holder.
            Returned when a third-party partner was used for account validation.
          type: string
        partner_account_link_reference_token:
          description: |-
            Supplied by the account validation partner, this value is a reference to the account holder's details, such as the account number and routing number.
            Returned when a third-party partner was used for account validation.
          type: string
        token:
          description: Unique identifier of the funding source.
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is returned if a `business_token` is not specified.
          type: string
        verification_notes:
          description: |-
            Free-form text field for holding notes about verification.
            This field is returned only if `verification_override = true`.
          type: string
        verification_override:
          default: false
          description: |-
            Allows the ACH funding source to be used regardless of its verification status.
            This field is returned if it exists in the resource.

            *NOTE:* When using `PLAID` to validate a funding source, this field is always set to `true`.
          type: boolean
        verification_status:
          description: |-
            Account verification status.
            This field is returned if it exists in the resource.
          type: string
      required:
        - account_suffix
        - account_type
        - active
        - created_time
        - last_modified_time
        - name_on_account
        - token
      type: object
    ach_verification_model:
      properties:
        active:
          default: false
          description: Indicates whether the ACH funding source is active.
          type: boolean
        verify_amount1:
          description: Verification amount.
          type: number
        verify_amount2:
          description: Verification amount.
          type: number
      type: object
    acquirer:
      description: Contains information about the merchant's financial institution.
      properties:
        city:
          description: |-
            City of the merchant's financial institution.
            This field appears only in account funding and original credit transactions.
          type: string
        country_code:
          description: |-
            Country code of the merchant's financial institution.
            This field appears only in account funding and original credit transactions.
          type: string
        institution_country:
          description: Country code of the merchant's financial institution.
          type: string
        institution_id_code:
          description: Identifier code of the merchant's financial institution.
          type: string
        merchant_street_address:
          description: |-
            Street address of the merchant.
            This field appears only in account funding and original credit transactions.
          type: string
        name:
          description: |-
            Name of the merchant's financial institution.
            This field appears only in account funding and original credit transactions.
          type: string
        network_international_id:
          description: International network identifier.
          type: string
        postal_code:
          description: |-
            Postal code of the merchant's financial institution.
            This field appears only in account funding and original credit transactions.
          type: string
        retrieval_reference_number:
          description: Retrieval reference number of the merchant's financial institution.
          type: string
        state:
          description: |-
            State where the merchant's financial institution is located.
            This field appears only in account funding and original credit transactions.
          type: string
        street_address:
          type: string
        system_trace_audit_number:
          description: System trace audit number of the merchant's financial institution.
          type: string
      type: object
    activation_actions:
      description: |-
        Defines actions to execute when the card is activated.
        The fields in this object are mutually exclusive.
      properties:
        swap_digital_wallet_tokens_from_card_token:
          description: |-
            Moves all digital wallet tokens from the specified card to the new card.

            Not relevant when `reissue_pan_from_card_token` is set.

            Send a `GET` request to `/cards/user/{token}` to retrieve card tokens for a particular user.
          maxLength: 36
          minLength: 1
          type: string
        terminate_reissued_source_card:
          default: true
          description: |-
            If you are reissuing a card, the source card is terminated by default.
            To prevent the source card from being terminated, set this field to `false`.

            Only relevant when `reissue_pan_from_card_token` is set.
          type: boolean
      type: object
    address_verification:
      description: Contains address verification information.
      properties:
        name:
          description: Name of the cardholder.
          type: string
        postal_code:
          description: Postal code.
          type: string
        street_address:
          description: Street address provided by the cardholder.
          type: string
        zip:
          description: United States ZIP code.
          type: string
      type: object
    address_verification_model:
      description: Contains address verification data consisting of address data entered
        by the cardholder, address data held by the Marqeta platform, and an assertion
        by the Marqeta platform as to whether the two sets of data match.
      properties:
        on_file:
          $ref: '#/components/schemas/avs_information'
        request:
          $ref: '#/components/schemas/avs_information'
        response:
          $ref: '#/components/schemas/response'
      type: object
    address_verification_source:
      description: Contains address verification data consisting of address data entered
        by the cardholder, address data held by the Marqeta platform, and an assertion
        by the Marqeta platform as to whether the two sets of data match.
      properties:
        on_file:
          $ref: '#/components/schemas/avs_information'
        response:
          $ref: '#/components/schemas/response'
      type: object
    airline:
      description: Contains information about airline-related transactions.
      properties:
        depart_date:
          description: The date and time of departure.
          format: date-time
          type: string
        origination_city:
          description: The city where the flight originates.
          type: string
        passenger_name:
          description: The name of the passenger.
          type: string
      type: object
    android_push_tokenize_request_data:
      description: Contains details about a card tokenization push request.
      properties:
        display_name:
          description: |-
            Name of the card as displayed in the digital wallet, typically showing the card brand and last four digits of the primary account number (PAN).
            `Visa 5678`, for example.
          type: string
        last_digits:
          description: Last four digits of the primary account number of the physical
            or virtual card.
          type: string
        network:
          description: Specifies the card network of the physical or virtual card.
          type: string
        opaque_payment_card:
          description: Encrypted data field created by the issuer and passed to Google
            Wallet during the push provisioning process.
          type: string
        token_service_provider:
          description: Specifies the network that provides the digital wallet token
            service.
          type: string
        user_address:
          $ref: '#/components/schemas/AndroidPushTokenRequestAddress'
      type: object
    ani_information:
      description: Contains the name of the cardholder for account name verification.
      properties:
        card_name:
          description: Full name of the cardholder as it appears on the card.
          type: string
        first_name:
          description: First or given name of the cardholder.
          type: string
        last_name:
          description: Last or family name of the cardholder.
          type: string
        middle_name:
          description: Middle name of the cardholder.
          type: string
      type: object
    ani_information_1:
      description: Contains account name verification data used to make JIT Funding
        decisions.
      properties:
        first_name:
          description: First or given name of the cardholder.
          type: string
        last_name:
          description: Last or family name of the cardholder.
          type: string
        middle_name:
          description: Middle name of the cardholder.
          type: string
      type: object
    atc_information:
      properties:
        atc_discrepancy_indicator:
          type: string
        atc_discrepancy_value:
          type: number
        atc_value:
          type: number
      type: object
    auth_control_exempt_mids_request:
      properties:
        association:
          $ref: '#/components/schemas/spend_control_association'
        end_time:
          format: date-time
          type: string
        merchant_group_token:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
        mid:
          maxLength: 36
          minLength: 1
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
        start_time:
          format: date-time
          type: string
        token:
          type: string
      required:
        - name
      type: object
    auth_control_exempt_mids_response:
      properties:
        active:
          default: false
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        created:
          format: date-time
          type: string
        end_time:
          format: date-time
          type: string
        last_updated:
          format: date-time
          type: string
        merchant_group_token:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
        mid:
          maxLength: 36
          minLength: 1
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
        start_time:
          format: date-time
          type: string
        token:
          type: string
      required:
        - name
      type: object
    auth_control_exempt_mids_update_request:
      properties:
        active:
          default: false
          type: boolean
      type: object
    auth_control_merchant_scope:
      properties:
        mcc:
          description: 4 char max
          maxLength: 4
          minLength: 1
          type: string
        mcc_group:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
        merchant_group_token:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
        mid:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
      type: object
    auth_control_request:
      properties:
        active:
          default: true
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        end_time:
          format: date-time
          type: string
        merchant_scope:
          $ref: '#/components/schemas/auth_control_merchant_scope'
        name:
          maxLength: 255
          minLength: 0
          type: string
        start_time:
          format: date-time
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
      type: object
    auth_control_response:
      properties:
        active:
          default: true
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        end_time:
          format: date-time
          type: string
        merchant_scope:
          $ref: '#/components/schemas/auth_control_merchant_scope'
        name:
          maxLength: 255
          minLength: 0
          type: string
        start_time:
          format: date-time
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
      type: object
    auth_control_update_request:
      properties:
        active:
          default: true
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        end_time:
          format: date-time
          type: string
        merchant_scope:
          $ref: '#/components/schemas/merchant_scope'
        name:
          maxLength: 255
          minLength: 0
          type: string
        start_time:
          format: date-time
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - token
      type: object
    auth_request_model:
      properties:
        amount:
          type: number
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_options:
          $ref: '#/components/schemas/card_options'
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        cash_back_amount:
          type: number
        is_pre_auth:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        network_metadata:
          $ref: '#/components/schemas/network_metadata'
        pin:
          maxLength: 50
          minLength: 1
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - card_token
        - mid
      type: object
    authorization_advice_model:
      properties:
        amount:
          type: number
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_token:
          maxLength: 36
          minLength: 1
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - original_transaction_token
      type: object
    authorization_controls:
      description: |-
        Controls the expiration of authorizations and automatic increases to the authorization amount for MCCs specified in this group.

        By default, these authorization controls apply program-wide, meaning that they apply to every card in your program.
        You can, however, exempt cards associated with any particular card product by setting that card product's `allow_mcc_group_authorization_controls` field to `false`.
      properties:
        hold_expiration_days:
          default: 7
          description: Specifies the number of days after which an authorization associated
            with this group expires.
          format: int32
          type: integer
        hold_increase:
          $ref: '#/components/schemas/hold_increase'
      type: object
    auto_reload_association:
      description: |-
        Specifies the scope of the auto reload.

        Input no more than one field.
        If no value is supplied, the auto reload applies at the program level.
      properties:
        business_token:
          description: |-
            Unique identifier of the business for which the auto reload is configured.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        card_product_token:
          description: |-
            Unique identifier of the card product for which the auto reload is configured.

            Send a `GET` request to `/cardproducts` to retrieve card product tokens.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user for which the auto reload is configured.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    auto_reload_model:
      description: |-
        Contains information about an auto reload.
        See <</core-api/auto-reload, Auto Reloads>> for more information.

        Returned if an auto reload was executed.
      properties:
        active:
          default: true
          description: |-
            Specifies whether the auto reload is active.

            Only one auto reload per level, per object, can be active.
          type: boolean
        association:
          $ref: '#/components/schemas/auto_reload_association'
        currency_code:
          description: Three-digit link:https://www.iso.org/iso-4217-currency-codes.html[ISO
            4217 currency code, window="_blank"].
          type: string
        funding_source_address_token:
          description: |-
            Unique identifier of the funding source address to use for this auto reload.

            If your funding source is an ACH account, then a `funding_source_address_token` is not required.
            If your funding source is a payment card, you must have at least one funding source address in order to create a GPA order.

            Send a `GET` request to `/fundingsources/addresses/user/{user_token}` to retrieve address tokens for a user.

            Send a `GET` request to `/fundingsources/addresses/business/{business_token}` to retrieve address tokens for a business.
          maxLength: 36
          minLength: 1
          type: string
        funding_source_token:
          description: |-
            Unique identifier of the funding source to use for this auto reload.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve funding source tokens for a user.

            Send a `GET` request to `/fundingsources/business/{business_token}` to retrieve funding source tokens for a business.
          maxLength: 36
          minLength: 1
          type: string
        order_scope:
          $ref: '#/components/schemas/order_scope'
        token:
          description: |-
            Unique identifier of the auto reload.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - currency_code
        - order_scope
      type: object
    auto_reload_response_model:
      properties:
        active:
          default: true
          type: boolean
        association:
          $ref: '#/components/schemas/auto_reload_association'
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        currency_code:
          type: string
        funding_source_address_token:
          maxLength: 36
          minLength: 1
          type: string
        funding_source_token:
          description: Required when order scope is GPA
          maxLength: 36
          minLength: 1
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        order_scope:
          $ref: '#/components/schemas/OrderScope'
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_time
        - currency_code
        - last_modified_time
        - order_scope
      type: object
    auto_reload_update_model:
      properties:
        active:
          default: true
          type: boolean
        association:
          $ref: '#/components/schemas/auto_reload_association'
        currency_code:
          type: string
        funding_source_address_token:
          maxLength: 36
          minLength: 1
          type: string
        funding_source_token:
          maxLength: 36
          minLength: 1
          type: string
        order_scope:
          $ref: '#/components/schemas/OrderScope'
        token:
          maxLength: 36
          minLength: 1
          type: string
      type: object
    available:
      description: |-
        Specifies the available balances of the velocity controls associated with a user.

        This object is not returned if the velocity control window is `TRANSACTION`, because available balances do not apply to single-transaction velocity windows.
      properties:
        amount:
          description: Total amount of spend remaining in the velocity control.
          exclusiveMinimum: false
          minimum: 0
          type: number
        days_remaining:
          description: Number of days remaining in the velocity control time window.
          format: int32
          type: integer
        uses:
          default: 0
          description: Number of uses remaining in the velocity control.
          format: int32
          type: integer
      required:
        - amount
        - uses
      type: object
    avs_control_options:
      properties:
        decline_on_address_number_mismatch:
          default: false
          type: boolean
        decline_on_postal_code_mismatch:
          default: true
          type: boolean
        validate:
          default: true
          type: boolean
      type: object
    avs_controls:
      properties:
        auth_messages:
          $ref: '#/components/schemas/avs_control_options'
        av_messages:
          $ref: '#/components/schemas/avs_control_options'
      type: object
    avs_information:
      description: Contains address verification information.
      properties:
        postal_code:
          description: Postal code of the address.
          type: string
        street_address:
          description: Street name and number of the address.
          type: string
        zip:
          description: United States ZIP code of the address.
          type: string
      type: object
    balance_inquiry_request_model:
      properties:
        account_type:
          enum:
            - checking
            - savings
            - credit
          type: string
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        pin:
          maxLength: 15
          minLength: 1
          type: string
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - account_type
        - card_acceptor
        - card_token
        - mid
      type: object
    bank_account_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            account_suffix:
              type: string
            account_type:
              type: string
            business_token:
              description: Required if 'user_token' is null
              type: string
            name_on_account:
              type: string
            routing_number:
              type: string
            user_token:
              description: Required if 'business_token' is null
              type: string
            verification_status:
              type: string
          required:
            - account_suffix
            - account_type
            - name_on_account
            - routing_number
            - verification_status
          type: object
    bank_transfer_request_model:
      properties:
        amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        channel:
          description: default = API
          enum:
            - API
            - SYSTEM
            - ADMIN
          type: string
        created_by:
          maxLength: 255
          minLength: 0
          type: string
        currency_code:
          description: default = USD
          type: string
        funding_source_token:
          maxLength: 36
          minLength: 0
          type: string
        memo:
          type: string
        standard_entry_class_code:
          enum:
            - WEB
            - PPD
            - CCD
          type: string
        statement_descriptor:
          maxLength: 10
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
        transfer_speed:
          description: default = STANDARD
          enum:
            - STANDARD
            - SAME_DAY
          type: string
        type:
          enum:
            - PUSH
            - PULL
          type: string
      required:
        - amount
        - funding_source_token
        - type
      type: object
    bank_transfer_response_model:
      properties:
        amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        batch_number:
          type: string
        channel:
          description: default = API
          enum:
            - API
            - SYSTEM
            - ADMIN
          type: string
        created_by:
          maxLength: 255
          minLength: 0
          type: string
        created_time:
          format: date-time
          type: string
        currency_code:
          description: default = USD
          type: string
        funding_source_token:
          maxLength: 36
          minLength: 0
          type: string
        is_early_funded:
          type: boolean
        last_modified_time:
          format: date-time
          type: string
        memo:
          type: string
        return_code:
          type: string
        return_reason:
          type: string
        standard_entry_class_code:
          enum:
            - WEB
            - PPD
            - CCD
          type: string
        statement_descriptor:
          maxLength: 10
          minLength: 0
          type: string
        status:
          enum:
            - INITIATED
            - PENDING
            - PROCESSING
            - SUBMITTED
            - RETURNED
            - COMPLETED
            - ERROR
            - CANCELLED
            - REVERSAL_PEND
            - REVERSAL_COMP
            - REVERSAL_DECL
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
        transfer_speed:
          description: default = STANDARD
          enum:
            - STANDARD
            - SAME_DAY
          type: string
        transitions:
          items:
            $ref: '#/components/schemas/bank_transfer_transition_response_model'
          type: array
        type:
          enum:
            - PUSH
            - PULL
          type: string
      required:
        - amount
        - funding_source_token
        - type
      type: object
    bank_transfer_transition_request_model:
      properties:
        amount:
          exclusiveMinimum: false
          minimum: 0
          type: number
        bank_transfer_token:
          maxLength: 36
          minLength: 0
          type: string
        batch_number:
          type: string
        channel:
          enum:
            - API
            - SYSTEM
            - ADMIN
          type: string
        effective_date:
          format: date-time
          type: string
        program_reserve_token:
          maxLength: 36
          minLength: 0
          type: string
        reason:
          type: string
        return_code:
          type: string
        reversal_after_45_days:
          type: boolean
        status:
          enum:
            - PENDING
            - PROCESSING
            - SUBMITTED
            - RETURNED
            - COMPLETED
            - CANCELLED
            - REVERSAL_PEND
            - REVERSAL_COMP
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
      required:
        - bank_transfer_token
        - channel
        - status
      type: object
    bank_transfer_transition_response_model:
      properties:
        amount:
          exclusiveMinimum: false
          minimum: 0
          type: number
        bank_transfer_token:
          maxLength: 36
          minLength: 0
          type: string
        batch_number:
          type: string
        channel:
          enum:
            - API
            - SYSTEM
            - ADMIN
          type: string
        created_time:
          format: date-time
          type: string
        effective_date:
          format: date-time
          type: string
        last_modified_time:
          format: date-time
          type: string
        program_reserve_token:
          maxLength: 36
          minLength: 0
          type: string
        reason:
          type: string
        return_code:
          type: string
        return_reason:
          type: string
        reversal_after_45_days:
          type: boolean
        status:
          enum:
            - PENDING
            - PROCESSING
            - SUBMITTED
            - RETURNED
            - COMPLETED
            - CANCELLED
            - REVERSAL_PEND
            - REVERSAL_COMP
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
        transaction_jit_token:
          type: string
        transaction_token:
          type: string
      required:
        - bank_transfer_token
        - channel
        - status
      type: object
    base_ach_request_model:
      properties:
        account_number:
          description: ACH account number.
          type: string
        account_type:
          description: Type of account.
          enum:
            - checking
            - savings
            - corporate
            - loan
          type: string
        bank_name:
          description: Name of the bank holding the account.
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        name_on_account:
          description: Name on the ACH account.
          maxLength: 50
          minLength: 1
          type: string
        routing_number:
          description: Routing number for the ACH account.
          readOnly: true
          type: string
        token:
          description: |-
            Unique identifier of the funding source.
            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        verification_notes:
          description: |-
            Free-form text field for holding notes about verification.
            This field is returned only if `verification_override = true`.
          type: string
        verification_override:
          default: false
          description: |-
            Allows the ACH funding source to be used, regardless of its verification status.
            Set this field to `true` if you can attest that you have verified the account on your own and that it will not be returned by the Federal Reserve.

            *NOTE:* When using `PLAID` to validate a funding source, this field is always set to `true`.
          type: boolean
      required:
        - account_number
        - account_type
        - name_on_account
        - routing_number
      type: object
    base_ach_response_model:
      properties:
        account_suffix:
          description: ACH account identifier appended to the bank account number.
          type: string
        account_type:
          description: Type of account.
          type: string
        active:
          default: false
          description: Specifies whether the account is active.
          type: boolean
        bank_name:
          description: |-
            Name of the bank holding the account.
            This field is returned if it exists in the resource.
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        date_sent_for_verification:
          description: |-
            Date and time in UTC when the request for account validation was sent to the third-party partner.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        date_verified:
          description: |-
            Date and time when the account was verified, in UTC.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        name_on_account:
          description: Name on the ACH account.
          type: string
        partner:
          type: string
        partner_account_link_reference_token:
          type: string
        token:
          description: Unique identifier of the funding source.
          type: string
        verification_notes:
          description: |-
            Free-form text field for holding notes about verification.
            This field is returned only if `verification_override = true`.
          type: string
        verification_override:
          default: false
          description: |-
            Allows the ACH funding source to be used regardless of its verification status.
            This field is returned if it exists in the resource.

            *NOTE:* When using `PLAID` to validate a funding source, this field is always set to `true`.
          type: boolean
        verification_status:
          description: |-
            Account verification status.
            This field is returned if it exists in the resource.
          type: string
      required:
        - account_suffix
        - account_type
        - active
        - created_time
        - last_modified_time
        - name_on_account
        - token
      type: object
    beneficial_owner_request:
      properties:
        dob:
          format: date-time
          type: string
        first_name:
          type: string
        home:
          $ref: '#/components/schemas/AddressRequestModel'
        last_name:
          type: string
        middle_name:
          type: string
        phone:
          type: string
        ssn:
          type: string
        title:
          type: string
      type: object
    beneficial_owner_response:
      properties:
        first_name:
          type: string
        getdob:
          format: date-time
          type: string
        home:
          $ref: '#/components/schemas/AddressResponseModel'
        last_name:
          type: string
        middle_name:
          type: string
        phone:
          type: string
        title:
          type: string
      type: object
    bulk_issuance_request:
      properties:
        card_allocation:
          format: int32
          maximum: 50000
          type: integer
        card_product_token:
          maxLength: 36
          minLength: 1
          type: string
        expedite:
          default: false
          type: boolean
        expiration_offset:
          $ref: '#/components/schemas/expiration_offset'
        fulfillment:
          $ref: '#/components/schemas/FulfillmentRequest'
        name_line_1_numeric_postfix:
          default: false
          type: boolean
        name_line_1_random_postfix:
          default: false
          type: boolean
        token:
          maxLength: 36
          minLength: 1
          type: string
        user_association:
          $ref: '#/components/schemas/user_association'
      required:
        - card_allocation
        - card_product_token
        - fulfillment
        - token
      type: object
    bulk_issuance_response:
      properties:
        card_allocation:
          format: int32
          maximum: 50000
          type: integer
        card_fulfillment_time:
          format: date-time
          type: string
        card_product_token:
          maxLength: 36
          minLength: 1
          type: string
        cards_processed:
          format: int32
          type: integer
        created_time:
          format: date-time
          type: string
        expedite:
          default: false
          type: boolean
        expiration_offset:
          $ref: '#/components/schemas/expiration_offset'
        fulfillment:
          $ref: '#/components/schemas/FulfillmentResponse'
        name_line1_end_index:
          format: int32
          type: integer
        name_line1_start_index:
          format: int32
          type: integer
        name_line_1_numeric_postfix:
          default: false
          type: boolean
        name_line_1_random_postfix:
          default: false
          type: boolean
        provider_ship_date:
          format: date-time
          type: string
        provider_shipping_method:
          type: string
        provider_tracking_number:
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        user_association:
          $ref: '#/components/schemas/user_association'
      required:
        - card_allocation
        - card_product_token
        - fulfillment
        - token
      type: object
    business_card_holder_response:
      properties:
        account_holder_group_token:
          maxLength: 36
          minLength: 0
          type: string
        active:
          default: false
          description: default = true
          type: boolean
        attestation_consent:
          default: false
          type: boolean
        attestation_date:
          format: date-time
          type: string
        attester_name:
          maxLength: 64
          minLength: 0
          type: string
        attester_title:
          maxLength: 64
          minLength: 0
          type: string
        authentication:
          $ref: '#/components/schemas/Authentication'
        beneficial_owner1:
          $ref: '#/components/schemas/beneficial_owner_response'
        beneficial_owner2:
          $ref: '#/components/schemas/beneficial_owner_response'
        beneficial_owner3:
          $ref: '#/components/schemas/beneficial_owner_response'
        beneficial_owner4:
          $ref: '#/components/schemas/beneficial_owner_response'
        business_name_dba:
          maxLength: 255
          minLength: 0
          type: string
        business_name_legal:
          maxLength: 255
          minLength: 0
          type: string
        business_type:
          maxLength: 255
          minLength: 0
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        date_established:
          format: date-time
          type: string
        duns_number:
          maxLength: 255
          minLength: 0
          type: string
        general_business_description:
          maxLength: 255
          minLength: 0
          type: string
        history:
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          items:
            $ref: '#/components/schemas/IdentificationResponseModel'
          type: array
        in_current_location_since:
          format: date-time
          type: string
        incorporation:
          $ref: '#/components/schemas/business_incorporation_response'
        international_office_locations:
          maxLength: 255
          minLength: 0
          type: string
        ip_address:
          maxLength: 39
          minLength: 0
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        metadata:
          additionalProperties:
            type: string
          type: object
        notes:
          maxLength: 255
          minLength: 0
          type: string
        office_location:
          $ref: '#/components/schemas/AddressResponseModel'
        password:
          description: Strong password required
          maxLength: 255
          minLength: 1
          type: string
        phone:
          maxLength: 255
          minLength: 0
          type: string
        primary_contact:
          $ref: '#/components/schemas/PrimaryContactInfoModel'
        proprietor_is_beneficial_owner:
          default: false
          type: boolean
        proprietor_or_officer:
          $ref: '#/components/schemas/business_proprietor_response'
        status:
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
            - TERMINATED
          type: string
        taxpayer_id:
          maxLength: 255
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        website:
          maxLength: 255
          minLength: 0
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    business_card_holder_update:
      properties:
        account_holder_group_token:
          maxLength: 36
          minLength: 0
          type: string
        active:
          default: true
          type: boolean
        attestation_consent:
          default: false
          type: boolean
        attestation_date:
          format: date-time
          type: string
        attester_name:
          maxLength: 64
          minLength: 0
          type: string
        attester_title:
          maxLength: 64
          minLength: 0
          type: string
        beneficial_owner1:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner2:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner3:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner4:
          $ref: '#/components/schemas/beneficial_owner_request'
        business_name_dba:
          maxLength: 255
          minLength: 0
          type: string
        business_name_legal:
          maxLength: 255
          minLength: 0
          type: string
        business_type:
          maxLength: 255
          minLength: 0
          type: string
        date_established:
          format: date-time
          type: string
        duns_number:
          maxLength: 255
          minLength: 0
          type: string
        general_business_description:
          maxLength: 255
          minLength: 0
          type: string
        history:
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          items:
            $ref: '#/components/schemas/IdentificationRequestModel'
          type: array
        in_current_location_since:
          format: date-time
          type: string
        incorporation:
          $ref: '#/components/schemas/business_incorporation'
        international_office_locations:
          maxLength: 255
          minLength: 0
          type: string
        ip_address:
          maxLength: 39
          minLength: 0
          type: string
        metadata:
          additionalProperties:
            type: string
          type: object
        notes:
          maxLength: 255
          minLength: 0
          type: string
        office_location:
          $ref: '#/components/schemas/AddressRequestModel'
        password:
          maxLength: 255
          minLength: 0
          type: string
        phone:
          maxLength: 255
          minLength: 0
          type: string
        primary_contact:
          $ref: '#/components/schemas/PrimaryContactInfoModel'
        proprietor_is_beneficial_owner:
          default: false
          type: boolean
        proprietor_or_officer:
          $ref: '#/components/schemas/business_proprietor'
        taxpayer_id:
          maxLength: 255
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        website:
          maxLength: 255
          minLength: 0
          type: string
      type: object
    business_cardholder:
      properties:
        account_holder_group_token:
          maxLength: 36
          minLength: 0
          type: string
        active:
          default: true
          type: boolean
        attestation_consent:
          default: false
          type: boolean
        attestation_date:
          description: YYYY-MM-DDThh:mm:ssZ
          format: date-time
          type: string
        attester_name:
          maxLength: 64
          minLength: 0
          type: string
        attester_title:
          maxLength: 64
          minLength: 0
          type: string
        beneficial_owner1:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner2:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner3:
          $ref: '#/components/schemas/beneficial_owner_request'
        beneficial_owner4:
          $ref: '#/components/schemas/beneficial_owner_request'
        business_name_dba:
          maxLength: 255
          minLength: 0
          type: string
        business_name_legal:
          maxLength: 255
          minLength: 0
          type: string
        business_type:
          maxLength: 255
          minLength: 0
          type: string
        date_established:
          format: date-time
          type: string
        duns_number:
          maxLength: 255
          minLength: 0
          type: string
        general_business_description:
          maxLength: 255
          minLength: 0
          type: string
        history:
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          items:
            $ref: '#/components/schemas/IdentificationRequestModel'
          type: array
        in_current_location_since:
          format: date-time
          type: string
        incorporation:
          $ref: '#/components/schemas/business_incorporation'
        international_office_locations:
          maxLength: 255
          minLength: 0
          type: string
        ip_address:
          maxLength: 39
          minLength: 0
          type: string
        metadata:
          additionalProperties:
            type: string
          type: object
        notes:
          maxLength: 255
          minLength: 0
          type: string
        office_location:
          $ref: '#/components/schemas/AddressRequestModel'
        password:
          description: Strong password required
          maxLength: 255
          minLength: 1
          type: string
        phone:
          maxLength: 255
          minLength: 0
          type: string
        primary_contact:
          $ref: '#/components/schemas/PrimaryContactInfoModel'
        proprietor_is_beneficial_owner:
          default: false
          type: boolean
        proprietor_or_officer:
          $ref: '#/components/schemas/business_proprietor'
        taxpayer_id:
          maxLength: 255
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        website:
          maxLength: 255
          minLength: 0
          type: string
      type: object
    business_incorporation:
      properties:
        address_registered_under:
          $ref: '#/components/schemas/AddressRequestModel'
        incorporation_type:
          enum:
            - LLC
            - CORPORATION
            - SOLE_PROPRIETORSHIP
            - PARTNERSHIP
            - COOPERATIVE
            - OTHER
          maxLength: 255
          minLength: 0
          type: string
        is_public:
          default: false
          type: boolean
        name_registered_under:
          maxLength: 255
          minLength: 0
          type: string
        state_of_incorporation:
          maxLength: 255
          minLength: 0
          type: string
        stock_symbol:
          maxLength: 255
          minLength: 0
          type: string
      type: object
    business_incorporation_response:
      properties:
        address_registered_under:
          $ref: '#/components/schemas/AddressResponseModel'
        incorporation_type:
          enum:
            - LLC
            - CORPORATION
            - SOLE_PROPRIETORSHIP
            - PARTNERSHIP
            - OTHER
          maxLength: 255
          minLength: 0
          type: string
        is_public:
          default: false
          type: boolean
        name_registered_under:
          maxLength: 255
          minLength: 0
          type: string
        state_of_incorporation:
          maxLength: 255
          minLength: 0
          type: string
        stock_symbol:
          maxLength: 255
          minLength: 0
          type: string
      type: object
    business_metadata:
      description: Contains customer-provided information about the business that
        funded the transaction.
      properties:
        metadata:
          additionalProperties:
            type: string
          description: Associates customer-provided metadata with the business.
          type: object
      type: object
    business_proprietor:
      properties:
        alternative_names:
          type: string
        dob:
          format: date-time
          type: string
        email:
          type: string
        first_name:
          type: string
        home:
          $ref: '#/components/schemas/AddressRequestModel'
        identifications:
          items:
            $ref: '#/components/schemas/IdentificationRequestModel'
          type: array
        last_name:
          type: string
        middle_name:
          type: string
        phone:
          type: string
        ssn:
          type: string
        title:
          type: string
      required:
        - first_name
        - last_name
      type: object
    business_proprietor_response:
      properties:
        alternative_names:
          type: string
        dob:
          format: date-time
          type: string
        email:
          type: string
        first_name:
          type: string
        home:
          $ref: '#/components/schemas/AddressResponseModel'
        identifications:
          items:
            $ref: '#/components/schemas/IdentificationResponseModel'
          type: array
        last_name:
          type: string
        middle_name:
          type: string
        phone:
          type: string
        ssn:
          type: string
        title:
          type: string
      type: object
    campaign_model:
      properties:
        active:
          default: true
          type: boolean
        end_date:
          format: date-time
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        start_date:
          format: date-time
          type: string
        store_tokens:
          description: Enclose tokens in brackets
          items:
            type: string
          maxItems: 36
          minItems: 0
          type: array
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - active
        - name
        - token
      type: object
    campaign_update_model:
      properties:
        active:
          default: false
          type: boolean
        end_date:
          description: yyyy-MM-dd
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        start_date:
          description: yyyy-MM-dd
          type: string
        store_tokens:
          description: enclose tokens in brackets
          items:
            type: string
          maxItems: 36
          minItems: 0
          type: array
      type: object
    card_acceptor_model:
      properties:
        address:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        country:
          type: string
        customer_service_phone:
          type: string
        ecommerce_security_level_indicator:
          type: string
        geographic_coordinates:
          type: string
        mcc:
          maxLength: 5
          minLength: 0
          type: string
        name:
          maxLength: 50
          minLength: 0
          type: string
        partial_approval_capable:
          default: false
          type: boolean
        phone:
          type: string
        service_geographic_coordinates:
          type: string
        state:
          type: string
        url:
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      type: object
    card_holder_address_model:
      properties:
        active:
          default: true
          description: Specifies whether the address is active.
          type: boolean
        address_1:
          description: Street name and number of the address.
          maxLength: 255
          minLength: 0
          type: string
        address_2:
          description: Additional address information.
          maxLength: 255
          minLength: 0
          type: string
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is required if a `user_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
        city:
          description: City of the address.
          maxLength: 40
          minLength: 0
          type: string
        country:
          description: Country of the address.
          maxLength: 40
          minLength: 1
          type: string
        first_name:
          description: First name or given name of the account holder.
          maxLength: 40
          minLength: 0
          type: string
        is_default_address:
          default: false
          description: |-
            A value of `true` specifies that this address is the default address used by the account holder's funding source.
            If this is the account holder's only address, it is used as the default regardless of this field's setting.
          type: boolean
        last_name:
          description: Last name or family name of the account holder.
          maxLength: 40
          minLength: 0
          type: string
        phone:
          description: Telephone number of the account holder.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: Postal code of the address.
          maxLength: 10
          minLength: 0
          type: string
        state:
          description: |-
            Two-character state, province, or territorial abbreviation.

            For a complete list of valid state and province abbreviations, see <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid state, provincial, and territorial abbreviations>>.
          maxLength: 2
          minLength: 0
          type: string
        token:
          description: |-
            Unique identifier of the address.
            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is required if a `business_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
        zip:
          description: |-
            United States ZIP code.
            This field is required if `postal_code` is not specified.
          maxLength: 10
          minLength: 0
          type: string
      required:
        - address_1
        - city
        - country
        - first_name
        - last_name
        - state
      type: object
    card_holder_address_update_model:
      properties:
        active:
          default: true
          description: Specifies whether the address is active.
          type: boolean
        address_1:
          description: Street name and number of the address.
          maxLength: 255
          minLength: 0
          type: string
        address_2:
          description: Additional address information.
          maxLength: 255
          minLength: 0
          type: string
        city:
          description: City of the address.
          maxLength: 40
          minLength: 0
          type: string
        country:
          description: Country of the address.
          maxLength: 40
          minLength: 0
          type: string
        first_name:
          description: First name or given name of the account holder.
          maxLength: 40
          minLength: 0
          type: string
        is_default_address:
          default: false
          description: |-
            A value of `true` specifies that this address is the default address used by the account holder's funding source.
            If this is the account holder's only address, it is used as the default regardless of this field's setting.
          type: boolean
        last_name:
          description: Last name or family name of the account holder.
          maxLength: 40
          minLength: 0
          type: string
        phone:
          description: Telephone number of the account holder.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: Postal code of the address.
          maxLength: 10
          minLength: 0
          type: string
        state:
          description: |-
            Two-character state, province, or territorial abbreviation.

            For a complete list, see <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid state, provincial, and territorial abbreviations>>.
          maxLength: 2
          minLength: 0
          type: string
        zip:
          description: United States ZIP code of the address.
          maxLength: 10
          minLength: 0
          type: string
      type: object
    card_holder_model:
      description: Contains information about a cardholder.
      properties:
        account_holder_group_token:
          description: |-
            Associates the specified account holder group with the cardholder.

            Send a `GET` request to `/accountholdergroups` to retrieve account holder group tokens.
          maxLength: 36
          minLength: 0
          type: string
        active:
          default: true
          description: |-
            Specifies if the cardholder is in the `ACTIVE` state on the Marqeta platform.

            *NOTE:* Do not set the value of the `user.active` field directly.
            Instead, use the `/usertransitions` endpoints to transition user resources between statuses.
            For more information on status changes, see <</core-api/user-transitions#postUsertransitions, Create User Transition>>.
          type: boolean
        address1:
          description: |-
            Cardholder's address.

            *NOTE:* Required for KYC verification (US-based cardholders only).
            Cannot perform KYC if set to a PO Box.
          maxLength: 255
          minLength: 0
          type: string
        address2:
          description: |-
            Additional address information for the cardholder.

            *NOTE:* Cannot perform KYC if set to a PO Box.
          maxLength: 255
          minLength: 0
          type: string
        birth_date:
          description: |-
            Cardholder's date of birth.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          type: string
        city:
          description: |-
            City where the cardholder resides.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        company:
          description: Company name.
          maxLength: 255
          minLength: 0
          type: string
        corporate_card_holder:
          default: false
          description: Specifies if the cardholder holds a corporate card.
          type: boolean
        country:
          description: |-
            Country where the cardholder resides.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        email:
          description: |-
            Valid email address of the cardholder.

            This value must be unique among users.

            *NOTE:* Required for KYC verification by certain banks (US-based cardholders only).
            To determine if you must provide an email address, contact your Marqeta representative.
          maxLength: 255
          minLength: 1
          type: string
        first_name:
          description: |-
            Cardholder's first name.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        gender:
          description: Gender of the cardholder.
          enum:
            - F
            - M
          maxLength: 1
          minLength: 0
          type: string
        honorific:
          description: 'Cardholder''s title or prefix: Dr., Miss, Mr., Ms., and so
            on.'
          maxLength: 10
          minLength: 0
          type: string
        id_card_expiration_date:
          description: Expiration date of the cardholder's identification card.
          type: string
        id_card_number:
          description: Cardholder's identification card number.
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          description: One or more objects containing identifications associated with
            the cardholder.
          items:
            $ref: '#/components/schemas/IdentificationRequestModel'
          type: array
        ip_address:
          description: Cardholder's IP address.
          maxLength: 39
          minLength: 0
          type: string
        last_name:
          description: |-
            Cardholder's last name.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 40
          minLength: 0
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Associates any additional metadata you provide with the cardholder.
          type: object
        middle_name:
          description: Cardholder's middle name.
          maxLength: 40
          minLength: 0
          type: string
        nationality:
          description: Cardholder's nationality.
          maxLength: 255
          minLength: 0
          type: string
        notes:
          description: Any additional information pertaining to the cardholder.
          maxLength: 255
          minLength: 0
          type: string
        parent_token:
          description: |-
            Unique identifier of the parent user or business resource.
            Send a `GET` request to `/users` to retrieve user resource tokens or to `/businesses` to retrieve business resource tokens.

            Required if `uses_parent_account = true`.
            This user or business is configured as the parent of the current user.
          maxLength: 36
          minLength: 1
          type: string
        passport_expiration_date:
          description: Expiration date of the cardholder's passport.
          type: string
        passport_number:
          description: Cardholder's passport number.
          maxLength: 40
          minLength: 0
          type: string
        password:
          description: |-
            Password to the cardholder's user account on the Marqeta platform.

            * Must contain at least one numeral +
            * Must contain at least one lowercase letter +
            * Must contain at least one uppercase letter +
            * Must contain at least one of these symbols: `@ # $ % ! ^ & * ( ) \ _ + ~ ` - = [ ] { } , ; : ' " , . / < > ?`
          maxLength: 255
          minLength: 0
          type: string
        phone:
          description: |-
            Telephone number of the cardholder (including area code), prepended by the `+` symbol and the 1- to 3-digit country calling code.
            Do not include hyphens, spaces, or parentheses.

            *NOTE:* Required for KYC verification by certain banks (US-based cardholders only).
            To determine if you must provide a phone number, contact your Marqeta representative.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: |-
            Postal code of the cardholder's address.

            *NOTE:* Required for KYC verification (US-based cardholders only).
          maxLength: 10
          minLength: 0
          type: string
        ssn:
          description: Cardholder's Social Security Number (SSN).
          type: string
        state:
          description: |-
            State or province where the cardholder resides.

            *NOTE:* <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid two-character abbreviation>> required for KYC verification (US-based cardholders only).
          maxLength: 32
          minLength: 0
          type: string
        token:
          description: |-
            Unique identifier of the cardholder.
            If you do not include a token, the system generates one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        uses_parent_account:
          default: false
          description: |-
            Indicates whether the child shares balances with the parent (`true`), or the child's balances are independent of the parent (`false`).

            If set to `true`, you must also include a `parent_token` in the request.
            This value cannot be updated.
          type: boolean
      type: object
    card_life_cycle:
      properties:
        activate_upon_issue:
          default: false
          type: boolean
        card_service_code:
          default: 101
          format: int32
          type: integer
        expiration_offset:
          $ref: '#/components/schemas/ExpirationOffset'
        reloadability:
          enum:
            - SINGLE_USE_VIRTUAL
            - NON_RELOADABLE
            - RELOADABLE
          type: string
        update_expiration_upon_activation:
          default: false
          type: boolean
      type: object
    card_metadata:
      properties:
        metadata:
          additionalProperties:
            type: string
          type: object
      type: object
    card_options:
      properties:
        billing_address:
          $ref: '#/components/schemas/BillingAddress'
        card_present:
          default: false
          type: boolean
        cvv:
          maxLength: 3
          minLength: 0
          type: string
        expiration:
          maxLength: 4
          minLength: 4
          type: string
      type: object
    card_personalization:
      description: Specifies personalized attributes to be added to the card.
      properties:
        carrier:
          $ref: '#/components/schemas/carrier'
        images:
          $ref: '#/components/schemas/images'
        perso_type:
          description: Specifies the type of card personalization.
          enum:
            - EMBOSS
            - LASER
            - FLAT
          type: string
        text:
          $ref: '#/components/schemas/text'
      required:
        - text
      type: object
    card_product_config:
      properties:
        card_life_cycle:
          $ref: '#/components/schemas/card_life_cycle'
        clearing_and_settlement:
          $ref: '#/components/schemas/clearing_and_settlement'
        digital_wallet_tokenization:
          $ref: '#/components/schemas/DigitalWalletTokenization'
        fulfillment:
          $ref: '#/components/schemas/card_product_fulfillment'
        jit_funding:
          $ref: '#/components/schemas/jit_funding'
        poi:
          $ref: '#/components/schemas/poi'
        selective_auth:
          $ref: '#/components/schemas/selective_auth'
        special:
          $ref: '#/components/schemas/Special'
        transaction_controls:
          $ref: '#/components/schemas/transaction_controls'
      type: object
    card_product_fulfillment:
      properties:
        all_zero_card_security_code:
          default: false
          type: boolean
        allow_card_creation:
          default: true
          type: boolean
        bin_prefix:
          type: string
        bulk_ship:
          default: false
          type: boolean
        card_personalization:
          $ref: '#/components/schemas/card_personalization'
        enable_offline_pin:
          default: false
          type: boolean
        fulfillment_provider:
          default: PERFECTPLASTIC
          enum:
            - PERFECTPLASTIC
            - ARROWEYE
            - IDEMIA
            - IDEMIA_UK
            - IDEMIA_FR
            - IDEMIA_CZ
            - IDEMIA_APAC
            - IDEMIA_PL
            - IDEMIA_AU
            - IDEMIA_LA
            - GEMALTO
            - NITECREST
            - OBERTHUR
            - ALLPAY
          type: string
        package_id:
          default: '0'
          maxLength: 50
          minLength: 1
          type: string
        pan_length:
          default: '16'
          type: string
        payment_instrument:
          default: PHYSICAL_MSR
          enum:
            - PHYSICAL_MSR
            - PHYSICAL_ICC
            - PHYSICAL_CONTACTLESS
            - PHYSICAL_COMBO
            - VIRTUAL_PAN
          type: string
        shipping:
          $ref: '#/components/schemas/shipping'
        uppercase_name_lines:
          default: true
          type: boolean
      required:
        - card_personalization
      type: object
    card_product_request:
      properties:
        active:
          default: false
          type: boolean
        config:
          $ref: '#/components/schemas/card_product_config'
        end_date:
          description: yyyy-MM-dd
          format: date
          type: string
        name:
          maxLength: 40
          minLength: 1
          type: string
        start_date:
          description: yyyy-MM-dd
          format: date
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
        - start_date
      type: object
    card_product_response:
      properties:
        active:
          default: false
          type: boolean
        config:
          $ref: '#/components/schemas/card_product_config'
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        end_date:
          description: yyyy-MM-dd
          format: date
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        name:
          maxLength: 40
          minLength: 1
          type: string
        start_date:
          description: yyyy-MM-dd
          format: date
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_time
        - last_modified_time
        - name
        - start_date
      type: object
    card_product_update_model:
      properties:
        active:
          default: false
          type: boolean
        config:
          $ref: '#/components/schemas/card_product_config'
        end_date:
          description: yyyy-MM-dd
          format: date
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        start_date:
          description: yyyy-MM-dd
          format: date
          type: string
      type: object
    card_request:
      properties:
        activation_actions:
          $ref: '#/components/schemas/activation_actions'
        bulk_issuance_token:
          type: string
        card_product_token:
          maxLength: 36
          minLength: 1
          type: string
        expedite:
          default: false
          type: boolean
        expiration_offset:
          $ref: '#/components/schemas/expiration_offset'
        fulfillment:
          $ref: '#/components/schemas/CardFulfillmentRequest'
        metadata:
          additionalProperties:
            type: string
          type: object
        new_pan_from_card_token:
          maxLength: 36
          minLength: 0
          type: string
        reissue_pan_from_card_token:
          maxLength: 36
          minLength: 0
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        translate_pin_from_card_token:
          maxLength: 36
          minLength: 0
          type: string
        user_token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - card_product_token
        - user_token
      type: object
    card_response:
      description: Contains information about the card used in the transaction.
      properties:
        activation_actions:
          $ref: '#/components/schemas/activation_actions'
        barcode:
          description: Barcode printed on the card, expressed as numerals.
          type: string
        bulk_issuance_token:
          description: Unique identifier of the bulk card order.
          type: string
        card_product_token:
          description: Unique identifier of the card product.
          type: string
        chip_cvv_number:
          description: Three-digit card verification value (ICVV) stored on the chip
            of the card.
          type: string
        contactless_exemption_counter:
          description: |-
            Running count of the contactless transactions successfully completed since the last strong customer authentication (SCA) challenge was issued.
            You can limit the number of contactless transactions that can be performed without issuing an SCA challenge at the card product level.

            For more information about strong customer authentication, see <</core-api/card-products, Card Products>>.
          format: int32
          type: integer
        contactless_exemption_total_amount:
          description: |-
            Running total of the money spent in contactless transactions successfully completed since the last strong customer authentication (SCA) challenge was issued.
            You can limit the total amount that can be spent in contactless transactions without issuing an SCA challenge at the card product level.

            For more information about strong customer authentication, see <</core-api/card-products, Card Products>>.
          type: number
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        cvv_number:
          description: Three-digit card verification value (CVV2 or CVC2) printed
            on the card.
          type: string
        expedite:
          default: false
          description: A value of `true` indicates that you requested expedited processing
            of the card from your card fulfillment provider.
          type: boolean
        expiration:
          description: Expiration date in `MMyy` format.
          type: string
        expiration_time:
          description: Expiration date and time, in UTC.
          format: date-time
          type: string
        fulfillment:
          $ref: '#/components/schemas/CardFulfillmentResponse'
        fulfillment_status:
          description: |-
            Card fulfillment status:

            * *ISSUED:* Initial state of all newly created/issued cards.
            * *ORDERED:* Card ordered through the card fulfillment provider.
            * *REORDERED:* Card reordered through the card fulfillment provider.
            * *REJECTED:* Card rejected by the card fulfillment provider.
            * *SHIPPED:* Card shipped by the card fulfillment provider.
            * *DELIVERED:* Card delivered by the card fulfillment provider.
            * *DIGITALLY_PRESENTED:* Card digitally presented using the `/cards/{token}/showpan` endpoint; does not affect the delivery of physical cards.
          enum:
            - ISSUED
            - ORDERED
            - REORDERED
            - REJECTED
            - SHIPPED
            - DELIVERED
            - DIGITALLY_PRESENTED
          type: string
        instrument_type:
          description: |-
            Instrument type of the card:

            * *PHYSICAL_MSR:* A physical card with a magnetic stripe. This is the default physical card type.
            * *PHYSICAL_ICC:* A physical card with an integrated circuit, or "chip."
            * *PHYSICAL_CONTACTLESS:* A physical card that uses radio frequency identification (RFID) or near-field communication (NFC) to enable payment over a secure radio interface.
            * *PHYSICAL_COMBO:* A physical card with a chip that also supports contactless payments.
            * *VIRTUAL_PAN:* A virtual card with a primary account number (PAN).
          enum:
            - PHYSICAL_MSR
            - PHYSICAL_ICC
            - PHYSICAL_CONTACTLESS
            - PHYSICAL_COMBO
            - VIRTUAL_PAN
          type: string
        last_four:
          description: Last four digits of the card primary account number (PAN).
          type: string
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Associates customer-provided metadata with the card.
          type: object
        new_pan_from_card_token:
          description: Reissues the specified card (known as the "source" card) with
            a new primary account number (PAN).
          type: string
        pan:
          description: Primary account number (PAN) of the card.
          type: string
        pin_is_set:
          default: false
          description: Specifies if the personal identification number (PIN) has been
            set for the card.
          type: boolean
        reissue_pan_from_card_token:
          description: Reissues the specified card (known as the "source" card).
          type: string
        state:
          description: Indicates the state of the card.
          enum:
            - ACTIVE
            - SUSPENDED
            - TERMINATED
            - UNSUPPORTED
            - UNACTIVATED
            - LIMITED
          type: string
        state_reason:
          description: |-
            Descriptive reason for why the card is in its current state.
            For example, "Card activated by cardholder".
          type: string
        token:
          description: Unique identifier of the card.
          type: string
        translate_pin_from_card_token:
          description: Copies the personal identification number (PIN) from the specified
            source card to the newly created card.
          type: string
        user_token:
          description: Unique identifier of the cardholder.
          type: string
      required:
        - barcode
        - card_product_token
        - created_time
        - expiration
        - expiration_time
        - fulfillment_status
        - last_four
        - last_modified_time
        - pan
        - pin_is_set
        - state
        - state_reason
        - token
        - user_token
      type: object
    card_security_code_verification:
      description: Contains information about a verification check performed on the
        card's security code.
      properties:
        response:
          $ref: '#/components/schemas/response'
        type:
          description: |-
            Indicates the type of security code.
            Can have these possible values:

            * *CVV1* – the security code stored in the magnetic stripe on the card.
            * *CVV2* – the security code printed on the card.
            * *ICVV* – the security code stored on the chip of the card.
            * *DCVV* – a dynamic security code used in some contactless payments when a card or device is tapped against the card reader.
          enum:
            - CVV1
            - CVV2
            - ICVV
            - DCVV
          type: string
      required:
        - response
        - type
      type: object
    card_swap_hash:
      description: Contains identifiers for swapping digital wallet tokens between
        cards.
      properties:
        new_card_token:
          description: Unique identifier of the new card resource to which the digital
            wallet tokens are assigned.
          maxLength: 36
          minLength: 1
          type: string
        previous_card_token:
          description: Unique identifier of the existing card resource that has digital
            wallet tokens assigned to it.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - new_card_token
        - previous_card_token
      type: object
    card_transition_request:
      properties:
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        reason:
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        state:
          enum:
            - ACTIVE
            - LIMITED
            - SUSPENDED
            - TERMINATED
          readOnly: true
          type: string
        sync_state_with_dwts:
          readOnly: true
          type: boolean
        token:
          maxLength: 36
          minLength: 1
          type: string
        validations:
          $ref: '#/components/schemas/ValidationsRequest'
      required:
        - card_token
        - channel
        - state
      type: object
    card_transition_response:
      properties:
        barcode:
          type: string
        bulk_issuance_token:
          type: string
        card:
          $ref: '#/components/schemas/card_metadata'
        card_product_token:
          maxLength: 36
          minLength: 0
          type: string
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        created_time:
          format: date-time
          type: string
        expedite:
          default: false
          type: boolean
        expiration:
          type: string
        expiration_time:
          type: string
        fulfillment:
          $ref: '#/components/schemas/CardFulfillmentRequest'
        fulfillment_status:
          enum:
            - ISSUED
            - ORDERED
            - REJECTED
            - SHIPPED
            - DELIVERED
            - DIGITALLY_PRESENTED
          type: string
        last_four:
          type: string
        new_pan_from_card_token:
          type: string
        pan:
          type: string
        pin_is_set:
          default: false
          type: boolean
        reason:
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        reissue_pan_from_card_token:
          type: string
        state:
          enum:
            - ACTIVE
            - SUSPENDED
            - TERMINATED
            - UNACTIVATED
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        type:
          enum:
            - fulfillment.issued
            - state.activated
            - state.suspended
            - state.reinstated
            - state.terminated
            - state.limited
            - fulfillment.ordered
            - fulfillment.rejected
            - fulfillment.shipped
            - fulfillment.delivered
            - fulfillment.digitally_presented
          readOnly: true
          type: string
        user:
          $ref: '#/components/schemas/cardholder_metadata'
        user_token:
          maxLength: 36
          minLength: 1
          type: string
        validations:
          $ref: '#/components/schemas/ValidationsResponse'
      required:
        - barcode
        - card_product_token
        - card_token
        - channel
        - expiration
        - expiration_time
        - fulfillment_status
        - last_four
        - pan
        - pin_is_set
        - state
        - token
        - type
        - user_token
      type: object
    card_update_request:
      properties:
        expedite:
          default: false
          type: boolean
        fulfillment:
          $ref: '#/components/schemas/CardFulfillmentRequest'
        metadata:
          additionalProperties:
            type: string
          type: object
        token:
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - token
      type: object
    cardholder_authentication_data:
      description: |-
        Contains authentication data for 3D Secure and digital wallet token transactions:

        * `electronic_commerce_indicator` – The level of verification performed.
        * `verification_result` – The result of the verification.
        * `verification_value_created_by` – The transaction participant who determined the verification result.
        * `three_ds_message_version` – The 3D Secure message version used for authentication.
        * `authentication_method` – The 3D Secure authentication method.
        * `authentication_status` – The 3D Secure authentication status.
        * `acquirer_exemption` – Indicates a 3D Secure authentication exemption from the acquirer.
        * `issuer_exemption` – Indicates a 3D Secure authentication exemption from the issuer.
        * `cavv_authentication_amount` – CAVV authentication amount.
        * `raw_cavv_data` – Raw CAVV data provided by the card network.
      properties:
        acquirer_exemption:
          description: |-
            Indicates 3D Secure authentication exemptions from the acquirer.
            This array is returned if it is included in the transaction data from the card network.
          items:
            type: string
          type: array
        authentication_method:
          description: Specifies the 3D Secure authentication method.
          type: string
        authentication_status:
          description: |-
            Specifies the status of the 3D Secure authentication:

            * `ATTEMPTED`: Indicates that 3D Secure authentication was requested and processed by the card network.
            * `DATA_SHARE_EXEMPTED`: Indicates that 3D Secure authentication was for information only and exempted.
            * `EXEMPTED`: Indicates that 3D Secure authentication was requested but the challenge was exempted.
            * `EXEMPTION_CLAIMED`: Indicates that 3D Secure authentication was exempted because acquirer transaction risk analysis (TRA) was already performed.
            * `SCA_EXEMPTION`: Indicates that 3D Secure authentication was exempted because strong customer authentication (SCA) was already performed.
            * `SUCCESSFUL`: Indicates that 3D Secure authentication was successful.
            * `SUCCESSFUL_NON_PAYMENT`: Indicates that 3D Secure non-payment authentication was successful.
            * `THREEDS_REQUESTER_DATA_SHARE_EXEMPTION`: Status is deprecated and will be removed from a future release of the Marqeta platform.
            After June 2023, use `DATA_SHARE_EXEMPTION` instead.
            * `THREEDS_REQUESTER_SCA_EXEMPTION`: Status is deprecated and will be removed in a June 2023 release of the Marqeta platform.
            After June 2023, use `SCA_EXEMPTION` instead.
            * `THREEDS_REQUESTER_TRA_EXEMPTION`: Status is deprecated and will be removed in a June 2023 release of the Marqeta platform.
            After June 2023, use `EXEMPTION_CLAIMED` instead.
            * `UNAVAILABLE`:
            ** For Visa transactions, this status indicates that 3D Secure authentication was requested, but Marqeta's access control server (ACS) was not available.
            ** For Mastercard transactions, this status indicates that 3D Secure authentication was not available.
          type: string
        cavv_authentication_amount:
          description: |-
            Authentication amount from the cardholder authentication verification value (CAVV) used to validate an authorization.
            This field is returned if it is included in the transaction data from the card network.

            To enable this field, contact your Marqeta representative.
          type: string
        electronic_commerce_indicator:
          description: |-
            Status of the 3D Secure or digital wallet token transaction authentication attempt, as provided by a transaction participant.

            * `authentication_attempted`: Merchant attempted to authenticate, but either the issuer or the cardholder does not participate in 3D Secure or card tokenization.
            * `authentication_successful`: Cardholder authentication successful.
            * `no_authentication`: Non-authenticated e-commerce transaction.
          type: string
        issuer_exemption:
          description: |-
            Indicates a 3D Secure authentication exemption from the issuer.
            This field is returned if it is included in the transaction data from the card network.
          type: string
        raw_cavv_data:
          description: |-
            Raw cardholder authentication verification value provided by the card network.
            This field is returned if it is included in the transaction data from the card network.

            To enable this field, contact your Marqeta representative.
          type: string
        three_ds_data_quality:
          type: string
        three_ds_message_version:
          description: Specifies the 3D Secure message version used for authentication.
          type: string
        three_ds_reference_id:
          type: string
        threeds_reference_id:
          description: The 3D Secure authentication indicator, as provided by the
            Mastercard card network.
          type: string
        verification_result:
          description: |-
            Result of cardholder authentication verification value (CAVV) or accountholder authentication value (AAV) verification performed by the card network.

            * `failed`
            * `not_present`
            * `not_provided`
            * `not_verified`
            * `not_verified_authentication_outage`
            * `verified`
            * `verified_amount_checked`
            * `verified_amount_greater_than_20_percent`: For Mastercard AAV verification, indicates that the original authentication amount and final authorization amount are mismatched, and that the final authorization amount exceeds the original authentication amount by more than 20%.
            This 20% margin falls outside Mastercard's suggested tolerance for what a European cardholder might reasonably expect when the total transaction amount is not known in advance.
            * `verified_amount_less_than_20_percent`: For Mastercard AAV verification, indicates that the original authentication amount and final authorization amount are mismatched, and that the final authorization amount exceeds the original authentication amount by 20% or less.
            This 20% margin falls within Mastercard's suggested tolerance for what a European cardholder might reasonably expect when the total transaction amount is not known in advance.
            * `not_verified_mac_key_validation_passed`: For Mastercard only.
            This field is present when the transaction passes MAC key validation but Dynamic Linking was not performed by the Mastercard card network due to system connectivity issues.
            * `not_verified_mac_key_validation_failed`: For Mastercard only.
            This field is present when the transaction fails MAC key validation and Dynamic Linking was not performed by the Mastercard card network due to system connectivity issues.
          type: string
        verification_value_created_by:
          description: Transaction participant who determined the verification result.
          type: string
      type: object
    cardholder_balance:
      description: Returns general purpose account (GPA) balances for a user or business.
      properties:
        available_balance:
          description: |-
            Ledger balance minus any authorized transactions that have not yet cleared.
            Also known as the cardholder's purchasing power.
            When using JIT Funding, this balance is usually equal to $0.00.
          type: number
        balances:
          additionalProperties:
            $ref: '#/components/schemas/cardholder_balance'
          description: Contains GPA balance information, organized by currency code.
          type: object
        cached_balance:
          description: Not currently in use.
          type: number
        credit_balance:
          description: Not currently in use.
          type: number
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        impacted_amount:
          description: Balance change based on the amount of the transaction.
          type: number
        last_updated_time:
          description: Date and time when the resource was last updated, in UTC.
          format: date-time
          type: string
        ledger_balance:
          description: |-
            When using standard funding: The funds that are available to spend immediately, including funds from any authorized transactions that have not yet cleared.
            When using Just-in-Time (JIT) Funding: Authorized funds that are currently on hold, but not yet cleared.
          type: number
        pending_credits:
          description: ACH loads that have been accepted, but for which the funding
            time has not yet elapsed.
          type: number
      required:
        - available_balance
        - balances
        - cached_balance
        - credit_balance
        - currency_code
        - last_updated_time
        - ledger_balance
        - pending_credits
      type: object
    cardholder_balances:
      properties:
        gpa:
          $ref: '#/components/schemas/cardholder_balance'
        links:
          items:
            $ref: '#/components/schemas/link'
          type: array
          uniqueItems: true
      required:
        - gpa
        - links
      type: object
    cardholder_metadata:
      description: Contains customer-provided information about the cardholder that
        performed the transaction.
      properties:
        metadata:
          additionalProperties:
            type: string
          description: Associates customer-provided metadata with the cardholder.
          type: object
      type: object
    cardholder_note_request_model:
      properties:
        created_by:
          maxLength: 255
          minLength: 0
          type: string
        created_by_user_role:
          enum:
            - USER
            - ADMIN
            - BANK_USER
            - BANK_ADMIN
            - MARQETA_PD
            - MARQETA_ADMIN
          type: string
        description:
          type: string
        private:
          default: false
          type: boolean
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_by
        - description
      type: object
    cardholder_note_response_model:
      properties:
        created_by:
          maxLength: 255
          minLength: 0
          type: string
        created_by_user_role:
          enum:
            - USER
            - ADMIN
            - BANK_USER
            - BANK_ADMIN
            - MARQETA_PD
            - MARQETA_ADMIN
          type: string
        created_time:
          format: date-time
          type: string
        description:
          type: string
        last_modified_time:
          format: date-time
          type: string
        private:
          default: false
          type: boolean
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_by
        - description
      type: object
    cardholder_note_update_request_model:
      properties:
        description:
          type: string
      required:
        - description
      type: object
    carrier:
      description: Specifies attributes of the card carrier.
      properties:
        logo_file:
          description: Specifies an image to display on the card carrier.
          type: string
        logo_thumbnail_file:
          description: Specifies a thumbnail-sized rendering of the image specified
            in the `logo_file` field.
          type: string
        message_file:
          description: Specifies a text file containing a custom message to print
            on the card carrier.
          type: string
        message_line:
          description: Specifies a custom message that appears on the card carrier.
          type: string
        template_id:
          description: Specifies the card carrier template to use.
          type: string
      type: object
    chargeback_allocation_ack_request:
      properties:
        chargeback_token:
          type: string
        token:
          type: string
      required:
        - chargeback_token
      type: object
    chargeback_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            credit:
              type: boolean
            name:
              type: string
          required:
            - credit
            - name
          type: object
    chargeback_request:
      properties:
        amount:
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        channel:
          enum:
            - GATEWAY
            - GATEWAY_AUTOMATED
            - ISSUER
            - ISSUER_AUTOMATED
          type: string
        credit_user:
          default: true
          type: boolean
        memo:
          maxLength: 1024
          minLength: 1
          type: string
        pre_initiated:
          type: boolean
        reason_code:
          description: Either 'reason_code' or 'reason_description' is required
          type: string
        reason_description:
          description: Either 'reason_description' or 'reason_code' is required
          enum:
            - SERVICE_NOT_PROVIDED_MERCHANDISE_NOT_RECEIVED
            - CANCELLED_RECURRING_TRANSACTION
            - NOT_AS_DESCRIBED_OR_DEFECTIVE_MERCHANDISE
            - FRAUD_MULTIPLE_TRANSACTIONS
            - FRAUD_TRANSACTION
            - NO_AUTHORIZATION
            - LATE_PRESENTMENT
            - TRANSACTION_NOT_RECOGNIZED
            - INCORRECT_CURRENCY
            - INCORRECT_TRANSACTION_CODE
            - INCORRECT_CURRENCY_OR_TRANSACTION_CODE
            - INCORRECT_TRANSACTION_AMOUNT
            - INCORRECT_ACCOUNT_NUMBER
            - INCORRECT_TRANSACTION_AMOUNT_OR_ACCOUNT_NUMBER
            - NOT_AUTHORIZED_CARD_PRESENT
            - NOT_AUTHORIZED_CARD_ABSENT
            - CREDIT_NOT_PROCESSED
            - NON_RECEIPT_OF_CASH_OR_LOAD_TRANSACTION_VALUE_AT_ATM
            - DUPLICATE_PROCESSING_OR_PAID_BY_OTHER_MEANS
          type: string
        regulation_type:
          type: string
        status:
          enum:
            - ARBITRATION
            - CASE_LOST
            - CASE_WON
            - INITIATED
            - NETWORK_REJECTED
            - PREARBITRATION
            - PRE_INITIATED
            - REPRESENTMENT
            - WITHDRAWN
            - WRITTEN_OFF_ISSUER
            - WRITTEN_OFF_PROGRAM
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        transaction_token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - channel
        - transaction_token
      type: object
    chargeback_response:
      description: Contains the chargeback object associated with this transaction
        if a chargeback has been initiated.
      properties:
        amount:
          description: Amount of the chargeback.
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        channel:
          description: Channel the chargeback came through.
          enum:
            - GATEWAY
            - GATEWAY_AUTOMATED
            - ISSUER
            - ISSUER_AUTOMATED
          type: string
        created_time:
          description: |-
            Date and time when the chargeback was created.
            Not returned for transactions when the associated chargeback is in the `INITIATED` state.
          format: date-time
          type: string
        credit_user:
          default: false
          description: Whether to credit the user for the chargeback amount.
          type: boolean
        last_modified_time:
          description: |-
            Date and time when the chargeback was last modified.
            Not returned for transactions when the associated chargeback is in the `INITIATED` state.
          format: date-time
          type: string
        memo:
          description: Additional comments about the chargeback.
          maxLength: 1024
          minLength: 1
          type: string
        network:
          description: Network handling the chargeback.
          enum:
            - MARQETA
            - DISCOVER
            - MASTERCARD
            - PULSE
            - VISA
          type: string
        network_case_id:
          description: Network-assigned identifier of the chargeback.
          maxLength: 50
          minLength: 0
          type: string
        reason_code:
          description: Identifies the standardized reason for the chargeback.
          type: string
        state:
          description: State of the case.
          enum:
            - INITIATED
            - REPRESENTMENT
            - PREARBITRATION
            - ARBITRATION
            - CASE_WON
            - CASE_LOST
            - NETWORK_REJECTED
            - WITHDRAWN
          type: string
        token:
          description: Unique identifier of the chargeback.
          maxLength: 36
          minLength: 1
          type: string
        transaction_token:
          description: Unique identifier of the transaction being charged back.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - channel
        - created_time
        - credit_user
        - last_modified_time
        - network
        - state
        - token
        - transaction_token
      type: object
    chargeback_transition_request:
      properties:
        amount:
          description: Representment or prearbitration amount; this is for transitioning
            to Representment or Prearbitration only
          exclusiveMinimum: false
          minimum: 0.01
          type: number
        chargeback_token:
          maxLength: 36
          minLength: 1
          type: string
        reason:
          maxLength: 1024
          minLength: 1
          type: string
        regulation_type:
          type: string
        state:
          enum:
            - REPRESENTMENT
            - PREARBITRATION
            - PREARB_RESPONDED
            - ARBITRATION
            - CASE_WON
            - CASE_LOST
            - WRITTEN_OFF_ISSUER
            - WRITTEN_OFF_PROGRAM
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        type:
          type: string
      required:
        - chargeback_token
        - state
      type: object
    chargeback_transition_response:
      properties:
        amount:
          type: number
        channel:
          enum:
            - GATEWAY
            - GATEWAY_AUTOMATED
            - ISSUER
            - ISSUER_AUTOMATED
          type: string
        chargeback_token:
          maxLength: 36
          minLength: 1
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        previous_state:
          enum:
            - INITIATED
            - REPRESENTMENT
            - PREARBITRATION
            - ARBITRATION
            - CASE_WON
            - CASE_LOST
            - NETWORK_REJECTED
            - WITHDRAWN
          type: string
        reason:
          maxLength: 1024
          minLength: 0
          type: string
        state:
          enum:
            - INITIATED
            - REPRESENTMENT
            - PREARBITRATION
            - ARBITRATION
            - CASE_WON
            - CASE_LOST
            - NETWORK_REJECTED
            - WITHDRAWN
            - WRITTEN_OFF_ISSUER
            - WRITTEN_OFF_PROGRAM
          type: string
        token:
          maxLength: 36
          minLength: 0
          type: string
        transaction_token:
          maxLength: 36
          minLength: 0
          type: string
        type:
          enum:
            - initiated
            - representment
            - prearbitration
            - arbitration
            - case.won
            - case.lost
            - network.rejected
            - written.off.issuer
            - written.off.program
          type: string
      required:
        - channel
        - chargeback_token
        - created_time
        - last_modified_time
        - previous_state
        - state
        - token
        - type
      type: object
    clearing_and_settlement:
      properties:
        overdraft_destination:
          default: GPA
          description: Default value of GPA does not apply when JIT funding is enabled
          enum:
            - GPA
            - MSA
            - MERCHANT_CAMPAIGN_ACCOUNT
            - GLOBAL_OVERDRAFT_ACCOUNT
          type: string
      type: object
    click_to_pay_check_eligibility_response:
      properties:
        image_assets:
          description: List of image assets for the Click to Pay logo if `include_asset`
            is set to `true` in the request.
          items:
            $ref: '#/components/schemas/media_content'
          type: array
        is_eligible:
          default: false
          description: |-
            Indicates whether the `bin_prefix` is eligible for Click to Pay.

            * `true`: The `bin_prefix` is eligible for Click to Pay.
            * `false`: The `bin_prefix` is not eligible for Click to Pay.
          type: boolean
      type: object
    click_to_pay_enroll_request:
      properties:
        basic_auth_password:
          description: |-
            Basic auth password to access your callback URL if authentication type is basic.
            If authentication type is basic, both username and password are required.
          maxLength: 50
          minLength: 20
          type: string
        basic_auth_username:
          description: |-
            Basic auth username to access your callback URL if authentication type is basic.
            If authentication type is basic, both username and password are required.
          maxLength: 50
          minLength: 1
          type: string
        callback_authentication_type:
          description: |-
            The type of authentication required for the callback URL.

            * `OAUTH_BEARER_TOKEN`: OAuth bearer token for the callback URL.
            * `BASIC_AUTH`: Basic auth username and password for the callback URL.
          enum:
            - OAUTH_BEARER_TOKEN
            - BASIC_AUTH
          type: string
        callback_secret_for_signature:
          description: |-
            Randomly chosen string used for implementing HMAC-SHA1.

            HMAC-SHA1 provides an added layer of security by authenticating the message and validating message integrity.
            Using this functionality requires that your callback endpoint verify the message signature.
            For information about implementing this functionality, see <</developer-guides/signature-verification, Signature Verification>>.
          maxLength: 50
          minLength: 20
          type: string
        callback_url:
          description: The URL to which the Click to Pay request status is sent via
            webhooks.
          type: string
        card_token:
          description: Unique identifier of the card resource.
          maxLength: 36
          minLength: 1
          type: string
        locale_country:
          description: |-
            The user-provided country code.
            The ISO 3166 country code is a two-letter country code that represents a country.
            For example, the numeric code for the United States is `US`.

            The ISO maintains the link:https://www.iso.org/iso-3166-country-codes.html[ISO-3166 country codes, window="_blank"].
          maxLength: 2
          minLength: 2
          type: string
        locale_language:
          description: |-
            The user-provided language choice.
            The ISO 639-2 language code is a two-letter country code that represents a language.

            The ISO maintains the link:https://id.loc.gov/vocabulary/iso639-2.html[ISO 639-2 language codes, window="_blank"].
          maxLength: 2
          minLength: 2
          type: string
        oauth_bearer_token:
          description: OAuth bearer token to access your callback URL if the `callback_authentication_type`
            is `OAUTH_BEARER_TOKEN`.
          type: string
        user_details:
          description: User's email address and mobile phone number with country code.
          items:
            $ref: '#/components/schemas/click_to_pay_enroll_request_user_details'
          type: array
        user_token:
          description: Unique identifier of the cardholder.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - card_token
        - locale_country
        - locale_language
        - user_details
        - user_token
      type: object
    click_to_pay_enroll_request_user_details:
      description: User's email address and mobile phone number with country code.
      properties:
        email_address:
          description: User's email address.
          type: string
        mobile_number:
          $ref: '#/components/schemas/click_to_pay_enroll_request_user_mobile_number'
      required:
        - email_address
        - mobile_number
      type: object
    click_to_pay_enroll_request_user_mobile_number:
      description: User's mobile phone number and country code.
      properties:
        country_code:
          description: User's mobile phone number country code only.
          type: string
        phone_number:
          description: User's mobile phone number without country code.
          type: string
      required:
        - country_code
        - phone_number
      type: object
    click_to_pay_enroll_response:
      properties:
        token:
          description: Unique identifier of the Click to Pay request.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    click_to_pay_status_response:
      properties:
        status:
          description: |-
            The status of the Click to Pay request.

            * `SUCCESS`: The Click to Pay request was successful.
            * `FAILED`: The Click to Pay request failed.
            * `RECEIVED`: The Click to Pay request was received.
          enum:
            - SUCCESS
            - FAILED
            - RECEIVED
          type: string
        token:
          description: Unique identifier of the Click to Pay request, used to track
            the status of the request.
          maxLength: 36
          type: string
        token_reference_id:
          description: Unique identifier of the digital wallet token within the card
            network.
          type: string
      type: object
    client_access_token_request:
      properties:
        application_token:
          description: Unique identifier of the `application` object.
          maxLength: 255
          minLength: 1
          type: string
        card_token:
          description: Unique identifier of the card whose sensitive information you
            want to display.
          maxLength: 255
          minLength: 1
          type: string
      required:
        - card_token
      type: object
    client_access_token_response:
      properties:
        application:
          $ref: '#/components/schemas/Application'
        card_token:
          description: Unique identifier of the card whose sensitive information you
            want to display.
          type: string
        created:
          description: Date and time when the client access token was created, in
            UTC.
          format: date-time
          type: string
        expires:
          description: Date and time when the client access token expires, in UTC.
          format: date-time
          type: string
        token:
          description: Value of the client access token to redeem when displaying
            sensitive card data.
          type: string
      type: object
    commando_mode_enables:
      properties:
        auth_controls:
          items:
            type: string
          type: array
        ignore_card_suspended_state:
          default: false
          type: boolean
        program_funding_source:
          type: string
        use_cache_balance:
          default: false
          type: boolean
        velocity_controls:
          items:
            type: string
          maxItems: 2147483647
          minItems: 1
          type: array
      required:
        - program_funding_source
      type: object
    commando_mode_nested_transition:
      properties:
        channel:
          enum:
            - API
            - SYSTEM
            - ADMIN
          type: string
        commando_enabled:
          default: false
          type: boolean
        reason:
          type: string
        username:
          type: string
      required:
        - channel
        - commando_enabled
      type: object
    commando_mode_response:
      properties:
        commando_mode_enables:
          $ref: '#/components/schemas/commando_mode_enables'
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        current_state:
          $ref: '#/components/schemas/commando_mode_nested_transition'
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        program_gateway_funding_source_token:
          type: string
        real_time_standin_criteria:
          $ref: '#/components/schemas/real_time_standin_criteria'
        token:
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    commando_mode_transition_response:
      properties:
        commando_mode_token:
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        name:
          type: string
        token:
          type: string
        transition:
          $ref: '#/components/schemas/commando_mode_nested_transition'
        type:
          type: string
      required:
        - created_time
      type: object
    config:
      description: Allows for configuration options for this group, including control
        over the expiration of authorizations and automatic increases to the authorization
        amount.
      properties:
        authorization_controls:
          $ref: '#/components/schemas/authorization_controls'
      type: object
    control_token_request:
      properties:
        card_token:
          description: The unique identifier of the card for which you want to generate
            a control token.
          maxLength: 36
          minLength: 1
          type: string
        controltoken_type:
          description: |-
            Specifies the type of action completed by this request.

            *WARNING:* Sending a request to this endpoint with a `REVEAL_PIN` control token requires PCI DSS compliance.

            The lifespan of the control token depends on the token type:

            * *SET_PIN:* 60 minutes
            * *REVEAL_PIN:* 5 minutes
          enum:
            - SET_PIN
            - REVEAL_PIN
          type: string
      required:
        - card_token
      type: object
    control_token_response:
      properties:
        control_token:
          description: |-
            Unique value generated as a result of issuing a `POST` request to the `/pins/controltoken` endpoint.
            This value cannot be updated.
          type: string
      required:
        - control_token
      type: object
    currency_conversion:
      description: Contains information about currency conversion.
      properties:
        network:
          $ref: '#/components/schemas/network'
      type: object
    customer_due_diligence_request:
      properties:
        answer:
          type: string
        question:
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - answer
        - question
      type: object
    customer_due_diligence_response:
      properties:
        account_token:
          type: string
        answer:
          type: string
        bank:
          type: string
        question:
          type: string
        token:
          type: string
        type:
          type: string
      required:
        - account_token
        - answer
        - bank
        - question
        - token
        - type
      type: object
    customer_due_diligence_update_response:
      properties:
        answer:
          type: string
      type: object
    deposit_account:
      properties:
        account_number:
          type: string
        allow_immediate_credit:
          default: false
          type: boolean
        business_token:
          type: string
        routing_number:
          type: string
        token:
          type: string
        user_token:
          type: string
      required:
        - account_number
        - routing_number
        - token
      type: object
      xml:
        name: deposit_account
    deposit_account_update_request:
      properties:
        allow_immediate_credit:
          default: false
          type: boolean
      type: object
      xml:
        name: deposit_account_update_request
    device:
      description: Contains information related to the device being provisioned.
      properties:
        device_id:
          description: Identity number of the device.
          type: string
        ip_address:
          description: Device's IP address.
          type: string
        language_code:
          description: Language the device is configured to use.
          type: string
        location:
          description: Geographic coordinates of the device.
          type: string
        name:
          description: Name of the device.
          type: string
        phone_number:
          description: Device's telephone number.
          type: string
        token:
          description: Unique identifier of the device object.
          type: string
        type:
          description: Type of device being provisioned.
          type: string
      type: object
    digital_service_provider:
      properties:
        cvm_authentication_indicator:
          type: string
        cvm_authentication_method:
          type: string
        first_authentication_factor:
          type: string
        second_authentication_factor:
          type: string
      type: object
    digital_wallet_android_pay_provision_request:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          maxLength: 36
          minLength: 1
          type: string
        device_id:
          description: Unique identifier of the user's Google device, as provided
            by Google during the provisioning process.
          maxLength: 24
          minLength: 1
          type: string
        device_type:
          description: Type of device into which the digital wallet token will be
            provisioned.
          enum:
            - MOBILE_PHONE
            - WATCH
            - TABLET
            - WEARABLE_DEVICE
            - HOUSEHOLD_DEVICE
            - AUTOMOBILE_DEVICE
          type: string
        provisioning_app_version:
          description: |-
            Version of the application making the provisioning request.
            Used for debugging and fraud prevention.
          maxLength: 50
          minLength: 1
          type: string
        wallet_account_id:
          description: User's Google Wallet account ID, as provided by Google during
            the provisioning process.
          maxLength: 50
          minLength: 1
          type: string
      required:
        - card_token
        - device_id
        - device_type
        - provisioning_app_version
        - wallet_account_id
      type: object
    digital_wallet_android_pay_provision_response:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          type: string
        created_time:
          description: Date and time when the digital wallet provisioning request
            was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the digital wallet token provisioning request
            was last updated, in UTC.
          format: date-time
          type: string
        push_tokenize_request_data:
          $ref: '#/components/schemas/android_push_tokenize_request_data'
      required:
        - card_token
        - created_time
        - last_modified_time
        - push_tokenize_request_data
      type: object
    digital_wallet_apple_pay_provision_request:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          maxLength: 36
          minLength: 1
          type: string
        certificates:
          description: |-
            Base64-encoded leaf and sub-CA certificates provided by Apple.

            The first element of the array should be the leaf certificate, followed by the sub-CA.
          items:
            description: |-
              Base64-encoded leaf and sub-CA certificates provided by Apple.

              The first element of the array should be the leaf certificate followed by the sub-CA.
            type: string
          type: array
        device_type:
          description: Type of device into which the digital wallet token will be
            provisioned.
          enum:
            - MOBILE_PHONE
            - WATCH
            - TABLET
            - WEARABLE_DEVICE
            - HOUSEHOLD_DEVICE
            - AUTOMOBILE_DEVICE
          type: string
        nonce:
          description: One-time-use nonce provided by Apple for security purposes.
          type: string
        nonce_signature:
          description: Apple-provided signature to the nonce.
          type: string
        provisioning_app_version:
          description: |-
            Version of the application making the provisioning request.
            Used for debugging and fraud prevention.
          maxLength: 50
          minLength: 1
          type: string
      required:
        - card_token
        - certificates
        - device_type
        - nonce
        - nonce_signature
        - provisioning_app_version
      type: object
    digital_wallet_apple_pay_provision_response:
      properties:
        activation_data:
          description: Cryptographic one-time passcode conforming to the payment network
            operator or service provider specifications.
          type: string
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          type: string
        created_time:
          description: Date and time when the digital wallet provisioning request
            was created, in UTC.
          format: date-time
          type: string
        encrypted_pass_data:
          description: Payload encrypted with a shared key derived from the Apple
            Public Certificates and the generated ephemeral private key.
          type: string
        ephemeral_public_key:
          description: Ephemeral public key used for the provisioning attempt.
          type: string
        last_modified_time:
          description: Date and time when the digital wallet token provisioning request
            was last updated, in UTC.
          format: date-time
          type: string
      required:
        - activation_data
        - card_token
        - created_time
        - encrypted_pass_data
        - ephemeral_public_key
        - last_modified_time
      type: object
    digital_wallet_samsung_pay_provision_request:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          maxLength: 36
          minLength: 1
          type: string
        device_id:
          description: User's Samsung device unique identifier, as provided by Samsung
            during the provisioning process.
          maxLength: 24
          minLength: 1
          type: string
        device_type:
          description: Type of device into which the digital wallet token will be
            provisioned.
          enum:
            - MOBILE_PHONE
            - WATCH
            - TABLET
            - WEARABLE_DEVICE
            - HOUSEHOLD_DEVICE
            - AUTOMOBILE_DEVICE
          type: string
        provisioning_app_version:
          description: |-
            Version of the application making the provisioning request.
            Used for debugging and fraud prevention.
          maxLength: 50
          minLength: 1
          type: string
        wallet_user_id:
          description: User's Samsung Wallet account ID, as provided by Samsung during
            the provisioning process.
          maxLength: 50
          minLength: 1
          type: string
      required:
        - card_token
        - device_id
        - device_type
        - provisioning_app_version
        - wallet_user_id
      type: object
    digital_wallet_samsung_pay_provision_response:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          type: string
        created_time:
          description: Date and time when the digital wallet provisioning request
            was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the digital wallet token provisioning request
            was last updated, in UTC.
          format: date-time
          type: string
        push_tokenize_request_data:
          $ref: '#/components/schemas/samsung_push_tokenize_request_data'
      required:
        - card_token
        - created_time
        - last_modified_time
        - push_tokenize_request_data
      type: object
    digital_wallet_token:
      description: |-
        Contains information about the digital wallet that funded the transaction.

        Returned for all transactions funded by a digital wallet or related to digital wallet token provisioning.

        For more on digital wallets, see the <</core-api/digital-wallets-management, Digital Wallets Management>> API reference and <</developer-guides/digital-wallets-and-tokenization, Digital Wallets and Tokenization>> developer guide.
      properties:
        address_verification:
          $ref: '#/components/schemas/address_verification'
        card_token:
          description: Unique identifier of the card.
          type: string
        created_time:
          description: Date and time when the digital wallet token object was created,
            in UTC.
          format: date-time
          type: string
        device:
          $ref: '#/components/schemas/device'
        fulfillment_status:
          description: |-
            Digital wallet token's provisioning status.

            For fulfillment status descriptions, see <</core-api/digital-wallets-management#postDigitalwallettokentransitions, Create digital wallet token transition>>.
          type: string
        issuer_eligibility_decision:
          description: |-
            The Marqeta platform's decision as to whether the digital wallet token should be provisioned.

            * *0000* – The token should be provisioned.

            * *token.activation.verification.required* – Provisioning is pending; further action is required for completion.

            For all other values, check the value of the `fulfillment_status` field to definitively ascertain the provisioning outcome.

            *NOTE:* The value `invalid.cid` indicates an invalid CVV2 number.
          type: string
        last_modified_time:
          description: Date and time when the digital wallet token object was last
            modified, in UTC.
          format: date-time
          type: string
        metadata:
          $ref: '#/components/schemas/digital_wallet_token_metadata'
        state:
          description: |-
            State of the digital wallet token.

            For state descriptions, see <</developer-guides/managing-the-digital-wallet-token-lifecycle#_transitioning_token_states, Transitioning Token States>>.
          type: string
        state_reason:
          description: Reason why the digital wallet token transitioned to its current
            state.
          type: string
        token:
          description: Unique identifier of the digital wallet token.
          type: string
        token_service_provider:
          $ref: '#/components/schemas/token_service_provider'
        transaction_device:
          $ref: '#/components/schemas/transaction_device'
        user:
          $ref: '#/components/schemas/user_card_holder_response'
        wallet_provider_profile:
          $ref: '#/components/schemas/wallet_provider_profile'
      type: object
    digital_wallet_token_address_verification:
      properties:
        validate:
          default: true
          description: Specifies whether or not the address used for address verification
            is valid.
          type: boolean
      type: object
    digital_wallet_token_hash:
      description: Contains identifiers of the digital wallet token resource and the
        card resource.
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          maxLength: 36
          minLength: 1
          type: string
        token:
          description: Unique identifier of the digital wallet token resource.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - token
      type: object
    digital_wallet_token_metadata:
      description: Contains additional information about the digital wallet token.
      properties:
        cardproduct_preferred_notification_language:
          description: |-
            Language specified in the `config.transaction_controls.notification_language` field of the card product:

            * *ces* – Czech
            * *deu* – German
            * *eng* – English
            * *fra* – French
            * *grc* – Greek
            * *ita* – Italian
            * *nld* – Dutch
            * *pol* – Polish
            * *prt* – Portuguese
            * *rou* – Romanian
            * *spa* – Spanish
            * *swe* – Swedish

            By default, notifications are sent in English.

            The ISO maintains the link:https://www.iso.org/iso-3166-country-codes.html[full list of ISO 3166 two- and three-digit numeric country codes, window="_blank"].
          type: string
        issuer_product_config_id:
          description: Unique identifier of the product configuration on the Marqeta
            platform.
          type: string
      type: object
    digital_wallet_token_transition_request:
      properties:
        channel:
          description: Mechanism by which the transition was initiated.
          enum:
            - TOKEN_SERVICE_PROVIDER
            - TOKEN_SERVICE_PROVIDER_API
            - DIGITAL_WALLET
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
          type: string
        digital_wallet_token:
          $ref: '#/components/schemas/digital_wallet_token_hash'
        reason:
          description: The reason for the transition.
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          description: |-
            Standard code describing the reason for the transition.

            *NOTE:* This field is required if your program uses v2 of the `user_card_state_version`, which is a program-specific configuration value that is managed by Marqeta and cannot be accessed via the API.
            To learn more about the `user_card_state_version` program configuration, contact your Marqeta representative.

            * *00:* Object activated for the first time
            * *01:* Requested by you
            * *02:* Inactivity over time
            * *03:* This address cannot accept mail or the addressee is unknown
            * *04:* Negative account balance
            * *05:* Account under review
            * *06:* Suspicious activity was identified
            * *07:* Activity outside the program parameters was identified
            * *08:* Confirmed fraud was identified
            * *09:* Matched with an Office of Foreign Assets Control list
            * *10:* Card was reported lost
            * *11:* Card information was cloned
            * *12:* Account or card information was compromised
            * *13:* Temporary status change while on hold/leave
            * *14:* Initiated by Marqeta
            * *15:* Initiated by issuer
            * *16:* Card expired
            * *17:* Failed KYC
            * *18:* Changed to `ACTIVE` because information was properly validated
            * *19:* Changed to `ACTIVE` because account activity was properly validated
            * *20:* Change occurred prior to the normalization of reason codes
            * *21:* Initiated by a third party, often a digital wallet provider
            * *22:* PIN retry limit reached
            * *23:* Card was reported stolen
            * *24:* Address issue
            * *25:* Name issue
            * *26:* SSN issue
            * *27:* DOB issue
            * *28:* Email issue
            * *29:* Phone issue
            * *30:* Account/fulfillment mismatch
            * *31:* Other reason
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        state:
          description: |-
            Specifies the state to which the digital wallet token will transition.

            The original state is `REQUESTED`. You cannot modify the state if its current value is either `REQUEST_DECLINED` or `TERMINATED`.
          enum:
            - ACTIVE
            - SUSPENDED
            - TERMINATED
          type: string
        token:
          description: |-
            The unique identifier of the digital wallet token transition (not the identifier of the digital wallet token itself).

            If you do not include a value for the `token` field, the system will generate one automatically.
            This value is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        token_reference_id:
          description: |-
            The unique identifier of the digital wallet token within the card network.
            The `token_reference_id` is unique at the card network level.
          type: string
      required:
        - digital_wallet_token
        - state
      type: object
    digital_wallet_token_transition_response:
      properties:
        card_swap:
          $ref: '#/components/schemas/card_swap_hash'
        channel:
          description: Mechanism by which the transition was initiated.
          enum:
            - TOKEN_SERVICE_PROVIDER
            - DIGITAL_WALLET
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
            - TOKEN_SERVICE_PROVIDER_API
          type: string
        created_time:
          description: Date and time when the transition was created, in UTC.
          format: date-time
          type: string
        digital_wallet_token:
          $ref: '#/components/schemas/digital_wallet_token_hash'
        fulfillment_status:
          description: Provisioning status of the digital wallet token.
          enum:
            - DECISION_RED
            - DECISION_YELLOW
            - DECISION_GREEN
            - REJECTED
            - PROVISIONED
          type: string
        reason:
          description: Reason for the transition.
          maxLength: 255
          minLength: 0
          type: string
        reason_code:
          description: |-
            Standard code describing the reason for the transition:

            * *00:* Object activated for the first time
            * *01:* Requested by you
            * *02:* Inactivity over time
            * *03:* This address cannot accept mail or the addressee is unknown
            * *04:* Negative account balance
            * *05:* Account under review
            * *06:* Suspicious activity was identified
            * *07:* Activity outside the program parameters was identified
            * *08:* Confirmed fraud was identified
            * *09:* Matched with an Office of Foreign Assets Control list
            * *10:* Card was reported lost
            * *11:* Card information was cloned
            * *12:* Account or card information was compromised
            * *13:* Temporary status change while on hold/leave
            * *14:* Initiated by Marqeta
            * *15:* Initiated by issuer
            * *16:* Card expired
            * *17:* Failed KYC
            * *18:* Changed to `ACTIVE` because information was properly validated
            * *19:* Changed to `ACTIVE` because account activity was properly validated
            * *20:* Change occurred prior to the normalization of reason codes
            * *21:* Initiated by a third party, often a digital wallet provider
            * *22:* PIN retry limit reached
            * *23:* Card was reported stolen
            * *24:* Address issue
            * *25:* Name issue
            * *26:* SSN issue
            * *27:* DOB issue
            * *28:* Email issue
            * *29:* Phone issue
            * *30:* Account/fulfillment mismatch
            * *31:* Other reason
          enum:
            - '00'
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
            - '06'
            - '07'
            - '08'
            - '09'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '31'
            - '32'
          type: string
        state:
          description: Specifies the state to which the digital wallet token is transitioning.
          enum:
            - REQUESTED
            - REQUEST_DECLINED
            - ACTIVE
            - SUSPENDED
            - TERMINATED
          type: string
        token:
          description: Unique identifier of the digital wallet token transition, and
            not the identifier of the digital wallet token itself.
          maxLength: 36
          minLength: 1
          type: string
        type:
          description: |-
            Type of digital wallet token transition.
            `state.activated`, for example.
          maxLength: 36
          minLength: 0
          readOnly: true
          type: string
      required:
        - channel
        - digital_wallet_token
        - fulfillment_status
        - state
        - token
        - type
      type: object
    digital_wallet_x_pay_provision_request:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          maxLength: 36
          minLength: 1
          type: string
        device_id:
          description: Unique identifier of the user's XPay device, as provided by
            XPay during the provisioning process.
          maxLength: 24
          minLength: 1
          type: string
        device_type:
          description: Type of device into which the digital wallet token will be
            provisioned.
          enum:
            - MOBILE_PHONE
            - WATCH
            - TABLET
            - WEARABLE_DEVICE
            - HOUSEHOLD_DEVICE
            - AUTOMOBILE_DEVICE
          type: string
        provisioning_app_version:
          description: |-
            Version of the application making the provisioning request.
            Used for debugging and fraud prevention.
          maxLength: 50
          minLength: 1
          type: string
        token_requestor_id:
          description: |-
            Unique numerical identifier of the digital wallet token requestor within the card network.
            These ID numbers map to `token_requestor_name` field values as follows:

            *Mastercard*

            * 50110030273 – `APPLE_PAY`
            * 50120834693 – `ANDROID_PAY`
            * 50139059239 – `SAMSUNG_PAY`

            *Visa*

            * 40010030273 – `APPLE_PAY`
            * 40010075001 – `ANDROID_PAY`
            * 40010043095 – `SAMSUNG_PAY`
            * 40010075196 – `MICROSOFT_PAY`
            * 40010075338 – `VISA_CHECKOUT`
            * 40010075449 – `FACEBOOK`
            * 40010075839 – `NETFLIX`
            * 40010077056 – `FITBIT_PAY`
            * 40010069887 – `GARMIN_PAY`
          maxLength: 11
          minLength: 0
          type: string
        wallet_account_id:
          description: User's XPay account identifier, as provided by XPay during
            the provisioning process.
          maxLength: 50
          minLength: 1
          type: string
      required:
        - card_token
        - device_id
        - device_type
        - provisioning_app_version
        - token_requestor_id
        - wallet_account_id
      type: object
    digital_wallet_x_pay_provision_response:
      properties:
        card_token:
          description: Unique identifier of the card resource to use for the provisioning
            request.
          type: string
        created_time:
          description: Date and time when the digital wallet provisioning request
            was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the digital wallet token provisioning request
            was last updated, in UTC.
          format: date-time
          type: string
        push_tokenize_request_data:
          $ref: '#/components/schemas/xpay_push_tokenize_request_data'
      required:
        - card_token
        - created_time
        - last_modified_time
        - push_tokenize_request_data
      type: object
    direct_deposit_account_request:
      properties:
        allow_immediate_credit:
          default: false
          type: boolean
        business_token:
          description: Required if 'user_token' is null
          maxLength: 36
          minLength: 1
          type: string
        customer_due_diligence:
          description: Required if account type = Checking
          items:
            $ref: '#/components/schemas/customer_due_diligence_request'
          type: array
        token:
          maxLength: 36
          minLength: 1
          type: string
        type:
          enum:
            - DEPOSIT_ACCOUNT
            - CHECKING
            - SAVINGS
          type: string
        user_token:
          description: Required if 'business_token' is null
          maxLength: 36
          minLength: 1
          type: string
      type: object
    direct_deposit_account_response:
      properties:
        account_number:
          maxLength: 17
          minLength: 13
          type: string
        allow_immediate_credit:
          default: false
          type: boolean
        business_token:
          maxLength: 36
          minLength: 36
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        routing_number:
          maxLength: 9
          minLength: 9
          type: string
        state:
          maxLength: 10
          minLength: 6
          type: string
        token:
          maxLength: 36
          minLength: 36
          type: string
        type:
          maxLength: 36
          minLength: 7
          type: string
        user_token:
          maxLength: 36
          minLength: 36
          type: string
      required:
        - account_number
        - allow_immediate_credit
        - business_token
        - created_time
        - last_modified_time
        - routing_number
        - state
        - token
        - user_token
      type: object
    direct_deposit_account_transition_request:
      properties:
        account_token:
          maxLength: 36
          minLength: 1
          type: string
        channel:
          enum:
            - API
            - IVR
            - FRAUD
            - ADMIN
            - SYSTEM
            - NETWORK
            - PROD_SUPPORT
            - UNSUPPORTED
          type: string
        reason:
          maxLength: 255
          minLength: 1
          type: string
        state:
          enum:
            - ACTIVE
            - SUSPENDED
            - TERMINATED
            - UNSUPPORTED
            - UNACTIVATED
            - LIMITED
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - account_token
        - channel
      type: object
    direct_deposit_account_transition_response:
      properties:
        account_token:
          maxLength: 36
          minLength: 36
          type: string
        business_token:
          maxLength: 36
          minLength: 36
          type: string
        channel:
          maxLength: 10
          minLength: 6
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        reason:
          maxLength: 255
          minLength: 0
          type: string
        state:
          maxLength: 10
          minLength: 6
          type: string
        token:
          maxLength: 36
          minLength: 36
          type: string
        user_token:
          maxLength: 36
          minLength: 36
          type: string
      required:
        - account_token
        - business_token
        - channel
        - created_time
        - reason
        - state
        - token
        - user_token
      type: object
    direct_deposit_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            name:
              type: string
          required:
            - name
          type: object
    early_funds_request_model:
      properties:
        bank_transfer_token:
          maxLength: 36
          minLength: 0
          type: string
      type: object
    echo_ping_request:
      properties:
        payload:
          description: Payload of the ping request.
          type: string
        token:
          description: Unique identifier of the ping request.
          type: string
      type: object
    echo_ping_response:
      properties:
        id:
          type: string
        payload:
          type: string
        success:
          default: false
          type: boolean
      type: object
    error_message_from_web_push_provisioning_request:
      properties:
        error_code:
          description: Code for the error that occurred.
          example: '400401'
          type: string
        error_message:
          description: Descriptive error message.
          example: 'Invalid input(s): invalid user token'
          type: string
      required:
        - error_code
        - error_message
      type: object
    expiration_offset:
      properties:
        unit:
          description: specify if a value is provided; default is card product expiration
            offset unit
          enum:
            - YEARS
            - MONTHS
            - DAYS
            - HOURS
            - MINUTES
            - SECONDS
          type: string
        value:
          description: specify if unit is provided; default is card product expiration
            offset value
          format: int32
          type: integer
      type: object
    fee:
      description: Contains details about the fee.
      properties:
        amount:
          description: Amount of the fee.
          type: number
        created_time:
          description: Date and time when the `fees` object was created, in UTC.
          format: date-time
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        last_modified_time:
          description: Date and time when the `fees` object was last modified, in
            UTC.
          format: date-time
          type: string
        name:
          description: Name of the fee.
          type: string
        tags:
          description: Descriptive metadata about the fee.
          type: string
        token:
          description: Unique identifier of the `fees` object.
          type: string
      required:
        - amount
        - created_time
        - currency_code
        - last_modified_time
        - name
        - token
      type: object
    fee_attributes:
      description: Describes the attributes of a fee.
      properties:
        reason:
          description: Describes the reason for the fee.
          type: string
        region:
          description: Describes the region in which the fee is assessed.
          type: string
        status:
          description: Describes the status of the fee.
          type: string
        transaction_type:
          description: Specifies the transaction type in which the fee was assessed.
          type: string
      type: object
    fee_detail:
      description: Contains details about a fee.
      properties:
        fee:
          $ref: '#/components/schemas/fee'
        memo:
          description: Additional text that describes the fee transfer.
          maxLength: 99
          minLength: 1
          type: string
        tags:
          description: Descriptive metadata about the fee.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the fee.
          maxLength: 36
          minLength: 1
          type: string
        transaction_token:
          description: Unique identifier of the fee transaction.
          type: string
      required:
        - fee
        - token
        - transaction_token
      type: object
    fee_model:
      description: |-
        Contains attributes that define characteristics of one or more fees.
        This array is returned in the response when it is included in the request.
      properties:
        memo:
          description: Additional text that describes the fee.
          maxLength: 99
          minLength: 1
          type: string
        tags:
          description: Descriptive metadata about the fee.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the fee.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - token
      type: object
    fee_refund_request:
      description: Specifies the fee to refund.
      properties:
        original_fee_transaction_token:
          description: "Unique identifier of the fee to be refunded. \n\nYou can find\
            \ this token in the response of the original `/feecharges` or `/gpaorders`\
            \ request used to assess the standalone fee or from the webhook corresponding\
            \ to the original request.\nYou can also send a `GET` request to `/transactions?type=fee.charges`\
            \ to retrieve a list of fee transactions."
          type: string
        tags:
          description: Descriptive metadata about the fee.
          type: string
      type: object
    fee_request:
      properties:
        active:
          default: true
          description: Indicates whether the fee is active.
          type: boolean
        amount:
          description: Amount of the fee.
          type: number
        category:
          description: Specifies if the fee is a standalone fee or a real-time fee.
          enum:
            - STANDALONE
            - REALTIME
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fee_attributes:
          $ref: '#/components/schemas/fee_attributes'
        name:
          description: Name of the fee request.
          maxLength: 50
          minLength: 1
          type: string
        tags:
          description: Descriptive metadata about the fee.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the fee.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so Marqeta recommends that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        type:
          description: Specifies if the fee is a flat fee or a percentage of the transaction
            amount.
          enum:
            - FLAT
            - PERCENTAGE
          type: string
      required:
        - amount
        - currency_code
        - name
      type: object
    fee_response:
      description: Contains details about the fee.
      properties:
        active:
          description: Specifies whether the fee is active.
          readOnly: true
          type: boolean
        amount:
          description: Amount of the fee.
          type: number
        category:
          description: Specifies if the fee is a standalone fee or a real-time fee.
          readOnly: true
          type: string
        created_time:
          description: Date and time when the `fees` object was created, in UTC.
          format: date-time
          readOnly: true
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          readOnly: true
          type: string
        fee_attributes:
          $ref: '#/components/schemas/fee_attributes'
        last_modified_time:
          description: Date and time when the `fees` object was last modified, in
            UTC.
          format: date-time
          readOnly: true
          type: string
        name:
          description: Name of the fee.
          type: string
        tags:
          description: Descriptive metadata about the fee.
          type: string
        token:
          description: Unique identifier of the `fees` object.
          type: string
        type:
          description: Specifies if the fee is a flat fee or a percentage of the transaction
            amount.
          readOnly: true
          type: string
      required:
        - active
        - amount
        - created_time
        - currency_code
        - last_modified_time
        - name
        - token
      type: object
    fee_transfer_request:
      properties:
        business_token:
          description: |-
            Specifies the business account holder to which the fee applies.

            Pass either `business_token` or `user_token`, not both.
          maxLength: 36
          minLength: 1
          type: string
        fees:
          description: Contains attributes that define characteristics of one or more
            fees.
          items:
            $ref: '#/components/schemas/fee_model'
          type: array
        tags:
          description: Metadata about the transfer.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: |-
            Unique identifier of the fee transfer.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Specifies the user account holder to which the fee applies.

            Pass either `user_token` or `business_token`, not both.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - business_token
        - fees
        - user_token
      type: object
    fee_transfer_response:
      description: Contains information about a fee charge, including the amount,
        currency code, and user or business token.
      properties:
        business_token:
          description: Specifies the business account holder to which the fee applies.
          maxLength: 36
          minLength: 1
          type: string
        created_time:
          description: Date and time when the `fee_charge` object was created, in
            UTC.
          format: date-time
          type: string
        fees:
          description: Contains attributes that define characteristics of one or more
            fees.
          items:
            $ref: '#/components/schemas/fee_detail'
          type: array
        tags:
          description: |-
            Metadata about the fee charge.

            This field is returned if it exists in the resource.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the fee transfer.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: Specifies the user account holder to which the fee applies.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - business_token
        - created_time
        - fees
        - token
        - user_token
      type: object
    fee_update_request:
      properties:
        active:
          default: true
          description: Indicates whether the fee is active.
          type: boolean
        amount:
          description: Amount of the fee.
          type: number
        category:
          enum:
            - STANDALONE
            - REALTIME
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fee_attributes:
          $ref: '#/components/schemas/fee_attributes'
        name:
          description: Name of the fee request.
          maxLength: 50
          minLength: 1
          type: string
        tags:
          description: Descriptive metadata about the fee.
          maxLength: 255
          minLength: 1
          type: string
        type:
          description: Specifies if this is a flat fee or a percentage of the transaction
            amount.
          enum:
            - FLAT
            - PERCENTAGE
          type: string
      type: object
    financial_request_model:
      properties:
        amount:
          type: number
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        cash_back_amount:
          type: number
        is_pre_auth:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        pin:
          maxLength: 15
          minLength: 1
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - card_acceptor
        - card_token
        - mid
      type: object
    flex:
      description: Contains information about a Flexible Credential transaction.
      properties:
        action:
          description: Indicates whether the Flexible Credential transaction object
            is actionable (`inquiry`) or merely informative (`advice`).
          enum:
            - inquiry
            - advice
          type: string
        eligible:
          description: Indicates if the transaction is eligible for Flexible Credential
            transactions or not.
          type: string
        eligible_products:
          description: |-
            Specifies which of the payment instrument's credentials is eligible for this transaction:

            * A value of `DEBIT` indicates the primary credential.
            * A value of `LOAN` indicates the secondary credential.
          items:
            type: string
          type: array
        secondary_credential_identifier:
          description: Identifies the secondary credential used in the transaction,
            if applicable.
          type: string
        selected_product:
          description: Indicates the eligible product that was used in the transaction.
          type: string
      type: object
    fraud_view:
      description: Contains one or more fraud determinations by the card network that
        apply to either the transaction or the cardholder's account.
      properties:
        issuer_processor:
          $ref: '#/components/schemas/issuer_fraud_view'
        network:
          $ref: '#/components/schemas/network_fraud_view'
        network_account_intelligence_score:
          $ref: '#/components/schemas/network_account_intelligence_score'
      type: object
    fulfillment_address_request:
      properties:
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        first_name:
          maxLength: 40
          minLength: 0
          type: string
        last_name:
          maxLength: 40
          minLength: 0
          type: string
        middle_name:
          maxLength: 40
          minLength: 0
          type: string
        phone:
          maxLength: 20
          minLength: 0
          type: string
        postal_code:
          maxLength: 10
          minLength: 0
          type: string
        state:
          maxLength: 32
          minLength: 0
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      type: object
    funding:
      description: Contains funding information for the transaction, including funding
        amount, type, and time.
      properties:
        amount:
          description: Amount of funds loaded into the GPA.
          type: number
        gateway_log:
          $ref: '#/components/schemas/gateway_log_model'
        source:
          $ref: '#/components/schemas/funding_source_model'
        source_address:
          $ref: '#/components/schemas/CardholderAddressResponse'
      required:
        - source
      type: object
    funding_account_response_model:
      properties:
        account_suffix:
          description: |-
            Account identifier appended to the bank account number.
            This field is returned if it exists in the resource.
          type: string
        account_type:
          description: |-
            Type of account.
            This field is returned if it exists in the resource.
          type: string
        active:
          default: false
          description: |-
            Specifies whether the account is active.
            This field is returned if it exists in the resource.
          type: boolean
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is returned if a `user_token` is not specified.
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        date_sent_for_verification:
          description: |-
            Date and time in UTC when the request for account validation was sent to the third-party partner.

            This field is returned if it exists in the resource.
          format: date-time
          type: string
        date_verified:
          description: |-
            Date and time when the account was verified, in UTC.
            This field is returned if it exists in the resource.
          format: date-time
          type: string
        exp_date:
          description: |-
            Payment card expiration date.
            This field is returned if it exists in the resource.
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.

            This field is returned if it exists in the resource.
          type: boolean
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        link_partner_account_reference_token:
          type: string
        name_on_account:
          description: |-
            Name on the account.
            This field is returned if it exists in the resource.
          type: string
        partner:
          description: |-
            Name of the partner who validated the account holder.
            Returned when a third-party partner was used for account validation.
          type: string
        partner_account_link_reference_token:
          description: |-
            Supplied by the account validation partner, this value is a reference to the account holder's details, such as the account number and routing number.
            Returned when a third-party partner was used for account validation.
          type: string
        token:
          description: |-
            Unique identifier of the funding source.
            This field is returned if it exists in the resource.
          type: string
        type:
          description: Funding source type.
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is returned if a `business_token` is not specified.
          type: string
        verification_notes:
          description: |-
            Free-form text field for holding notes about verification.
            This field is returned only if `verification_override = true`.
          type: string
        verification_override:
          default: false
          description: |-
            Allows the ACH funding source to be used regardless of its verification status.

            *NOTE:* When using `PLAID` to validate a funding source, this field is always set to `true`.
          type: boolean
        verification_status:
          description: |-
            Account verification status.
            This field is returned if it exists in the resource.
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    funding_source_model:
      description: Contains funding source information for the transaction, including
        the funding type and time.
      discriminator:
        mapping:
          bankaccount: '#/components/schemas/bank_account_funding_source_model'
          chargeback: '#/components/schemas/chargeback_funding_source_model'
          directdeposit: '#/components/schemas/direct_deposit_funding_source_model'
          paymentcard: '#/components/schemas/payment_card_funding_source_model'
          program: '#/components/schemas/program_funding_source_model'
          programgateway: '#/components/schemas/program_gateway_funding_source_model'
        propertyName: type
      properties:
        active:
          default: false
          description: Whether the funding source is active.
          type: boolean
        created_time:
          description: Date and time when the funding source was created, in UTC.
          format: date-time
          type: string
        is_default_account:
          default: false
          description: Whether the GPA order unload's funding source is the default
            funding account.
          type: boolean
        last_modified_time:
          description: Date and time when the funding source was last modified, in
            UTC.
          format: date-time
          type: string
        token:
          description: Unique identifier of the funding source.
          type: string
        type:
          description: Funding type of the funding source.
          type: string
      required:
        - active
        - created_time
        - is_default_account
        - last_modified_time
        - token
        - type
      type: object
    funding_tranlog:
      properties:
        account:
          $ref: '#/components/schemas/internal_account'
        account2:
          $ref: '#/components/schemas/internal_account'
        acquirer:
          type: string
        acquirerFee:
          type: number
        acquirerReferenceId:
          type: string
        actingCardholder:
          $ref: '#/components/schemas/internal_user'
        additionalAmount:
          type: number
        amount:
          type: number
        approvalNumber:
          type: string
        ca_city:
          type: string
        ca_country:
          type: string
        ca_name:
          type: string
        ca_region:
          type: string
        ca_street:
          type: string
        ca_zip:
          type: string
        captureDate:
          format: date-time
          type: string
        card:
          $ref: '#/components/schemas/internal_card'
        cardholder:
          $ref: '#/components/schemas/internal_user'
        currencyCode:
          type: string
        date:
          format: date-time
          type: string
        digital_wallet_token:
          $ref: '#/components/schemas/InternalDigitalWallet'
        displayMessage:
          type: string
        duration:
          format: int32
          type: integer
        expirationTime:
          format: date-time
          type: string
        extrc:
          type: string
        forwardingInstId:
          type: string
        functionCode:
          type: string
        gatewayLog:
          $ref: '#/components/schemas/InternalGatewayLog'
        gpaorder:
          $ref: '#/components/schemas/InternalGPAOrder'
        incomingNetworkRequestITC:
          type: string
        irc:
          type: string
        issuerFee:
          type: number
        itc:
          type: string
        layer:
          format: int32
          type: integer
        localTransactionDate:
          format: date-time
          type: string
        mcc:
          type: string
        mid:
          type: string
        network:
          type: string
        networkMid:
          type: string
        networkReferenceId:
          type: string
        node:
          type: string
        originator:
          type: string
        payload:
          $ref: '#/components/schemas/transaction_model'
        rc:
          type: string
        reasonCode:
          type: string
        ref_transaction:
          $ref: '#/components/schemas/internal_authorization_transaction'
        remoteHost:
          type: string
        requestAmount:
          type: number
        responseAmount:
          type: number
        responseCode:
          type: string
        retrievalReferenceNumber:
          type: string
        returnedBalances:
          type: string
        settlementDate:
          format: date-time
          type: string
        stan:
          type: string
        subNetwork:
          type: string
        tags:
          type: string
        tid:
          type: string
        token:
          type: string
        tranlogAttributes:
          additionalProperties:
            type: string
          type: object
        transactionState:
          enum:
            - PENDING
            - CLEARED
            - COMPLETION
            - DECLINED
            - ERROR
            - ALL
          type: string
        transactionType:
          type: string
        transaction_name:
          type: string
        transmissionDate:
          format: date-time
          type: string
      required:
        - gatewayLog
        - gpaorder
        - network
        - node
        - subNetwork
        - token
        - transactionType
      type: object
    gateway_log_model:
      description: Contains information from the JIT Funding gateway in response to
        a funding request.
      properties:
        duration:
          description: Length of time in milliseconds that the gateway took to respond
            to a funding request.
          format: int64
          type: integer
        message:
          description: |-
            Message about the status of the funding request.
            Useful for determining whether it was approved and completed successfully, declined by the gateway, or timed out.
          type: string
        order_number:
          description: Customer order number, same value as `transaction.token`.
          type: string
        response:
          $ref: '#/components/schemas/gateway_response'
        timed_out:
          default: false
          description: Whether the gateway sent a response (`true`) or timed out (`false`).
          type: boolean
        transaction_id:
          description: Customer-defined identifier for the transaction.
          type: string
      required:
        - message
        - order_number
        - transaction_id
      type: object
    gateway_program_custom_header_update_request:
      properties:
        custom_header:
          additionalProperties:
            type: string
          description: "Additional custom information included in the HTTP header.\
            \ \nFor example, this might contain security information, along with Basic\
            \ Authentication, when making a JIT Funding request. \nCustom headers\
            \ also appear in the associated webhook's notifications. "
          type: object
      type: object
    gateway_program_funding_source_request:
      properties:
        active:
          description: Indicates whether the program gateway funding source is active.
          type: boolean
        basic_auth_password:
          description: Password for authenticating your environment.
          maxLength: 100
          minLength: 20
          type: string
        basic_auth_username:
          description: Username for authenticating your environment.
          maxLength: 50
          minLength: 1
          type: string
        custom_header:
          additionalProperties:
            type: string
          description: |-
            Additional custom information included in the HTTP header.
            For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request.
            Custom headers also appear in the associated webhook's notifications.
          type: object
        name:
          description: Name of the program gateway funding source.
          maxLength: 50
          minLength: 1
          type: string
        timeout_millis:
          description: Total timeout in milliseconds for gateway processing.
          format: int64
          maximum: 7000
          minimum: 1000
          type: integer
        token:
          description: |-
            Unique identifier of the program gateway funding source.
            If you do not include a token, the system will generate one automatically.
            As this token is necessary for use in other calls, we recommend that you define a simple and easy to remember string rather than letting the system generate a token for you.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        url:
          description: URL of the gateway endpoint hosted in your environment, to
            which `POST` requests are submitted by the Marqeta platform.
          maxLength: 250
          minLength: 0
          type: string
        use_mtls:
          default: false
          description: |-
            Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

            mTLS authentication is in the beta testing phase, and is not yet generally available.
            Contact your Marqeta representative for more information about using mTLS authentication.
          type: boolean
      required:
        - basic_auth_password
        - basic_auth_username
        - name
        - url
      type: object
    gateway_program_funding_source_response:
      properties:
        account:
          description: Bank account number.
          type: string
        active:
          description: |-
            Indicates whether the program gateway funding source is active.
            This field is returned if it exists in the resource.
          type: boolean
        basic_auth_password:
          description: Password for authenticating your environment.
          type: string
        basic_auth_username:
          description: Username for authenticating your environment.
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        custom_header:
          additionalProperties:
            type: string
          description: Additional custom information included in the HTTP header.
          type: object
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        name:
          description: Name of the program gateway funding source.
          maxLength: 50
          minLength: 1
          type: string
        timeout_millis:
          description: Total timeout in milliseconds for gateway processing.
          format: int64
          type: integer
        token:
          description: Unique identifier of the program gateway funding source.
          maxLength: 36
          minLength: 1
          type: string
        url:
          description: URL of the gateway endpoint hosted in your environment, to
            which `POST` requests are submitted by the Marqeta platform.
          type: string
        use_mtls:
          default: false
          description: |-
            Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

            mTLS authentication is in the beta testing phase, and is not yet generally available.
            Contact your Marqeta representative for more information about using mTLS authentication.
          type: boolean
        version:
          description: Program gateway funding source object version.
          type: string
      required:
        - account
        - basic_auth_password
        - basic_auth_username
        - created_time
        - custom_header
        - last_modified_time
        - name
        - timeout_millis
        - token
        - url
        - use_mtls
        - version
      type: object
    gateway_program_funding_source_update_request:
      properties:
        active:
          description: Indicates whether the program gateway funding source is active.
          type: boolean
        basic_auth_password:
          description: Password for authenticating your environment.
          maxLength: 100
          minLength: 20
          type: string
        basic_auth_username:
          description: Username for authenticating your environment.
          maxLength: 50
          minLength: 1
          type: string
        custom_header:
          additionalProperties:
            type: string
          description: |-
            Additional custom information included in the HTTP header.
            For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request.
            Custom headers also appear in the associated webhook's notifications.
          type: object
        name:
          description: Name of the program gateway funding source.
          maxLength: 50
          minLength: 1
          type: string
        timeout_millis:
          description: Total timeout in milliseconds for gateway processing.
          format: int64
          maximum: 7000
          minimum: 1000
          type: integer
        url:
          description: URL of the gateway endpoint hosted in your environment, to
            which `POST` requests are submitted by the Marqeta platform.
          maxLength: 250
          minLength: 0
          type: string
        use_mtls:
          default: false
          description: |-
            Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

            mTLS authentication is in the beta testing phase, and is not yet generally available.
            Contact your Marqeta representative for more information about using mTLS authentication.
          type: boolean
      required:
        - basic_auth_password
        - basic_auth_username
        - url
      type: object
    gateway_response:
      description: Contains information from the gateway in response to a funding
        request.
      properties:
        code:
          description: Code received from the gateway.
          type: string
        data:
          $ref: '#/components/schemas/jit_program_response'
      required:
        - code
      type: object
    gpa:
      description: Defines the type of order.
      properties:
        reload_amount:
          description: |-
            Available balance on the card after the reload has completed.

            This value must be greater than or equal to the value of `trigger_amount`.
            Note that this is not the same as the amount added to the card, which will vary from reload to reload.
          minimum: 0.01
          type: number
        trigger_amount:
          description: |-
            Threshold that determines when the reload happens.

            The reload is triggered when the card balance falls below this amount.
          minimum: 0.01
          type: number
      required:
        - reload_amount
        - trigger_amount
      type: object
    gpa_request:
      properties:
        amount:
          description: Amount to fund.
          type: number
        business_token:
          description: |-
            Unique identifier of the business.

            Pass either a `business_token` or a `user_token`, not both.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fees:
          description: List of fees associated with the funding transaction.
          items:
            $ref: '#/components/schemas/fee_model'
          type: array
        funding_source_address_token:
          description: |-
            Unique identifier of the funding source address to use for this order.
            If your funding source is an ACH account, then a funding source address is not required. If your funding source is a payment card, you must have at least one funding source address in order to create a GPA order.
            Send a `GET` request to `/fundingsources/addresses/user/{token}` to retrieve addresses for a specific user.
          maxLength: 36
          minLength: 1
          type: string
        funding_source_token:
          description: |-
            Unique identifier of the funding source to use for this order.

            You do not have to supply a funding source token value in this call if you have a default funding source set up (verify the funding source's `is_default_account` field).
            If you have only one funding source, then this source is used as the default.
            If you have multiple funding sources and none are configured as the default, then an error is returned.

            Send a `GET` request to `/fundingsources/user/{user_token}` to retrieve funding source tokens for a user or to `/fundingsources/business/{business_token}` to retrieve funding source tokens for a business.
          maxLength: 36
          minLength: 1
          type: string
        memo:
          description: Additional descriptive text.
          maxLength: 99
          minLength: 1
          type: string
        tags:
          description: Comma-delimited list of tags describing the GPA order.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the GPA order.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user.

            Pass either a `user_token` or a `business_token`, not both.

            Send a `GET` request to `/users` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - currency_code
        - funding_source_token
      type: object
    gpa_response:
      description: |-
        Contains information about a GPA order, including fees, funding sources, and addresses.
        See <</core-api/gpa-orders, GPA Orders>> for more information.
      properties:
        amount:
          description: Amount funded.
          type: number
        business_token:
          description: |-
            Unique identifier of the business.

            This field is returned if it exists in the resource.
          type: string
        created_time:
          description: Date and time when the GPA order was created, in UTC.
          format: date-time
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fees:
          description: |-
            List of fees associated with the funding transaction.

            This array is returned if it exists in the resource.
          items:
            $ref: '#/components/schemas/fee_detail'
          type: array
        funding:
          $ref: '#/components/schemas/funding'
        funding_source_address_token:
          description: Unique identifier of the funding source address to use for
            this order.
          type: string
        funding_source_token:
          description: Unique identifier of the funding source to use for this order.
          type: string
        gateway_message:
          description: |-
            Message about the status of the funding request.
            Useful for determining whether it was approved and completed successfully, declined by the gateway, or timed out.

            This field is returned if it exists in the resource.
          type: string
        gateway_token:
          description: |-
            Unique identifier of the JIT Funding request and response.

            This field is returned if it exists in the resource.
          format: int64
          type: integer
        jit_funding:
          $ref: '#/components/schemas/jit_funding_api'
        last_modified_time:
          description: Date and time when the GPA order was last modified, in UTC.
          format: date-time
          type: string
        memo:
          description: |-
            Additional descriptive text.

            This field is returned if it exists in the resource.
          type: string
        response:
          $ref: '#/components/schemas/response'
        state:
          description: Current status of the funding transaction.
          type: string
        tags:
          description: |-
            Comma-delimited list of tags describing the GPA order.

            This field is returned if it exists in the resource.
          type: string
        token:
          description: Unique identifier of the GPA order.
          type: string
        transaction_token:
          description: Unique identifier of the transaction being funded.
          type: string
        user_token:
          description: |-
            Unique identifier of the user resource.

            This field is returned if it exists in the resource.
          type: string
      required:
        - amount
        - created_time
        - currency_code
        - funding
        - funding_source_token
        - last_modified_time
        - response
        - state
        - token
        - transaction_token
      type: object
    gpa_returns:
      description: Contains information about a GPA unload order.
      properties:
        amount:
          description: Amount of funds returned to the funding source.
          type: number
        created_time:
          description: Date and time when the GPA unload order was created, in UTC.
          format: date-time
          type: string
        funding:
          $ref: '#/components/schemas/funding'
        funding_source_address_token:
          description: Identifies the funding source used for this order.
          type: string
        funding_source_token:
          description: Identifies the funding source used for this order.
          type: string
        jit_funding:
          $ref: '#/components/schemas/jit_funding_api'
        last_modified_time:
          description: Date and time when the GPA unload order was last modified,
            in UTC.
          format: date-time
          type: string
        memo:
          description: Additional descriptive text.
          type: string
        original_order_token:
          description: Identifies the original GPA order.
          type: string
        response:
          $ref: '#/components/schemas/response'
        state:
          description: Current status of the GPA unload order.
          type: string
        tags:
          description: Comma-delimited list of tags describing the GPA order.
          type: string
        token:
          description: Unique identifier of the GPA unload order.
          type: string
        transaction_token:
          description: Unique identifier of the transaction.
          type: string
      required:
        - amount
        - created_time
        - funding
        - funding_source_token
        - last_modified_time
        - response
        - state
        - token
        - transaction_token
      type: object
    hold_increase:
      description: Controls automatic increases to the authorization amount for MCCs
        specified in this group.
      properties:
        type:
          default: AMOUNT
          description: Controls whether the `value` field represents a fixed amount
            or a percentage of the authorization amount.
          enum:
            - AMOUNT
            - PERCENT
            - UP_TO_LIMIT
          type: string
        value:
          description: |-
            Specifies the amount of the automatic increase to the authorization amount.

            The `type` field controls whether this amount is a fixed amount or a percentage.
          type: number
      required:
        - type
        - value
      type: object
    images:
      description: Specifies personalized images that appear on the card.
      properties:
        card:
          $ref: '#/components/schemas/images_card'
        carrier:
          $ref: '#/components/schemas/ImagesCarrier'
        carrier_return_window:
          $ref: '#/components/schemas/images_carrier_return_window'
        signature:
          $ref: '#/components/schemas/images_signature'
      type: object
    images_card:
      description: Specifies personalized images that appear on the card.
      properties:
        name:
          description: Specifies a PNG image to display on the card.
          type: string
        thermal_color:
          description: Specifies the color of the image displayed on the card.
          type: string
      type: object
    images_carrier_return_window:
      description: Specifies a custom image to display in the return address window
        of the card carrier envelope.
      properties:
        name:
          description: Specifies a PNG image to display in the return address window
            of envelopes used for sending cards to cardholders.
          type: string
      type: object
    images_signature:
      description: Specifies an image of the cardholder's signature.
      properties:
        name:
          description: Specifies a PNG image of the cardholder's signature.
          type: string
      type: object
    in_app_provisioning:
      properties:
        address_verification:
          $ref: '#/components/schemas/digital_wallet_token_address_verification'
        enabled:
          default: false
          description: Specifies if in-app provisioning is enabled.
          type: boolean
      type: object
    installment_data:
      description: Contains the installment plan identifier used by the Visa Transaction
        Matching Service for Issuers.
      properties:
        installment_plan_identifier:
          description: |-
            (_Visa only_) Visa Transaction Matching Service for Issuers identifier.
            This identifier matches a transaction on the Marqeta platform to an installment plan or Pay by Points transaction on the Visa card network.
          type: string
      type: object
    internal_account:
      properties:
        cardholder_account:
          type: boolean
        code:
          type: string
        final_account:
          type: boolean
        id:
          format: int64
          type: integer
        subclass:
          type: string
      required:
        - code
        - id
        - subclass
      type: object
    internal_authorization_transaction:
      properties:
        account:
          $ref: '#/components/schemas/internal_account'
        account2:
          $ref: '#/components/schemas/internal_account'
        acquirer:
          type: string
        acquirerFee:
          type: number
        acquirerReferenceId:
          type: string
        actingCardholder:
          $ref: '#/components/schemas/internal_user'
        additionalAmount:
          type: number
        amount:
          type: number
        approvalNumber:
          type: string
        ca_city:
          type: string
        ca_country:
          type: string
        ca_name:
          type: string
        ca_region:
          type: string
        ca_street:
          type: string
        ca_zip:
          type: string
        captureDate:
          format: date-time
          type: string
        card:
          $ref: '#/components/schemas/internal_card'
        cardholder:
          $ref: '#/components/schemas/internal_user'
        currencyCode:
          type: string
        date:
          format: date-time
          type: string
        digital_wallet_token:
          $ref: '#/components/schemas/InternalDigitalWallet'
        displayMessage:
          type: string
        duration:
          format: int32
          type: integer
        expirationTime:
          format: date-time
          type: string
        extrc:
          type: string
        feesModel:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        forwardingInstId:
          type: string
        functionCode:
          type: string
        incomingNetworkRequestITC:
          type: string
        irc:
          type: string
        isFinancialAdvice:
          type: boolean
        issuerFee:
          type: number
        itc:
          type: string
        layer:
          format: int32
          type: integer
        localTransactionDate:
          format: date-time
          type: string
        mcc:
          type: string
        mid:
          type: string
        network:
          type: string
        networkMid:
          type: string
        networkReferenceId:
          type: string
        node:
          type: string
        originator:
          type: string
        payload:
          $ref: '#/components/schemas/transaction_model'
        rc:
          type: string
        reasonCode:
          type: string
        ref_transaction:
          $ref: '#/components/schemas/internal_authorization_transaction'
        remoteHost:
          type: string
        requestAmount:
          type: number
        responseAmount:
          type: number
        responseCode:
          type: string
        retrievalReferenceNumber:
          type: string
        returnedBalances:
          type: string
        settlementDate:
          format: date-time
          type: string
        stan:
          type: string
        subNetwork:
          type: string
        tags:
          type: string
        tid:
          type: string
        token:
          type: string
        tranlogAttributes:
          additionalProperties:
            type: string
          type: object
        transactionState:
          enum:
            - PENDING
            - CLEARED
            - COMPLETION
            - DECLINED
            - ERROR
            - ALL
          type: string
        transactionType:
          type: string
        transaction_name:
          type: string
        transmissionDate:
          format: date-time
          type: string
      required:
        - network
        - node
        - subNetwork
        - token
        - transactionType
      type: object
    internal_card:
      properties:
        card_pin_block:
          type: string
        card_product:
          $ref: '#/components/schemas/internal_card_product'
        contactless_consecutive_count:
          format: int32
          type: integer
        contactless_consecutive_total_spend:
          type: number
        expiration_time:
          format: date-time
          type: string
        hash:
          type: string
        id:
          format: int64
          type: integer
        is_offline_pin_set_required:
          type: boolean
        kid:
          type: string
        last_four:
          type: string
        lvp_consecutive_count:
          format: int32
          type: integer
        lvp_consecutive_total_spend:
          type: number
        metadata:
          additionalProperties:
            type: string
          type: object
        nameline1:
          type: string
        secureData:
          type: string
        serviceCode:
          type: string
        state:
          enum:
            - ACTIVE
            - SUSPENDED
            - TERMINATED
            - UNSUPPORTED
            - UNACTIVATED
            - LIMITED
          type: string
        token:
          type: string
        user:
          $ref: '#/components/schemas/internal_user'
      required:
        - card_product
        - id
        - last_four
        - token
        - user
      type: object
    internal_card_product:
      properties:
        card_product_config:
          additionalProperties:
            type: string
          type: object
        id:
          format: int64
          type: integer
        token:
          type: string
      type: object
    internal_funding_source:
      properties:
        account:
          type: string
        active:
          type: boolean
        created_time:
          format: date-time
          type: string
        debit_account:
          $ref: '#/components/schemas/internal_account'
        id:
          type: string
        is_default_account:
          type: boolean
        last_modified_time:
          format: date-time
          type: string
        name:
          type: string
        token:
          type: string
        type:
          type: string
      required:
        - token
      type: object
    internal_transaction_message:
      properties:
        authorization_tranlog:
          $ref: '#/components/schemas/internal_authorization_transaction'
        context:
          additionalProperties:
            properties: {
              }
            type: object
          type: object
        credit_debit_indicator:
          enum:
            - CREDIT
            - DEBIT
            - NONE
          type: string
        funding_tranlog:
          $ref: '#/components/schemas/funding_tranlog'
        processing_start_time_millis:
          format: int64
          type: integer
        velocity_caches:
          items:
            $ref: '#/components/schemas/VelocityCache'
          type: array
      required:
        - authorization_tranlog
      type: object
    internal_user:
      properties:
        active:
          type: boolean
        corporate_card_holder:
          default: false
          type: boolean
        email:
          type: string
        first_name:
          type: string
        id:
          format: int64
          type: integer
        last_name:
          type: string
        middle_name:
          type: string
        token:
          type: string
        type:
          type: string
        user_accounts:
          items:
            $ref: '#/components/schemas/internal_account'
          type: array
        uses_parent_account:
          default: false
          type: boolean
      type: object
    issuer_fraud_view:
      description: Contains one or more fraud determinations by the card network that
        apply to either the transaction or the cardholder's account.
      properties:
        fraud_score_reasons:
          items:
            type: string
          type: array
        recommended_action:
          description: The action recommended based on the fraud score.
          type: string
        risk_level:
          description: The fraud rating, or level of risk associated with the transaction.
          type: string
        riskcontrol_tags:
          description: The RiskControl tags that were triggered by the transaction.
          items:
            $ref: '#/components/schemas/riskcontrol_tags'
          type: array
        rule_violations:
          description: The rules violated by the transaction.
          items:
            type: string
          type: array
        score:
          description: |-
            The risk score generated by RiskControl.
            This is either the Mastercard Decision Intelligence or Visa Advance Authorization transaction risk score.
          format: int32
          type: integer
        triggered_rules:
          description: Provides a list of rules triggered by a fraud event, along
            with the information on tags and rule characteristics.
          items:
            $ref: '#/components/schemas/triggered_rule'
          type: array
      type: object
    jit_account_name_verification:
      description: |-
        Contains account name verification data used to make JIT Funding decisions from one of the following objects:

        * The `gateway` object contains account name verification data from your JIT Funding gateway.
        * The `issuer` object contains account name verification data from the Marqeta platform.
        * The `request` object contains account name verification data as it appears in a JIT Funding request.
      properties:
        gateway:
          $ref: '#/components/schemas/account_name_verification_source'
        issuer:
          $ref: '#/components/schemas/account_name_verification_source'
        request:
          $ref: '#/components/schemas/ani_information_1'
      type: object
    jit_address_verification:
      description: Contains address verification data used to make JIT Funding decisions.
      properties:
        gateway:
          $ref: '#/components/schemas/address_verification_source'
        issuer:
          $ref: '#/components/schemas/address_verification_source'
        request:
          $ref: '#/components/schemas/avs_information'
      type: object
    jit_funding:
      properties:
        paymentcard_funding_source:
          $ref: '#/components/schemas/jit_funding_paymentcard_funding_source'
        program_funding_source:
          $ref: '#/components/schemas/jit_funding_program_funding_source'
        programgateway_funding_source:
          $ref: '#/components/schemas/jit_funding_programgateway_funding_source'
      type: object
    jit_funding_api:
      description: |-
        Contains information about the JIT Funding load event, in which funds are loaded into an account.

        This object is returned if your program uses JIT Funding.
      properties:
        account_name_verification:
          $ref: '#/components/schemas/jit_account_name_verification'
        acting_user_token:
          description: |-
            User who conducted the transaction.

            Can be a child user configured to share its parent's account balance.
          maxLength: 36
          minLength: 0
          type: string
        address_verification:
          $ref: '#/components/schemas/jit_address_verification'
        amount:
          description: Requested amount of funding.
          exclusiveMinimum: false
          minimum: 0
          type: number
        anticipated_amount_supported:
          type: boolean
        balances:
          additionalProperties:
            $ref: '#/components/schemas/cardholder_balance'
          description: Contains the GPA's balance details.
          type: object
        business_token:
          description: Holder of the business account that was funded.
          maxLength: 36
          minLength: 0
          type: string
        decline_reason:
          description: Reason why the transaction was declined.
          enum:
            - INVALID_AMOUNT
            - INSUFFICIENT_FUNDS
            - TRANSACTION_NOT_PERMITTED
            - SUSPECTED_FRAUD
            - AMOUNT_LIMIT_EXCEEDED
            - TRANSACTION_COUNT_LIMIT_EXCEEDED
            - DUPLICATE_TRANSACTION
            - INVALID_MERCHANT
            - INVALID_CARD
            - NO_CREDIT_ACCOUNT
            - EXPIRED_CARD
            - NO_CHECKING_ACCOUNT
            - NO_SAVINGS_ACCOUNT
            - STOP_PAYMENT
            - REVOCATION_AUTHORIZATION_ORDER
            - REVOCATION_ALL_AUTHORIZATION_ORDER
            - SOFT_DECLINE_AUTHENTICATION_REQUIRED
            - CLOSED_ACCOUNT
            - SOFT_DECLINE_PIN_REQUIRED
            - CARD_NOT_ACTIVE
            - CARDHOLDER_NOT_ACTIVE
          type: string
        incremental_authorization_jit_funding_tokens:
          description: |-
            Array of tokens referencing the JIT Funding tokens of all previous associated incremental authorization JIT Funding requests.
            Useful for ascertaining the final transaction amount when the original amount was incremented.
          items:
            type: string
          type: array
        jit_account_name_verification:
          $ref: '#/components/schemas/jit_account_name_verification'
        memo:
          description: Additional information that describes the JIT Funding transaction.
          maxLength: 99
          minLength: 0
          type: string
        method:
          description: |-
            JIT Funding response type.
            See <</core-api/gateway-jit-funding-messages#_the_jit_funding_object, The jit_funding object>> for the purpose, funding event type, and description of each method.
          enum:
            - pgfs.authorization
            - pgfs.authorization.clearing
            - pgfs.authorization.advice
            - pgfs.authorization.incremental
            - pgfs.authorization.capture
            - pgfs.authorization.reversal
            - pgfs.authorization.cashback
            - pgfs.balanceinquiry
            - pgfs.auth_plus_capture
            - pgfs.refund
            - pgfs.refund.authorization
            - pgfs.refund.authorization.reversal
            - pgfs.refund.authorization.clearing
            - pgfs.force_capture
            - pgfs.authorization.capture.chargeback
            - pgfs.authorization.capture.chargeback.reversal
            - pgfs.pindebit
            - pgfs.pindebit.chargeback
            - pgfs.pindebit.chargeback.reversal
            - pgfs.pindebit.cashback
            - pgfs.pindebit.refund
            - pgfs.pindebit.authorization
            - pgfs.pindebit.authorization.clearing
            - pgfs.pindebit.authorization.reversal
            - pgfs.pindebit.atm.withdrawal
            - pgfs.pindebit.balanceinquiry
            - pgfs.pindebit.quasi.cash
            - pgfs.dispute.credit
            - pgfs.dispute.debit
            - pgfs.directdeposit.credit
            - pgfs.directdeposit.debit
            - pgfs.directdeposit.credit.reversal
            - pgfs.directdeposit.debit.reversal
            - pgfs.adjustment.credit
            - pgfs.adjustment.debit
            - pgfs.auth_plus_capture.standin
            - pgfs.authorization.standin
            - pgfs.network.load
            - pgfs.original.credit.authorization
            - pgfs.original.credit.auth_plus_capture
            - pgfs.original.credit.authorization.clearing
            - pgfs.original.credit.authorization.reversal
            - pgfs.billpayment
            - pgfs.billpayment.capture
            - pgfs.billpayment.reversal
            - pgfs.atm.withdrawal
            - pgfs.atm.clearing.withdrawal
            - pgfs.authorization.quasi.cash
            - pgfs.authorization.clearing.quasi.cash
            - pgfs.authorization.account_verification
            - pgfs.product.inquiry
          type: string
        original_jit_funding_token:
          description: |-
            Unique identifier of the first associated JIT Funding message.
            Useful for correlating related JIT Funding messages (that is, those associated with the same GPA order).
            Not included in the first of any set of related messages.
          maxLength: 36
          minLength: 0
          type: string
        tags:
          description: Customer-defined tags related to the JIT Funding transaction.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: |-
            Existing JIT Funding token matching the `funding.gateway_log.transaction_id` field of the associated GPA order.

            *NOTE:* The `transaction_id` field updates if a subsequent JIT Funding message associated with that GPA order is sent.
            If multiple JIT Funding messages are associated with the same GPA order, the `transaction_id` field matches the token of the most recent message.
          maxLength: 36
          minLength: 0
          type: string
        user_token:
          description: Holder of the user account that was funded.
          maxLength: 36
          minLength: 0
          type: string
      required:
        - amount
        - method
        - token
        - user_token
      type: object
    jit_funding_paymentcard_funding_source:
      properties:
        enabled:
          default: false
          type: boolean
        refunds_destination:
          enum:
            - GATEWAY
            - GPA
            - WATERFALL
          maxLength: 50
          minLength: 0
          type: string
      type: object
    jit_funding_program_funding_source:
      properties:
        enabled:
          default: false
          type: boolean
        funding_source_token:
          description: required if enabled
          maxLength: 36
          minLength: 0
          type: string
        refunds_destination:
          enum:
            - PROGRAM_FUNDING_SOURCE
            - GPA
            - WATERFALL
          maxLength: 50
          minLength: 0
          type: string
      type: object
    jit_funding_programgateway_funding_source:
      properties:
        always_fund:
          default: false
          type: boolean
        enabled:
          default: false
          type: boolean
        funding_source_token:
          description: Required if enabled
          maxLength: 36
          minLength: 0
          type: string
        refunds_destination:
          enum:
            - GATEWAY
            - GPA
            - WATERFALL
          maxLength: 50
          minLength: 0
          type: string
      type: object
    jit_program_response:
      description: Contains the gateway's information about the JIT Funding transaction.
      properties:
        flex:
          $ref: '#/components/schemas/flex'
        jit_funding:
          $ref: '#/components/schemas/jit_funding_api'
        network_metadata:
          $ref: '#/components/schemas/network_metadata'
      required:
        - jit_funding
      type: object
    kyc_request:
      properties:
        business_token:
          description: |-
            Specifies the business account holder on which to perform the identity check.
            Do not pass this field if your request includes the `user_token` field.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        manual_override:
          default: false
          description: |-
            Set to `true` to designate a user account holder as having passed a verification check without Marqeta performing the check through one of its KYC providers.

            Use this override when you perform verification through another mechanism, such as an alternative KYC provider or directly with the account holder.

            You must obtain explicit, written approval from Marqeta before using the `manual_override` field for KYC verification.
            This feature is only available to programs that are enabled to perform their own Customer Identification Program (CIP) KYC verification.
            Consult your Marqeta representative for more information.
          type: boolean
        notes:
          description: |-
            Notes pertaining to a manual override.
            This field is returned in the response only when the `manual_override` field is set to `true`.
          maxLength: 255
          minLength: 0
          type: string
        reference_id:
          description: |-
            Can be specified only if `manual_override=true`.
            If you verified a user account holder's identity by performing a KYC verification outside of the Marqeta platform, you can use the `reference_id` field to store the reference number returned by that KYC provider.

            *NOTE:* When you submit a KYC verification request with `manual_override=false`, the Marqeta platform performs the verification through one of its KYC providers.
            If the KYC provider responds with a reference identifier, that identifier is passed to you by way of this field in the response.
          maxLength: 32
          minLength: 0
          type: string
        token:
          description: |-
            The unique identifier of the identity check.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Specifies the user account holder on which to perform the identity check.
            Do not pass this field if your request includes the `business_token` field.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    kyc_response:
      properties:
        business_token:
          description: The business account holder on which the identity check was
            performed.
          type: string
        created_time:
          description: Time when the KYC verification was performed.
          format: date-time
          type: string
        last_modified_time:
          description: Time when the KYC verification was last updated.
          format: date-time
          type: string
        manual_override:
          default: false
          description: |-
            If `true`, the user account holder is designated as having passed a verification check without Marqeta performing the check.

            This override is used when verification is performed through another mechanism, such as an alternative KYC provider or directly with the account holder.
          readOnly: true
          type: boolean
        notes:
          description: |-
            Notes pertaining to a manual override.
            This field is included in the response only when the `manual_override` field is set to `true`.
          readOnly: true
          type: string
        reference_id:
          description: |-
            If you verified the account holder's identity by performing a KYC verification outside of the Marqeta platform, you can use the `reference_id` field to store the reference number returned by that KYC provider.
            This field is included in the response only when the `manual_override` field is set to `true`.

            *NOTE:* When you submit a KYC verification request with `manual_override=false`, the Marqeta platform performs the verification through one of its KYC providers.
            If the KYC provider responds with a reference identifier, that identifier is passed to you by way of this field in the response.
          type: string
        result:
          $ref: '#/components/schemas/result'
        token:
          description: The unique identifier of the identity check.
          type: string
        user_token:
          description: The user account holder on which the identity check was performed.
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    link:
      properties:
        href:
          readOnly: true
          type: string
        method:
          type: string
        rel:
          type: string
      required:
        - href
        - method
        - rel
      type: object
    login_request_model:
      properties:
        email:
          description: Cardholder email address.
          type: string
        password:
          description: Password to the cardholder's user account on the Marqeta platform.
          maxLength: 255
          minLength: 1
          type: string
        user_token:
          description: |-
            Identifies the cardholder to log in.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    login_response_model:
      properties:
        access_token:
          $ref: '#/components/schemas/access_token_response'
        user:
          $ref: '#/components/schemas/user_card_holder_response'
      type: object
    manual_entry:
      properties:
        address_verification:
          $ref: '#/components/schemas/digital_wallet_token_address_verification'
        enabled:
          default: false
          description: Specifies if manual entry is enabled.
          type: boolean
      type: object
    mcc_group_model:
      properties:
        active:
          default: false
          description: Indicates if the group is active or inactive.
          type: boolean
        config:
          $ref: '#/components/schemas/config'
        mccs:
          description: |-
            The set of merchant category codes that you want to include in this group.
            For each element, valid characters are 0-9, and the length must be 4 digits.
            You can also specify a range like "9876-9880".
            An MCC can belong to more than one group.
          items:
            properties: {
              }
            type: object
          maxItems: 500
          minItems: 0
          type: array
          uniqueItems: true
        name:
          description: The name of the group.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: |-
            The unique identifier of the group.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - mccs
        - name
      type: object
    mcc_group_update_model:
      properties:
        active:
          default: false
          description: Indicates whether the MCC group is active or inactive.
          type: boolean
        config:
          $ref: '#/components/schemas/config'
        mccs:
          description: |-
            The set of merchant category codes that you want to include in this group.
            For each element, valid characters are 0-9, and the length must be 4 digits.
            You can also specify a range like "9876-9880".
            An MCC can belong to more than one group.

            Updating the merchant category codes for the group completely replaces the group's existing codes.
            For example, if the current MCC group is `["1234"]` and you want to add the 2345 code (while retaining the existing code), you must specify `["1234", "2345"]` in this field.
          items:
            type: string
          maxItems: 500
          minItems: 1
          type: array
          uniqueItems: true
        name:
          description: The name of the MCC group.
          type: string
      type: object
    media_content:
      properties:
        data:
          description: Media data content.
          type: string
        height:
          description: |-
            Height of non-SVG image asset.
            Specified in pixels.
          type: string
        type:
          description: |
            Type of media.
            Specified as Multipurpose Internet Mail Extension (MIME).

            Supported media types include:

            * application/pdf
            * image/png
            * image/svg+xml
            * text/plain
            * text/html
          type: string
        width:
          description: |-
            Width of non-SVG image asset.
            Specified in pixels.
          type: string
      type: object
    merchant_card_request:
      properties:
        card_product_token:
          maxLength: 36
          minLength: 1
          type: string
        expedite:
          default: false
          type: boolean
        expiration_offset:
          $ref: '#/components/schemas/expiration_offset'
        metadata:
          additionalProperties:
            type: string
          type: object
      required:
        - card_product_token
      type: object
    merchant_group_request:
      properties:
        active:
          default: false
          description: Indicates if the merchant group is active or not.
          type: boolean
        mids:
          description: |-
            Comma-separated list of alphanumeric merchant identifiers.
            You can include merchant identifiers in multiple merchant groups.
          items:
            type: string
          maxItems: 4000
          minItems: 1
          type: array
          uniqueItems: true
        name:
          description: Name of the merchant group.
          maxLength: 40
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the group.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
      type: object
    merchant_group_response:
      properties:
        active:
          default: false
          description: Indicates if the merchant group is active or not.
          type: boolean
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        mids:
          description: Comma-separated list of alphanumeric merchant identifiers.
          items:
            type: string
          type: array
        name:
          description: Name of the merchant group.
          type: string
        token:
          description: Unique identifier of the merchant group.
          type: string
      type: object
    merchant_group_update_request:
      properties:
        active:
          default: false
          description: Indicates if the merchant group is active or not.
          type: boolean
        mids:
          description: |-
            Comma-separated list of alphanumeric merchant identifiers.
            You can include merchant identifiers in multiple merchant groups.
          items:
            type: string
          maxItems: 4000
          minItems: 1
          type: array
          uniqueItems: true
        name:
          description: Name of the merchant group.
          maxLength: 40
          minLength: 1
          type: string
      type: object
    merchant_response_model:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        name:
          maxLength: 40
          minLength: 0
          type: string
        partial_auth_flag:
          default: true
          type: boolean
        phone:
          maxLength: 10
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 2
          minLength: 0
          type: string
        token:
          description: The unique identifier of the merchant
          maxLength: 36
          minLength: 1
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      required:
        - created_time
        - last_modified_time
        - name
      type: object
    merchant_scope:
      description: |-
        Defines the group of merchants to which the velocity control applies.

        Populate no more than one field of the `merchant_scope` object.
        If no fields are populated, the velocity control applies to all merchants.
      properties:
        mcc:
          description: |-
            Merchant Category Code (MCC).
            Identifies the type of products or services provided by the merchant.

            Enter a value to control spending on a particular type of product or service.
          maxLength: 4
          minLength: 1
          type: string
        mcc_group:
          description: |-
            Token identifying a group of MCCs.
            Enter a value to control spending on a group of product or service types.

            Send a `GET` request to `/mccgroups` to retrieve MCC group tokens.
          maxLength: 36
          minLength: 1
          type: string
        mid:
          description: |-
            Merchant identifier (MID).
            Identifies a specific merchant.

            Enter a value to control spending with a particular merchant.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    money_in_transaction:
      description: |-
        Defines the original credit transaction (OCT) types that are subject to velocity control.
        Your request can contain either a `money_in_transaction` object or the `include_credits` field, not both.
      properties:
        include_credits_types:
          description: Specifies the types of credits to include in the original credit
            transaction (OCT).
          items:
            type: string
          type: array
        include_network_load_types:
          description: Indicates whether or not cash and check network load transactions
            will be subject to velocity control.
          items:
            type: string
          type: array
      type: object
    msa:
      properties:
        campaign_token:
          type: string
        reload_amount:
          minimum: 0.01
          type: number
        trigger_amount:
          minimum: 0.01
          type: number
      required:
        - campaign_token
        - reload_amount
        - trigger_amount
      type: object
      xml:
        name: msa
    msa_aggregated_balances:
      properties:
        available_balance:
          type: number
        balances:
          additionalProperties:
            $ref: '#/components/schemas/msa_aggregated_balances'
          type: object
        cached_balance:
          type: number
        credit_balance:
          type: number
        currency_code:
          type: string
        impacted_amount:
          type: number
        last_updated_time:
          format: date-time
          type: string
        ledger_balance:
          type: number
        pending_credits:
          type: number
      required:
        - available_balance
        - balances
        - cached_balance
        - credit_balance
        - currency_code
        - last_updated_time
        - ledger_balance
        - pending_credits
      type: object
    msa_balances:
      properties:
        available_balance:
          type: number
        balances:
          additionalProperties:
            $ref: '#/components/schemas/msa_balances'
          type: object
        cached_balance:
          type: number
        credit_balance:
          type: number
        currency_code:
          type: string
        impacted_amount:
          type: number
        last_updated_time:
          format: date-time
          type: string
        ledger_balance:
          type: number
        pending_credits:
          type: number
      required:
        - available_balance
        - balances
        - cached_balance
        - credit_balance
        - currency_code
        - last_updated_time
        - ledger_balance
        - pending_credits
      type: object
    msa_returns:
      properties:
        active:
          default: false
          type: boolean
        aggregated_balances:
          $ref: '#/components/schemas/msa_aggregated_balances'
        amount:
          type: number
        business_token:
          type: string
        campaign_token:
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        currency_code:
          type: string
        end_date:
          description: yyyy-MM-ddThh:mm:ssZ
          format: date-time
          type: string
        funding:
          $ref: '#/components/schemas/funding'
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_transaction_date:
          description: yyyy-MM-ddThh:mm:ssZ
          format: date-time
          type: string
        order_balances:
          $ref: '#/components/schemas/msa_balances'
        original_order_token:
          type: string
        reward_amount:
          type: number
        reward_trigger_amount:
          type: number
        start_date:
          description: yyyy-MM-ddThh:mm:ssZ
          format: date-time
          type: string
        token:
          type: string
        transaction_token:
          type: string
        unloaded_amount:
          type: number
        user_token:
          type: string
      required:
        - active
        - aggregated_balances
        - amount
        - campaign_token
        - created_time
        - currency_code
        - funding
        - last_modified_time
        - last_transaction_date
        - order_balances
        - original_order_token
        - reward_amount
        - reward_trigger_amount
        - transaction_token
      type: object
      xml:
        name: msa_returns
    network:
      description: Contains information from the card network about currency conversion,
        including the original currency of the transaction, the amount of the transaction
        in the original currency, and the conversion rate.
      properties:
        conversion_rate:
          description: |-
            Conversion rate between the origination currency and the settlement currency.

            Returned when the transaction currency is different from the origination currency.
          type: number
        dynamic_currency_conversion:
          default: false
          description: Indicates whether currency conversion was performed dynamically
            at the point of sale.
          type: boolean
        original_amount:
          description: Amount of the transaction in the currency in which it originated.
          type: number
        original_currency_code:
          description: Currency type of the origination currency.
          type: string
        settlement_data:
          $ref: '#/components/schemas/settlement_data'
      type: object
    network_account_intelligence_score:
      description: Account intelligence score information, as provided by the Mastercard
        network.
      properties:
        name:
          description: The name, as provided by the Mastercard network.
          type: string
        service_type:
          description: The service type, as provided by the Mastercard network.
          type: string
        value:
          description: The value, as provided by the Mastercard network.
          type: string
      type: object
    network_fee_model:
      description: Contains card network fees assessed against the cardholder.
      properties:
        amount:
          description: The amount of the network fee.
          type: number
        credit_debit:
          description: |-
            Indicates whether the fee is a credit or a debit.

            * *C* indicates a credit
            * *D* indicates a debit
          enum:
            - C
            - D
          type: string
        type:
          description: The type of fee assessed by the card network.
          enum:
            - ISSUER_FEE
            - SWITCH_FEE
            - PINDEBIT_ASSOC_FEE
            - ACQUIRER_FEE
            - INTERCHANGE_FEE
            - CUR_CONV_CARDHOLDER_FEE
            - CUR_CONV_ISSUER_FEE
            - CROSS_BORDER_ISSUER_FEE
          type: string
      type: object
    network_fraud_view:
      description: Contains network-provided information about fraud determinations.
      properties:
        account_risk_score:
          description: |-
            _(Visa only)_ Account holder risk condition code evaluated by the card network.
            A higher score indicates a greater likelihood that the card number is compromised.
          type: string
        account_risk_score_reason_code:
          description: _(Visa only)_ Unique code that describes the main driver of
            the `account_risk_score`.
          type: string
        transaction_account_attack_intelligence_score:
          description: |-
            _(Visa only)_ Visa-provided score ranking the risk of an account enumeration attack in a card-not-present transaction.
            A higher score indicates higher risk.
            A score of 00 indicates insufficient data to determine risk.
            Useful for making authorization decisions.
          type: string
        transaction_risk_score:
          description: |-
            Network-provided risk score for the transaction.
            A higher score indicates higher risk.
            Useful for making authorization decisions.
          format: int32
          type: integer
        transaction_risk_score_reason_code:
          description: _(Mastercard only)_ Unique code that describes the main driver
            of the `transaction_risk_score`.
          type: string
        transaction_risk_score_reason_description:
          description: _(Mastercard only)_ Description of the `transaction_risk_score_reason_code`.
          type: string
      type: object
    network_metadata:
      description: |-
        Contains network-related metadata for the transaction, including details about the card program and the card product.
        Returned if provided by the card network
      properties:
        account_identification_1:
          type: string
        incoming_response_code:
          description: |-
            Network response code, as provided by the card network.

            For example, Visa response code `59` indicates suspected fraud.
          type: string
        network_funding_txn_type:
          description: Transaction type indicator provided by the card network for
            original credit and account funding transactions.
          type: string
        product_id:
          description: |-
            Product identification value assigned by the card network to each card product.
            Can be used to track card-level activity by individual account number for premium card products.
          type: string
        program_id:
          description: Program identification number used with `product_id` that identifies
            the programs associated with a card within a program registered by the
            issuer with the card network.
          type: string
        spend_qualifier:
          description: Indicates whether or not the base spend-assessment threshold
            defined by the card network has been met.
          type: string
        surcharge_free_atm_network:
          description: Name of the surcharge-free ATM network used to complete the
            transaction.
          type: string
      type: object
    offer_model:
      properties:
        active:
          default: true
          type: boolean
        campaign_token:
          maxLength: 36
          minLength: 1
          type: string
        currency_code:
          type: string
        end_date:
          format: date-time
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
        purchase_amount:
          type: number
        reward_amount:
          type: number
        reward_trigger_amount:
          type: number
        start_date:
          format: date-time
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - campaign_token
        - currency_code
        - name
        - purchase_amount
        - reward_amount
      type: object
    one_time_request_model:
      properties:
        email:
          description: |-
            Cardholder email address.

            Required when neither the user token nor the admin access token is provided as the Basic Authentication password (case #3).
          maxLength: 255
          minLength: 1
          type: string
        password:
          description: |-
            Password to the cardholder's user account on the Marqeta platform.

            Required when neither the user token nor the admin access token is provided as the Basic Authentication password (case #3).
          maxLength: 255
          minLength: 1
          type: string
        user_token:
          description: |-
            Identifies the cardholder whose data is accessed.
            Send a `GET` request to `/users` to retrieve cardholder tokens.

            Required when the Basic Authentication password is set to an admin access token (case #2).
          maxLength: 36
          minLength: 1
          type: string
      type: object
    order_scope:
      description: Defines the balance threshold and reload amounts.
      properties:
        gpa:
          $ref: '#/components/schemas/gpa'
        msa:
          $ref: '#/components/schemas/msa'
      type: object
    original_credit:
      description: Contains information about an original credit transaction (OCT),
        which enables the cardholder to receive funds on the specified card from an
        external source via the card network.
      properties:
        deferred_hold_by:
          enum:
            - absent
            - visa
            - originator
            - payment
          type: string
        fast_funds_enabled:
          description: |-
            Indicates that Fast Funds are enabled for dual-message original credit transactions.
            If the value of this field is `true`, you must make the funds available to your cardholder within 30 minutes of the transaction.
          type: boolean
        funding_source:
          description: Sender's account from which the OCT draws funds.
          enum:
            - CREDIT
            - DEBIT
            - PREPAID
            - DEPOSIT_ACCOUNT
            - CASH
            - MOBILE_MONEY_ACCOUNT
            - NON_VISA_CREDIT
            - CHECK
            - ACH
          type: string
        screening_score:
          description: |-
            Sanctions screening score to assist with meeting Anti-Money Laundering (AML) obligations.

            Higher scores indicate that the sender's data more closely resembles an entry on the regulatory watchlist.

            A value of 999 means that no screening score is available.
          type: string
        sender_account_type:
          description: The type of account from which the OCT draws funds.
          enum:
            - OTHER
            - RTN_BANK_ACCOUNT
            - IBAN
            - CARD_ACCOUNT
            - EMAIL
            - PHONE_NUMBER
            - BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE
            - WALLET_ID
            - SOCIAL_NETWORK_ID
          type: string
        sender_address:
          description: Sender's street address.
          type: string
        sender_city:
          description: Sender's city.
          type: string
        sender_country:
          description: Sender's country.
          type: string
        sender_name:
          description: Full name of the sender.
          type: string
        sender_state:
          description: Sender's state.
          type: string
        transaction_purpose:
          description: The purpose of the original credit transaction.
          type: string
        transaction_type:
          description: Type of original credit transaction.
          enum:
            - account_to_account
            - person_to_person
            - wallet_transfer
            - money_transfer_by_bank
            - business_to_business
            - disbursement
            - government_disbursement
            - gambling_payout
            - loyalty
            - merchant_disbursement
            - online_gambling_payout
            - pension_disbursement
            - prepaid_loads
            - card_bill_payment
            - bill_payment
            - cash_claim
            - cash_in
            - cash_out
            - mobile_air_time_payment
            - money_transfer_by_merchant
            - face_to_face_merchant_payment
            - government_payment
            - payments_goods_services
            - funds_transfer
            - general_business_to_business_transfer
            - business_to_business_transfer
            - cash_deposit
            - purchase_repayment
            - aft_or_oct_eligibility
            - consumer_bill_payment
            - request_to_pay
          type: string
      type: object
    original_credit_sender_data:
      properties:
        deferred_hold_by:
          enum:
            - absent
            - visa
            - originator
            - payment
          type: string
        fast_funds_enabled:
          type: boolean
        funding_source:
          enum:
            - credit
            - debit
            - prepaid
            - deposit_account
            - cash
            - mobile_money_payment
            - non_visa_credit
            - check
            - ach
          type: string
        sender_account_number:
          type: string
        sender_account_type:
          enum:
            - other
            - rtn_bank_account
            - iban
            - card_account
            - email
            - phone_number
            - bank_account_number_and_identification_code
            - wallet_id
            - social_network_id
          type: string
        sender_address:
          type: string
        sender_city:
          type: string
        sender_country:
          type: string
        sender_name:
          type: string
        sender_reference_number:
          type: string
        sender_state:
          type: string
        transaction_purpose:
          enum:
            - family_support
            - labor_transfers
            - travel
            - education
            - medical_treatment
            - emergency_need
            - savings
            - gifts
            - other
            - salary
            - lending
            - crypto_currency
          type: string
        unique_transaction_reference_number:
          maxLength: 17
          minLength: 1
          type: string
        visa_transaction_purpose:
          type: string
      required:
        - funding_source
      type: object
    orignalcredit_request_model:
      properties:
        amount:
          type: number
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        screening_score:
          type: string
        sender_data:
          $ref: '#/components/schemas/original_credit_sender_data'
        transactionPurpose:
          type: string
        type:
          enum:
            - account_to_account
            - person_to_person
            - prepaid
            - wallet_transfer
            - money_transfer_by_bank
            - business_to_business
            - disbursement
            - government_disbursement
            - gambling_payout
            - loyalty
            - merchant_disbursement
            - online_gambling_payout
            - pension_disbursement
            - prepaid_loads
            - card_bill_payment
            - bill_payment
            - cash_claim
            - cash_in
            - cash_out
            - mobile_air_time_payment
            - money_transfer_by_merchant
            - face_to_face_merchant_payment
            - government_payment
            - payments_goods_services
            - purchase_repayment
          type: string
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - card_token
        - mid
        - type
      type: object
    other_poi:
      properties:
        allow:
          default: true
          type: boolean
        card_presence_required:
          default: false
          description: Default = false
          type: boolean
        cardholder_presence_required:
          default: false
          description: Default = false
          type: boolean
        track1_discretionary_data:
          type: string
        track2_discretionary_data:
          type: string
        use_static_pin:
          default: false
          type: boolean
      type: object
    pan_request:
      properties:
        cvv_number:
          type: string
        expiration:
          type: string
        pan:
          type: string
      required:
        - pan
      type: object
    pan_response:
      properties:
        card_token:
          description: The unique identifier of the card
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        user_token:
          description: The unique identifier of the card user
          type: string
      required:
        - card_token
        - created_time
        - last_modified_time
        - user_token
      type: object
    password_update_model:
      properties:
        current_password:
          description: Current password to the cardholder's user account on the Marqeta
            platform.
          maxLength: 255
          minLength: 1
          type: string
        new_password:
          description: |-
            New password to the cardholder's user account on the Marqeta platform.

            * Must contain at least one numeral +
            * Must contain at least one lowercase letter +
            * Must contain at least one uppercase letter +
            * Must contain at least one of these symbols: `@ # $ % ! ^ & * ( ) \ _ + ~ ` - = [ ] { } , ; : ' " , . / < > ?`
          maxLength: 255
          minLength: 1
          type: string
      required:
        - current_password
        - new_password
      type: object
    payment_card_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            account_suffix:
              type: string
            account_type:
              type: string
            business_token:
              description: Required if 'user_token' is null
              type: string
            exp_date:
              type: string
            user_token:
              description: Required if 'business_token' is null
              type: string
          required:
            - account_suffix
            - account_type
            - exp_date
          type: object
    payment_card_response_model:
      properties:
        account_suffix:
          description: Account identifier appended to the payment card number.
          type: string
        account_type:
          description: Type of payment card account.
          type: string
        active:
          default: false
          description: Specifies whether the account is active.
          type: boolean
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is returned if a `user_token` is not specified.
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        exp_date:
          description: Payment card expiration date.
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        token:
          description: Unique identifier of the funding source.
          type: string
        type:
          description: Funding source type.
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is returned if a `business_token` is not specified.
          type: string
      required:
        - account_suffix
        - account_type
        - active
        - created_time
        - exp_date
        - is_default_account
        - last_modified_time
        - token
        - type
      type: object
    payment_facilitator_model:
      description: Information about the payment facilitator of an account funding
        or original credit transaction.
      properties:
        city:
          description: Payment facilitator's city.
          type: string
        country_code:
          description: Payment facilitator's country code.
          type: string
        postal_code:
          description: Payment facilitator's postal code.
          type: string
        state:
          description: Payment facilitator's state location.
          type: string
        street_address:
          description: Payment facilitator's street address.
          type: string
      type: object
    peer_transfer_request:
      properties:
        amount:
          description: Amount of the transfer.
          type: number
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        memo:
          description: Additional descriptive text about the transfer.
          maxLength: 99
          minLength: 1
          type: string
        recipient_business_token:
          description: |-
            Specifies the business account holder that receives funds.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        recipient_user_token:
          description: |-
            Specifies the user account holder that receives funds.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
        sender_business_token:
          description: |-
            Specifies the business account holder that sends funds.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        sender_user_token:
          description: |-
            Specifies the user account holder that sends funds.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
        tags:
          description: Metadata about the peer transfer.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the peer transfer request.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - currency_code
      type: object
    peer_transfer_response:
      description: Contains information about a peer transfer, including sender and
        recipient tokens, transfer amount, and currency code.
      properties:
        amount:
          description: Amount of the transfer.
          type: number
        created_time:
          format: date-time
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        memo:
          description: Additional descriptive text about the peer transfer.
          type: string
        recipient_business_token:
          description: Specifies the business account holder that receives funds.
          type: string
        recipient_user_token:
          description: Specifies the user account holder that receives funds.
          type: string
        sender_business_token:
          description: Specifies the business account holder that sends funds.
          type: string
        sender_user_token:
          description: Specifies the user account holder that sends funds.
          type: string
        tags:
          description: Metadata about the peer transfer.
          type: string
        token:
          description: Unique identifier of the peer transfer request.
          type: string
      required:
        - amount
        - created_time
        - currency_code
        - token
      type: object
    pin_request:
      properties:
        control_token:
          description: |-
            Unique value generated as a result of issuing a `POST` request to the `/pins/controltoken` endpoint.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        pin:
          description: Four-digit number to associate with the card.
          type: string
      required:
        - control_token
        - pin
      type: object
    pin_reveal_request:
      properties:
        cardholder_verification_method:
          description: |-
            The supplemental method used to verify the cardholder's identity before revealing the card's personal identification number (PIN).

            The possible cardholder verification methods are:

            * *BIOMETRIC_FACE:* In-app authentication via facial recognition
            * *BIOMETRIC_FINGERPRINT:* In-app authentication via biometric fingerprint
            * *EXP_CVV:* In-app authentication by entering the card's expiration date and card verification value (CVV)
            * *LOGIN:* In-app authentication by re-entering the app password
            * *OTP:* Two-factor authentication involving a one-time password (OTP)
            * *OTP_CVV:* Two-factor authentication involving the card's CVV and an OTP
            * *OTHER:* Authentication that relies on other secure methods
          enum:
            - BIOMETRIC_FACE
            - BIOMETRIC_FINGERPRINT
            - LOGIN
            - EXP_CVV
            - OTP_CVV
            - OTP
            - OTHER
          type: string
        control_token:
          description: |-
            Unique value generated as a result of issuing a `POST` request to the `/pins/controltoken` endpoint.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - cardholder_verification_method
        - control_token
      type: object
    ping_response:
      properties:
        env:
          type: string
        id:
          type: string
        revision:
          type: string
        success:
          type: boolean
        timestamp:
          type: string
        version:
          type: string
      type: object
    poi:
      properties:
        atm:
          default: false
          description: Default = false
          type: boolean
        ecommerce:
          default: true
          type: boolean
        other:
          $ref: '#/components/schemas/other_poi'
      type: object
    pos:
      description: |-
        Contains information about the point of sale, including details on how the card was presented.

        Returned if provided by the card network, and the request uses Transaction Model v2 of the Marqeta Core API.
        Not returned for Transaction Model v1 requests.
      properties:
        card_data_input_capability:
          description: How the terminal accepts card data.
          enum:
            - UNKNOWN
            - NO_TERMINAL
            - MAG_STRIPE
            - MAG_STRIPE_CONTACTLESS
            - MAG_STRIPE_KEY_ENTRY
            - CHIP
            - CHIP_CONTACTLESS
            - CHIP_MAG_STRIPE
            - CHIP_MAG_STRIPE_KEY_ENTRY
            - KEY_ENTRY
            - OCR
            - MICR
            - BAR_CODE
          type: string
        card_holder_presence:
          default: false
          description: Whether the cardholder was present during the transaction.
          type: boolean
        card_presence:
          default: false
          description: Whether the card was present during the transaction.
          type: boolean
        cardholder_authentication_method:
          description: Method used to authenticate the cardholder.
          enum:
            - UNSPECIFIED
            - NON_AUTHENTICATED
            - SIGNATURE
            - PIN
            - ID_VERIFIED
          type: string
        country_code:
          description: Country code of the card acceptor or terminal.
          type: string
        is_installment:
          default: false
          description: Whether the transaction is an installment payment.
          type: boolean
        is_recurring:
          default: false
          description: Whether the transaction is recurring.
          type: boolean
        pan_entry_mode:
          description: Method used for capturing the card primary account number (PAN)
            during the transaction.
          enum:
            - UNKNOWN
            - MANUAL
            - MAG_STRIPE
            - MAG_STRIPE_CONTACTLESS
            - BAR_CODE
            - OCR
            - MICR
            - CHIP
            - CHIP_CONTACTLESS
            - CARD_ON_FILE
            - CHIP_FALLBACK
            - OTHER
          type: string
        partial_approval_capable:
          default: false
          description: Indicates whether the card acceptor or terminal supports partial-approval
            transactions.
          type: boolean
        pin_entry_mode:
          description: |-
            Indicates whether the card acceptor or terminal can capture card personal identification numbers (PINs).

            *NOTE:* This field does not indicate whether a PIN was entered.
          enum:
            - UNKNOWN
            - 'TRUE'
            - 'FALSE'
            - DEFECTIVE
          type: string
        pin_present:
          default: false
          description: Indicates whether the cardholder entered a PIN during the transaction.
          type: boolean
        purchase_amount_only:
          default: false
          description: Indicates whether the card acceptor or terminal supports purchase-only
            approvals.
          type: boolean
        special_condition_indicator:
          description: |-
            Indicates a higher-risk operation, such as a quasi-cash or cryptocurrency transaction.

            These transactions typically involve non-financial institutions.
          enum:
            - UNSPECIFIED
            - CRYPTOCURRENCY_PURCHASE
            - QUASI_CASH
            - DEBT_PAYMENT
            - CENTRAL_BANK_DIGITAL_CURRENCY_PURCHASE
            - STABLECOIN_PURCHASE
            - BLOCKCHAIN_NATIVE_TOKEN_PURCHASE
            - NON_FUNGIBLE_TOKEN_PURCHASE
          type: string
        terminal_attendance:
          description: Whether the card acceptor/terminal was attended.
          enum:
            - UNSPECIFIED
            - ATTENDED
            - UNATTENDED
            - NO_TERMINAL
          type: string
        terminal_id:
          description: Card acceptor or terminal identification number.
          type: string
        terminal_location:
          description: Location of the card acceptor/terminal.
          enum:
            - ON_PREMISE
            - OFF_PREMISE_MERCHANT
            - OFF_PREMISE_CARDHOLDER
            - NO_TERMINAL
          type: string
        terminal_type:
          description: Type of card acceptor/terminal.
          enum:
            - AUTO_DISPENSER_WITH_PIN
            - SELF_SERVICE
            - LIMITED_AMOUNT
            - IN_FLIGHT
            - ECOMMERCE
            - TRANSPONDER
          type: string
        transaction_initiated_by:
          description: Specifies the initiator of the transaction.
          enum:
            - CONSUMER
            - MERCHANT
            - UNKNOWN
            - MARQETA
            - NETWORK
          type: string
        transaction_initiated_category:
          description: Specifies the category of a point-of-sale transaction.
          enum:
            - CARD_ON_FILE
            - RECURRING_VAR_AMT_FIXED_FREQ
            - RECURRING_PAYMENT
            - INSTALLMENT_PAYMENT
            - UNSCHEDULED_PAYMENT
            - PARTIAL_SHIPMENT
            - DELAYED_PAYMENT
            - NO_SHOW
            - RESUBMISSION
            - DEFERRED_BILLING
            - ACCOUNT_INQUIRY
            - INCREMENTAL_AUTHORIZATION
            - REAUTHORIZATION
          type: string
        zip:
          description: United States ZIP code of the card acceptor or terminal.
          type: string
      type: object
    pre_kyc_controls:
      properties:
        balance_max:
          description: Minimum is 0
          exclusiveMinimum: false
          minimum: 0
          type: number
        cash_access_enabled:
          default: false
          type: boolean
        enable_non_program_loads:
          default: false
          type: boolean
        international_enabled:
          default: false
          type: boolean
        is_reloadable_pre_kyc:
          default: false
          type: boolean
      type: object
    preceding_transaction:
      description: |-
        Returned for `authorization.clearing` transaction types following a financial advice.

        Contains information about the preceding transaction.
      properties:
        amount:
          description: Amount of the preceding transaction.
          type: number
        token:
          description: Unique identifier of the preceding transaction.
          type: string
      type: object
    program:
      description: Information about the program on the Marqeta platform.
      properties:
        long_code:
          description: The program long code on the Marqeta platform.
          type: string
        program_id:
          description: The program identifier on the Marqeta platform.
          type: string
        short_code:
          description: The program short code on the Marqeta platform.
          type: string
      required:
        - long_code
        - program_id
        - short_code
      type: object
    program_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            name:
              type: string
          required:
            - name
          type: object
    program_funding_source_request:
      properties:
        active:
          description: Indicates whether the program funding source is active.
          type: boolean
        name:
          description: Name of the program funding source.
          maxLength: 50
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the funding source.
            If you do not include a token, the system will generate one automatically.
            As this token is necessary for use in other calls, we recommend that you define a simple and easy to remember string rather than letting the system generate a token for you.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
      type: object
    program_funding_source_response:
      properties:
        account:
          description: Account identifier.
          type: string
        active:
          description: |-
            Indicates whether the program funding source is active.
            This field is returned if it exists in the resource.
          type: boolean
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        name:
          description: Name of the program funding source.
          maxLength: 50
          minLength: 1
          type: string
        token:
          description: Unique identifier of the funding source.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - account
        - created_time
        - last_modified_time
        - name
        - token
      type: object
    program_funding_source_update_request:
      properties:
        active:
          description: Indicates whether the program funding source is active.
          type: boolean
        name:
          description: Name of the program funding source.
          maxLength: 50
          minLength: 1
          type: string
      type: object
    program_gateway_funding_source_model:
      allOf:
        - $ref: '#/components/schemas/funding_source_model'
        - properties:
            name:
              type: string
          required:
            - name
          type: object
    program_reserve_account_balance:
      properties:
        available_balance:
          description: |-
            Ledger balance, minus any authorized transactions that have not yet cleared.
            When using JIT Funding, this balance is usually equal to $0.00.
          readOnly: true
          type: number
        balances:
          additionalProperties:
            $ref: '#/components/schemas/program_reserve_account_balance'
          description: |-
            Contains program reserve account balance information, organized by currency code.
            Sometimes referred to as a _program funding account_.
          type: object
        credit_balance:
          description: Not currently in use.
          readOnly: true
          type: number
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        ledger_balance:
          description: |-
            When using standard funding: The funds that are available to spend immediately, including funds from any authorized transactions that have not yet cleared.
            When using Just-in-Time (JIT) Funding: Authorized funds that are currently on hold, but not yet cleared.
          readOnly: true
          type: number
        pending_credits:
          description: ACH loads that have been accepted, but for which the funding
            time has not yet elapsed.
          readOnly: true
          type: number
      type: object
    program_reserve_deposit_request:
      properties:
        amount:
          description: Amount of the deposit.
          type: number
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        idempotentHash:
          description: Idempotent hash value associated with the deposit request.
          type: string
        is_collateral:
          type: boolean
        memo:
          description: Memo or note describing the deposit request.
          type: string
        tags:
          description: Comma-delimited list of tags describing the deposit request.
          type: string
        token:
          description: Unique identifier of the deposit request.
          type: string
      required:
        - amount
        - currency_code
        - token
      type: object
    program_reserve_transaction_response:
      properties:
        amount:
          description: |-
            Amount of the program reserve account credit or debit.
            Sometimes referred to as a _program funding account_.
          type: number
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        is_collateral:
          type: boolean
        last_modified_time:
          description: The date and time when the resource was last modified, in UTC.
          format: date-time
          type: string
        memo:
          description: Memo or note describing the transaction.
          type: string
        state:
          description: Transaction state.
          enum:
            - PENDING
            - COMPLETE
          type: string
        tags:
          description: Comma-delimited list of tags describing the transaction.
          type: string
        token:
          description: The unique identifier of the transaction response.
          type: string
        transaction_token:
          description: Unique identifier of the transaction.
          type: string
        type:
          description: Transaction type.
          enum:
            - CREDIT
            - DEBIT
            - PENDING_CREDIT
            - PENDING_DEBIT
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    program_transfer:
      properties:
        amount:
          description: Amount of program transfer.
          type: number
        business_token:
          description: |-
            Unique identifier of the business.
            Pass either a `business_token` or a `user_token`, not both.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fees:
          description: |-
            Contains attributes that define characteristics of one or more fees.
            This array is returned in the response when it is included in the request.
          items:
            $ref: '#/components/schemas/fee_model'
          type: array
        memo:
          description: Memo or note describing the program transfer.
          maxLength: 99
          minLength: 1
          type: string
        tags:
          description: Comma-delimited list of tags describing the program transfer.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the program transfer.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        type_token:
          description: |-
            Unique identifier of the program transfer type.

            Send a `GET` request to `/programtransfers/types` to retrieve program transfer type tokens.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user.
            Pass either a `user_token` or a `business_token`, not both.

            Send a `GET` request to `/users` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - currency_code
        - type_token
      type: object
    program_transfer_response:
      description: Contains information about a program transfer, which moves funds
        from an account holder's GPA to a program funding source.
      properties:
        amount:
          description: Amount of program transfer.
          type: number
        business_token:
          description: |-
            Unique identifier of the business account holder.
            Returned if `user_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
        created_time:
          description: Date and time when the program transfer object was created,
            in UTC.
          format: date-time
          type: string
        currency_code:
          description: Three-digit ISO 4217 currency code.
          type: string
        fees:
          description: Contains attributes that define characteristics of one or more
            fees.
          items:
            $ref: '#/components/schemas/fee_detail'
          type: array
        jit_funding:
          $ref: '#/components/schemas/jit_funding_api'
        memo:
          description: Additional description of the program transfer.
          maxLength: 99
          minLength: 1
          type: string
        tags:
          description: Comma-delimited list of tags describing the program transfer.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: Unique identifier of the program transfer.
          maxLength: 36
          minLength: 1
          type: string
        transaction_token:
          description: Unique identifier of the transaction.
          type: string
        type_token:
          description: Unique identifier of the program transfer type.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            Returned if `business_token` is not specified.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - currency_code
        - transaction_token
        - type_token
      type: object
    program_transfer_type_request:
      properties:
        memo:
          description: Memo or note describing the program transfer type.
          maxLength: 99
          minLength: 1
          type: string
        program_funding_source_token:
          description: |-
            Unique identifier of the program funding source to which program transfers will be credited.

            Send a `GET` request to `/fundingsources/program` to retrieve program funding source tokens.
          maxLength: 36
          minLength: 1
          type: string
        tags:
          description: Comma-delimited list of tags describing the program transfer
            type.
          maxLength: 255
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the program transfer type.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - memo
        - program_funding_source_token
      type: object
    program_transfer_type_response:
      properties:
        created_time:
          description: The date and time when the program transfer type object was
            created, in UTC.
          format: date-time
          type: string
        last_modified_time:
          description: Date and time when the program transfer type object was last
            modified, in UTC.
          format: date-time
          type: string
        memo:
          description: Memo or note describing the program transfer type.
          type: string
        program_funding_source_token:
          description: Unique identifier of the program funding source to which program
            transfers will be credited.
          type: string
        tags:
          description: Comma-delimited list of tags describing the program transfer
            type.
          type: string
        token:
          description: Unique identifier of the program transfer type request object.
          type: string
      required:
        - program_funding_source_token
        - token
      type: object
    provisioning_controls:
      properties:
        dwt_tar_avs_decline_on_address_number_mismatch:
          type: boolean
        dwt_tar_avs_decline_on_postal_code_mismatch:
          type: boolean
        dwt_use_card_status_during_auth:
          type: boolean
        dwt_verify_atc_during_auth:
          type: boolean
        enable_discretionary_data_during_tar:
          type: boolean
        force_yellow_path_for_card_product:
          description: A value of `true` requires identity verification set-up for
            all digital wallets at the card product level.
          type: boolean
        in_app_provisioning:
          $ref: '#/components/schemas/in_app_provisioning'
        manual_entry:
          $ref: '#/components/schemas/manual_entry'
        wallet_provider_card_on_file:
          $ref: '#/components/schemas/wallet_provider_card_on_file'
        web_push_provisioning:
          $ref: '#/components/schemas/web_push_provisioning'
      type: object
    push_to_card_disburse_request:
      properties:
        amount:
          exclusiveMaximum: false
          exclusiveMinimum: false
          maximum: 50000
          minimum: 0.01
          type: number
        currency_code:
          type: string
        memo:
          maxLength: 99
          minLength: 1
          type: string
        payment_instrument_token:
          maxLength: 36
          minLength: 1
          type: string
        soft_descriptor:
          $ref: '#/components/schemas/PTCSoftDescriptor'
        tags:
          maxLength: 255
          minLength: 1
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - currency_code
        - payment_instrument_token
      type: object
    push_to_card_disbursement_response:
      properties:
        amount:
          type: number
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        currency_code:
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        memo:
          maxLength: 99
          minLength: 1
          type: string
        payment_instrument_token:
          maxLength: 36
          minLength: 1
          type: string
        status:
          type: string
        tags:
          maxLength: 255
          minLength: 1
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    push_to_card_request:
      properties:
        address_1:
          maxLength: 255
          minLength: 1
          type: string
        address_2:
          maxLength: 255
          minLength: 1
          type: string
        city:
          maxLength: 40
          minLength: 1
          type: string
        country:
          type: string
        cvv:
          type: string
        exp_date:
          type: string
        name_on_card:
          maxLength: 50
          minLength: 1
          type: string
        pan:
          maxLength: 19
          minLength: 14
          type: string
        postal_code:
          maxLength: 10
          minLength: 1
          type: string
        state:
          maxLength: 2
          minLength: 1
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - address_1
        - city
        - country
        - cvv
        - exp_date
        - name_on_card
        - pan
        - postal_code
        - state
        - user_token
      type: object
    push_to_card_response:
      properties:
        address_1:
          maxLength: 255
          minLength: 1
          type: string
        address_2:
          maxLength: 255
          minLength: 1
          type: string
        city:
          maxLength: 40
          minLength: 1
          type: string
        country:
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        exp_date:
          type: string
        fast_fund_transfer_eligible:
          default: false
          type: boolean
        gambling_fund_transfer_eligible:
          default: false
          type: boolean
        last_four:
          type: string
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        last_name:
          readOnly: true
          type: string
        name_on_card:
          type: string
        postal_code:
          maxLength: 10
          minLength: 1
          type: string
        state:
          maxLength: 2
          minLength: 1
          type: string
        token:
          maxLength: 36
          minLength: 1
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    real_time_fee_group:
      description: Contains information about a real-time fee group.
      properties:
        active:
          default: false
          description: Indicates whether the real-time fee group is active.
          type: boolean
        created_time:
          description: Date and time when the real-time fee group was created, in
            UTC.
          format: date-time
          type: string
        fee_tokens:
          description: Specifies the fees in this real-time fee group.
          items:
            type: string
          type: array
          uniqueItems: true
        last_modified_time:
          description: Date and time when the real-time fee group was last modified,
            in UTC.
          format: date-time
          type: string
        name:
          description: Descriptive name for the real-time fee group.
          type: string
        token:
          description: Unique identifier of the real-time fee group.
          type: string
      required:
        - active
        - name
        - token
      type: object
    real_time_fee_group_create_request:
      properties:
        active:
          default: true
          description: Indicates whether the real-time fee group is active.
          type: boolean
        fee_tokens:
          description: |-
            Unique identifiers of the fees in this real-time fee group.
            Send a `GET` request to `/fees` to retrieve fee resource tokens.

            No two fees in the group can be applicable to the same transaction type (in other words, each fee must have a different value for its `real_time_assessment.transaction_type` field).
          items:
            type: string
          type: array
          uniqueItems: true
        name:
          description: Descriptive name for the real-time fee group.
          maxLength: 50
          minLength: 1
          type: string
        token:
          description: |-
            Unique identifier of the real-time fee group.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - name
      type: object
    real_time_fee_group_request:
      properties:
        active:
          default: true
          description: Indicates whether the real-time fee group is active.
          type: boolean
        fee_tokens:
          description: |-
            Specifies the fees in this real-time fee group.
            Send a `GET` request to `/fees` to retrieve fee resources tokens.

            No two fees in the group can be applicable to the same transaction type (in other words, each fee must have a different value for its `real_time_assessment.transaction_type` field).
          items:
            type: string
          type: array
          uniqueItems: true
        name:
          description: Descriptive name for the real-time fee group.
          maxLength: 50
          minLength: 1
          type: string
      type: object
    real_time_standin_criteria:
      properties:
        enabled:
          default: false
          type: boolean
        include_application_errors:
          default: false
          type: boolean
        include_connection_errors:
          default: false
          type: boolean
        include_response_timeouts:
          default: false
          type: boolean
      type: object
    realtime_fee_transfer_request:
      properties:
        fee:
          $ref: '#/components/schemas/fee_model'
        original_transaction_token:
          type: string
        token:
          type: string
      type: object
    request_for_apple_pay_wpp_JWT:
      properties:
        card_token:
          description: Unique identifier of the card resource.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
        req-sys-id:
          description: Random pseudo-unique value used for troubleshooting between
            multiple parties.
          type: string
      required:
        - card_token
      type: object
    request_for_wpp_parameters:
      properties:
        card_token:
          description: Unique identifier of the card resource.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
      required:
        - card_token
      type: object
    reset_user_password_email_model:
      properties:
        email:
          description: Cardholder email address.
          maxLength: 255
          minLength: 1
          type: string
      required:
        - email
      type: object
    reset_user_password_model:
      properties:
        new_password:
          description: New password to the cardholder's user account on the Marqeta
            platform.
          maxLength: 255
          minLength: 1
          type: string
        user_token:
          description: Unique identifier of the cardholder.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - new_password
        - user_token
      type: object
    response:
      description: Response codes and memos for account name verification, address
        verification, card security verification, and transactions.
      properties:
        additional_information:
          description: |-
            Information about the velocity control applied to the transaction.

            *NOTE:* This field is returned only in transaction response objects.
            It is not returned in address verification or card security verification response objects.
          type: string
        code:
          description: |-
            Four-digit response code for address verification, card security code verification, or transactions.

            For account name verification, the four digits correspond with assertions that the first, middle, last, and full name of the cardholder on the Marqeta platform match the data provided by the cardholder.
            `0` indicates no validation was performed, `1` indicates the match was unsuccessful (unmatched), `2` indicates the match was partial, and `3` indicates the match was exact.
            For example:

            [cols="2,3,3,3,3"]
            !===
            ! Code ! First Name ! Middle Name ! Last Name ! Full Name

            ! 0000
            ! Not validated
            ! Not validated
            ! Not validated
            ! Not validated

            ! 1111
            ! Unmatched
            ! Unmatched
            ! Unmatched
            ! Unmatched

            ! 3333
            ! Exact match
            ! Exact match
            ! Exact match
            ! Exact match

            ! 1232
            ! Unmatched
            ! Partial match
            ! Exact match
            ! Partial match
            !===

            For address verification responses, the code is an assertion by the Marqeta platform as to whether its address verification data matches that provided by the cardholder:

            [cols="2,3,3"]
            !===
            ! Code ! Address ! Postal Code

            ! 0000
            ! Match
            ! Match

            ! 0001
            ! Match
            ! Unmatched

            ! 0100
            ! Unmatched
            ! Match

            ! 0101
            ! Unmatched
            ! Unmatched

            ! 0200
            ! Data not present
            ! Match

            ! 0201
            ! Data not present
            ! Unmatched

            ! 0002
            ! Match
            ! Data not present

            ! 0102
            ! Unmatched
            ! Data not present

            ! 0303
            ! Not validated
            ! Not validated
            !===

            For card security verification, the code indicates whether the verification check passed and can have these possible values:

            * 0000 – passed
            * 0001 – did not pass

            For a transaction, the code describes the outcome of the attempted transaction.
            For the full list of transaction codes, see <</developer-guides/about-transactions#_transaction_response_codes, Transaction response codes>>.
          type: string
        memo:
          description: Additional text that describes the response.
          type: string
      required:
        - code
        - memo
      type: object
    result:
      description: Contains information about the KYC verification result.
      properties:
        codes:
          description: An array of KYC verification result code objects.
          items:
            $ref: '#/components/schemas/result_code'
          type: array
        status:
          description: KYC verification status.
          type: string
      type: object
    result_code:
      description: Contains the KYC result code and a descriptive message about that
        codes.
      properties:
        code:
          description: For any `pending` or `failure` outcome, see the <<user_kyc_failure_codes,
            User KYC failure codes>> table, the <<outcome_reasons_for_the_business,
            Outcome reasons for the business>> table, or the <<outcome_reasons_for_individuals_associated_with_a_business,
            Outcome reasons for individuals associated with a business>> table.
          type: string
        message:
          description: Result code description.
          type: string
      type: object
    risk_assessment:
      description: Contains the digital wallet provider's risk assessment for provisioning
        the digital wallet token.
      properties:
        score:
          description: Wallet provider's decision as to whether the digital wallet
            token should be provisioned.
          type: string
        version:
          description: Wallet provider's risk assessment version.
          type: string
      type: object
    riskcontrol_tags:
      description: The RiskControl tags that were triggered by the transaction.
      properties:
        rule_name:
          description: Name of the rule, as defined in the Real-Time Decisioning dashboard,
            that was triggered.
          type: string
        tag:
          description: Tag name defined in the rule definition in the Real-Time Decisioning
            dashboard.
          type: string
        values:
          description: Value associated with the tag.
          items:
            type: string
          type: array
      type: object
    samsung_push_tokenize_request_data:
      description: Contains details about a card tokenization push request.
      properties:
        card_type:
          description: Specifies the type of card.
          type: string
        display_name:
          description: |-
            Name of the card as displayed in the digital wallet, typically showing the card brand and last four digits of the primary account number (PAN).
            `Visa 5678`, for example.
          type: string
        extra_provision_payload:
          description: Encrypted card or cardholder details.
          type: string
        last_digits:
          description: Last four digits of the primary account number of the physical
            or virtual card.
          type: string
        network:
          description: Specifies the card network of the physical or virtual card.
          type: string
        token_service_provider:
          description: Specifies the network that provides the digital wallet token
            service, as determined by the Samsung Wallet library.
          type: string
      type: object
    selective_auth:
      properties:
        dmd_location_sensitivity:
          default: 0
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
          format: int32
          type: integer
        enable_regex_search_chain:
          default: false
          type: boolean
        sa_mode:
          default: 1
          enum:
            - 0
            - 1
            - 2
          format: int32
          type: integer
      type: object
    sending_provisioning_data_to_google_pay_backend_request:
      properties:
        card_setting:
          description: |-
            Indicates if the Funding Primary Account Number (FPAN) will be attempted.

            * *1* - FPAN save will be attempted.
            * *0* - FPAN save will not be attempted.
          enum:
            - 0
            - 1
          example: 0
          format: int32
          type: integer
        card_token:
          description: Unique identifier of the card resource.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
        client_session_id:
          description: String provided by Google Wallet that identifies the client
            session.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
        integrator_id:
          description: Google-assigned string that uniquely identifies both the integrator
            that is initiating the session and the issuer of the card.
          example: ACMEISSUER_1
          type: string
        public_device_id:
          description: String provided by Google Wallet that identifies the Android
            device that will receive the digital wallet token.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
        public_wallet_id:
          description: String provided by Google Wallet that identifies the device-scoped
            wallet that receives the digital wallet token.
          example: 5855opl9-abcc-4cb7-a330-xyze5799ea5
          type: string
        server_session_id:
          description: String provided by Google Wallet that identifies the backend
            session.
          example: 8c84fab9-889c-4cb7-a330-accac5799ea5
          type: string
        token_setting:
          description: |-
            Indicates if tokenization will be attempted.

            * *1* - Tokenization will be attempted.
            * *0* - Tokenization will not be attempted.
          enum:
            - 0
            - 1
          example: 0
          format: int32
          type: integer
      required:
        - card_setting
        - card_token
        - client_session_id
        - integrator_id
        - public_device_id
        - public_wallet_id
        - server_session_id
        - token_setting
      type: object
    settlement_data:
      description: Contains information from the card network about currency conversion
        at the time of settlement, including the original currency of the transaction,
        the amount of the transaction in the original currency, and the conversion
        rate.
      properties:
        amount:
          description: The settled amount.
          type: number
        conversion_rate:
          description: |-
            Returned when the transaction currency is different from the origination currency.

            Conversion rate between the origination currency and the settlement currency.
          type: number
        currency_code:
          description: The ISO 4217 code of the currency used in the transaction.
          type: string
      type: object
    shipping:
      properties:
        care_of_line:
          description: 255 char max
          type: string
        method:
          enum:
            - LOCAL_MAIL
            - LOCAL_MAIL_PACKAGE
            - GROUND
            - TWO_DAY
            - OVERNIGHT
            - INTERNATIONAL
            - INTERNATIONAL_PRIORITY
            - LOCAL_PRIORITY
            - FEDEX_EXPEDITED
            - FEDEX_REGULAR
            - UPS_EXPEDITED
            - UPS_REGULAR
            - USPS_EXPEDITED
            - USPS_REGULAR
          type: string
        recipient_address:
          $ref: '#/components/schemas/fulfillment_address_request'
        return_address:
          $ref: '#/components/schemas/fulfillment_address_request'
      type: object
    simulation_response_model:
      properties:
        raw_iso8583:
          additionalProperties:
            properties: {
              }
            type: object
          readOnly: true
          type: object
        transaction:
          $ref: '#/components/schemas/transaction_model'
      type: object
    spend_control_association:
      description: Defines the group of users to which the velocity control applies.
      properties:
        card_product_token:
          description: |-
            Unique identifier of the card product.

            Pass either `card_product_token` or `user_token`, not both.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the cardholder.

            Pass either `card_product_token` or `user_token`, not both.
          maxLength: 36
          minLength: 1
          type: string
      type: object
    ssn_response_model:
      description: Contains tax identification information.
      properties:
        nin:
          description: National Identification Number (NIN).
          type: string
        sin:
          description: Social Insurance Number (SIN).
          type: string
        ssn:
          description: United States Social Security Number (SSN).
          type: string
        tin:
          description: Taxpayer Identification Number (TIN).
          type: string
      type: object
    store_model:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        keyed_auth_cvv_enforced:
          default: false
          type: boolean
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        merchant_token:
          maxLength: 36
          minLength: 0
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        network_mid:
          maxLength: 50
          minLength: 1
          type: string
        partial_approval_capable:
          default: false
          type: boolean
        partial_auth_flag:
          default: true
          type: boolean
        phone:
          maxLength: 10
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: The unique identifier of the merchant
          maxLength: 36
          minLength: 1
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      required:
        - address1
        - city
        - merchant_token
        - mid
        - name
        - state
        - zip
      type: object
    store_response_model:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        created_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        keyed_auth_cvv_enforced:
          default: false
          type: boolean
        last_modified_time:
          description: yyyy-MM-ddTHH:mm:ssZ
          format: date-time
          type: string
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        merchant_token:
          maxLength: 36
          minLength: 0
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        network_mid:
          maxLength: 50
          minLength: 1
          type: string
        partial_approval_capable:
          default: false
          type: boolean
        partial_auth_flag:
          default: true
          description: 1 char max
          type: boolean
        phone:
          maxLength: 10
          minLength: 0
          type: string
        postal_code:
          maxLength: 10
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: The unique identifier of the merchant
          maxLength: 36
          minLength: 1
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      required:
        - address1
        - city
        - created_time
        - last_modified_time
        - merchant_token
        - mid
        - name
        - state
      type: object
    store_update_model:
      properties:
        active:
          default: true
          type: boolean
        address1:
          maxLength: 255
          minLength: 0
          type: string
        address2:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        contact:
          maxLength: 40
          minLength: 0
          type: string
        contact_email:
          maxLength: 40
          minLength: 0
          type: string
        country:
          maxLength: 40
          minLength: 0
          type: string
        keyed_auth_cvv_enforced:
          default: false
          type: boolean
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        merchant_token:
          maxLength: 36
          minLength: 0
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        name:
          maxLength: 40
          minLength: 0
          type: string
        network_mid:
          maxLength: 50
          minLength: 1
          type: string
        partial_approval_capable:
          default: false
          type: boolean
        partial_auth_flag:
          default: true
          description: 1 char max
          type: boolean
        phone:
          maxLength: 10
          minLength: 0
          type: string
        province:
          maxLength: 20
          minLength: 0
          type: string
        state:
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: The unique identifier of the merchant
          maxLength: 36
          minLength: 1
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      required:
        - active
        - address1
        - city
        - merchant_token
        - mid
        - name
        - state
        - zip
      type: object
    strong_customer_authentication_limits:
      properties:
        cavv_authentication_amount_incremental_percentage:
          readOnly: true
          type: string
        enable_biometric_bypass_sca_contactless:
          readOnly: true
          type: boolean
        enable_cavv_authentication_amount_validation:
          readOnly: true
          type: boolean
        enable_issuer_tra_exemption:
          readOnly: true
          type: boolean
        sca_contactless_cumulative_amount_limit:
          readOnly: true
          type: number
        sca_contactless_transaction_limit:
          readOnly: true
          type: number
        sca_contactless_transactions_count_limit:
          format: int32
          readOnly: true
          type: integer
        sca_contactless_transactions_currency:
          readOnly: true
          type: string
        sca_lvp_cumulative_amount_limit:
          readOnly: true
          type: number
        sca_lvp_transaction_limit:
          readOnly: true
          type: number
        sca_lvp_transactions_count_limit:
          format: int32
          readOnly: true
          type: integer
        sca_lvp_transactions_currency:
          readOnly: true
          type: string
        sca_tra_exemption_amount_limit:
          readOnly: true
          type: number
      type: object
    tag:
      properties:
        name:
          description: Name of the tag.
          type: string
        value:
          description: Value of the tag.
          type: string
      type: object
    terminal_model:
      description: |-
        Contains information about the point of sale, including details on how the card was presented.

        Returned if provided by the card network, and the request uses Transaction Model v1 of the Marqeta Core API.
        Not returned for Transaction Model v2 requests.
      properties:
        card_presence:
          description: Indicates whether the card was present during the transaction.
          type: string
        cardholder_presence:
          description: Indicates whether the cardholder was present during the transaction.
          type: string
        partial_approval_capable:
          description: Indicates whether the card acceptor or terminal supports partial-approval
            transactions.
          type: string
        pin_present:
          description: Indicates whether the cardholder entered a PIN during the transaction.
          type: string
        special_condition_indicator:
          description: |-
            Indicates a higher-risk operation, such as a quasi-cash or cryptocurrency transaction.

            These transactions typically involve non-financial institutions.
          enum:
            - UNSPECIFIED
            - CRYPTOCURRENCY_PURCHASE
            - QUASI_CASH
            - DEBT_PAYMENT
            - CENTRAL_BANK_DIGITAL_CURRENCY_PURCHASE
            - STABLECOIN_PURCHASE
            - BLOCKCHAIN_NATIVE_TOKEN_PURCHASE
            - NON_FUNGIBLE_TOKEN_PURCHASE
          type: string
        tid:
          description: Card acceptor or terminal identification number.
          type: string
        transaction_initiated_by:
          description: Specifies the initiator of the transaction.
          enum:
            - CONSUMER
            - MERCHANT
            - UNKNOWN
            - MARQETA
            - NETWORK
          type: string
        transaction_initiated_category:
          description: Specifies the category of a point-of-sale transaction.
          enum:
            - CARD_ON_FILE
            - RECURRING_VAR_AMT_FIXED_FREQ
            - RECURRING_PAYMENT
            - INSTALLMENT_PAYMENT
            - UNSCHEDULED_PAYMENT
            - PARTIAL_SHIPMENT
            - DELAYED_PAYMENT
            - NO_SHOW
            - RESUBMISSION
            - DEFERRED_BILLING
            - ACCOUNT_INQUIRY
            - INCREMENTAL_AUTHORIZATION
            - REAUTHORIZATION
          type: string
      type: object
    text:
      description: Specifies personalized text that appears on the card.
      properties:
        name_line_1:
          $ref: '#/components/schemas/text_value'
        name_line_2:
          $ref: '#/components/schemas/text_value'
        name_line_3:
          $ref: '#/components/schemas/text_value'
      required:
        - name_line_1
      type: object
    text_value:
      properties:
        value:
          description: Line of personalized text printed on the card.
          type: string
      type: object
    token_request:
      properties:
        account_number:
          description: Payment card account number.
          type: string
        business_token:
          description: |-
            Unique identifier of the business account holder.
            This token is required if the `user_token` is not included.

            Send a `GET` request to `/businesses` to retrieve business tokens.
          maxLength: 36
          minLength: 1
          type: string
        cvv_number:
          description: Payment card CVV2 number.
          maxLength: 4
          minLength: 3
          type: string
        exp_date:
          description: Payment card expiration date.
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
        postal_code:
          description: Postal code of the account holder (user or business).
          type: string
        token:
          description: |-
            Unique identifier of the funding account.
            If you do not include a token, the system will generate one automatically.
            As this token is necessary for use in other calls, we recommend that you define a simple and easy to remember string rather than letting the system generate a token for you.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        user_token:
          description: |-
            Unique identifier of the user account holder.
            This token is required if the `business_token` is not included.

            Send a `GET` request to `/users` to retrieve user tokens.
          maxLength: 36
          minLength: 1
          type: string
        zip:
          description: United States ZIP code of the account holder (user or business).
          type: string
      required:
        - account_number
        - cvv_number
        - exp_date
      type: object
    token_service_provider:
      description: Contains information held and provided by the token service provider
        (card network).
      properties:
        correlation_id:
          description: Unique value representing a tokenization request (Mastercard
            only).
          type: string
        pan_reference_id:
          description: Unique identifier of the digital wallet token primary account
            number (PAN) within the card network.
          type: string
        token_assurance_level:
          description: _(Mastercard only)_ Represents the confidence level in the
            digital wallet token.
          type: string
        token_eligibility_decision:
          description: Digital wallet's decision as to whether the digital wallet
            token should be provisioned.
          type: string
        token_expiration:
          description: Expiration date of the digital wallet token.
          type: string
        token_pan:
          description: Primary account number (PAN) of the digital wallet token.
          type: string
        token_reference_id:
          description: Unique identifier of the digital wallet token within the card
            network.
          type: string
        token_requestor_id:
          description: |-
            Unique numerical identifier of the token requestor within the card network.
            These ID numbers map to `token_requestor_name` field values as follows:

            *Mastercard*

            * 50110030273 – `APPLE_PAY`
            * 50120834693 – `ANDROID_PAY`
            * 50139059239 – `SAMSUNG_PAY`

            *Visa*

            * 40010030273 – `APPLE_PAY`
            * 40010075001 – `ANDROID_PAY`
            * 40010043095 – `SAMSUNG_PAY`
            * 40010075196 – `MICROSOFT_PAY`
            * 40010075338 – `VISA_CHECKOUT`
            * 40010075449 – `FACEBOOK`
            * 40010075839 – `NETFLIX`
            * 40010077056 – `FITBIT_PAY`
            * 40010069887 – `GARMIN_PAY`
          type: string
        token_requestor_name:
          description: |-
            Name of the token requestor within the card network.

            *NOTE:* The list of example values for this field is maintained by the card networks and is subject to change.
          type: string
        token_score:
          description: Token score assigned by the digital wallet.
          type: string
        token_type:
          description: Type of the digital wallet token.
          type: string
      required:
        - pan_reference_id
      type: object
    token_update_request:
      properties:
        active:
          default: true
          description: Indicates whether the card funding source is active.
          type: boolean
        exp_date:
          description: Expiration date for the payment card.
          type: string
        is_default_account:
          default: false
          description: |-
            If there are multiple funding sources, this field specifies which source is used by default in funding calls.
            If there is only one funding source, the system ignores this field and always uses that source.
          type: boolean
      required:
        - exp_date
      type: object
    transaction_card_acceptor:
      description: Contains information about the merchant.
      properties:
        address:
          description: |-
            Card acceptor's address.
            May be returned if the request uses Transaction Model v1 of the Marqeta Core API.
            Not returned for Transaction Model v2 requests.
          type: string
        city:
          description: Card acceptor's city.
          type: string
        country_code:
          description: |-
            Card acceptor's country code.
            May be returned if the request uses Transaction Model v2 of the Marqeta Core API.
            Not returned for Transaction Model v1 requests.
          type: string
        country_of_origin:
          description: |-
            The merchant's country of origin.

            A merchant's country of origin can be different from the country in which the merchant is located.
            For example, embassies are physically located in countries that are not their country of origin: a Mexican embassy might be physically located in Singapore, but the country of origin is Mexico.

            This field is included when the cardholder conducts a transaction with a government-controlled merchant using a Marqeta-issued card.
          type: string
        customer_service_phone:
          type: string
        geographic_coordinates:
          description: Geographic coordinates of the card acceptor in `latitudeE7,longitudeE7`
            format.
          type: string
        independent_sales_organization_id:
          type: string
        mcc:
          description: Merchant category code (MCC).
          type: string
        mcc_groups:
          description: An array of `mcc_groups`.
          items:
            type: string
          type: array
        merchant_tax_id:
          type: string
        merchant_vat_registration_id:
          description: The VAT registration identifier of the merchant.
          type: string
        mid:
          description: The merchant identifier.
          type: string
        name:
          description: Card acceptor's name.
          type: string
        network_assigned_id:
          description: Identifier assigned by the card network.
          type: string
        network_mid:
          description: The merchant identifier on the card network.
          type: string
        payment_facilitator_id:
          type: string
        payment_facilitator_name:
          description: |-
            The name of the payment facilitator, including the sub-merchant identifier, of an original credit transaction.
            This field is returned when a payment facilitator participates in the transaction.
          type: string
        phone:
          type: string
        poi:
          $ref: '#/components/schemas/terminal_model'
        postal_code:
          description: Card acceptor's postal code.
          type: string
        service_geographic_coordinates:
          description: Geographic coordinates of the service provider in `latitudeE7,longitudeE7`
            format.
          type: string
        special_merchant_id:
          type: string
        state:
          description: |-
            Two-character state, province, or territorial abbreviation.

            For a complete list of valid state and province abbreviations, see <</core-api/kyc-verification#_valid_state_provincial_and_territorial_abbreviations, Valid state, provincial, and territorial abbreviations>>.

            *Note*: Non-US merchants may return more than 2 char for this field.
          type: string
        sub_merchant_id:
          type: string
        transfer_service_provider_name:
          description: |-
            The name of the transfer service provider of a money transfer original credit transaction.
            This field is included when a transfer service provider participates in the transaction.
          type: string
        url:
          type: string
      type: object
    transaction_controls:
      properties:
        accepted_countries_token:
          description: 50 char max (default = accept_us_only)
          type: string
        address_verification:
          $ref: '#/components/schemas/avs_controls'
        allow_chip_fallback:
          default: false
          type: boolean
        allow_first_pin_set_via_financial_transaction:
          default: false
          type: boolean
        allow_gpa_auth:
          default: false
          type: boolean
        allow_mcc_group_authorization_controls:
          default: false
          type: boolean
        allow_network_load:
          default: false
          type: boolean
        allow_network_load_card_activation:
          default: false
          type: boolean
        allow_quasi_cash:
          default: false
          type: boolean
        always_require_icc:
          default: false
          type: boolean
        always_require_pin:
          default: false
          type: boolean
        enable_credit_service:
          default: false
          type: boolean
        enable_partial_auth_approval:
          default: false
          type: boolean
        ignore_card_suspended_state:
          default: false
          type: boolean
        notification_language:
          type: string
        quasi_cash_exempt_merchant_group_token:
          description: 36 char max
          maxLength: 36
          minLength: 1
          type: string
        quasi_cash_exempt_mids:
          type: string
        require_card_not_present_card_security_code:
          default: false
          type: boolean
        strong_customer_authentication_limits:
          $ref: '#/components/schemas/strong_customer_authentication_limits'
      type: object
    transaction_device:
      description: |-
        Contains information about the device used in the transaction to enhance the risk decisioning process.
        Use this data to improve fraud prevention and dispute resolution.
      properties:
        binding_id:
          description: Unique identifier of the data component bound to the credential.
          type: string
        ip_address:
          description: |-
            IP address of the device.
            The presence of the IP address helps determine if the transaction was initiated from an unusual network, helping establish a pattern of safe device usage that further confirms the authenticity of the consumer who initiated the transaction.
          type: string
        location:
          description: |-
            Geographic coordinates of the device.
            Contains the latitude and longitude of the device used when the cardholder was authenticated during checkout.
            This field helps to determine if the transaction was initiated from an unexpected location.
          type: string
        phone_number:
          description: |-
            Telephone number of the device.
            Contains the phone number that was used to authenticate the consumer during checkout, or the consumer's preferred phone number.
            The presence of the phone number helps establish the consumer's authenticity when matching the phone number provided during checkout to a list of known phone numbers for the consumer.
          type: string
      type: object
    transaction_metadata:
      description: |-
        Contains merchant-provided metadata related to the transaction, including details about lodging- and transit-related purchases.

        May be returned if the request uses Transaction Model v2 of the Marqeta Core API.
        Not returned for Transaction Model v1 requests.
      properties:
        airline:
          $ref: '#/components/schemas/airline'
        authorization_life_cycle:
          description: Number of days the pre-authorization is in effect.
          format: int32
          type: integer
        cross_border_transaction:
          default: false
          description: Whether the transaction is cross-border, i.e., when the merchant
            and the cardholder are located in two different countries.
          type: boolean
        is_deferred_authorization:
          description: Indicates an offline authorization made during an interruption
            of card network connectivity, such as a purchase on a flight.
          type: boolean
        is_lodging_auto_rental:
          default: false
          description: Whether the transaction is a lodging or vehicle rental.
          type: boolean
        lodging_auto_rental_start_date:
          description: Date and time when the lodging check-in or vehicle rental began.
          format: date-time
          type: string
        memo:
          description: Indicates a credit or debit adjustment in a clearing transaction.
          enum:
            - CREDIT_ADJUSTMENT
            - DEBIT_ADJUSTMENT
          maxLength: 99
          minLength: 1
          type: string
        moto_indicator:
          description: Indicates the type of mail or telephone order transaction.
          enum:
            - UNKNOWN
            - MANUAL
            - RECURRING
            - INSTALLMENT
            - OTHERS
          type: string
        one_leg_out:
          type: boolean
        payment_channel:
          description: Channel from which the transaction was originated.
          enum:
            - OTHER
            - ATM
            - ECOMMERCE
            - MAIL
            - PHONE
            - MOTO
          type: string
        special_purchase_id:
          type: string
        transaction_category:
          description: Type of product or service being purchased, if provided by
            the merchant.
          enum:
            - RETAIL_SALE
            - BILL_PAY
            - HOTEL
            - HEALTH_CARE
            - RESTAURANT
            - AUTO_RENTAL
            - AIRLINE
            - PAYMENT
            - HOSPITALIZATION_COLLEGE
            - PHONE_MAIL_ECOMMERCE
            - ATM
            - TRANSIT
            - EXTENDED_AUTHORIZATION
          type: string
        transit:
          $ref: '#/components/schemas/transit'
      type: object
    transaction_model:
      description: |-
        Transactions are represented by the `transaction` object.
        The Marqeta platform creates a separate `transaction` object for each transaction message received from the card network.
        The attributes of a given `transaction` object depend on the transaction type.

        This section documents all fields that might be included in a `transaction` object.

        // This schema is used by InfoDev to generate API reference documentation.
        // File location in GitHub is: openapi/transactions/schemas/transaction_model.yaml
      properties:
        account_funding:
          $ref: '#/components/schemas/account_funding'
        account_name_verification:
          $ref: '#/components/schemas/account_name_verification_model'
        account_owner:
          $ref: '#/components/schemas/account_owner_model'
        acquirer:
          $ref: '#/components/schemas/acquirer'
        acquirer_fee_amount:
          description: |-
            Indicates the amount of the acquirer fee.
            Account holders are sometimes charged an acquirer fee for card use at ATMs, fuel dispensers, and so on.
          type: number
        acquirer_reference_data:
          description: |-
            Acquirer-assigned unique identifier of the transaction.
            Useful for settlement and reconciliation.
          type: string
        acquirer_reference_id:
          description: |-
            Acquirer-assigned unique identifier of the transaction.
            Useful for settlement and reconciliation.
          type: string
        acting_user_token:
          description: |-
            Unique identifier of the user who conducted the transaction.
            This might be a child user configured to share its parent's account balance.
          maxLength: 36
          minLength: 0
          type: string
        address_verification:
          $ref: '#/components/schemas/address_verification_model'
        advice_reason_code:
          description: Extended stand-in processing (STIP) reason code, as provided
            by the Visa card network.
          type: string
        advice_reason_details:
          description: Extended stand-in processing (STIP) reason details, as provided
            by the Visa card network.
          type: string
        amount:
          description: Amount of the transaction.
          type: number
        amount_to_be_released:
          description: |-
            Amount of original authorization to be released.
            This field appears in final clearing transactions where the clearing amount is lower than the authorization amount.
          type: number
        anticipated_amount:
          description: |-
            Anticipated amount of the transaction, as provided by the card network.
            This field applies to anticipated amount verification transactions (AAVTs).
          type: number
        approval_code:
          description: Unique identifier assigned to an authorization, printed on
            the receipt at point of sale.
          type: string
        atc_information:
          $ref: '#/components/schemas/ATCInformationModel'
        authorization_expiration:
          type: string
        auto_reload:
          $ref: '#/components/schemas/auto_reload_model'
        bank_transfer_token:
          type: string
        batch_number:
          description: The batch number of the transaction.
          type: string
        billpay:
          $ref: '#/components/schemas/BillPayResponse'
        business:
          $ref: '#/components/schemas/business_metadata'
        business_token:
          description: Unique identifier of the business that owns the account that
            funded the transaction.
          maxLength: 36
          minLength: 0
          type: string
        card:
          $ref: '#/components/schemas/card_response'
        card_acceptor:
          $ref: '#/components/schemas/transaction_card_acceptor'
        card_holder_model:
          $ref: '#/components/schemas/user_card_holder_response'
        card_product_token:
          description: Unique identifier of the card product.
          maxLength: 36
          minLength: 0
          type: string
        card_security_code_verification:
          $ref: '#/components/schemas/card_security_code_verification'
        card_token:
          description: |-
            Unique identifier of the card.
            Useful when a single account holder has multiple cards.
          maxLength: 36
          minLength: 0
          type: string
        cardholder_authentication_data:
          $ref: '#/components/schemas/cardholder_authentication_data'
        cash_back_amount:
          description: |-
            Amount of cash back requested by the cardholder during the transaction.
            Included in the total transaction amount.
          type: number
        cashloads_direct:
          $ref: '#/components/schemas/CashloadsResponseModel'
        chargeback:
          $ref: '#/components/schemas/chargeback_response'
        clearing_record_sequence_number:
          description: A sequence number that identifies a specific clearing message
            among multiple clearing messages for an authorization.
          type: string
        created_time:
          description: |-
            Date and time when the Marqeta platform created the transaction entry, in UTC format.
            For example, when Marqeta processed the clearing record for a refund.
          format: date-time
          type: string
        currency_code:
          description: Currency type of the transaction.
          type: string
        currency_conversion:
          $ref: '#/components/schemas/currency_conversion'
        deferred_settlement_days:
          type: string
        digital_wallet_token:
          $ref: '#/components/schemas/digital_wallet_token'
        digital_wallet_token_transaction_service_provider_info:
          $ref: '#/components/schemas/digital_service_provider'
        direct_deposit:
          $ref: '#/components/schemas/DepositDepositResponse'
        dispute:
          $ref: '#/components/schemas/DisputeModel'
        duration:
          description: Duration of the transaction on Marqeta's servers, in milliseconds.
          format: int32
          type: integer
        enhanced_data_token:
          description: The enhanced commercial card data token for the transaction.
          type: string
        estimated_authorization:
          description: |-
            Indicates an estimated authorization.
            An estimated authorization allows the merchant to obtain an approval for funds before the cardholder has finalized exactly what goods or services will be purchased.
          type: boolean
        fee:
          $ref: '#/components/schemas/fee'
        fee_transfer:
          $ref: '#/components/schemas/fee_transfer_response'
        fees:
          description: |-
            List of fees associated with the transaction.

            This array is returned if it exists in the resource.
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        flex:
          $ref: '#/components/schemas/flex'
        fraud:
          $ref: '#/components/schemas/fraud_view'
        from_account:
          description: Specifies the funding account type.
          type: string
        gpa:
          $ref: '#/components/schemas/cardholder_balance'
        gpa_order:
          $ref: '#/components/schemas/gpa_response'
        gpa_order_unload:
          $ref: '#/components/schemas/gpa_returns'
        identifier:
          description: Sequential identifier of the transaction.
          type: string
        incremental_authorization_transaction_tokens:
          description: An array of incremental authorization transaction tokens.
          items:
            type: string
          type: array
        installment_data:
          $ref: '#/components/schemas/installment_data'
        interchange_rate_descriptor:
          type: string
        is_final_clearing:
          description: |-
            Indicates the final clearing event for an authorization.
            If the final cleared amount is lower than the authorized amount, you must release the hold on the funds per the value in the `amount_to_be_released` field.
          type: boolean
        is_preauthorization:
          default: false
          description: Indicates if the transaction is a pre-authorization.
          type: boolean
        isaIndicator:
          description: The international service assessment indicator indicates if
            an ISA fee is applicable to the transaction.
          enum:
            - MULTI_CURRENCY
            - SINGLE_CURRENCY
            - REBATE_CANCELLED
            - MULTI_CURRENCY_NON_US_COUNTRIES
            - SINGLE_CURRENCY_PAID_BY_ISSUER
            - NO_CHARGE_ASSESSED
          type: string
        issuer_interchange_amount:
          description: The amount of interchange charged by the card issuer.
          type: number
        issuer_payment_node:
          description: Unique identifier of the Marqeta platform server that received
            the transaction from the card network.
          type: string
        issuer_received_time:
          description: Date and time when the Marqeta platform received the transaction
            from the card network, in UTC.
          type: string
        local_transaction_date:
          description: |-
            Indicates the local time of the transaction at the card acceptor's location.
            You can use this field to determine the correct time of the transaction when filing a dispute.
          format: date-time
          type: string
        merchant:
          $ref: '#/components/schemas/merchant_response_model'
        merchant_initiated_original_trace_id:
          description: Unique network identification value formed by combining the
            6- to 9-character Mastercard Banknet Reference Number and the 4-digit
            settlement date for recurring payments and other merchant-initiated transactions.
          type: string
        msa_order_unload:
          $ref: '#/components/schemas/msa_returns'
        multi_clearing_sequence_count:
          description: |-
            If an authorization has multiple clearing transactions, this field displays their total number.
            For example, if an authorization has four clearing transactions, the sequence count is `04`.
          type: string
        multi_clearing_sequence_number:
          description: |-
            If an authorization has multiple clearing transactions, this field displays the sequence number for the clearing transaction.
            For example, if this is the second clearing transaction of four, the sequence number is `02`.
          type: string
        national_net_cpd_of_original:
          type: string
        network:
          description: Indicates which card network was used to complete the transactions.
          type: string
        network_metadata:
          $ref: '#/components/schemas/network_metadata'
        network_reference_id:
          description: |-
            Network-assigned unique identifier of the transaction.
            Useful for settlement and reconciliation.
          type: string
        network_transaction_lifecycle_id:
          description: |-
            Transaction identifier, as provided by the card network.
            This identifier connects the original transaction to all subsequent activities throughout the transaction lifecycle.
          type: string
        original_credit:
          $ref: '#/components/schemas/original_credit'
        original_transaction_token:
          description: Unique identifier of the original transaction in a series of
            related transactions.
          type: string
        payment_facilitator:
          $ref: '#/components/schemas/payment_facilitator_model'
        peer_transfer:
          $ref: '#/components/schemas/peer_transfer_response'
        polarity:
          description: Indicates whether the transaction is credit or debit.
          enum:
            - CREDIT
            - DEBIT
            - PENDING_CREDIT
            - PENDING_DEBIT
          type: string
        pos:
          $ref: '#/components/schemas/pos'
        preceding_related_transaction_token:
          description: |-
            Returned for final transaction types.

            Unique identifier of the preceding related transaction.
            Useful for identifying the transaction that preceded the current one.

            For example, `authorization`, a temporary transaction type, precedes and is completed by `authorization.clearing`, a final transaction type.
            In this case, the `authorization` token is returned with this field.
            For which transaction types are temporary or final, see <</core-api/event-types#_transaction_events, Transaction events in Event Types>>.
          type: string
        preceding_transaction:
          $ref: '#/components/schemas/preceding_transaction'
        program:
          $ref: '#/components/schemas/program'
        program_transfer:
          $ref: '#/components/schemas/program_transfer_response'
        real_time_fee_group:
          $ref: '#/components/schemas/real_time_fee_group'
        request_amount:
          description: Merchant-requested amount, including any fees.
          type: number
        response:
          $ref: '#/components/schemas/response'
        settlement_date:
          description: |-
            Date and time when funds were moved for a transaction, in UTC.
            For example, in the case of a refund, when funds were credited to the cardholder.
          format: date-time
          type: string
        settlement_indicator:
          description: Indicates the settlement service used for the transaction.
          type: string
        standin_approved_by:
          description: |-
            Indicates which party approved a transaction: the card network using stand-in processing, or Marqeta using Commando Mode.
            Returned only when a transaction is approved.
          type: string
        standin_by:
          description: 'Indicates which party approved a transaction: the card network
            using stand-in processing, or Marqeta using Commando Mode.'
          type: string
        standin_reason:
          description: Indicates why the card network handled a transaction requiring
            stand-in processing.
          type: string
        state:
          description: |-
            Current state of the transaction.
            For more information about the `state` field, see <</developer-guides/about-transactions#_the_transaction_lifecycle, The transaction lifecycle>>.
          enum:
            - PENDING
            - CLEARED
            - COMPLETION
            - DECLINED
            - ERROR
          type: string
        store:
          $ref: '#/components/schemas/store_response_model'
        subnetwork:
          description: |-
            Indicates which subnetwork was used to complete the transaction.
            Possible values include the following:

            * *VISANET* – Used for VisaNet signature-based transactions.
            * *VISANETDEBIT* – Used for VisaNet Debit PIN-based transaction.
            * *VISAINTERLINK* – Used for Visa Interlink PIN-based transactions.
            * *VISAPLUS* – Used for ATM withdrawals on Visa.
            * *MAESTRO* – Used for PIN-based transactions on Mastercard.
            * *CIRRUS* – Used for ATM withdrawals on Mastercard.
            * *MASTERCARDDEBIT* – Used for signature-based transactions on Mastercard.
            * *GATEWAY_JIT* – Used for Gateway JIT Funding transactions.
            * *MANAGED_JIT* – Used for Managed JIT Funding transactions or for transactions that occur while Commando Mode is enabled.
          type: string
        to_account:
          description: Specifies the receiving account type.
          type: string
        token:
          description: |-
            Unique identifier of the transaction, formatted as a UUID.

            *NOTE:* For subsequent related transactions, this token value appears as the `preceding_related_transaction_token`.
          maxLength: 36
          minLength: 1
          readOnly: true
          type: string
        transaction_attributes:
          additionalProperties:
            type: string
          description: Additional transaction attributes.
          type: object
        transaction_metadata:
          $ref: '#/components/schemas/transaction_metadata'
        type:
          description: |-
            Transaction event type.
            For more information about the `type` field, see <</core-api/event-types#_transaction_events, Transaction events>>.
          enum:
            - gpa.credit
            - gpa.credit.pending
            - gpa.credit.pending.reversal
            - gpa.credit.reversal
            - gpa.credit.networkload
            - gpa.credit.networkload.reversal
            - gpa.debit.networkload
            - gpa.debit
            - gpa.debit.pending
            - gpa.debit.pending.reversal
            - gpa.grant
            - gpa.credit.issueroperator
            - gpa.debit.issueroperator
            - gpa.credit.chargeback
            - gpa.credit.chargeback.reversal
            - gpa.credit.billpayment
            - gpa.credit.authorization.billpayment
            - gpa.credit.authorization.billpayment.reversal
            - msa.credit.pending
            - msa.credit.pending.reversal
            - msa.credit.reversal
            - msa.credit
            - msa.debit.pending
            - msa.debit.pending.reversal
            - msa.debit
            - msa.credit.chargeback
            - msa.credit.chargeback.reversal
            - authorization
            - authorization.advice
            - authorization.reversal
            - authorization.clearing
            - authorization.reversal.issuerexpiration
            - dispute.credit
            - dispute.debit
            - authorization.clearing.chargeback
            - authorization.clearing.chargeback.reversal
            - refund
            - pindebit.atm.withdrawal
            - pindebit.balanceinquiry
            - pindebit.cashback
            - pindebit.checkavs
            - pindebit
            - programreserve.credit
            - programreserve.debit
            - fee.charge.pending
            - fee.charge
            - fee.charge.refund
            - fee.charge.reversal
            - funds.expire
            - reward.earn
            - transfer.peer
            - transfer.fee
            - account.funding.authorization
            - account.funding.authorization.reversal
            - account.funding.authorization.clearing
            - account.funding.auth_plus_capture
            - account.funding.auth_plus_capture.reversal
            - account.credit
            - account.debit
            - balanceinquiry
            - authorization.atm.withdrawal
            - authorization.pin.change
            - authorization.pin.unblock
            - authorization.clearing.atm.withdrawal
            - authorization.cashback
            - authorization.clearing.cashback
            - transfer.program
            - authorization.quasi.cash
            - authorization.clearing.quasi.cash
            - authorization.incremental
            - gpa.credit.authorization
            - gpa.credit.authorization.reversal
            - gpa.debit.authorization
            - gpa.debit.reversal
            - original.credit.authorization
            - original.credit.authorization.reversal
            - original.credit.authorization.clearing
            - original.credit.auth_plus_capture
            - original.credit.auth_plus_capture.reversal
            - refund.authorization
            - refund.authorization.advice
            - refund.authorization.clearing
            - refund.authorization.reversal
            - token.activation-request
            - token.advice
            - pindebit.authorization
            - pindebit.authorization.clearing
            - pindebit.authorization.reversal
            - pindebit.authorization.reversal.issuerexpiration
            - authorization.standin
            - authorization.clearing.chargeback.completed
            - authorization.clearing.chargeback.provisional.credit
            - authorization.clearing.chargeback.provisional.debit
            - authorization.clearing.chargeback.writeoff
            - directdeposit.credit
            - directdeposit.credit.pending
            - directdeposit.credit.reject
            - directdeposit.credit.pending.reversal
            - directdeposit.credit.reversal
            - directdeposit.debit
            - directdeposit.debit.pending
            - directdeposit.debit.reject
            - directdeposit.debit.reversal
            - pin.change.reversal
            - pin.change.reversal.advice
            - directdeposit.debit.pending.reversal
            - pindebit.chargeback
            - pindebit.chargeback.completed
            - pindebit.chargeback.provisional.credit
            - pindebit.chargeback.provisional.debit
            - pindebit.chargeback.reversal
            - pindebit.chargeback.writeoff
            - pindebit.pin.change
            - pindebit.pin.unblock
            - pindebit.credit.adjustment
            - pindebit.quasicash
            - pindebit.quasi.cash
            - pindebit.refund
            - pindebit.refund.reversal
            - pindebit.reversal
            - pindebit.transfer
            - pushtocard.debit
            - pushtocard.reversal
            - credit.adjustment
            - debit.adjustment
            - pin.change.via.api
            - product.inquiry
            - transit.offer
            - unknown
          type: string
        user:
          $ref: '#/components/schemas/cardholder_metadata'
        user_token:
          description: Unique identifier of the user who owns the account that funded
            the transaction; subsequent related transactions retain the same `user_token`,
            even if the card used to complete the transaction moves to another user.
          maxLength: 36
          minLength: 0
          type: string
        user_transaction_time:
          description: |-
            Date and time when the user initiated the transaction, in UTC.
            For example, when a merchant performed the original authorization for a refund.
          format: date-time
          type: string
      required:
        - acting_user_token
        - amount
        - state
        - token
        - type
      title: Transaction object
      type: object
    transaction_options:
      properties:
        additional_data:
          type: string
        card_expiration_date_yymm:
          type: string
        database_transaction_timeout:
          format: int32
          type: integer
        encryption_key_id:
          type: string
        is_async:
          default: false
          type: boolean
        pre_auth_time_limit:
          type: string
        send_expiration_date:
          default: false
          type: boolean
        send_track_data:
          default: false
          type: boolean
        transaction_timeout_threshold_seconds:
          format: int64
          type: integer
        transaction_token:
          type: string
      type: object
    transit:
      description: Contains merchant-provided, transit-related metadata related to
        the transaction.
      properties:
        transaction_type:
          description: Type of transit transaction.
          enum:
            - PRE_FUNDED
            - REAL_TIME_AUTHORIZED
            - POST_AUTHORIZED_AGGREGATED
            - AUTHORIZED_AGGREGATED_SPLIT_CLEARING
            - DEBIT_RECOVERY
            - OTHER
          type: string
        transportation_mode:
          description: Mode of transportation.
          enum:
            - BUS
            - TRAIN
            - WATER_BORNE_VEHICLE
            - TOLL
            - PARKING
            - TAXI
            - PARA_TRANSIT
            - SELF_DRIVE_VEHICLE
            - COACH
            - LOCOMOTIVE
            - POWERED_MOTOR_VEHICLE
            - TRAILER
            - INTER_CITY
            - CABLE_CAR
          type: string
      type: object
    triggered_rule:
      description: Provides a list of rules triggered by a fraud event, along with
        the information on tags and rule characteristics.
      properties:
        alert:
          description: Indicates if the rule triggered an alert.
          type: boolean
        entity_type:
          description: The entity type where the triggered rule was defined.
          type: string
        rule_name:
          description: Name of the rule, as defined in the Real-Time Decisioning dashboard
            that was triggered.
          type: string
        suppress_alert:
          description: Indicates if the triggered rule has `suppress_alert` in the
            definition.
          type: boolean
        tags:
          description: All the tags defined in the triggered rule.
          items:
            $ref: '#/components/schemas/tag'
          type: array
      type: object
    unload_request_model:
      properties:
        amount:
          description: Amount of funds to return to the funding source.
          type: number
        funding_source_address_token:
          description: |-
            Unique identifier of the funding source to use for this GPA unload order.

            Send a `GET` request to `/fundingsources/addresses/user/{token}` to retrieve addresses for a specific user.
          maxLength: 36
          minLength: 1
          type: string
        memo:
          description: Additional descriptive text about the GPA unload.
          maxLength: 99
          minLength: 0
          type: string
        original_order_token:
          description: Unique identifier of the original GPA order.
          maxLength: 36
          minLength: 1
          type: string
        tags:
          description: Comma-delimited list of tags describing the GPA unload order.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: |-
            Unique identifier of the GPA unload order.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - amount
        - original_order_token
      type: object
    user_association:
      properties:
        single_inventory_user:
          default: false
          type: boolean
        single_inventory_user_token:
          default: 'false'
          maxLength: 36
          minLength: 1
          type: string
      type: object
    user_card_holder_response:
      description: Contains information about a cardholder.
      properties:
        account_holder_group_token:
          description: Associates the specified account holder group with the cardholder.
          maxLength: 36
          minLength: 0
          type: string
        active:
          default: false
          description: Specifies if the cardholder is in the `ACTIVE` state on the
            Marqeta platform.
          type: boolean
        address1:
          description: Cardholder's address.
          maxLength: 255
          minLength: 0
          type: string
        address2:
          description: Additional address information for the cardholder.
          maxLength: 255
          minLength: 0
          type: string
        authentication:
          $ref: '#/components/schemas/Authentication'
        birth_date:
          description: Cardholder's date of birth.
          type: string
        business_token:
          description: Unique identifier of the business resource.
          type: string
        city:
          description: City where the cardholder resides.
          maxLength: 40
          minLength: 0
          type: string
        company:
          description: Company name.
          maxLength: 255
          minLength: 0
          type: string
        corporate_card_holder:
          default: false
          description: Specifies if the cardholder holds a corporate card.
          type: boolean
        country:
          description: Country where the cardholder resides.
          maxLength: 40
          minLength: 0
          type: string
        created_time:
          description: Date and time when the resource was created, in UTC.
          format: date-time
          type: string
        email:
          description: Valid email address of the cardholder.
          maxLength: 255
          minLength: 1
          type: string
        first_name:
          description: Cardholder's first name.
          maxLength: 40
          minLength: 0
          type: string
        gender:
          description: Gender of the cardholder.
          enum:
            - F
            - M
          maxLength: 1
          minLength: 0
          type: string
        honorific:
          description: 'Cardholder''s title or prefix: Dr., Miss, Mr., Ms., and so
            on.'
          maxLength: 10
          minLength: 0
          type: string
        id_card_expiration_date:
          description: Expiration date of the cardholder's identification.
          readOnly: true
          type: string
        id_card_number:
          description: Cardholder's identification card number.
          maxLength: 255
          minLength: 0
          type: string
        identifications:
          description: One or more objects containing identifications associated with
            the cardholder.
          items:
            $ref: '#/components/schemas/IdentificationResponseModel'
          type: array
        ip_address:
          description: Cardholder's IP address.
          maxLength: 39
          minLength: 0
          type: string
        last_modified_time:
          description: Date and time when the resource was last updated, in UTC.
          format: date-time
          type: string
        last_name:
          description: Cardholder's last name.
          maxLength: 40
          minLength: 0
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Associates any additional metadata you provide with the cardholder.
          type: object
        middle_name:
          description: Cardholder's middle name.
          maxLength: 40
          minLength: 0
          type: string
        nationality:
          description: Cardholder's nationality.
          maxLength: 255
          minLength: 0
          type: string
        notes:
          description: Any additional information pertaining to the cardholder.
          maxLength: 255
          minLength: 0
          type: string
        parent_token:
          description: Unique identifier of the parent user or business resource.
          maxLength: 36
          minLength: 1
          type: string
        passport_expiration_date:
          description: Expiration date of the cardholder's passport.
          readOnly: true
          type: string
        passport_number:
          description: Cardholder's passport number.
          maxLength: 40
          minLength: 0
          type: string
        password:
          description: Password to the cardholder's user account on the Marqeta platform.
          maxLength: 255
          minLength: 1
          type: string
        phone:
          description: Cardholder's telephone number.
          maxLength: 255
          minLength: 0
          type: string
        postal_code:
          description: Postal code of the cardholder's address.
          maxLength: 10
          minLength: 0
          type: string
        ssn:
          description: Cardholder's Social Security Number (SSN).
          type: string
        state:
          description: State or province where the cardholder resides.
          maxLength: 2
          minLength: 0
          type: string
        status:
          description: Specifies the status of the cardholder on the Marqeta platform.
          enum:
            - UNVERIFIED
            - LIMITED
            - ACTIVE
            - SUSPENDED
            - CLOSED
          type: string
        token:
          description: Unique identifier of the cardholder.
          maxLength: 36
          minLength: 1
          type: string
        uses_parent_account:
          default: false
          description: Indicates whether the child shares balances with the parent
            (`true`), or the child's balances are independent of the parent (`false`).
          type: boolean
        zip:
          description: United States ZIP code of the cardholder's address.
          maxLength: 10
          minLength: 0
          type: string
      required:
        - created_time
        - last_modified_time
      type: object
    user_card_holder_search_model:
      properties:
        dda:
          description: |-
            Performs a match on the specified deposit account number.
            Send a `GET` request to `/directdeposits/accounts/{user_token}` to retrieve the deposit account number for a specific cardholder.
          type: string
        email:
          description: Performs a non-case-sensitive, exact match on the cardholder's
            `email` field.
          maxLength: 255
          minLength: 1
          type: string
        first_name:
          description: |-
            Performs a non-case-sensitive match on the cardholder's `first_name` field.
            Matching is partial on the beginning of the name.
            For example, a match on "Alex" returns both "Alex" and "Alexander".
          maxLength: 40
          minLength: 0
          type: string
        last_name:
          description: |-
            Performs a non-case-sensitive match on the cardholder's `last_name` field.
            Matching is partial on the beginning of the name.
            For example, a match on "Smith" returns both "Smith" and "Smithfield".
          maxLength: 40
          minLength: 0
          type: string
        phone:
          description: Performs a match on the cardholder's `phone` field.
          maxLength: 255
          minLength: 0
          type: string
        ssn:
          description: Performs a match on the cardholder's identification number.
          type: string
      type: object
    velocity_control_balance_response:
      properties:
        active:
          description: Indicates whether the velocity control is active.
          type: boolean
        amount_limit:
          description: |-
            Maximum monetary sum that can be cleared within the time period defined by the `velocity_window` field.
            Refunds and reversals cannot exceed this limit.
          exclusiveMinimum: false
          minimum: 0
          type: number
        approvals_only:
          description: |-
            If set to `true`, only approved transactions are subject to control.
            If set to `false`, only declined transactions are subject to control.
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        available:
          $ref: '#/components/schemas/available'
        currency_code:
          description: Three-character ISO 4217 currency code.
          type: string
        include_cashback:
          description: If set to `true`, the cashback components of point-of-sale
            transactions are subject to control.
          type: boolean
        include_credits:
          description: If set to `true`, original credit transactions (OCT) are subject
            to control.
          type: boolean
        include_purchases:
          description: |-
            If set to `true`, the following transactions are subject to control:

            * *Account funding:* All account funding transactions
            * *Cashback:* Only the purchase component of cashback transactions
            * *Purchase transactions:* All authorizations, PIN debit transactions, and incremental transactions
            * *Quasi-cash:* All quasi-cash transactions
            * *Refunds:* All refund transactions (see <</developer-guides/controlling-spending#_controls_to_limit_amount_and_frequency_of_spending, Controls to limit amount and frequency of spending>> for more information)
            * *Reversals:* All reversal transactions
          type: boolean
        include_transfers:
          description: |-
            If set to `true`, account-to-account transfers are subject to control.
            Account-to-account transfers are not currently supported.
          type: boolean
        include_withdrawals:
          description: If set to `true`, ATM withdrawals are subject to control.
          type: boolean
        merchant_scope:
          $ref: '#/components/schemas/merchant_scope'
        money_in_transaction:
          $ref: '#/components/schemas/money_in_transaction'
        name:
          description: Description of how the velocity control restricts spending,
            for example, "Max spend of $500 per day" or "Max spend of $5000 per month
            for non-exempt employees".
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the velocity control.
          maxLength: 36
          minLength: 1
          type: string
        usage_limit:
          description: Maximum number of times a card can be used within the time
            period defined by the `velocity_window` field.
          format: int32
          minimum: -1
          type: integer
        velocity_window:
          description: |-
            Defines the time period to which the `amount_limit` and `usage_limit` fields apply:

            * *DAY* – one day; days begin at 00:00:00 UTC.
            * *WEEK* – one week; weeks begin Sundays at 00:00:00 UTC.
            * *MONTH* – one month; months begin on the first day of month at 00:00:00 UTC.
            * *LIFETIME* – forever; time period never expires.
            * *TRANSACTION* – a single transaction.
          enum:
            - DAY
            - WEEK
            - MONTH
            - LIFETIME
            - TRANSACTION
          type: string
      required:
        - amount_limit
        - available
        - currency_code
        - velocity_window
      type: object
    velocity_control_request:
      properties:
        active:
          description: Indicates whether the velocity control is active.
          type: boolean
        amount_limit:
          description: |-
            Maximum monetary sum that can be cleared within the time period defined by the `velocity_window` field.
            Refunds and reversals cannot exceed this limit.
          exclusiveMinimum: false
          minimum: 0
          type: number
        approvals_only:
          description: |-
            If set to `true`, only approved transactions are subject to control.
            If set to `false`, only declined transactions are subject to control.
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        currency_code:
          description: Three-character ISO 4217 currency code.
          type: string
        include_cashback:
          description: If set to `true`, the cashback components of point-of-sale
            transactions are subject to control.
          type: boolean
        include_credits:
          description: |-
            If set to `true`, original credit transactions (OCT) are subject to control.
            Your request can contain either a `money_in_transaction` object or the `include_credits` field, not both.
          type: boolean
        include_purchases:
          description: |-
            If set to `true`, the following transactions are subject to control:

            * *Account funding:* All account funding transactions
            * *Cashback:* Only the purchase component of cashback transactions
            * *Purchase transactions:* All authorizations, PIN debit transactions, and incremental transactions
            * *Quasi-cash:* All quasi-cash transactions
            * *Refunds:* All refund transactions (see <</developer-guides/controlling-spending#_controls_to_limit_amount_and_frequency_of_spending, Controls to limit amount and frequency of spending>> for more information)
            * *Reversals:* All reversal transactions
          type: boolean
        include_transfers:
          description: |-
            If set to `true`, account-to-account transfers are subject to control.
            Account-to-account transfers are not currently supported.
          type: boolean
        include_withdrawals:
          description: If set to `true`, ATM withdrawals are subject to control.
          type: boolean
        merchant_scope:
          $ref: '#/components/schemas/merchant_scope'
        money_in_transaction:
          $ref: '#/components/schemas/money_in_transaction'
        name:
          description: |-
            Description of how the velocity control restricts spending, for example, "Max spend of $500 per day" or "Max spend of $5000 per month for non-exempt employees".

            Ensure that the description you provide here adequately captures the kind of restriction exerted by this velocity control, because the Marqeta platform will send this information to you in a webhook in the event that the transaction authorization attempt is declined by the velocity control.

            *NOTE:* This field is very important.
            If your program has multiple velocity controls in place, it is not always clear which one prevented the transaction from being approved.
            Adding specific details to this field gives you more contextual information when debugging or monitoring declined authorization attempts.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: |-
            Unique identifier of the velocity control.

            If you do not include a token, the system will generate one automatically.
            This token is necessary for use in other API calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember.
            This value cannot be updated.
          maxLength: 36
          minLength: 1
          type: string
        usage_limit:
          description: |-
            Maximum number of times a card can be used within the time period defined by the `velocity_window` field.

            If `velocity_window` is set to `TRANSACTION`, do not include a `usage_limit` in your request.

            Set to `-1` to indicate that the card can be used an unlimited number of times.
          format: int32
          minimum: -1
          type: integer
        velocity_window:
          description: |-
            Defines the time period to which the `amount_limit` and `usage_limit` fields apply:

            * *DAY* – one day; days begin at 00:00:00 UTC.
            * *WEEK* – one week; weeks begin Sundays at 00:00:00 UTC.
            * *MONTH* – one month; months begin on the first day of month at 00:00:00 UTC.
            * *LIFETIME* – forever; time period never expires.
            * *TRANSACTION* – a single transaction.

            // (2023-05-03): This statement was validated by Processing, as part of a customer inquiry.
            *NOTE:* If set to `DAY`, `WEEK`, or `MONTH`, the velocity control takes effect retroactively from the beginning of the specified period.
            The amount and usage data already collected within the first period is counted toward the limits.
            If set to `LIFETIME`, the velocity control only applies to transactions on or after the date and time that the velocity control was created.
            `LIFETIME` velocity controls are not retroactively applied to historical transactions.

            // (2023-05-03): Commenting this note out, as it is untrue in testing as reported by customers and confirmed by transaction engine team
            //*NOTE:* Editing any of the following fields on a velocity control resets its usage and amount count to 0:

            //* `merchant_scope.mcc`
            //* `merchant_scope.mid`
            //* `merchant_scope.mcc_group`
            //* `association.user_token`
            //* `association.card_product_token`
          enum:
            - DAY
            - WEEK
            - MONTH
            - LIFETIME
            - TRANSACTION
          type: string
      required:
        - amount_limit
        - currency_code
        - velocity_window
      type: object
    velocity_control_response:
      properties:
        active:
          description: Indicates whether the velocity control is active.
          type: boolean
        amount_limit:
          description: |-
            Maximum monetary sum that can be cleared within the time period defined by the `velocity_window` field.
            Refunds and reversals cannot exceed this limit.
          exclusiveMinimum: false
          minimum: 0
          type: number
        approvals_only:
          description: |-
            If set to `true`, only approved transactions are subject to control.
            If set to `false`, only declined transactions are subject to control.
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        currency_code:
          description: Three-character ISO 4217 currency code.
          type: string
        include_cashback:
          description: If set to `true`, the cashback components of point-of-sale
            transactions are subject to control.
          type: boolean
        include_credits:
          description: If set to `true`, original credit transactions (OCT) are subject
            to control.
          type: boolean
        include_purchases:
          description: |-
            If set to `true`, the following transactions are subject to control:

            * *Account funding:* All account funding transactions
            * *Cashback:* Only the purchase component of cashback transactions
            * *Purchase transactions:* All authorizations, PIN debit transactions, and incremental transactions
            * *Quasi-cash:* All quasi-cash transactions
            * *Refunds:* All refund transactions (see <</developer-guides/controlling-spending#_controls_to_limit_amount_and_frequency_of_spending, Controls to limit amount and frequency of spending>> for more information)
            * *Reversals:* All reversal transactions
          type: boolean
        include_transfers:
          description: |-
            If set to `true`, account-to-account transfers are subject to control.
            Account-to-account transfers are not currently supported.
          type: boolean
        include_withdrawals:
          description: If set to `true`, ATM withdrawals are subject to control.
          type: boolean
        merchant_scope:
          $ref: '#/components/schemas/merchant_scope'
        money_in_transaction:
          $ref: '#/components/schemas/money_in_transaction'
        name:
          description: |-
            Description of how the velocity control restricts spending.
            For example, "Max spend of $500 per day" or "Max spend of $5000 per month for non-exempt employees".
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the velocity control.
          maxLength: 36
          minLength: 1
          type: string
        usage_limit:
          description: Maximum number of times a card can be used within the time
            period defined by the `velocity_window` field.
          format: int32
          minimum: -1
          type: integer
        velocity_window:
          description: |-
            Defines the time period to which the `amount_limit` and `usage_limit` fields apply:

            * *DAY* – one day; days begin at 00:00:00 UTC.
            * *WEEK* – one week; weeks begin Sundays at 00:00:00 UTC.
            * *MONTH* – one month; months begin on the first day of month at 00:00:00 UTC.
            * *LIFETIME* – forever; time period never expires.
            * *TRANSACTION* – a single transaction.
          enum:
            - DAY
            - WEEK
            - MONTH
            - LIFETIME
            - TRANSACTION
          type: string
      required:
        - amount_limit
        - currency_code
        - velocity_window
      type: object
    velocity_control_update_request:
      properties:
        active:
          description: Indicates whether the velocity control is active.
          type: boolean
        amount_limit:
          description: |-
            Maximum monetary sum that can be cleared within the time period defined by the `velocity_window` field.
            Refunds and reversals cannot exceed this limit.
          exclusiveMinimum: false
          minimum: 0
          type: number
        approvals_only:
          description: |-
            If set to `true`, only approved transactions are subject to control.
            If set to `false`, only declined transactions are subject to control.
          type: boolean
        association:
          $ref: '#/components/schemas/spend_control_association'
        currency_code:
          description: Three-character ISO 4217 currency code.
          type: string
        include_cashback:
          description: If set to `true`, the cashback components of point-of-sale
            transactions are subject to control.
          type: boolean
        include_credits:
          description: |-
            If set to `true`, original credit transactions are subject to control.
            Your request can contain either a `money_in_transaction` object or the `include_credits` field, not both.
          type: boolean
        include_purchases:
          description: |-
            If set to `true`, the following transactions are subject to control:

            * *Account funding:* All account funding transactions
            * *Cashback:* Only the purchase component of cashback transactions
            * *Purchase transactions:* All authorizations, PIN debit transactions, and incremental transactions
            * *Quasi-cash:* All quasi-cash transactions
            * *Refunds:* All refund transactions (see <</developer-guides/controlling-spending#_controls_to_limit_amount_and_frequency_of_spending, Controls to limit amount and frequency of spending>> for more information)
            * *Reversals:* All reversal transactions
          type: boolean
        include_transfers:
          description: |-
            If set to `true`, account-to-account transfers are subject to control.
            Account-to-account transfers are not currently supported.
          type: boolean
        include_withdrawals:
          description: If set to `true`, ATM withdrawals are subject to control.
          type: boolean
        merchant_scope:
          $ref: '#/components/schemas/merchant_scope'
        money_in_transaction:
          $ref: '#/components/schemas/money_in_transaction'
        name:
          description: |-
            Description of how the velocity control restricts spending.
            For example, "Max spend of $500 per day" or "Max spend of $5000 per month for non-exempt employees".

            Ensure that the description you provide here adequately captures the kind of restriction exerted by this velocity control, because the Marqeta platform will send this information to you in a webhook in the event that the transaction authorization attempt is declined by the velocity control.

            *NOTE:* This field is very important.
            If your program has multiple velocity controls in place, it is not always clear which one prevented the transaction from being approved.
            Adding specific details to this field gives you more contextual information when debugging or monitoring declined authorization attempts.
          maxLength: 255
          minLength: 0
          type: string
        token:
          description: Unique identifier of the velocity control resource.
          maxLength: 36
          minLength: 1
          type: string
        usage_limit:
          description: |-
            Maximum number of times a card can be used within the time period defined by the `velocity_window` field.

            If `velocity_window` is set to `TRANSACTION`, do not include a `usage_limit` in your request.
          format: int32
          minimum: -1
          type: integer
        velocity_window:
          description: |-
            Defines the time period to which the `amount_limit` and `usage_limit` fields apply:

            * *DAY* – one day; days begin at 00:00:00 UTC.
            * *WEEK* – one week; weeks begin Sundays at 00:00:00 UTC.
            * *MONTH* – one month; months begin on the first day of month at 00:00:00 UTC.
            * *LIFETIME* – forever; time period never expires.
            * *TRANSACTION* – a single transaction.

            // (2023-05-03): This statement was validated by Processing, as part of a customer inquiry.
            *NOTE:* If set to `DAY`, `WEEK`, or `MONTH`, the velocity control takes effect retroactively from the beginning of the specified period.
            The amount and usage data already collected within the first period is counted toward the limits.
            If set to `LIFETIME`, the velocity control only applies to transactions on or after the date and time that the velocity control was created.
            `LIFETIME` velocity controls are not retroactively applied to historical transactions.

            // (2023-05-03): Commenting this note out, as it is untrue in testing as reported by customers and confirmed by transaction engine team
            //*NOTE:* Editing any of the following fields on a velocity control resets its usage and amount count to 0:

            //* `merchant_scope.mcc`
            //* `merchant_scope.mid`
            //* `merchant_scope.mcc_group`
            //* `association.user_token`
            //* `association.card_product_token`
          enum:
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
            - LIFETIME
            - TRANSACTION
          type: string
      required:
        - token
      type: object
    wallet_provider_card_on_file:
      properties:
        address_verification:
          $ref: '#/components/schemas/digital_wallet_token_address_verification'
        enabled:
          default: false
          description: Specifies if the card on file is enabled.
          type: boolean
      type: object
    wallet_provider_profile:
      description: Contains information held and provided by the digital wallet provider.
      properties:
        account:
          $ref: '#/components/schemas/account'
        device_score:
          description: Score from the device.
          type: string
        pan_source:
          description: Source from which the digital wallet provider obtained the
            card primary account number (PAN).
          type: string
        reason_code:
          description: |-
            Reason for the wallet provider's provisioning decision.

            * *01* – Cardholder's wallet account is too new relative to launch.
            * *02* – Cardholder's wallet account is too new relative to provisioning request.
            * *03* – Cardholder's wallet account/card pair is newer than date threshold.
            * *04* – Changes made to account data within the account threshold.
            * *05* – Suspicious transactions linked to this account.
            * *06* – Account has not had activity in the last year.
            * *07* – Suspended cards in the secure element.
            * *08* – Device was put in lost mode in the last seven days for longer than the duration threshold.
            * *09* – The number of provisioning attempts on this device in 24 hours exceeds threshold.
            * *0A* – There have been more than the threshold number of different cards attempted at provisioning to this phone in 24 hours.
            * *0B* – The card provisioning attempt contains a distinct name in excess of the threshold.
            * *0C* – The device score is less than 3.
            * *0D* – The account score is less than 4.
            * *0E* – Device provisioning location outside of the cardholder's wallet account home country.
            * *0G* – Suspect fraud.
          type: string
        recommendation_reasons:
          description: Array of recommendation reasons from the digital wallet provider.
          items:
            type: string
          type: array
        risk_assessment:
          $ref: '#/components/schemas/risk_assessment'
      type: object
    web_push_provisioning:
      properties:
        wpp_apple_card_template_id:
          description: Identifier that Apple uses to identify the program to process
            the request for.
          type: string
        wpp_apple_partner_id:
          description: Identifier that Apple uses to identify the program to provide
            the correct card art for.
          type: string
        wpp_google_piaid:
          description: Identifier that Google uses to identify the program to process
            the request for and to provide the correct card art for.
          type: string
      type: object
    web_push_provisioning_apple_pay_JWS_header:
      description: Contains header data for the JWS object.
      properties:
        kid:
          description: Unique identifier of the JSON Web Signature (JWS) public key
            of the key pair used to generate the signature.
          example: 8dc7aed4-29e3-41e4-9cdb-673a05e6615c
          type: string
      required:
        - kid
      type: object
    web_push_provisioning_apple_pay_JWS_model:
      description: Object containing JSON Web Signature (JWS) data.
      properties:
        header:
          $ref: '#/components/schemas/web_push_provisioning_apple_pay_JWS_header'
        payload:
          description: JSON Web Signature (JWS) message payload.
          type: string
        protected:
          description: Contains header parameters that are integrity-protected by
            the JSON Web Signature (JWS).
          type: string
        signature:
          description: The JSON Web Signature (JWS).
          example: 5lD1znG2DD2DytqGUcSDOwJQMYbCGDCCCiXxyhpC1zOWTH1Y6jUJFAupl0jEud9nUvw3mmpuSt6zcAE1r4yb0w
          type: string
      required:
        - header
        - payload
        - protected
        - signature
      type: object
    web_push_provisioning_apple_pay_JWT_response:
      properties:
        jws:
          $ref: '#/components/schemas/web_push_provisioning_apple_pay_JWS_model'
        state:
          description: |-
            Unique state associated with the digital wallet token.
            The Marqeta platform returns a universally unique identifier (UUID) in this field.
          example: e2675f06-7e4d-11ec-90d6-0242ac120003
          type: string
      required:
        - jws
        - state
      type: object
    webhook:
      properties:
        endpoint:
          description: Valid URL
          maxLength: 512
          minLength: 1
          type: string
        password:
          description: Authentication password
          type: string
        secret:
          description: Authentication secret
          type: string
        username:
          description: Authentication username
          type: string
      required:
        - endpoint
        - password
        - username
      type: object
      xml:
        name: webhook
    webhook_base_model:
      properties:
        active:
          default: true
          description: Indicates whether the webhook is active.
          type: boolean
        config:
          $ref: '#/components/schemas/webhook_config_model'
        events:
          description: |-
            Specifies the types of events for which notifications are sent.

            The wildcard character `\*` indicates that you receive all webhook notifications, or all notifications of a specified category.
            For example, `*` indicates that you receive all webhook notifications; `transaction.*` indicates that you receive all `transaction` webhook notifications.

            *NOTE:* You can only use the wildcard character with the _base_ type events, not subcategories.
            For example, you cannot subscribe to `cardtransition.fulfillment.\*` events, but you can subscribe to `cardtransition.*`.
          items:
            type: string
          type: array
        name:
          description: Descriptive name of the webhook.
          maxLength: 64
          minLength: 1
          type: string
      required:
        - config
        - events
        - name
      type: object
    webhook_config_model:
      description: Contains the configuration information for the webhook.
      properties:
        basic_auth_password:
          description: Password for accessing your webhook endpoint.
          maxLength: 50
          minLength: 20
          type: string
        basic_auth_username:
          description: Username for accessing your webhook endpoint.
          maxLength: 50
          minLength: 1
          type: string
        custom_header:
          additionalProperties:
            type: string
          description: Custom headers to be passed along with the request.
          type: object
        secret:
          description: |-
            Randomly chosen string used for implementing HMAC-SHA1.

            HMAC-SHA1 provides an added layer of security by authenticating the message and validating message integrity.
            Using this functionality requires that your webhook endpoint verify the message signature.
            For information about implementing this functionality, see <</developer-guides/signature-verification, Signature Verification>>.
          maxLength: 50
          minLength: 20
          type: string
        url:
          description: URL of your webhook endpoint.
          maxLength: 255
          minLength: 1
          type: string
        use_mtls:
          default: false
          description: |-
            Set to `true` to use use mutual transport layer security (mTLS) authentication for the webhook.

            mTLS authentication is in the beta testing phase, and is not yet generally available.
            Contact your Marqeta representative for more information about using mTLS authentication.
          type: boolean
      required:
        - basic_auth_password
        - basic_auth_username
        - url
      type: object
    webhook_ping_model:
      properties:
        pings:
          description: Array of ping requests to your webhook endpoint.
          items:
            $ref: '#/components/schemas/echo_ping_request'
          type: array
      required:
        - pings
      type: object
    webhook_request_model:
      properties:
        active:
          default: true
          description: Indicates whether the webhook is active.
          type: boolean
        config:
          $ref: '#/components/schemas/webhook_config_model'
        events:
          description: |-
            Specifies the types of events for which notifications are sent.

            The wildcard character `\*` indicates that you receive all webhook notifications, or all notifications of a specified category.
            For example, `*` indicates that you receive all webhook notifications; `transaction.*` indicates that you receive all `transaction` webhook notifications.

            *NOTE:* You can only use the wildcard character with the _base_ type events, not subcategories.
            For example, you cannot subscribe to `cardtransition.fulfillment.\*` events, but you can subscribe to `cardtransition.*`.
          items:
            type: string
          type: array
        name:
          description: Descriptive name of the webhook.
          maxLength: 64
          minLength: 1
          type: string
        token:
          description: Unique identifier of the webhook.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - config
        - events
        - name
      type: object
    webhook_response_model:
      properties:
        active:
          default: true
          description: |-
            Indicates whether the webhook is active.
            This field is returned if you included it in your webhook.
          type: boolean
        config:
          $ref: '#/components/schemas/webhook_config_model'
        created_time:
          description: Date and time when the webhook event was created, in UTC.
          format: date-time
          type: string
        events:
          description: |-
            Specifies the types of events for which notifications are sent.

            The wildcard character `\*` indicates that you receive all webhook notifications, or all notifications of a specified category.
            For example, `*` indicates that you receive all webhook notifications; `transaction.*` indicates that you receive all `transaction` webhook notifications.

            *NOTE:* You can only use the wildcard character with the _base_ type events, not subcategories.
            For example, you cannot subscribe to `cardtransition.fulfillment.\*` events, but you can subscribe to `cardtransition.*`.
          items:
            type: string
          type: array
        last_modified_time:
          description: Date and time when the associated object was last modified,
            in UTC.
          format: date-time
          type: string
        name:
          description: Descriptive name of the webhook.
          maxLength: 64
          minLength: 1
          type: string
        token:
          description: Unique identifier of the webhook.
          maxLength: 36
          minLength: 1
          type: string
      required:
        - config
        - events
        - name
      type: object
    withdrawal_request_model:
      properties:
        account_type:
          enum:
            - checking
            - savings
            - credit
          type: string
        amount:
          type: number
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_token:
          maxLength: 36
          minLength: 1
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        pin:
          maxLength: 15
          minLength: 1
          type: string
        webhook:
          $ref: '#/components/schemas/webhook'
      required:
        - amount
        - card_token
        - mid
      type: object
    xpay_push_tokenize_request_data:
      description: Contains details about a card tokenization push request.
      properties:
        card_type:
          description: Specifies the type of card.
          type: string
        display_name:
          description: |-
            Name of the card as displayed in the digital wallet, typically showing the card brand and last four digits of the primary account number (PAN).
            `Visa 5678`, for example.
          type: string
        extra_provision_payload:
          description: Encrypted card or cardholder details.
          type: string
        last_digits:
          description: Last four digits of the primary account number of the physical
            or virtual card.
          type: string
        network:
          description: Specifies the card network of the physical or virtual card.
          type: string
        token_service_provider:
          description: Specifies the network that provides the digital wallet token
            service.
          type: string
      type: object
  securitySchemes:
    mqAppAndAccessToken:
      scheme: basic
      type: http