Untitled
unknown
plain_text
2 years ago
24 kB
10
Indexable
openapi: 3.0.1
info:
version: "1.0"
title: Custom CSI Rest Interface
description: Simple REST service extending OTL CSI functionality by querying database directly.
license:
name: Licensed by Scheidt & Bachmann GmbH
servers:
- url: 'http://10.66.37.43:4000'
variables:
protocol:
enum:
- http
- https
default: https
tags:
- name: Monitoring
- name: Velocity
- name: Accounts
- name: Cards
- name: Buckets
paths:
/customCsi/monitoring/getHealth:
get:
tags:
- Monitoring
summary: Health check
description: Checks health of the OTL db connection.
operationId: health
responses:
'200':
description: 'Health check provided'
content:
application/json:
schema:
$ref: '#/components/schemas/HealthResponse'
/customCsi/monitoring/getVelocity:
get:
tags:
- Monitoring
summary: Velocity check
description: Check Velocity of the OTL db connection.
operationId: velocity
responses:
'200':
description: 'Velocity check provided'
content:
application/json:
schema:
$ref: '#/components/schemas/VelocityResponse'
/customCsi/searchAccounts:
get:
tags:
- Accounts
summary: Account list
description: Returns list of accounts by search parameters
operationId: searchAccounts
parameters:
- in: query
name: accountType
example: C
description: Account type (P - personal, C - corporation, U - university)
schema:
type: string
required: false
- in: query
name: firstName
description: Name assigned to the account
schema:
type: string
required: false
- in: query
name: lastName
description: Lastname assigned to the account
schema:
type: string
required: false
- in: query
name: phone
description: Phone number assigned to the account
schema:
type: string
required: false
- in: query
name: email
example: roman
description: Email address assigned to the account
schema:
type: string
required: false
- in: query
name: masterAccountName
description: Master account name (accountType = master account)
schema:
type: string
required: false
- in: query
name: customerId
description: CustomerId identifier (accountType = master account)
schema:
type: string
required: false
- in: query
name: corporationCategory
description: Corporation category (accountType = master account)
schema:
type: string
required: false
- in: query
name: orderBy
example: accountNumber
description: By what field should response be ordered
schema:
type: string
required: true
- in: query
name: sortBy
example: desc
description: Ascending or descending based on orderBy query parameter
schema:
type: string
required: true
- in: query
name: offset
example: 0
description: Start index
schema:
type: number
required: true
- in: query
name: limit
example: 15
description: How many accounts should be in the response
schema:
type: number
required: true
responses:
'200':
description: Returns list of accounts for specified query parameters in selected order
content:
application/sb.csi.searchAccounts.v1+json:
schema:
$ref: '#/components/schemas/SearchAccountsResponse'
'400':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/customCsi/cardStatus:
post:
tags:
- Cards
summary: Media status list
description: Returns current and previous statuses of the card/medium
operationId: cardStatus
requestBody:
content:
application/sb.csi.card.status.v1+json:
schema:
$ref: '#/components/schemas/CardStatusParam'
responses:
'200':
description: Returns current and previous statuses of the card/medium
content:
application/sb.csi.card.status.v1+json:
schema:
$ref: '#/components/schemas/CardStatusResponse'
'400':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/customCsi/searchCards:
get:
tags:
- Cards
summary: Card list
description: Return lightweight card list for selected parameters
operationId: searchCards
parameters:
- in: query
name: mediaId
example: 670995365281871853
description: MediaId/Token of the card
schema:
type: string
required: false
- in: query
name: accountId
example: 25007
description: Account number of the master account
schema:
type: string
required: false
- in: query
name: accountAlias
example: iba
description: Account alias of the account of the selected card (account association)
schema:
type: string
required: false
- in: query
name: cardStatus
example: 0
description: Status of the card
schema:
type: string
required: false
- in: query
name: orderBy
example: accountId
description: What field should be used for ordering
schema:
type: string
required: true
- in: query
name: sortBy
example: desc
description: Ascending or Descending by the orderBy query parameter
schema:
type: string
required: true
- in: query
name: offset
example: 0
description: Start index
schema:
type: number
required: true
- in: query
name: limit
example: 5
description: How many results in the response
schema:
type: number
required: true
responses:
'200':
description: Returns list of cards for specified query parameters in selected order
content:
application/sb.csi.searchCards.v1+json:
schema:
$ref: '#/components/schemas/SearchCardsResponse'
'400':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/customCsi/corporateCards:
post:
tags:
- Cards
summary: Card list
description: Returns card list for selected master account
operationId: corporateCards
requestBody:
content:
application/sb.csi.corporatecards.v1+json:
schema:
$ref: '#/components/schemas/CorporateCardsParam'
responses:
'200':
description: Returns cards list for selected master account
content:
application/sb.csi.corporatecards.v1+json:
schema:
$ref: '#/components/schemas/CorporateCardsResponse'
'400':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Response in case of error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/customCsi/buckets:
get:
tags:
- Buckets
summary: Obtain current buckets' levels information for an account
description: Provide details on current bucket levels for given account
operationId: GetAccountBuckets
parameters:
- name: accountId
in: query
required: true
description: Account Id to be queried
schema:
type: integer
example: 12345
responses:
'200':
description: OK
content:
application/vnd.sb.cappingbuckets-v1+json:
schema:
$ref: '#/components/schemas/CapBuckets'
components:
schemas:
HealthResponse:
type: object
properties:
dbHealthCheck:
type: string
description: Status OK/NOK
example: OK
VelocityResponse:
type: object
properties:
dbVelocityCheck:
type: string
description: Status OK/NOK
example: OK
CardStatusParam:
type: object
properties:
mediaId:
type: string
description: Token/Media id of the card
example: 7766529704439010699
offset:
type: integer
format: int64
description: Offset (Start index)
example: 0
limit:
type: integer
format: int64
description: Limit (How many statuses in the response)
example: 5
CorporateCardsParam:
type: object
properties:
accountNumber:
type: number
description: Master account number
example: 25007
alias:
type: string
description: Alias of the account assigned to the card for filtering
example: ''
cardStatus:
type: string
description: Status of the card for filtering
example: 1
fieldGroup:
type: string
description: This parameter is not used currently (maybe for future use)
example: all
mediaId:
type: string
description: MediaId/Token of the card for filtering
example: ''
offset:
type: integer
format: int64
description: Offset (Start index)
example: 0
limit:
type: integer
format: int64
description: Limit (How many cards in the response)
example: 5
SearchAccountsResponse:
type: object
properties:
totalNumber:
type: integer
format: int64
description: How many results (accounts) are there for specificed parameters
example: 2
hasMore:
type: boolean
description: If there are more results (accounts) to be queried
example: false
accounts:
type: array
description: List of the accounts for selected query parameters in defined order
items:
$ref: '#/components/schemas/SearchAccount'
SearchCardsResponse:
type: object
properties:
totalNumber:
type: integer
format: int64
description: How many results (cards) are there for specificed parameters
example: 2
hasMore:
type: boolean
description: If there are more results (cards) to be queried
example: false
cards:
type: array
description: List of the cards for selected query parameters in defined order
items:
$ref: '#/components/schemas/SearchCard'
SearchAccount:
type: object
properties:
accountNumber:
type: integer
format: int64
description: Account number
example: 31459
accountType:
type: string
description: Account type ('P', 'C', 'U')
example: 'C'
accountStatus:
type: string
description: Status of the account
example: 1
firstName:
type: string
description: First name
example: roman
lastName:
type: string
description: Last name
example: roman
email:
type: string
description: Email address of the account
example: romanx@test.com
homePhone:
type: string
description: Phone (type = homephone)
officePhone:
type: string
description: Phone (type = office)
example: 9999999999
mobilePhone:
type: string
description: Phone (type = mobile)
activeCardsCount:
type: integer
format: int64
description: Number of active card assigned to the account
example: 0
masterAccountInformation:
type: object
properties:
name:
type: string
description: Name of the master account
example: romanx
contactFirstName:
type: string
description: First name of the corporation's contact
example: roman
contactLastName:
type: string
description: Last name of the corporation's contact
example: roman
customerId:
type: string
description: Customer Id identifier
example: romanx
permanentCity:
type: string
description: City
example: Accord
permanentAddress:
type: string
description: Address
example: Test 123
permanentPostalCode:
type: string
description: Postal code
example: 12404
permanentState:
type: string
description: State
example: NY
permanentCountry:
type: string
description: Country
example: USA
description:
type: string
description: Description of the master account (special for Corporation - discount for products)
example: REDUCED_TICKETS_NOT_ALLOWED
corporationCategory:
type: string
description: Category of the corporation
example: CORPORATION
SearchCard:
type: object
properties:
mediaId:
type: string
description: MediaId/Token of the card
example: '6709953652818718534'
maskedId:
type: string
description: Masked card number
example: '************3128'
personalizationType:
type: string
description: Personalization type of the card
example: ANONY
cardStatus:
type: string
description: Status of the card
example: 0
idType:
type: integer
format: int64
description: Id type of the card
example: 1023
accountNumber:
type: integer
format: int64
description: Account number of the card
example: 39928
accountAlias:
type: string
description: Account alias of the card from account association table
example: ibatext
CorporateCardsResponse:
type: object
properties:
response:
$ref: '#/components/schemas/CorporateCardsInnerResponse'
CorporateCardsInnerResponse:
type: object
properties:
totalNumber:
type: integer
format: int64
description: How many results (cards) are there for specificed parameters
example: 2
hasMore:
type: boolean
description: If there are more results (cards) to be queried
example: false
cards:
type: array
description: List of the cards for selected parameters (master account, status, ..)
items:
$ref: '#/components/schemas/Card'
Card:
type: object
properties:
mediaId:
type: string
description: MediaId/Token of the card
example: '001783412914752283'
customerType:
type: string
description: OTL value for customerType
example: ANONY
cardStatus:
type: string
description: Card status
example: 1
maskedId:
type: string
description: Masked card number
example: '************4462'
idType:
type: string
description: Id type of the card
example: 1023
initializationDate:
type: string
format: datetime
description: Time when card was initialized
example: 2020-09-21T12:15:13Z
cardExpiryDate:
type: string
format: datetime
description: Time when card expires
example: 2030-06-03T04:00:00Z
issueDate:
type: string
format: datetime
description: Issue date of the card (issue_date)
warrantyEndDate:
type: string
format: datetime
description: Warranty end date (warranty_end_date)
refundProgress:
type: string
description: Refund progress (card_refund_progress)
refundProgressDate:
type: string
format: datetime
description: Refund progress date (card_refund_progress_date)
refundReason:
type: string
description: Refund reason (refund_reason)
graphicType:
type: string
description: Longer card type
example: ANONYMOUS
depositValue:
type: integer
format: int64
description: Deposit value (deposit_value)
accountNumber:
type: integer
format: int64
description: Account number of the card
example: 30286
lastUpdateTime:
type: string
format: datetime
description: Last time when card was updated
example: 2020-09-21T12:31:27Z
lastUpdateBy:
type: string
description: Last user that updated the card record
example: tstuser0
personalizationType:
type: string
description: Personalization type of the card
example: ANONY
alias:
type: string
description: Alias of the account of the selected card (from account association table)
example: pondelok1
CardStatusResponse:
type: object
properties:
response:
$ref: '#/components/schemas/CardStatusInnerResponse'
CardStatusInnerResponse:
type: object
properties:
mediaId:
type: string
description: Token/Media id of the card
example: 7766529704439010699
currentCardStatus:
type: string
description: Current status of the card
example: 4
totalNumber:
type: integer
description: How many results (statuses) are there for card
example: 2
hasMore:
type: boolean
description: If there are more results (statuses) to be queried
example: false
cardStatusList:
type: array
description: List of the previous status changes of the card
items:
$ref: '#/components/schemas/CardStatusDetail'
CardStatusDetail:
type: object
properties:
transactionMetadata:
$ref: '#/components/schemas/TransactionMetadata'
reasonCode:
type: integer
format: int64
description: Reason code from OTL enum
example: 255
remarks:
type: string
description: Additional text provided to OTL during change requst (e.g. Employee left the company)
example: Employee left Company
TransactionMetadata:
type: object
properties:
transactionType:
type: string
description: OTL Txn type
example: 2
transationSubtype:
type: string
description: OTL txn sub type
example: 8
transactionTimestamp:
type: string
description: Timestamp of the transaction
example: 2022-08-02T10:42:59Z
transactionReference:
type: string
description: Unique identifier of the transaction
example: 4004-4004001-20220802064259-1659436979433
tariffVersionId:
type: string
description: Tariff version id
example: 123
locationId:
type: string
description: Location Id
example: 123
locationType:
type: string
description: Location Type
example: 123
tariffLocationId:
type: string
description: Tariff location id
example: 123
agentId:
type: string
description: Agent id
example: 2222
shiftId:
type: string
description: Shift Id
example: 999
deviceId:
type: string
description: Device id of the transaction
example: 4004001
deviceClassId:
type: string
description: Device class id of the transaction
example: 4004
serviceMode:
type: string
description: Service mode of the transaction
example: 10
businessEntityId:
type: integer
description: Identifier of the company in the OTL system
example: 69123
geolocation:
$ref: '#/components/schemas/Geolocation'
testMode:
type: boolean
description: Flag for OTL
example: false
Geolocation:
type: object
properties:
longitude:
type: number
description: Longitude
example: 4.2
latitude:
type: number
description: Latitude
example: 4.2
CapBucket:
type: object
required:
- bucketId
- value
- capLevel
properties:
bucketId:
type: string
description: Bucket identification
example: "100130101"
value:
type: integer
description: Accumulated value in the bucket, in cents
example: 3350
capLevel:
description: Capping level for the bucket, in cents
type: integer
example: 7500
CapBuckets:
type: object
required:
- accountId
- capBuckets
properties:
accountId:
type: integer
example: 12345
capBuckets:
type: array
items:
$ref: '#/components/schemas/CapBucket'
ErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/Error'
Error:
type: object
properties:
code:
type: string
description: Error code
example: 1003
message:
type: string
description: Message text for the error
example: Incorrect content type / accept for request /customCsi/cardStatusEditor is loading...