JPMorgan Chase Bulk Operation API

Bulk Token Operation.

Operations 3

POST /bulk-tokens Process Bulk Tokens #
GET /bulk-tokens/{merchant-file-identifier} Retrieve the status of a bulk file #
GET /bulk-tokens/{merchant-file-identifier}/download Retrieve details of a bulk file #

Documentation

📖
Documentation
https://developer.payments.jpmorgan.com/api
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fembedded-finance-solutions%2Fembedded-payments%2Fonboarding-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Fconsumer-profile%2Fconsumer-profile-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Ftokenization%2Ftokenization-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Freporting%2Freporting-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Freceivables%2Frequest-to-pay-api.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fonline-payments%2Fcheckout%2Fcheckout-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fdispute-management%2Fdispute-management-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ffraud-solutions%2Falerts-and-decisioning%2Foas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fproduct-configuration%2Fproduct-configuration-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2F3-d-secure%2F3-d-secure-1.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Faccount-updater%2Faccount-updater-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ftreasury%2Fglobal-payments%2Fglobal-payments%2Fglobal-payments-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fliquidity-account-solutions%2Fbda-balances%2Faccounts-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Ffraud-solutions%2Fvalidation-services%2Fvalidation-services-oas.md
📖
APIReference
https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Foptimization-protection%2Fwallet-decryption%2Fwallet-decryption-oas.md

Specifications

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/jp-morgan-chase-bulk-operation-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

jp-morgan-chase-bulk-operation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tokenization Bulk Operation API
  description: Merchant Services Tokenization APIs enable merchants to secure their cards on file by replacing the sensitive Primary Account Number (PAN) with a token. Currently supports network tokenization via Mastercard, Visa & Amex.
  version: 1.5.0
  contact:
    name: Tokenization API Support
    url: https://developer.payments.jpmorgan.com/contact
servers:
- url: https://api.merchant.jpmorgan.com/payments/v1/
  description: PRODUCTION - OAUTH
- url: https://api-test.merchant.jpmorgan.com/payments/v1/
  description: CLIENT TESTING - OAUTH
- url: https://api-mock.payments.jpmorgan.com/payments/v1
  description: MOCK
security:
- BearerAuth: []
tags:
- name: Bulk Operation
  description: Bulk Token Operation.
paths:
  /bulk-tokens:
    post:
      summary: Process Bulk Tokens
      operationId: v1BulkTokenPost
      tags:
      - Bulk Operation
      description: Request bulk upload of token request
      parameters:
      - name: merchantId
        in: header
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 12
        description: Identifier for the merchant account.
        examples:
          Successful Bulk Tokenization:
            value: '991234567890'
      - name: requestId
        in: header
        required: true
        schema:
          type: string
          format: uuid
        description: Merchant identifier for the request. The value must be unique.
        examples:
          Successful Bulk Tokenization:
            value: 20cc0270-7bed-11e9-a188-1763956dd7f6
      - name: isEncrypted
        in: header
        schema:
          type: boolean
          example: true
        description: Indicates the message body of a transmitted message containing the actual data for a specific purpose is encrypted.
        examples:
          Successful Bulk Tokenization:
            value: true
      requestBody:
        description: Process Bulk Tokens
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                fileRecordCount:
                  description: Enumerates the quantity of records in a data object that is processed or transmitted.
                  type: integer
                  format: int32
                  example: 10
                merchantFileIdentifier:
                  description: A unique number assigned to a data file containing one or more records that is processed or transmitted. In this context, this is the unique identifier of the file provided by merchant.
                  type: string
                  example: '123'
                fileName:
                  description: The label given to a data file containing zero or more records that is processed or transmitted.
                  type: string
                  example: sample-123.txt
                fileCreationDate:
                  description: Designates the year, month and day on which the file was created.
                  type: string
                  example: 09/08/2022
                fileData:
                  description: Merchant provided data in base64 encoded format for token update.
                  type: string
          application/json:
            schema:
              $ref: '#/components/schemas/tokenBulkRequest'
            examples:
              Successful Bulk Tokenization:
                value:
                  fileRecordCount: 10
                  merchantFileIdentifier: '123'
                  fileName: sample-123.txt
                  fileCreationDate: 09/08/2022
                  fileData: 0,123456789012,20220124,D,PAN2NWT
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tokenBulkPostResponse'
              examples:
                Successful Bulk Tokenization:
                  value:
                    fileInformation:
                      batchFileIdentifier: 379f0966-71a1-4db5-b1b3-0e87cb864ff0
                      fileName: sample-123.txt
                      merchantFileIdentifier: '123'
                      fileRecordCount: 10
                      fileReceivedTimestamp: 09/08/2022
                    messages:
                      responseStatus: SUCCESS
                      responseCode: ACCEPTED
                      responseMessage: 'Upload Successful Batch Id: 5e339850-4a5f-482e-9afb-79870d4056cf'
                    requestIdentifier: 379f0966-71a1-4db5-b1b3-0e87cb864ff0
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adfsError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tokenProvisionDuplicateResponse'
        '412':
          description: Precondition Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
  /bulk-tokens/{merchant-file-identifier}:
    get:
      summary: Retrieve the status of a bulk file
      operationId: v1BulkTokenByIdGet
      tags:
      - Bulk Operation
      description: Request bulk upload of token request
      parameters:
      - name: merchantId
        in: header
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 12
        description: Identifier for the merchant account.
        examples:
          Success:
            value: '991234567890'
          Error:
            value: '991234567891'
      - name: merchant-file-identifier
        in: path
        required: true
        schema:
          type: string
        description: This is used for specifying individual parameters under API endpoint methods.
        examples:
          Success:
            value: '123'
          Error:
            value: '999'
      - name: requestId
        in: header
        required: true
        schema:
          type: string
          format: uuid
        description: Merchant identifier for the request. The value must be unique.
        examples:
          Success:
            value: 30cc0270-7bed-11e9-a188-1763956dd7f6
          Error:
            value: 40cc0270-7bed-11e9-a188-1763956dd7f6
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
              examples:
                Successful Bulk Tokenization:
                  value:
                    responseStatus: SUCCESS
                    responseCode: ACCEPTED
                    responseMessage: 'Upload Successful Batch Id: 5e339850-4a5f-482e-9afb-79870d4056cf'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adfsError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
              examples:
                Error:
                  value:
                    responseStatus: ERROR
                    responseCode: NOT_FOUND
                    responseMessage: Transaction was not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
  /bulk-tokens/{merchant-file-identifier}/download:
    get:
      summary: Retrieve details of a bulk file
      operationId: v1BulkTokenDownloadGet
      tags:
      - Bulk Operation
      description: Request bulk upload of token request
      parameters:
      - name: merchantId
        in: header
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 12
        description: Identifier for the merchant account.
        examples:
          Success:
            value: '991234567890'
          Error:
            value: '991234567891'
      - name: merchant-file-identifier
        in: path
        required: true
        schema:
          type: string
        description: This is used for specifying individual parameters under API endpoint methods.
        examples:
          Success:
            value: '123'
          Error:
            value: '999'
      - name: requestId
        in: header
        required: true
        schema:
          type: string
          format: uuid
        description: Merchant identifier for the request. The value must be unique.
        examples:
          Success:
            value: 50cc0270-7bed-11e9-a188-1763956dd7f6
          Error:
            value: 60cc0270-7bed-11e9-a188-1763956dd7f6
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/downloadResponse'
              examples:
                Successful Bulk Tokenization:
                  value:
                    batchFileIdentifier: 379f0966-71a1-4db5-b1b3-0e87cb864ff0
                    errorCount: 0
                    processedCount: 10
                    merchantFileIdentifier: '123'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adfsError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
              examples:
                Error:
                  value:
                    responseStatus: ERROR
                    responseCode: NOT_FOUND
                    responseMessage: Transaction was not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/messages'
components:
  schemas:
    downloadResponse:
      description: Response for download
      type: object
      properties:
        batchFileIdentifier:
          description: A unique number assigned to a data file containing one or more records that is processed or transmitted.
          type: string
        errorCount:
          description: Enumerates the quantity of records in a data object that is processed or transmitted. In this context, this is the number of records did not process correctly.
          type: integer
          format: int64
        processedCount:
          description: Enumerates the quantity of records in a data object that is processed or transmitted. In this context, this is the number of records processed correctly.
          type: integer
          format: int64
        processCompleteTimestamp:
          description: Designates the hour, minute, and second in a specific day when a task such as record or file processing ends.
          type: string
        merchantFileIdentifier:
          description: A unique number assigned to a data file containing one or more records that is processed or transmitted. In this context, this is the unique identifier of the file provided by merchant.
          type: string
        message:
          $ref: '#/components/schemas/message'
    validationMessage:
      description: Object containing information about transaction validation.
      type: object
      required:
      - code
      - message
      properties:
        code:
          $ref: '#/components/schemas/code'
        message:
          $ref: '#/components/schemas/message'
        entity:
          description: Information about the entity that experienced an error.
          type: string
    adfsError:
      description: Object containing information about the active directory file system error.
      type: object
      required:
      - errorSource
      - errorCode
      - errorDescription
      properties:
        errorSource:
          description: The label of the component from where the error or warning is generated.
          type: string
          example: APG-EDGE
        errorCode:
          description: General status of all resources
          type: string
          example: EDG00012
        errorDescription:
          description: Long explanation of code returned by the computer system application that either indicates successful processing, or a given number that can be investigated by support staff for further resolution and troubleshooting.
          type: string
          example: the signature could not be verified
    tokenBulkRequest:
      description: This is used for specifying an attribute used on a model for object that will contain one or more attributes
      type: object
      properties:
        fileRecordCount:
          description: Enumerates the quantity of records in a data object that is processed or transmitted.
          type: integer
          format: int32
          example: 10
        merchantFileIdentifier:
          description: A unique number assigned to a data file containing one or more records that is processed or transmitted. In this context, this is the unique identifier of the file provided by merchant.
          type: string
          example: '123'
        fileName:
          description: The label given to a data file containing zero or more records that is processed or transmitted.
          type: string
          example: sample-123.txt
        fileCreationDate:
          description: Designates the year, month and day on which the file was created.
          type: string
          example: 09/08/2022
        fileData:
          description: Merchant provided data in base64 encoded format for token update.
          type: string
    fileInformation:
      description: Batch file informtion containg tokens from merchant
      type: object
      properties:
        batchFileIdentifier:
          description: A unique number assigned to a data file containing one or more records that is processed or transmitted.
          type: string
        fileName:
          description: The label given to a data file containing zero or more records that is processed or transmitted.
          type: string
        merchantFileIdentifier:
          description: A unique number assigned to a data file containing one or more records that is processed or transmitted.  In this context, this is the unique identifier of the file provided by merchant.
          type: string
        fileRecordCount:
          description: Enumerates the quantity of records in a data object that is processed or transmitted.
          type: integer
          format: int32
        fileReceivedTimestamp:
          description: Designates the hour, minute, and second in a specific day when the file was received by the processing system.
          type: string
    messages:
      description: A list of errors and warnings.
      type: object
      required:
      - responseStatus
      - responseCode
      properties:
        responseStatus:
          $ref: '#/components/schemas/responseStatus'
        responseCode:
          $ref: '#/components/schemas/responseCode'
        responseMessage:
          $ref: '#/components/schemas/responseMessage'
        validationErrors:
          type: array
          minItems: 0
          description: This is used for specifying an attribute used on a model for collection object that will contain one or more attributes
          items:
            $ref: '#/components/schemas/validationMessage'
    url:
      description: Reference to a web resource.
      type: string
      minLength: 0
      maxLength: 512
      example: https://www.acmetest.test
    identifier:
      description: It is the resource identifier for a given merchant request, provided/generated by JPMC.
      type: string
      format: uuid
      maxLength: 40
    payload:
      description: Payload Object
      type: object
      properties:
        identifier:
          $ref: '#/components/schemas/identifier'
        requestIdentifier:
          $ref: '#/components/schemas/requestIdentifier'
        tokenReferenceIdentifier:
          $ref: '#/components/schemas/tokenReferenceIdentifier'
        cardMetaData:
          $ref: '#/components/schemas/cardMetaData'
    tokenReferenceIdentifier:
      description: Identifier given to a token at the time of provisioning. Can be used as a reference to the token number.
      type: string
      format: uuid
    cardMetaData:
      description: Information about the card related to a token.
      type: object
      properties:
        cardArtUrl:
          $ref: '#/components/schemas/url'
        backgroundCardGraphicsColor:
          description: Graphic color name of the card background.
          type: string
          maxLength: 32
          example: '#ffffff'
        foregroundCardGraphicsColor:
          description: Graphic color name of the card foreground.
          type: string
          maxLength: 32
          example: '#0033cc'
        labelCardGraphicsColor:
          description: Graphic color name of the card label.
          type: string
          maxLength: 32
          example: '#33cc33'
        cardDescription:
          description: Detail information of the card provided by card issuer.
          type: string
          maxLength: 256
        issuerInformation:
          $ref: '#/components/schemas/issuerInformation'
        cardShortDescription:
          description: Provides summary-level detail information of the card product provided by card issuer.
          type: string
          maxLength: 128
        cardTermsAndConditionsIdentifier:
          description: Unique identifier for the terms and conditions for a card specified by the card isuer. Merchant uses this identifier to track if terms have been updated and if a message is needed for the card holder to review new terms and conditions.
          type: string
          format: uuid
        cardTermsAndConditionsURL:
          $ref: '#/components/schemas/url'
        cardAssetData:
          $ref: '#/components/schemas/cardAssetData'
    responseCode:
      description: Short explanation of the response code.
      type: string
      readOnly: true
      minLength: 2
      maxLength: 50
      example: ACCEPTED
    tokenBulkPostResponse:
      description: Batch file information containing tokens from merchant
      type: object
      properties:
        fileInformation:
          $ref: '#/components/schemas/fileInformation'
        messages:
          $ref: '#/components/schemas/messages'
        requestIdentifier:
          $ref: '#/components/schemas/requestIdentifier'
    cardAssetDataElement:
      description: Card assets which help to build virtual replication of actual physical card art.
      type: object
      properties:
        assetReferenceIdentifier:
          description: Unique identifier for card assets that helps to build virtual replication of actual physical card art.
          type: string
        assetType:
          description: Codifies the different nature, genres or categories of content assets that are published and/or presented by the Firm or third party.  Examples of content asset types include document, image, text, video.  Content asset is any written or audio visual content used by the Firm for various business purposes.
          type: string
          enum:
          - CARD_ART_FOREGROUND
          - CARD_ART_BACKGROUND
          - ICON_ISSUER
          - TERMS_AND_CONDITIONS
          - COMBINED_BACKGROUND
          - ICON_PAYMENT_NETWORK
          - ICON_COBRAND
        mimeType:
          description: Label used to identify a type of data. This is used by data users so that they can handle the data properly.
          type: string
          enum:
          - IMAGE/PNG
          - IMAGE/PDF
          - IMAGE/JPEG
          - IMAGE/SVG+XML TEXT/HTML
          - TEXT/PLAIN
          - TEXT/XML
          - APPLICATION/PDF
        assetContent:
          description: Provides a textual version of card information that helps to build virtual replication of actual physical card art.
          type: string
          format: base64
        pixelHeight:
          description: The height of an image used for calculating image size. This is used to build virtual replication of actual physical card art.
          type: integer
          maximum: 4096
          example: 10
        pixelWidth:
          description: The width of an image used for calculating image size. This is used to build virtual replication of actual physical card art.
          type: integer
          maximum: 4096
          example: 12
    code:
      description: Codifies a raised exception encountered by an internal or external system, sub-system, interface, job, module, system component with which the web service application interfaces.  In this instance it refers to the error raised when reporting job failed.
      type: string
    responseStatus:
      description: Request result status.
      type: string
      readOnly: true
      example: SUCCESS
      enum:
      - SUCCESS
      - ERROR
    issuerInformation:
      description: Information about the card issuer
      type: object
      properties:
        cardIssuer:
          description: Financial institution authorized to issue cards with the payment brand logo.
          type: string
          maxLength: 128
        issuerAddress:
          description: Provides unformatted postal address information for the card issuer.
          type: string
        cardIssuerEmailAddress:
          description: Email address of the card issuer.
          type: string
          maxLength: 64
        issuerWebsiteURL:
          $ref: '#/components/schemas/url'
        cardIssuerCustomerServiceTelephone:
          description: Card issuer customer care telephone number.
          type: string
          maxLength: 12
        issuerOnlineBankingURL:
          $ref: '#/components/schemas/url'
        issuerIconURL:
          description: Site or link for the card issuer's image or symbol. Used by merchants to build a better consumer experience.
          type: string
          maxLength: 512
        issuerPrivacyURLText:
          $ref: '#/components/schemas/url'
        issuerLogoURLText:
          $ref: '#/components/schemas/url'
        issuerApplicationOS:
          description: Operating system of the issuing bank's mobile application
          type: string
          maxLength: 16
        issuerAppName:
          description: Issuing bank mobile application name for displaying to user.
          type: string
          maxLength: 128
        issuerAppAddress:
          description: Package name for issuing bank mobile application.
          type: string
          maxLength: 1024
    cardAssetData:
      type: array
      minItems: 0
      description: Card assets which help to build virtual replication of actual physical card art.
      items:
        $ref: '#/components/schemas/cardAssetDataElement'
    message:
      description: Provides textual description of a problem that has occurred and is preventing the system from completing a task. Messages can be a confirmation, warning or notification, and can trigger the system to apply a customized default value or override to a field, record or file, halt or postpone processing, skip or reject the entry generating the problem. Messages can be displayed on-screen in the user interface or in reporting.
      type: string
      readOnly: true
    responseMessage:
      description: Long explanation of the response message.
      type: string
      readOnly: true
      example: Request Accepted
    requestIdentifier:
      description: Merchant identifier for the request. The value must be unique.
      type: string
      maxLength: 40
    tokenProvisionDuplicateResponse:
      description: Token Provision Duplicate Response
      type: object
      properties:
        responseCode:
          $ref: '#/components/schemas/responseCode'
        responseMessage:
          $ref: '#/components/schemas/responseMessage'
        payload:
          $ref: '#/components/schemas/payload'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-jpmc-securityDefinitions:
  JPMC-OAuth2:
    jpmc-claims:
      jpmc-roles:
      - ADMIN_MS_PAYMENTS_TOKEN
      - CONSUMER_MS_PAYMENTS_TOKEN
      - 108970_TOKEN_MERCH_ACCESS
      - 108970_TOKEN_INTERNAL_PCI
x-jpmc-security:
- JPMC-OAuth2:
    jpmc-claims:
      jpmc-roles:
      - ADMIN_MS_PAYMENTS_TOKEN
      - CONSUMER_MS_PAYMENTS_TOKEN
      - 108970_TOKEN_MERCH_ACCESS
      - 108970_TOKEN_INTERNAL_PCI