> ## Documentation Index
> Fetch the complete documentation index at: https://www.marqeta.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Applications

> Retrieves a user's existing financial-service account applications

Use this endpoint to check whether a user already has an application in progress or has already been onboarded, before you start a new White Label App (WLA) onboarding flow. Send a GET request to `/applications` with the user's ID; the response includes every application submitted for that user, ordered by `created_on` in ascending order.

Reasons to call this endpoint include:

* **Resuming an interrupted signup:** Check for an existing application in the `KYC` status before redirecting the applicant to start over, then reuse the `kyc_url` from that application instead of submitting a duplicate.
* **Displaying application status in your app:** Poll this endpoint to show the applicant where they stand, as a fallback for cases where you cannot process outbound application events.
* **Preventing duplicate submissions:** Check for any non-final application (`SUBMITTED`, `KYC`, or `MANUAL_REVIEW`) for the user before you submit a new one.

Set `active_only` to `false` if you also need to see applications in a final status, such as `APPROVED`, `REJECTED`, or `EXPIRED`.

<Note>
  If the specified user has no applications, the response returns an empty `applications` array rather than an error.
</Note>

If the user has more applications than fit in a single page, use the `next_cursor` value from the response as the `cursor` parameter in your next request to page through the rest.


## OpenAPI

````yaml GET /applications
openapi: 3.0.3
info:
  title: Application
  version: 0.1.0
  termsOfService: /docs/riders/terms-of-use
  description: >
    An **Application** represents a request for creating a financial service
    account.


    **Banking partners are the source of truth for Application** data, so they
    are responsible for creating, updating, and deactivating applications.

    Applications are created by banking partners by your request.


    The level of detail provided in the application submission depends on the
    market and the specific requirements of each partner.

    The required user information is collected through onboarding flows and
    submitted to the banking partner.

    Partners should emit events on Application status changes and send these
    events through webhooks.


    # Table of contents

    - [Application event](#tag/ApplicationEvent)

    - [Create application endpoint](#tag/CreateApplication)

    - [Get user applications endpoint](#tag/GetUserApplications)
servers:
  - url: /v1
    description: Local Development Server
  - url: https://nucleus.prod.mq01-prod.marqeta.io/v1
    description: Production server
  - url: https://nucleus-staging.prod.mq01-prod.marqeta.io/v1
    description: Staging server
  - url: https://nucleus-sandbox.prod.mq01-prod.marqeta.io/v1
    description: Sandbox server
  - url: https://nucleus.qa.mq01-qa.marqeta.io/v1
    description: QA server
  - url: https://nucleus.dev.us-east-1.mq01-dev.marqeta.io/v1
    description: DEV server
security: []
tags:
  - name: Application
    description: Endpoints for managing applications
  - name: ApplicationEvent
    description: Application event
paths:
  /applications:
    get:
      tags:
        - Application
      summary: Get user applications
      description: >
        Get existing applications for a given user.


        The results should be ordered by the `created_on` field in ascending
        order.

        If no items are found for the user, an **empty array** should be
        returned.
      operationId: getUserApplications
      parameters:
        - name: user_id
          in: query
          description: Partner-provided user ID to filter applications by.
          required: true
          schema:
            type: string
        - in: query
          name: active_only
          description: >
            Indicate if only active applications should be returned.

            An active application is one that has a status **other than**
            `APPROVED`, `REJECTED`, or `EXPIRED`.
          required: false
          schema:
            type: boolean
            default: true
        - in: query
          name: limit
          description: >-
            Maximum number of items to return. If not present, no limit should
            be applied.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - in: query
          name: cursor
          description: >-
            Cursor to a specific position in the results. If not present, the
            first page should be returned.
          required: false
          schema:
            type: string
            example: eyJpZCI6IjEyMyJ9
      responses:
        '200':
          $ref: '#/components/responses/GetUserApplicationsResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
      security:
        - zionToken: []
components:
  responses:
    GetUserApplicationsResponse:
      description: Successful operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetUserApplicationsResponse'
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    GetUserApplicationsResponse:
      type: object
      required:
        - applications
      properties:
        applications:
          description: The list of active applications for the user.
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/Application'
        next_cursor:
          type: string
          description: Cursor to fetch the next results.
          example: eyJpZCI6IjEyMyJ9
    ErrorResponse:
      type: object
      required:
        - reason
      properties:
        reason:
          $ref: '#/components/schemas/Reason'
        extras:
          type: object
          description: >-
            Map of additional information that can be returned for investigation
            purposes.
          additionalProperties:
            type: string
    Application:
      type: object
      required:
        - id
        - status
        - user
        - created_on
        - updated_on
      properties:
        id:
          type: string
        status:
          $ref: '#/components/schemas/ApplicationStatus'
        kyc_url:
          description: >-
            The webview URL for starting the KYC flow with the user. Must be
            present if `status` is `KYC`.
          type: string
          example: >-
            https://bank-partner/kyc_webview?user_id=8E13_EWEF5a9GuatLqwm5eD6kQRFloKKxIkHM14YiIbkrxpfSNft8_-AyiMUmZHkd-zp7qrhiJITsCBlOeJ4db0NOfG5kas5QDcVR1cxU36EGwaxcgB0Qk4xgj-ViS-TMw==
        user:
          $ref: '#/components/schemas/User'
        national_id:
          $ref: '#/components/schemas/NationalId'
        address:
          $ref: '#/components/schemas/Address'
        shipping_address:
          $ref: '#/components/schemas/Address'
        tax_profile:
          $ref: '#/components/schemas/TaxProfile'
        financial_profile:
          $ref: '#/components/schemas/FinancialProfile'
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Term'
        device:
          $ref: '#/components/schemas/Device'
        created_on:
          type: string
          format: date-time
          example: '2021-09-01T12:00:00Z'
        updated_on:
          type: string
          format: date-time
          example: '2021-09-01T12:00:00Z'
        extras:
          type: object
          description: >-
            Map of additional information that can be passed to or returned by
            the partner.
          additionalProperties:
            type: string
    Reason:
      type: object
      required:
        - code
      description: |
        Describes the reason why the operation was not successfully executed.
        The `reason` value should be present in all error responses and events.
      properties:
        code:
          type: string
          enum:
            - APPLICATION_ERROR
            - APPLICATION_CONFLICT
            - APPLICATION_DECLINED
            - APPLICATION_SUSPECTED_FRAUD
            - APPLICATION_CONFIRMED_FRAUD
            - APPLICATION_COMPLIANCE
            - APPLICATION_USER_REQUEST
            - APPLICATION_LOST_OR_STOLEN
            - APPLICATION_TERMS_OF_SERVICES_VIOLATION
            - CLIENT_ERROR
            - CLIENT_INVALID_ARGUMENT
            - CLIENT_INVALID_OPERATION
            - CLIENT_TOO_MANY_REQUESTS
            - SERVER_ERROR
            - SERVER_TIMEOUT
            - SERVER_NOT_IMPLEMENTED
        message:
          type: string
          description: >-
            Descriptive message that may help developers understand the issue.
            It should not be displayed to the end user directly.
    ApplicationStatus:
      type: string
      description: >
        The status of the application.

        It can be used to determine the next steps in the application process.


        Status changes only occur from a previous state to a subsequent state in
        the list.

        For example, an application can transition from `SUBMITTED` to `KYC` or
        `APPROVED`.

        Once a state is reached, it cannot move back to a previous state.

        Some events are optional, which means that the partner can opt to not
        send these.


        For asynchronous flows, the initial state is `SUBMITTED`, and status
        changes are delivered to the partner via Application event webhooks.
      enum:
        - SUBMITTED
        - KYC
        - MANUAL_REVIEW
        - APPROVED
        - REJECTED
        - EXPIRED
      example: KYC
    User:
      required:
        - id
        - first_name
        - last_name
        - email
        - phone_number
      type: object
      description: Information on the user that is applying for an account.
      properties:
        id:
          type: string
          description: >-
            Partner generated ID for the user. The partner should store this ID
            as this information should be provided in all subsequent
            partner-emitted events.
          example: >-
            8E13_EWEF5a9GuatLqwm5eD6kQRFloKKxIkHM14YiIbkrxpfSNft8_-AyiMUmZHkd-zp7qrhiJITsCBlOeJ4db0NOfG5kas5QDcVR1cxU36EGwaxcgB0Qk4xgj-ViS-TMw==
        status:
          $ref: '#/components/schemas/UserStatus'
        gender:
          $ref: '#/components/schemas/Gender'
        first_name:
          type: string
          description: User's first name.
          example: John
        middle_name:
          type: string
          description: User's middle name.
          example: Garrett
        last_name:
          type: string
          description: User's last name.
          example: Doe
        email:
          type: string
          description: >-
            The user email address. This email is bounded to the user's account
            at the partner's end.
          example: john@mail.com
        phone_number:
          type: string
          description: >-
            The user phone number. This phone is bounded to the user's account
            at the partner's end.
          example: '+14155552671'
        date_of_birth:
          type: object
          description: User informed date of birth.
          properties:
            day:
              type: integer
              description: day portion of user's date of birth.
              example: 1
            month:
              type: integer
              description: month portion of user's of birth.
              example: 1
            year:
              type: integer
              description: year portion of user's date of birth.
              example: 1980
        place_of_birth:
          type: object
          description: User informed birth place.
          properties:
            city:
              type: string
              description: city user was born in.
              example: San Francisco
            region:
              type: string
              description: region user was born in.
              example: CA
            country_iso2:
              $ref: '#/components/schemas/CountryCode'
        country_iso2:
          $ref: '#/components/schemas/CountryCode'
        role:
          $ref: '#/components/schemas/UserRole'
        loyalty_tier:
          $ref: '#/components/schemas/LoyaltyTier'
        signup_date:
          type: string
          description: The date when the user signed up for the Partner's platform.
          format: date-time
          example: '2021-09-01T12:00:00Z'
    NationalId:
      required:
        - id
        - type
        - issuer_country_iso2
      type: object
      description: Information about the user's national ID.
      properties:
        id:
          type: string
          description: >-
            The document number ID, with no formatting characters such as `.`
            and `-`. This value should not be present on `get` API calls.
          example: '419550000'
        type:
          type: string
          enum:
            - SSN
            - SIN
            - CPF
            - INE
            - CURP
            - NINO
          description: The national ID document type.
          example: SSN
        issuer_country_iso2:
          $ref: '#/components/schemas/CountryCode'
        additional_national_ids:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalNationalId'
          description: >-
            Additional national IDs that the user may have. This is an optional
            field and can be used to provide more information about the user's
            national IDs.
    Address:
      required:
        - address
        - city
        - postal_code
      type: object
      description: >-
        Information about the user's address. Note that depending on the
        country, some of the address components may not be available.
      properties:
        address:
          type: string
          description: The address first line, which can be a street name.
          example: Elm Street
        address2:
          type: string
          description: >-
            The address second line, which can be other additional address
            information.
          example: Mission District
        street_number:
          type: string
          description: The street number for the address.
          example: '5678'
        unit:
          type: string
          description: The unit for the address.
          example: 2A
        neighborhood:
          type: string
          description: The neighborhood name.
          example: Dolores Heights
        city:
          type: string
          description: The city name.
          example: San Francisco
        region:
          type: string
          description: The region / state / province location of the address.
          example: CA
        country_iso2:
          $ref: '#/components/schemas/CountryCode'
        postal_code:
          type: string
          description: The address postal code.
          example: '94110'
    TaxProfile:
      type: object
      description: Information about the user's tax profile.
      properties:
        entity_type:
          type: string
          description: The entity type of the user.
          enum:
            - INDIVIDUAL
            - ORGANIZATION
        organization_name:
          type: string
          description: >-
            The name of the organization, if the user's `entity_type` is
            `ORGANIZATION`.
          example: Acme Corp.
        jurisdiction_country_iso2:
          $ref: '#/components/schemas/CountryCode'
        tin:
          type: string
          description: Tax Identification Number (TIN) for the user.
          example: NL123456789B12
        no_tin_reason:
          type: string
          description: >-
            Justification from the user for not having a TIN in cases that this
            information is required.
        citizenships:
          type: array
          items:
            $ref: '#/components/schemas/CountryCode'
          description: List of citizenships for the user.
        additional_tax_residencies:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalTaxProfile'
          description: >-
            List of additional tax residencies for the user. This is an optional
            field and can be used to provide more information about the user's
            tax profile.
    FinancialProfile:
      type: object
      description: Information about the user's financial profile.
      properties:
        account_purpose:
          type: string
          description: The purpose of the account for the user.
          example: Business expenses
        source_of_funds:
          type: object
          description: The source of funds for the user.
          properties:
            funds_origin:
              type: string
              description: The origin of the funds for the user.
              example: Uber and Gig-economy platforms
            primary_source:
              type: string
              description: The primary source of funds for the user.
              example: Revenue from self-employment
    Term:
      required:
        - name
        - accepted
        - accepted_on
      type: object
      properties:
        name:
          type: string
        accepted:
          type: boolean
        accepted_on:
          type: string
          format: date-time
    Device:
      required:
        - id
      type: object
      description: Information about the user device used to submit the application.
      properties:
        id:
          type: string
          description: >-
            The device ID, as generated by the partner, will be labeled
            `"unverified"` if it was not possible to provide the information.
          example: f3402095-26be-4d34-b263-ab665470295a
        model:
          type: string
          description: >-
            The device model, will be labeled `"unverified"` if it was not
            possible to provide the information.
          example: SM-A156U
        os_name:
          type: string
          description: >-
            The device operating system name, will be labeled `"unverified"` if
            it was not possible to provide the information.
          example: android
        os_version:
          type: string
          description: >-
            The device operating system version, will be labeled `"unverified"`
            if it was not possible to provide the information.
          example: '14'
    UserStatus:
      type: string
      description: The status of the user account in the platform.
      enum:
        - ACTIVATED
        - DEACTIVATED
    Gender:
      type: string
      description: User informed gender.
      enum:
        - MALE
        - FEMALE
        - NON_BINARY
        - DECLINED
        - OTHER
    CountryCode:
      type: string
      description: >-
        The country two-letters identifier, as defined in the [ISO 3166
        specification](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).
      minLength: 2
      maxLength: 2
      example: US
    UserRole:
      type: string
      description: The user role in the platform.
      enum:
        - COURIER
        - DRIVER
    LoyaltyTier:
      type: string
      description: >-
        The loyalty tier. The benefits are bounded to the tier level, so higher
        tiers usually have access to more benefits.
      enum:
        - NOT_SET
        - GREEN
        - BLUE
        - GOLD
        - PLATINUM
        - DIAMOND
    AdditionalNationalId:
      required:
        - id
        - type
        - issuer_country_iso2
      type: object
      description: Information about the user's national ID.
      properties:
        id:
          type: string
          description: >-
            The document number ID, with no formatting characters such as `.`
            and `-`. This value should not be present on `get` API calls.
          example: '419550000'
        type:
          type: string
          enum:
            - SSN
            - SIN
            - CPF
            - INE
            - CURP
            - NINO
          description: The national ID document type.
          example: SSN
        issuer_country_iso2:
          $ref: '#/components/schemas/CountryCode'
    AdditionalTaxProfile:
      type: object
      description: Information about the user's tax profile.
      properties:
        jurisdiction_country_iso2:
          $ref: '#/components/schemas/CountryCode'
        tin:
          type: string
          description: Tax Identification Number (TIN) for the user.
          example: NL123456789B12
        no_tin_reason:
          type: string
          description: >-
            Justification from the user for not having a TIN in cases that this
            information is required.
  securitySchemes:
    zionToken:
      type: http
      scheme: basic
      description: >-
        Token used to verify user identity and also authorize user to use
        service.

````