Barclays Authentication API

Secure OAuth2 authentication for accessing Barclays Open Banking APIs.

Operations 2

POST /users/sso single-sign-on customer context. This operation contains sensitive data in request and response payload. #
POST /users/{externalAccountId}/context To setup user identity context for customer login. This operation contains sensitive data in request and response payload. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/authentication-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

barclays-authentication-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Authentication
  description: Secure login for Barclays credit card customers to access online services
  version: '2.0'
x-method: searched
x-source: https://developer.barclays.com/api/apis/versions/f12a5fd6-7937-46f4-aa55-75b029a8500e.bdn/design?specification=oas31
x-harvested: '2026-09-04'
x-harvested-note: Verbatim OpenAPI 3.1 design export from the Barclays API Exchange registry (developer.barclays.com), fetched
  anonymously. The untouched export is in openapi/_original/barclays-authentication-openapi.json. The UK Open Banking documents
  carry OBIE (openbanking.org.uk) in info.contact/termsOfService because they are the OBIE standard contract as Barclays implements
  and publishes it — the API, the registry record and the host are Barclays'.
tags:
- name: user-identity-context
  description: User identity context API
- name: user-sso-context
  description: User sso context API
paths:
  /users/sso:
    summary: This api is used to facilitate single-sign-on customer into selected activity journey. This operation contains
      sensitive data in request and response payload.
    description: This api is used to facilitate single-sign-on customer into MOBILE/CWS for selected activity journey.
    post:
      tags:
      - user-sso-context
      summary: single-sign-on customer context. This operation contains sensitive data in request and response payload.
      description: This api is used to facilitate single-sign-on customer into MOBILE/CWS for selected activity journey. Uses
        `auth_grant` token.
      operationId: request-sso
      parameters:
      - name: Correlation-ID
        in: header
        description: "Unique end-to-end trace ID. The initiating system (such as a Channel or \nBatch Job), must generate\
          \ this unique ID, then this must be passed \nthrough the API call stack. This is required to maintain compliance\
          \ with the current Barclays REST Standard."
        required: true
        deprecated: false
        schema:
          type: string
          maxLength: 36
          minLength: 36
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        example: 7d444840-9dc0-11d1-b245-5ffdce74fad2
      - name: Authorization
        in: header
        description: TIAA-US External token
        required: true
        deprecated: false
        schema:
          type: string
        example: Bearer <token>
      - name: Content-Type
        in: header
        description: Content-Type
        required: true
        deprecated: false
        schema:
          type: string
        example: application/json
      requestBody:
        description: SSO drop off request. Payload fully encrypted.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSSOContextRequest'
            examples:
              UserSSOContextRequest:
                $ref: '#/components/examples/user-sso-context-request'
      responses:
        '200':
          $ref: '#/components/responses/UserSSOContextResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      deprecated: false
  /users/{externalAccountId}/context:
    summary: user identity context for customer login. This operation contains sensitive data in request and response payload.
    description: The API provides the context URL for customer login via IDP.
    post:
      tags:
      - user-identity-context
      summary: To setup user identity context for customer login. This operation contains sensitive data in request and response
        payload.
      description: The API provides the context URL for customer login via IDP. Uses `client_credentials` token.
      operationId: request-auth
      parameters:
      - name: Correlation-ID
        in: header
        description: "Unique end-to-end trace ID. The initiating system (such as a Channel or \nBatch Job), must generate\
          \ this unique ID, then this must be passed \nthrough the API call stack. This is required to maintain compliance\
          \ with the current Barclays REST Standard."
        required: true
        deprecated: false
        schema:
          type: string
          maxLength: 36
          minLength: 36
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        example: 7d444840-9dc0-11d1-b245-5ffdce74fad2
      - name: Authorization
        in: header
        description: TIAA-US External token
        required: true
        deprecated: false
        schema:
          type: string
        example: Bearer <token>
      - name: Content-Type
        in: header
        description: Content-Type
        required: true
        deprecated: false
        schema:
          type: string
        example: application/json
      - name: externalAccountId
        in: path
        description: External Account ID (UUID format)
        required: true
        schema:
          type: string
          maxLength: 36
          minLength: 1
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        example: 2c4717c4-e2f3-4071-2b86-b86890876322
      requestBody:
        description: User identity context request. Payload fully encrypted.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserIdentityContextRequest'
            examples:
              UserIdentityContextRequest:
                $ref: '#/components/examples/user-identity-context-request'
      responses:
        '200':
          $ref: '#/components/responses/UserIdentityContextResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      deprecated: false
components:
  schemas:
    DeviceDetails:
      type: object
      additionalProperties: false
      deprecated: false
      description: Customer details
      properties:
        deviceType:
          type: string
          enum:
          - PHONE
          - TABLET
          - LAPTOP
        deviceModel:
          type: string
          example: SM-S928U
          maxLength: 25
          minLength: 1
          pattern: ^[a-zA-Z0-9-]{1,25}$
        deviceOS:
          type: string
          example: Android
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9-]{1,50}$
        deviceOSVersion:
          type: string
          example: '35'
          maxLength: 20
          minLength: 1
          pattern: ^[a-zA-Z0-9.\-]{1,20}$
        deviceFingerprintType:
          type: string
          description: Device fingerprint type
          enum:
          - THREATMETRIX
          - CUSTOM
          example: THREATMETRIX
        deviceFingerprintId:
          type: string
          format: uuid
          description: Unique identifier for device fingerprint
          example: 123e4567-e89b-12d3-a456-426614174000
          maxLength: 36
          minLength: 36
          pattern: ^[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}$
        deviceRegistrationDate:
          type: integer
          format: int64
          description: Device registration date in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        deviceLastUsedDate:
          type: integer
          format: int64
          description: Device last used date in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        deviceLockPresent:
          type: string
          description: Indicates whether device lock is present
          enum:
          - Y
          - N
          example: Y
          nullable: true
        deviceBiometricType:
          type: string
          enum:
          - FINGER
          - PIN
          - IRIS
          - FACE
          nullable: true
        serviceCarrierName:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9&-]{1,50}$
          nullable: true
        deviceIPAddress:
          type: string
          description: Client IP address (IPv4 or IPv6)
          example: 111.111.1.1
          maxLength: 45
          minLength: 7
          pattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
          nullable: true
        deviceSim1PhoneNumber:
          type: string
          description: Phone number associated with device SIM
          example: '8882223333'
          maxLength: 40
          minLength: 6
          pattern: ^[0-9\- ]{6,40}$
          nullable: true
        deviceSim2PhoneNumber:
          type: string
          description: Phone number associated with second SIM for dual-SIM devices
          example: '8882223333'
          maxLength: 40
          minLength: 6
          pattern: ^[0-9\- ]{6,40}$
          nullable: true
        dateCurrentSimLinkedToDevice:
          type: integer
          format: int64
          description: Date current SIM linked to device in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        additionalAttributes:
          $ref: '#/components/schemas/DeviceAttributes'
      nullable: true
    UserSSOContextResponseData:
      type: object
      additionalProperties: false
      deprecated: false
      description: response payload for sso.
      properties:
        expiry:
          type: integer
          description: Resume URL expiry in seconds.
          example: 10
          maximum: 95
          minimum: 1
        resumeUrl:
          type: string
          description: Client/Partner endpoint where CWS/Mobile is expected to redirect after completing.
          example: https://idp.barclays.com
          maxLength: 300
          minLength: 1
          pattern: ^(?=.{1,300}$)https:\/\/[^\s/$.?#].[^\s]*$
          nullable: false
      nullable: false
    UserIdentityContextResponse:
      type: object
      additionalProperties: false
      deprecated: false
      description: User identify context response.
      properties:
        data:
          $ref: '#/components/schemas/UserIdentityContextResponseData'
      required:
      - data
      nullable: false
    UserIdentityContextResponseData:
      type: object
      additionalProperties: false
      deprecated: false
      description: User identity context response data.
      properties:
        expiry:
          type: integer
          description: Resume URL expiry in seconds.
          example: 10
          maximum: 60
          minimum: 1
        resumeUrl:
          type: string
          description: Redirect URL to continue with Login or IDP resume.
          example: https://oauth-sit.tiaa.barclaysus.com/sp/AA8XC0009543FDWWWPI/as/authorization.oauth2
          maxLength: 300
          minLength: 1
          pattern: ^(?=.{1,300}$)https:\/\/[^\s/$.?#].[^\s]*$
          nullable: true
      nullable: false
    UserSSOContextRequestData:
      type: object
      additionalProperties: false
      deprecated: false
      description: Request payload for User SSO context.
      properties:
        identifier:
          $ref: '#/components/schemas/Identifier'
        activityType:
          type: string
          description: Activity type sent by customer for CWS/MOB to identify allowed SSO activity
          enum:
          - ADD_EXTERNAL_ACCOUNT
          - MANAGE_EXTERNAL_ACCOUNT
          - VIEW_STATEMENT
          example: ADD_EXTERNAL_ACCOUNT
        product:
          type: string
          description: Client product/brand
          example: SMG
          maxLength: 20
          minLength: 3
          pattern: ^[A-Za-z0-9]{3,20}$
          nullable: false
        channel:
          type: string
          description: Channel field for the IDP page rendering.
          enum:
          - WEB
          - MOBILE
        deviceIPAddress:
          type: string
          description: Client IP address (IPv4 or IPv6)
          example: 111.111.1.1
          maxLength: 45
          minLength: 7
          pattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
          nullable: true
        additionalAttributes:
          $ref: '#/components/schemas/AdditionalSSOAttributes'
      required:
      - activityType
      - channel
      - identifier
      - product
      nullable: false
    ErrorResponseType:
      type: object
      additionalProperties: false
      deprecated: false
      description: 'An API error response.

        '
      properties:
        errors:
          type: array
          description: 'Contains one or more error messages and is mutually exclusive with the data item.

            This will not be returned in success scenarios.

            '
          items:
            $ref: '#/components/schemas/ErrorType'
          maxItems: 50
          minItems: 0
      nullable: false
    UserIdentityContextRequest:
      type: object
      additionalProperties: false
      deprecated: false
      description: User identity context request.
      properties:
        data:
          $ref: '#/components/schemas/UserIdentityContextRequestData'
      required:
      - data
      nullable: false
    UserSSOContextRequest:
      type: object
      additionalProperties: false
      deprecated: false
      description: SSO Request Data
      properties:
        data:
          $ref: '#/components/schemas/UserSSOContextRequestData'
      required:
      - data
      nullable: false
    CustomerProfile:
      type: object
      additionalProperties: false
      deprecated: false
      description: Customer's partner account relationship details
      properties:
        memberNumber:
          type: string
          example: CM12345
          maxLength: 17
          minLength: 1
          pattern: ^[a-zA-Z0-9]{1,17}$
        firstName:
          type: string
          description: Customer's first name on partner account
          example: John
          maxLength: 32
          minLength: 2
          pattern: ^[-a-zA-Z'\s]{2,32}$
        lastName:
          type: string
          description: Customer's last name on partner account
          example: Doe
          maxLength: 32
          minLength: 2
          pattern: ^[-a-zA-Z'\s]{2,32}$
        email:
          type: string
          description: Customer's email on partner account
          example: support@barclays.com
          maxLength: 320
          minLength: 6
          pattern: ^(?=.{1,256}$)^([a-zA-Z0-9.\x21#$\x25&'\x2A\x2B\/=\x3F\x5E_`\x7E-]{1,64})@(([a-zA-Z0-9-]{1,180}(\.[a-zA-Z0-9-]{1,62}){1,9}))$
        nameChangeTimestamp:
          type: integer
          format: int64
          description: Timestamp of customer name change in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        previousFirstName:
          type: string
          description: Customer's first name on partner account before last change
          example: John
          maxLength: 32
          minLength: 2
          pattern: ^[-a-zA-Z'\s]{2,32}$
        previousLastName:
          type: string
          description: Customer's last name on partner account before last change
          example: Doe
          maxLength: 32
          minLength: 2
          pattern: ^[-a-zA-Z'\s]{2,32}$
        emailChangeTimestamp:
          type: integer
          format: int64
          description: Timestamp of customer email change in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        previousEmail:
          type: string
          description: Customer's email on partner account before last change
          example: support@barclaycardus.com
          maxLength: 320
          minLength: 6
          pattern: ^(?=.{1,256}$)^([a-zA-Z0-9.\x21#$\x25&'\x2A\x2B\/=\x3F\x5E_`\x7E-]{1,64})@(([a-zA-Z0-9-]{1,180}(\.[a-zA-Z0-9-]{1,62}){1,9}))$
        numberOfAssociatedDevices:
          type: integer
          format: int32
          description: Number of devices associated with the account
          example: 3
          maximum: 100
          minimum: 0
        digitalWalletLastLoginDate:
          type: integer
          format: int64
          description: Last login date for digital wallet in Unix timestamp (milliseconds since epoch)
          example: 1734260400000
          maximum: 253402300799999
          minimum: 0
        digitalWalletLastLoginAuthMethod:
          type: string
          description: Authentication method used for last login to digital wallet
          example: Pin
          maxLength: 30
          minLength: 1
          pattern: ^[a-zA-Z0-9]{1,30}$
        additionalAttributes:
          $ref: '#/components/schemas/CustomerProfileAttributes'
      required:
      - email
      - firstName
      - lastName
      - memberNumber
      nullable: true
    AdditionalSSOAttributes:
      type: array
      description: Additional attributes for SSO context
      items:
        $ref: '#/components/schemas/NameValueAttributePair'
      maxItems: 100
      minItems: 0
    Identifier:
      type: object
      additionalProperties: false
      description: An field for customer unique identifier.
      properties:
        id:
          type: string
          description: identifier id
          example: 2c4717c4-e2f3-4071-2b86-b86890876322
          maxLength: 36
          minLength: 1
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          nullable: false
        type:
          type: string
          description: Type sent by customer for to identify allowed SSO activity
          enum:
          - CUSTOMER_ID
          - ACCOUNT_ID
          example: CUSTOMER_ID
      required:
      - id
      - type
      nullable: false
    NameValueAttributePair:
      type: object
      additionalProperties: false
      deprecated: false
      description: Attribute name and value pair
      properties:
        name:
          type: string
          description: Attribute name
          example: name
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9_]{1,100}$
        value:
          type: string
          description: Attribute value
          example: partner-details
          maxLength: 200
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-\s\@\#\$\&\*\(\)\+\=\"\.\,\/]{1,200}$
        type:
          type: string
          default: text
          description: Attribute data type
          enum:
          - text
          - number
          - boolean
          - iso_date
          example: text
      required:
      - name
      - value
      nullable: false
    ErrorType:
      type: object
      additionalProperties: false
      description: Message details - additional operation execution information.
      properties:
        id:
          type: string
          description: Generated message identifier for particular request, helping to locate server logs.
          example: 9709-4675-2456-7801
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9\-]{1,50}$
        code:
          type: string
          description: Machine readable, unique code of the message related to particular case within operation execution.
          example: ACCOUNT_NUMBER_NOT_FOUND
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9_]{1,100}$
        title:
          type: string
          description: Short description of the error. Not for displaying purposes.
          example: The authorization credentials required for this request are invalid.
          maxLength: 250
          minLength: 1
          pattern: ^[a-zA-Z0-9\s"=,.']{1,250}$
        detail:
          type: string
          description: Provides additional low-level details about the error to assist with troubleshooting. Not for displaying
            purposes.
          maxLength: 250
          minLength: 1
          pattern: ^[a-zA-Z0-9\s"=,.']{1,250}$
      required:
      - code
      - id
      - title
    DeviceAttributes:
      type: array
      description: Additional device attributes useful for fraud risk assessment
      items:
        $ref: '#/components/schemas/NameValueAttributePair'
      maxItems: 100
      minItems: 0
      nullable: true
    UserIdentityContextRequestData:
      type: object
      additionalProperties: false
      deprecated: false
      description: User identity context request data.
      properties:
        product:
          type: string
          description: Product/CPC for the IDP.
          example: SMG
          maxLength: 20
          minLength: 3
          pattern: ^[A-Za-z0-9]{3,20}$
        channel:
          type: string
          description: Channel field for the IDP page rendering.
          enum:
          - WEB
          - MOBILE
          example: MOBILE
        fraudSessionId:
          type: string
          description: Applicant Fraud Session ID.
          example: 6c9b83bc-5c94-45c8-a594-5ea890409b62
          maxLength: 36
          minLength: 36
          pattern: ^[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}$
        applicationId:
          type: number
          description: Applicant Application ID.
          example: 1346780132564
          pattern: ^[0-9]{15,16}$
        customerProfileDetails:
          $ref: '#/components/schemas/CustomerProfile'
        deviceDetails:
          $ref: '#/components/schemas/DeviceDetails'
      required:
      - channel
      - customerProfileDetails
      - deviceDetails
      - product
      nullable: false
    CustomerProfileAttributes:
      type: array
      description: Additional customer profile attributes useful for fraud risk assessment
      items:
        $ref: '#/components/schemas/NameValueAttributePair'
      maxItems: 100
      minItems: 0
      nullable: true
    UserSSOContextResponse:
      type: object
      additionalProperties: false
      deprecated: false
      description: User SSO Response.
      properties:
        data:
          $ref: '#/components/schemas/UserSSOContextResponseData'
      required:
      - data
      nullable: false
  responses:
    BadRequest:
      description: "The request could not be understood by the server due to malformed \nsyntax. The client SHOULD NOT repeat\
        \ the request without \nmodifications.\n"
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-400-bad-request:
              $ref: '#/components/examples/example-error-400-bad-request'
    UserIdentityContextResponse:
      description: User identify context response body. Payload fully encrypted.
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserIdentityContextResponse'
          examples:
            UserIdentityContextResponseData:
              $ref: '#/components/examples/user-identity-context-response'
    Forbidden:
      description: 'The user is not permitted to access the requested operation and it cannot be completed.

        '
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-403:
              $ref: '#/components/examples/example-error-403'
    Unauthorized:
      description: 'The user could not be authenticated for this request.

        '
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-401:
              $ref: '#/components/examples/example-error-401'
    ServiceUnavailable:
      description: "temporary maintenance of service, try again later. The implication \nis that this is a temporary condition\
        \ which will be alleviated \nafter some delay. If known, the length of the delay will be \nindicated in a Retry-After\
        \ header. If no Retry-After is given, \nthe client SHOULD handle the response as it would for a 500 response. \nNote:\
        \ The existence of the 503 status code does not imply that a \nserver will use it when becoming overloaded. Servers\
        \ may simply \nrefuse the connection.\n"
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-503:
              $ref: '#/components/examples/example-error-503'
    UserSSOContextResponse:
      description: SSO drop off response. Payload fully encrypted.
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserSSOContextResponse'
          examples:
            UserSSOContextResponse:
              $ref: '#/components/examples/user-sso-context-response'
    InternalServerError:
      description: "Server encountered an error processing request. This should not \nhappen normally, but it is a generic\
        \ error message, given when \nno more specific message is suitable.\n"
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-500:
              $ref: '#/components/examples/example-error-500'
    NotFound:
      description: "Server has not found a resource with that URI. This may be \ntemporary and permanent condition. This status\
        \ code is \ncommonly used when the server does not wish to reveal \nexactly why the request has been refused, or when\
        \ no other \nresponse is applicable.\n"
      headers:
        Cache-Control:
          $ref: '#/components/headers/Cache-Control'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponseType'
          examples:
            example-error-404:
              $ref: '#/components/examples/example-error-404'
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: Bearer Token
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 2048
        minLength: 32
        pattern: ^[A-Za-z0-9\-_\.\ ]{32,2048}$
      example: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Imctb09kUnc1TWFlTmcwbWpsN1VpczlXT010NCIsInBpLmF0bSI6IjQ2N3YifQ.eyJzY29wZSI6ImFjY291bnRzIiwiY2xpZW50X2lkIjoiR2FwQ2xpZW50IiwiaXNzIjoiVElBQSBERVYiLCJhdWQiOiJCRE4tVVMtREVWIiwianRpIjoia0F0c2JYYW5CdnZOSFBacVd6WEs4TlhzczlPSXozamdBT090IiwiZmlyc3ROYW1lIjoiSm9obiIsImxhc3ROYW1lIjoiU21pdGgiLCJmcmF1ZFRva2VuIjoiOThjYmVlNWEtOTU4MS00NTdlLTk3NTEtZjVlYzNlNWZiYTUwIiwiZnJhdWRUb2tlbklzc3VlVGltZSI6IjE2MzAwMDMyNTQiLCJhY2NvdW50cyI6WyIxMjM0NTY3OCIsIjk4NzY1NDMyIl0sInBhcnR5SWQiOiIxMjM0NTYiLCJ1c2VybmFtZSI6ImJhcmNsYXlzdXNlciIsImV4cCI6MTYzMDAwMTQ1NX0.Jkgb2A2HAOdLKaion8ff097GedtQkxtAV4Qxea538owLS8zaEvTm9kHBWOxmuNHIgP1V8mx3NUflwbY8A823Ut00wWqbUbB-cSV0idDaQJ2pKWHDFYbipvi5I7yPGj2BR-oHhQao1ZGlW6DyxYuZ12q8IK7LpKVWbCSPZ-fFAlD5HgH_FORq6Avc5oLH--Zcww63fI6gtZ48pwnXX2gM1aiSQ3lfvLXWVQ9fooAlP65LOW1MMjh5HOtrNvA7ObBSYepYzef5ykP2YvIz3OOS4hLhTo-3-iEbUDvkPx_mmz_pi7piXrMqQPfPnz5y2VkLOHTYfQJeQmVg60YTG7uPdw
    Correlation-ID:
      name: Correlation-ID
      in: header
      description: "Unique end-to-end trace ID. The initiating system (such as a Channel or \nBatch Job), must generate this\
        \ unique ID, then this must be passed \nthrough the API call stack. This is required to maintain compliance with the\
        \ current Barclays REST Standard.\n"
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 36
        minLength: 36
        pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
      example: 7d444840-9dc0-11d1-b245-5ffdce74fad2
    X-Party-Id:
      name: X-Party-Id
      in: header
      description: 'Customer/Party ID injected by AKANA ND

        '
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 17
        minLength: 1
        pattern: ^[0-9]{1,17}$
      example: '1234567'
    X-Channel-Id:
      name: X-Channel-Id
      in: header
      description: 'The channel that initiated the call. Must be passed through the API stack.

        '
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 20
        minLength: 3
        pattern: ^[A-Za-z0-9\-_]{3,20}$
      example: ccd
    AccountIdPath:
      name: externalAccountId
      in: path
      description: External Account ID (UUID format)
      required: true
      schema:
        type: string
        maxLength: 36
        minLength: 1
        pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      example: 2c4717c4-e2f3-4071-2b86-b86890876322
    OAuth_ClientID:
      name: OAuth_ClientID
      in: header
      description: 'Required when API has PCI/PII data.

        OAuth client ID set by Akana

        '
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 256
        minLength: 1
        pattern: ^[a-zA-Z0-9.\-]{1,256}$
      example: -bb1v6znioBKKrbkZgjvx5jHJaM
    X-IDVSessionID:
      name: X-IDVSessionID
      in: header
      description: 'X-IDVSessionID injected by AKANA ND

        '
      required: true
      deprecated: false
      allowEmptyValue: false
      schema:
        type: string
        maxLength: 36
        minLength: 36
        pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
      example: 6c9b83bc-5c94-45c8-a594-5ea890409b62
  examples:
    example-error-404:
      value:
        errors:
        - id: 9709-4675-2456-7801
          code: RESOURCE_NOT_FOUND
          title: The requested operation failed because a resource associated with the request could not be found.
    example-error-503:
      value:
        errors:
        - id: 9709-4675-2456-7801
          code: SERVICE_UNAVAILABLE
          title: The server is currently unavailable
    user-identity-context-request:
      value:
        data:
          product: SMG
          channel: MOBILE
          fraudSessionId: 6c9b83bc-5c94-45c8-a594-5ea890409b62
          applicationId: 1346780132564
          customerProfileDetails:
            memberNumber: CM12345
            firstName: John
            lastName: Doe
            email: john.doe@abc.com
            numberOfAssociatedDevices: 3
            digitalWalletLastLoginDate: 1734260400000
            additionalAttributes:
            - name: attribute_1
              value: value_1
              type: text
            - name: attribute_2
              value: value_2
              type: text
          deviceDetails:
            deviceType: PHONE
            deviceModel: SM-S928U
            deviceOSVersion: '35'
            deviceFingerprintType: THREATMETRIX
            deviceFingerprintId: 123e4567-e89b-12d3-a456-42661417400
            deviceRegistrationDate: 1734260400000
            deviceLastUsedDate: 1734260400000
            deviceLockPresen

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/barclays/refs/heads/main/openapi/barclays-authentication-openapi.yml