Mastercard FDX Resource API
FDX Mock Resource Server API reference for developers.
FDX Mock Resource Server API reference for developers.
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