Mastercard FDX Resource API

FDX Mock Resource Server API reference for developers.

OpenAPI Specification

fdx-resource-api-openapi.yaml Raw ↑
openapi: 3.0.3
info:
  title: Mastercard Developer Hub for FDX APIs Fdx Resource API
  description: FDX Mock Resource Server API reference for developers
  termsOfService: https://mastercard.com
  contact:
    name: API Support
    url: https://developer.mastercard.com/support
    email: [email protected]
  license:
    name: Mastercard Product
    url: https://mastercard.com
  version: 1.0.0
servers:
  - url: 'http://localhost:9090'
    description: Localhost URL
security:
  - apiKey: []
tags:
  - name: Application Check Controller
    description: health check and check the status application
  - name: Consent
    description: Return consent and save consent for user.
  - name: Data Resource APIs
    description: "Return list of account, account details,transactions,contact details, payments info and statements details of user."
  - name: Upload Data
    description: Upload accounts and transaction for user.
  - name: User APIs
    description: Return user response.
paths:
  /consent/{consentId}:
    get:
      tags:
        - Consent
      summary: Mastercard Developer Hub for FDX APIs Get Consent by consent Id
      description: Return particular consent response by consent id.
      operationId: getConsent
      parameters:
        - name: consentId
          in: path
          required: true
          schema:
            type: string
          example: b39bf7e9-92ae-4649-a1f0-87983285fe1
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountConsent'
              example:
                userId: fdxuser
                allAccountIds:
                  - '10001'
                  - '20001'
                  - '3746272'
                  - '5326884'
                accountIds:
                  - '10001'
                consentShareDurationSeconds: 600
                consentId: eb1a3f4b-9974-4c80-8364-c4ec8c6ff9f7
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.

    put:
      tags:
        - Consent
      summary: Mastercard Developer Hub for FDX APIs Update Consent by consent Id
      description: Return updated consent response.
      operationId: updateConsent
      parameters:
        - name: consentId
          in: path
          description: This field indicate the Consent ID
          required: true
          schema:
            type: string
          example: eb1a3f4b-9974-4c80-8364-c4ec8c6ff9f7
        - name: Authorization
          in: header
          description: Access Token id
          required: true
          schema:
            type: string
          example: Token Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accountIds:
                  description: This field indicate account Id which consent given by user
                  type: array
                  items:
                    type: number
                    example: 20001
                  example:
                    - 20001
                consentShareDurationSeconds:
                  description: This field indicate consent Expiry date
                  type: number
                  example: 600
                userId:
                  description: This field indicate user Id
                  type: string
                  example: fdxuser
            examples:
              Update Consent:
                value:
                  accountIds:
                    - 20001
                  consentShareDurationSeconds: 600
                  userId: fdxuser
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountConsentResp'
              example:
                customerId: fdxuser
                consentId: eb1a3f4b-9974-4c80-8364-c4ec8c6ff9f7
                endDate: 1720607740194
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.
  /user:
    post:
      tags:
        - User APIs
      summary: Mastercard Developer Hub for FDX APIs Save user
      description: Return saved user response.
      operationId: saveUser
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  description: This field indicate plain password
                  type: string
                  example: password
                userId:
                  description: This field indicate user id
                  type: string
                  example: fdxuser1
            examples:
              SaveUser:
                value:
                  password: password
                  userId: fdxuser1
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FdxUser'
  /upload/addTransactions:
    post:
      tags:
        - Upload Data
      summary: Mastercard Developer Hub for FDX APIs add transactions details for user Id
      description: Return transactions response.
      operationId: addTransactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  accountCategory:
                    type: string
                    example: DEPOSIT_ACCOUNT
                  accountId:
                    type: string
                    example: '10002'
                  amount:
                    type: number
                    example: 0.01
                  checkNumber:
                    type: number
                    example: 45400222
                  debitCreditMemo:
                    type: string
                    example: CREDIT
                  description:
                    type: string
                    example: INTEREST PAYMENT
                  payee:
                    type: string
                    example: Test User
                  postedTimestamp:
                    type: string
                    example: '2019-07-31T12:00:00.000Z'
                  status:
                    type: string
                    example: POSTED
                  transactionId:
                    type: string
                    example: '12455'
                  transactionTimestamp:
                    type: string
                    example: '2019-07-31T12:00:00.000Z'
                  transactionType:
                    type: string
                    example: POSCREDIT
              example:
                - accountCategory: DEPOSIT_ACCOUNT
                  accountId: '10002'
                  amount: 0.01
                  description: INTEREST PAYMENT
                  postedTimestamp: '2019-07-31T12:00:00.000Z'
                  status: POSTED
                  transactionId: '12455'
                  transactionTimestamp: '2019-07-31T12:00:00.000Z'
                  transactionType: POSCREDIT
                - accountCategory: DEPOSIT_ACCOUNT
                  accountId: '10002'
                  amount: 0.03
                  description: INTEREST PAYMENT
                  postedTimestamp: '2019-02-28T12:00:00.000Z'
                  status: POSTED
                  transactionId: '45322'
                  transactionTimestamp: '2019-02-28T12:00:00.000Z'
                  transactionType: POSCREDIT
                - accountCategory: DEPOSIT_ACCOUNT
                  accountId: '10002'
                  amount: -300
                  description: 'ALLY BANK TRANSFER WEB ID: 3770527921'
                  postedTimestamp: '2019-02-26T12:00:00.000Z'
                  status: POSTED
                  transactionId: '4322777'
                  transactionTimestamp: '2019-02-26T12:00:00.000Z'
                  transactionType: POSDEBIT
                - accountCategory: DEPOSIT_ACCOUNT
                  accountId: '10002'
                  amount: 101.72
                  checkNumber: 45400222
                  debitCreditMemo: CREDIT
                  description: VENMO CASHOUT
                  payee: Test User
                  postedTimestamp: '2019-02-26T12:00:00.000Z'
                  status: POSTED
                  transactionId: '5705141948'
                  transactionTimestamp: '2019-02-26T12:00:00.000Z'
                  transactionType: POSCREDIT
            examples:
              Add Transactions:
                value:
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    amount: 0.01
                    description: INTEREST PAYMENT
                    postedTimestamp: '2019-07-31T12:00:00.000Z'
                    status: POSTED
                    transactionId: '12455'
                    transactionTimestamp: '2019-07-31T12:00:00.000Z'
                    transactionType: POSCREDIT
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    amount: 0.03
                    description: INTEREST PAYMENT
                    postedTimestamp: '2019-02-28T12:00:00.000Z'
                    status: POSTED
                    transactionId: '45322'
                    transactionTimestamp: '2019-02-28T12:00:00.000Z'
                    transactionType: POSCREDIT
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    amount: -300
                    description: 'ALLY BANK TRANSFER WEB ID: 3770527921'
                    postedTimestamp: '2019-02-26T12:00:00.000Z'
                    status: POSTED
                    transactionId: '4322777'
                    transactionTimestamp: '2019-02-26T12:00:00.000Z'
                    transactionType: POSDEBIT
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    amount: 101.72
                    checkNumber: 45400222
                    debitCreditMemo: CREDIT
                    description: VENMO CASHOUT
                    payee: Test User
                    postedTimestamp: '2019-02-26T12:00:00.000Z'
                    status: POSTED
                    transactionId: '5705141948'
                    transactionTimestamp: '2019-02-26T12:00:00.000Z'
                    transactionType: POSCREDIT
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DataUploadResponsePojo'
  /upload/addAccount:
    post:
      tags:
        - Upload Data
      summary: Mastercard Developer Hub for FDX APIs add account for user Id
      description: Return accounts response.
      operationId: addAccount
      parameters:
        - name: userId
          in: query
          required: true
          schema:
            type: string
          example: fdxUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  accountCategory:
                    type: string
                    example: DEPOSIT_ACCOUNT
                  accountId:
                    type: string
                    example: '10002'
                  accountNumber:
                    type: string
                    example: '7000003223'
                  accountNumberDisplay:
                    type: string
                    example: CHECKING
                  accountType:
                    type: string
                    example: CHECKING
                  annualPercentageYield:
                    type: number
                    example: 0.45
                  availableBalance:
                    type: number
                    example: 4984.46
                  balanceAsOf:
                    type: string
                    example: 2020-12-07T01:06:15.649-0500
                  balanceType:
                    type: string
                    example: ASSET
                  currency:
                    type: object
                    properties:
                      currencyCode:
                        type: string
                        example: USD
                      currencyRate:
                        nullable: true
                        example:
                      originalCurrencyCode:
                        type: string
                        example: USD
                  currentBalance:
                    type: number
                    example: 4984.46
                  description:
                    type: string
                    example: My Checking Acc XXXX3223
                  displayName:
                    type: string
                    example: '******3223'
                  fiAttributes:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: interestPaidLastYear
                        value:
                          type: string
                          example: '14.08'
                    example:
                      - name: interestPaidLastYear
                        value: '14.08'
                      - name: interestPayoutFrequency
                        value: Annually (And At Maturity)
                  interestYtd:
                    type: number
                    example: 14.15
                  lastActivityDate:
                    type: string
                    example: 2020-11-09T00:00:00.000-0500
                  lineOfBusiness:
                    type: string
                    example: RETAIL
                  maturityDate:
                    type: string
                    example: 2020-11-09T00:00:00.000-0500
                  nickname:
                    type: string
                    example: My Checking Acc XXXX3223
                  openingDayBalance:
                    type: number
                    example: 500
                  productName:
                    type: string
                    example: Cash Management
                  routingTransitNumber:
                    type: string
                    example: '256074974'
                  status:
                    type: string
                    example: OPEN
                  transactionsIncluded:
                    type: boolean
                    example: false
              example:
                - accountCategory: DEPOSIT_ACCOUNT
                  accountId: '10002'
                  accountNumber: '7000003223'
                  accountNumberDisplay: CHECKING
                  accountType: CHECKING
                  annualPercentageYield: 0.45
                  availableBalance: 4984.46
                  balanceAsOf: 2020-12-07T01:06:15.649-0500
                  balanceType: ASSET
                  currency:
                    currencyCode: USD
                    currencyRate:
                    originalCurrencyCode: USD
                  currentBalance: 4984.46
                  description: My Checking Acc XXXX3223
                  displayName: '******3223'
                  fiAttributes:
                    - name: interestPaidLastYear
                      value: '14.08'
                    - name: interestPayoutFrequency
                      value: Annually (And At Maturity)
                  interestYtd: 14.15
                  lastActivityDate: 2020-11-09T00:00:00.000-0500
                  lineOfBusiness: RETAIL
                  maturityDate: 2020-11-09T00:00:00.000-0500
                  nickname: My Checking Acc XXXX3223
                  openingDayBalance: 500
                  productName: Cash Management
                  routingTransitNumber: '256074974'
                  status: OPEN
                  transactionsIncluded: false
            examples:
              Add accounts:
                value:
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    accountNumber: '7000003223'
                    accountNumberDisplay: CHECKING
                    accountType: CHECKING
                    annualPercentageYield: 0.45
                    availableBalance: 4984.46
                    balanceAsOf: 2020-12-07T01:06:15.649-0500
                    balanceType: ASSET
                    currency:
                      currencyCode: USD
                      currencyRate:
                      originalCurrencyCode: USD
                    currentBalance: 4984.46
                    description: My Checking Acc XXXX3223
                    displayName: '******3223'
                    fiAttributes:
                      - name: interestPaidLastYear
                        value: '14.08'
                      - name: interestPayoutFrequency
                        value: Annually (And At Maturity)
                    interestYtd: 14.15
                    lastActivityDate: 2020-11-09T00:00:00.000-0500
                    lineOfBusiness: RETAIL
                    maturityDate: 2020-11-09T00:00:00.000-0500
                    nickname: My Checking Acc XXXX3223
                    openingDayBalance: 500
                    productName: Cash Management
                    routingTransitNumber: '256074974'
                    status: OPEN
                    transactionsIncluded: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataUploadResponsePojo'
  /consent:
    post:
      tags:
        - Consent
      summary: Mastercard Developer Hub for FDX APIs Register Consent
      description: Save user consent into db
      operationId: registerConsent
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accountIds:
                  description: This field indicate account Id which consent given by user
                  type: array
                  items:
                    type: number
                    example: 1001
                  example:
                    - 10001
                consentShareDurationSeconds:
                  description: This field indicate consent Expiry date
                  type: number
                  example: 600
                userId:
                  description: This field indicate user Id
                  type: string
                  example: fdxuser
            examples:
              Register Consent:
                value:
                  accountIds:
                    - 10001
                  consentShareDurationSeconds: 600
                  userId: fdxuser
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountConsentResp'
              example:
                customerId: fdxuser
                consentId: eb1a3f4b-9974-4c80-8364-c4ec8c6ff9f7
                endDate: 1720607740194

        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.

  /user/{userId}:
    get:
      tags:
        - User APIs
      summary: Mastercard Developer Hub for FDX APIs Get user by user Id
      description: Return user response.
      operationId: getUser
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
        - name: userId
          in: path
          description: This field indicate the user ID
          required: true
          schema:
            type: string
          example: '2456777'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FdxUser'
  /startupStatus:
    get:
      tags:
        - Application Check Controller
      summary: Mastercard Developer Hub for FDX APIs Status check
      description: status check for application
      operationId: getStartupStatus
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /shutdown:
    get:
      tags:
        - Application Check Controller
      summary: Mastercard Developer Hub for FDX APIs shutdown application
      description: Return the status of shutdown.
      operationId: shutdown
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /livenessProbe:
    get:
      tags:
        - Application Check Controller
      summary: Mastercard Developer Hub for FDX APIs liveness check
      description: liveness check for application
      operationId: validateLiveness
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
  /health:
    get:
      tags:
        - Application Check Controller
      summary: Mastercard Developer Hub for FDX APIs health check
      description: health check for application
      operationId: getHealth
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string

  /fdx/v6/accounts:
    get:
      tags:
        - Data Resource APIs
      summary: Mastercard Developer Hub for FDX APIs Get all accounts of user.
      description: Return list of user accounts.
      operationId: getAccountsList
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                page:
                  nextOffset: '2'
                  total: 3
                links:
                  next:
                    href: /accounts?offSet=2&limit=10
                accounts:
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10001'
                    nickname: My Checking Acc XXXX3223
                    status: OPEN
                    balanceAsOf: '2017-11-05T13:15:30.751Z'
                    currentBalance: 13300.35
                    openingDayBalance: 500
                  - accountCategory: DEPOSIT_ACCOUNT
                    accountId: '10002'
                    nickname: My Checking Acc XXXX4443
                    status: OPEN
                    balanceAsOf: '2017-11-05T13:15:30.751Z'
                    currentBalance: 332.22
                    openingDayBalance: 100
                  - accountCategory: LOAN_ACCOUNT
                    accountId: '20001'
                    nickname: My Mortgage Acc XXXX9979
                    description: My Mortgage Acc XXXX9979
                    status: OPEN
                    balanceAsOf: '2017-11-05T13:15:30.751Z'
                    principalBalance: 133000.35
                    loanTerm: 30
                    nextPaymentDate: '2017-12-01'
                    nextPaymentAmount: 2333.32

        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.

  /fdx/v6/accounts/{accountId}:
    get:
      tags:
        - Data Resource APIs
      summary: Mastercard Developer Hub for FDX APIs Get account details by account id.
      description: Return in-depth account details for particular account.
      operationId: getAccountsDetails
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
        - name: accountId
          in: path
          description: This field indicate the account ID
          required: true
          schema:
            type: string
          example: '10001'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDescriptor'
              example:
                accountId: '10001'
                accountCategory: DEPOSIT_ACCOUNT
                accountType: CHECKING
                displayName: '******3223'
                status: OPEN
                productName: Cash Management
                currency:
                  currencyRate:
                  currencyCode: USD
                  originalCurrencyCode: USD
                interestYtd: 14.15
                maturityDate: 2020-11-09T00:00:00.000-0500
                annualPercentageYield: 0.45
                description: My Checking Acc XXXX3223
                nickname: My Checking Acc XXXX3223
                lineOfBusiness: RETAIL
                accountNumber: '7000003223'
                accountNumberDisplay: '3223'
                routingTransitNumber: '256074974'
                balanceType: ASSET
                lastActivityDate: 2020-11-09T00:00:00.000-0500
                transactionsIncluded: false
                balanceAsOf: 2020-12-07T01:06:15.649-0500
                currentBalance: 4984.46
                availableBalance: 4984.46
                openingDayBalance: 500
                fiAttributes:
                  - name: interestPaidLastYear
                    value: '14.08'
                  - name: interestPayoutFrequency
                    value: Annually (And At Maturity)

        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.

  /fdx/v6/accounts/{accountId}/transactions:
    get:
      tags:
        - Data Resource APIs
      summary: Mastercard Developer Hub for FDX APIs Get transaction details by account id.
      description: Return list of transaction details for particular account.
      operationId: getTransactions
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access Token id
          required: true
          schema:
            type: string
          example: Token Id
        - name: accountId
          in: path
          description: This field indicate the account ID
          required: true
          schema:
            type: string
          example: '10001'
        - name: startTime
          in: header
          description: This field indicate the startTime transaction
          required: false
          schema:
            type: string
          example: 18-04-2024
        - name: endTime
          in: header
          description: This field indicate the endTime of transaction
          required: false
          schema:
            type: string
          example: 30-07-2024
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactions'
              example:
                page:
                  total: 4
                transactions:
                  - accountId: '10001'
                    accountCategory: DEPOSIT_ACCOUNT
                    transactionId: '12455'
                    postedTimestamp: '2019-07-31T12:00:00.000Z'
                    transactionTimestamp: '2019-07-31T12:00:00.000Z'
                    description: INTEREST PAYMENT
                    status: POSTED
                    amount: 0.01
                    transactionType: POSCREDIT
                  - accountId: '10001'
                    accountCategory: DEPOSIT_ACCOUNT
                    transactionId: '45322'
                    postedTimestamp: '2019-02-28T12:00:00.000Z'
                    transactionTimestamp: '2019-02-28T12:00:00.000Z'
                    description: INTEREST PAYMENT
                    status: POSTED
                    amount: 0.03
                    transactionType: POSCREDIT
                  - accountId: '10001'
                    accountCategory: DEPOSIT_ACCOUNT
                    transactionId: '4322777'
                    postedTimestamp: '2019-02-26T12:00:00.000Z'
                    transactionTimestamp: '2019-02-26T12:00:00.000Z'
                    description: 'ALLY BANK TRANSFER WEB ID: 3770527921'
                    status: POSTED
                    amount: -300
                    transactionType: POSDEBIT
                  - accountId: '10001'
                    accountCategory: DEPOSIT_ACCOUNT
                    transactionId: '5705141948'
                    postedTimestamp: '2019-02-26T12:00:00.000Z'
                    transactionTimestamp: '2019-02-26T12:00:00.000Z'
                    description: VENMO CASHOUT
                    debitCreditMemo: CREDIT
                    status: POSTED
                    amount: 101.72
                    transactionType: POSCREDIT
                    checkNumber: 45400222
                    payee: Test User

        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
              example:
                code: '401'
                error: We have encountered some internal error in processing your request.
                errorDescription: Request validation failed. Either authorization code is blank or invalid.

  /fdx/v6/accounts/{accountId}/statements:
    get:
      tags:
        - Data Resource APIs
      summary: Mastercard Developer Hub for FDX APIs Get statements details by account id.
      description: Return list of statements details for particular account.
      operationId: getStatements
      parameters:
        - name: Authorization
          in: header
          description: This field indicate the Access To

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mastercard-fdx/refs/heads/main/openapi/fdx-resource-api-openapi.yaml