hackathon

Additional material and support for hackathon events

View the Project on GitHub interrogen/hackathon

Banking Node Core Environment

Last updated June 29, 2021

OVERVIEW

“Banking Node” is a banking simulation service for use during U.S. Bank hackathons. This service provides fundamental banking services for creating banking application demonstrations, proofs-of-concept, simulations, etc.

Each API user is provided with their own unique set of synthetic data with for a mock customer including balances, transactions, and account history.

The available APIs are

Account products include

Version: 3.0.0

Contact information:
U.S. Bank API Support
apisupport@usbank.com

License: Subject to U.S. Bank Developer Portal Terms of Use. © 2021 U.S. Bank

U.S. Bank API Developer Portal

/account/{accountID}

GET

Summary

Provides the complete detailed listing for a single account.

Description

This method returns a single account record.

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
accountID path the unique account ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/customer/{customerID}

GET

Summary

Retrieves a single customer record.

Description

This method returns a single customer record associated with this Customer ID

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
customerID path a unique customer ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/transaction/{transactionID}

GET

Summary

Retrieves a specific transaction record.

Description

This method returns a JSON object of a single transaction

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
transactionID path a unique transaction ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/account/{accountID}/cards

GET

Summary

Retrieves all the cards issued to a specific account.

Description

This method returns a JSON array of card objects for a specific account

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
accountID path the unique account ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/customer/{customerID}/accounts

GET

Summary

Retrieves all accounts for a single customer record.

Description

This method returns an array of accounts associated with this Customer ID

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
customerID path the customer ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/account/{accountID}/trans/{type}

GET

Summary

Retrieves transactions for a given account.

Description

This method returns a JSON array of transactions for a specific account based on the input values. It can be limited to certain transaction types and date ranges

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
accountID path the unique account ID Yes string
type path   Yes string
start query The start date for searching by a date range No date
end query The end date for searching by a date range No date
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/account/{customerID}/credit

POST

Summary

Creates a new credit card account.

Description

This method generates a new credit card account for a specific customer account

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
Content-Type header Indicates body format of ‘application/json’ Yes string
customerID path the unique customer ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

/account/{customerID}/dda

POST

Summary

Creates a new deposit account.

Description

This method generates a new deposit account for a specific customer account

Parameters
Name Located in Description Required Schema
Accept header Indicates the acceptable response format of ‘application/json’ Yes string
Authorization header Basic authentication of base64 encoded key:secret including semi-colon Yes string
Content-Type header Indicates body format of ‘application/json’ Yes string
customerID path the unique customer ID Yes string
Responses
Code Description
200 Success
400 Invalid Request
404 Record not found
500 System Error

Models

balances

Name Type Description Required
openingDayBalance number Initial balance No
availableBalance number Available balance No
lineOfCredit number Credit limit - CREDIT only No
availableCredit number Available credit - CREDIT only No
currentBalance number Balance owed (CREDIT) or available (ASSET) No
principleBalance number Principle balance owed No
allocatedActiveBalance number Total allocated to active virtual cards No
allocatedPendingBalance number Total allocated to inactive virtual cards No
actualClosedBalance number Total amount spent by closed virtual cards - not yet paid No
outstandingPurchases number Total amount spent by active virtual cards No

accountModel

Name Type Description Required
nickname string Customer defined nickname No
accountID string Unique account identifier Yes
paymentAccountID string Identifier of parent account Yes
routingTransitNumber string Bank routing number No
accountType string Account type code Yes
displayName string DIsplay name Yes
description string Account type description Yes
lineOfBusiness string Line of business No
status string Current status Yes
interestRate number Interest rate Yes
annualPercentageYield number Annual percentage rate Yes
balanceType string ASSET, LIABILITY, VIRTUAL Yes
lastActivityDate date Date of last payment No
lastPaymentAmount number Amount of last payment No
balanceAsOf date Date balance was last changed Yes
balances object   No

cardCount

Name Type Description Required
total number Total number of cards Yes
unassigned number Number of unassigned cards No
active number Number of active cards No
inactive number Number of inactive cards No
closed number Number of closed cards No
cancelled number Number of cancelled cards No
suspended number Number of suspended cards No

Model1

Name Type Description Required
account object   No
cards object   No

detail

Name Type Description Required
attributeName string attribute name
Example: "code"
Yes
reason string reason why error occurred
Example: "Invalid format"
No

details

Name Type Description Required
details array    

errorModel

Name Type Description Required
code string Code associated to the specific error that can be used to trace error condition back to log information
Example: "400.1057.2000"
Yes
message string Text message indicating information about error
Example: "Bad or Malformed Request"
Yes
details [ object ]   No

error

Name Type Description Required
status object   Yes

Model2

Name Type Description Required
status object   No

Model3

Name Type Description Required
error object   No

name

Name Type Description Required
prefix string Name title (e.g. DR) No
firstName string Customer first name Yes
middleName string Customer middle name No
lastName string Customer last name Yes
suffix string Any name suffix (e.g. JR) No
company string Customer employer No

email

Name Type Description Required
email string Customer email Yes

emails

Name Type Description Required
emails array    

address

Name Type Description Required
addressType string Address type Yes
line1 string Street address Yes
line2 string Second line of address No
line3 string Third line of address No
city string City name Yes
state string State name Yes
zip string Postalcode Yes
country string Country name Yes
lastUpdateDate date Last date the address was updated Yes

addresses

Name Type Description Required
addresses array    

telephone

Name Type Description Required
type string Phone type Yes
country string Country name Yes
number string Telephone number Yes

telephones

Name Type Description Required
telephones array    

customer

Name Type Description Required
customerID string Unique customer identifier Yes
associatedEmail string User record associated with this customer record Yes
name object   No
dateOfBirth dateTime Customer Date and Time of Birth.
Example: {}
No
taxID string SSN or federal tax ID Yes
governmentID string Government ID used Yes
emails [ object ]   No
addresses [ object ]   No
telephones [ object ]   No
dependents string Number of dependents No
relationshipStatus string Marital status No
createdDate date Date record was created Yes

customers

Name Type Description Required
customer object   No

transactionModel

Name Type Description Required
accountID string Account associated with this transaction Yes
transactionID string Unique transaction identifier Yes
cardNumber string Specific card number used for this transaction No
maskedCardNumber string Masked value of card number No
referenceTransactionID string Transaction identifier of any related transaction No
postedTimestamp date Time when transaction was posted Yes
transactionTimestamp date Time when transaction occurred Yes
transactionType string Type of transaction Yes
channel string Channel used for this transaction Yes
description string Brief description of transaction Yes
memo string Annotated message No
debitCreditMemo string Credit Debit or Memo Yes
category string Indicates if MCC is known No
subcategory string MCC for merchant - purchases only No
reference string merchant name - purchases only No
status string status Yes
amount number transaction amount Yes
payee string name of payee - Check No
checkNumber string Check number - Check only No
foreignAmount number Amount in foreign currency - if used No
foreignCurrency string Type of foreign currency - if used No

transaction

Name Type Description Required
transaction object   No

cardControls

Name Type Description Required
cardControls object    

cardModel

Name Type Description Required
paymentAccountID string Parent account responsible for this card Yes
cardID string Account ID associated this card Yes
cardBrand string Card issuer Yes
number string 16 digit card number Yes
firstName string First name of card user Yes
lastName string Last name of card user Yes
zip string Postal code associated with the account owner Yes
cvv string Card security code Yes
expirationDate date Expiration date Yes
activateBy date Date to activate card Yes
status string Card status Yes
type string Card type Yes
cardControls object   No

cards

Name Type Description Required
cards array    

accountShortModel

Name Type Description Required
nickname string Customer defined nickname No
accountID string Unique account identifier Yes
paymentAccountID string Identifier of parent account Yes
accountType string Account type code Yes
description string Account type description Yes
status string Current status Yes
availableBalance number Funds available for use No
lineOfCredit number Total line of credit - LOC No
availableCredit number Available credit line - LOC No
currentBalance number Amount owed - credit No

accounts

Name Type Description Required
accounts array    

transactions

Name Type Description Required
transactions array    

Model4

Name Type Description Required
nickname string Account nickname No
accountType string type of mock account; enum[CCD, BCD] Yes
creditLimit number Credit limit for new card account Yes

account

Name Type Description Required
account object   No

Model5

Name Type Description Required
nickname string Account nickname No
accountType string type of mock account; enum[DDA, SAV] Yes
openBalance number Initial balance for new account Yes