openapi: 3.0.1 servers: - url: https://localhost:8080/account/v1 info: description: Public API of Diebold Nixdorf for Account Balance Management version: 1.0.0 title: DN Account BC API contact: name: Thorsten Brinkmann email: Thorsten.Brinkmann@dieboldnixdorf.com termsOfService: /terms-of-use externalDocs: url: /docs description: Find more information here tags: - name: Account BC API description: Request processing in Account BC paths: /accountInquiry: post: summary: Returns information of an account tags: - Account BC API operationId: accountInquiry description: Checks whether the account is existing, status is active and returns information of an account including balances requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/inquiryRequest' examples: accountInquiryRequestExample: $ref: '#/components/examples/accountInquiryRequestExample' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/inquiryResponse' examples: accountInquiryResponseExample: $ref: '#/components/examples/accountInquiryResponseExample' /authorizeTransaction: post: summary: Authorizes a transaction in standin mode tags: - Account BC API operationId: authorizeTransaction description: Check if the account exists and has sufficient balances then create standin advices depending on the transaction operation and transaction amount requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/authorizeRequest' examples: authorizeTransactionRequestExample: $ref: '#/components/examples/authorizeTransactionRequestExample' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/authorizeResponse' examples: authorizeTransactionResponseExample: $ref: '#/components/examples/authorizeTransactionResponseExample' /reverseTransaction: post: summary: Reverses a transaction in standin mode tags: - Account BC API operationId: reverseTransaction description: Performs Reversal of a transaction by deleting standin advices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/reverseRequest' examples: reverseTransactionRequestExample: $ref: '#/components/examples/reverseTransactionRequestExample' responses: '200': description: Ok response content: application/json: schema: $ref: '#/components/schemas/reverseResponse' examples: reverseTransactionResponseExample: $ref: '#/components/examples/reverseTransactionResponseExample' /onlineNotification: post: summary: Notify Account BC about successful online transaction tags: - Account BC API operationId: onlineNotification description: Notify Account BC about successful online transaction. Account BC will store the transaction in transaction history requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/onlineNotificationRequest' examples: onlineNotificationRequestExample: $ref: '#/components/examples/onlineNotificationRequestExample' responses: '200': description: Ok response content: application/json: schema: $ref: '#/components/schemas/onlineNotificationResponse' examples: onlineNotificationResponseExample: $ref: '#/components/examples/onlineNotificationResponseExample' /safNotification: post: summary: Notify Account BC about successful SAF record processing tags: - Account BC API operationId: safNotification description: Notify Account BC about successful SAF record processing.Account BC wil delete the standin advice and create a transaction history entry requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/safNotificationRequest' examples: safNotificationRequestExample: $ref: '#/components/examples/safNotificationRequestExample' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/safNotificationResponse' examples: safNotificationResponseExample: $ref: '#/components/examples/safNotificationResponseExample' components: examples: accountInquiryRequestExample: value: transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: INQUIRY payload: ipAccountIdentifier: DE89370400440532013000 accountRef: accountNumber: A0123456789 accountType: SAVINGS fiid: '15' accountInquiryResponseExample: value: responseCode: OK extendedResponseCode: OK transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: INQUIRY payload: accountInformation: accountNumber: '19023456789' accountCurrency: USD accountType: SAVINGS accountSubType: Business Savings accountName: Your Savings account fiid: '15' amounts: - amountType: AVAILABLE_BALANCE value: '100.50' currency: USD accountOwnerName: JOHN DOE accountOwnership: PRIMARY accountStatus: ACTIVE isStandinPresent: false authorizeTransactionRequestExample: value: transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT payload: ipAccountIdentifier: DE89370400440532013000 accountRef: accountNumber: A0123456789 accountType: SAVINGS fiid: '15' transactionAmount: amount: value: '100.00' currency: USD authorizeTransactionResponseExample: value: responseCode: OK extendedResponseCode: OK transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT reverseTransactionRequestExample: value: transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: REVERSAL payload: originalOperation: debit ipAccountIdentifier: DE89370400440532013000 accountRef: accountNumber: A0123456789 accountType: SAVINGS fiid: '15' reverseTransactionResponseExample: value: responseCode: OK extendedResponseCode: OK transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: REVERSAL onlineNotificationRequestExample: value: transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT payload: ipAccountIdentifier: DE89370400440532013000 accountRef: accountNumber: A0123456789 accountType: SAVINGS fiid: '15' transactionAmount: amount: value: '100.00' currency: USD onlineNotificationResponseExample: value: responseCode: OK extendedResponseCode: OK transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT safNotificationRequestExample: value: transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT payload: ipAccountIdentifier: DE89370400440532013000 accountRef: accountNumber: A0123456789 accountType: SAVINGS fiid: '15' safNotificationResponseExample: value: responseCode: OK extendedResponseCode: OK transaction: id: 123e4567e89b12d3a456426614174000 businessCorrelationId: 7f2b9fcde28b42abbc10b0b9640f6ede time: 2023-10-01T12:20:01.123+0000 operation: DEBIT schemas: inquiryRequest: type: object required: - payload - transaction properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/InquiryPayload' inquiryResponse: type: object allOf: - $ref: '#/components/schemas/ServiceResponse' properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/InquiryResponsePayload' authorizeRequest: type: object required: - payload - transaction properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/AuthorizePayload' authorizeResponse: type: object allOf: - $ref: '#/components/schemas/ServiceResponse' properties: transaction: $ref: '#/components/schemas/TransactionBase' reverseRequest: type: object required: - payload - transaction properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/ReversePayload' reverseResponse: type: object allOf: - $ref: '#/components/schemas/ServiceResponse' properties: transaction: $ref: '#/components/schemas/TransactionBase' onlineNotificationRequest: type: object required: - payload - transaction properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/OnlinePayload' onlineNotificationResponse: type: object allOf: - $ref: '#/components/schemas/ServiceResponse' properties: transaction: $ref: '#/components/schemas/TransactionBase' safNotificationRequest: type: object required: - payload - transaction properties: transaction: $ref: '#/components/schemas/TransactionBase' payload: $ref: '#/components/schemas/SafPayload' safNotificationResponse: type: object allOf: - $ref: '#/components/schemas/ServiceResponse' properties: transaction: $ref: '#/components/schemas/TransactionBase' ServiceResponse: type: object required: - responseCode - extendedResponseCode properties: responseCode: $ref: '#/components/schemas/ResponseCode' extendedResponseCode: $ref: '#/components/schemas/ExtendedResponseCode' ResponseCode: type: string enum: - OK - FAIL - RESUBMIT example: OK ExtendedResponseCode: type: string enum: - OK - SERVER_FAILURE - NO_RESULT - ACCOUNT_NOT_FOUND - ACCOUNT_CLOSED - ACCOUNT_TYPE_INVALID - CONTEXT_NOT_FOUND - LIMIT_EXCEEDED - INSUFFICIENT_FUNDS - REQUEST_DATA_INVALID - TRANSACTION_NOT_POSSIBLE - HOST_OFFLINE - HOST_CANCEL - HOST_BUSINESS_ERROR - SERVER_NOT_READY - UNKNOWN_ACCOUNT - ACCOUNT_CHARGEOFF - ACCOUNT_DORMANT - ACCOUNT_FROZEN_ACCRUAL - ACCOUNT_FROZEN_NON_ACCRUAL - ACCOUNT_INACTIVE - ACCOUNT_PENDING_CLOSED example: OK description: Extended Response Code Mapping Operation: type: string enum: - DEBIT - CREDIT - INQUIRY - REVERSAL example: DEBIT description: Transaction operation Amount: description: The basic type of an amount. type: object required: - value - currency properties: value: description: The amount value of the given currency. type: string pattern: '[0-9]{1,13}\.[0-9]{1,3}' minimum: 0 example: '100.00' currency: description: Currency code type: string minLength: 3 pattern: '[A-Z]{3,3}' example: USD AccountType: type: string enum: - UNSPECIFIED - GIRO - SAVINGS - SECURITIES_DEPOSIT - SAVINGS_SECURITIES_DEPOSIT - GIRO_SECURITIES_DEPOSIT - FIXED_TERM_DEPOSIT - CREDIT_CARD - LOAN - MORTGAGE - FOREIGN_CURRENCY - EXTERNAL - CHECKING - UNIVERSAL - SPENDING_POWER - FEE_COLLECTION_ACCOUNT - ATM - VENDOR - SHAREHOLDER - GENERAL_LEDGER - CASH_RESERVE - LOAN_DENIAL - LEASE - CONSUMER_LOAN - COMMERCIAL_LOAN - RETIREMENT_LOAN - EXTERNAL_LOAN - SHARE - INDIVIDUAL_RETIREMENT example: SAVINGS description: '| Symbolic name | Comment | |----------------------------|----------------------------------------------------------------| | UNSPECIFIED | Default value for unknown accounts. | | GIRO | Giro account. | | SAVINGS | Savings account. | SECURITIES_DEPOSIT | Depot of securities (shares and so on). | | SAVINGS_SECURITIES_DEPOSIT | Savings securities. | | GIRO_SECURITIES_DEPOSIT | Giro securities. | | FIXED_TERM_DEPOSIT | Fixed term deposit. | | CREDIT_CARD | Credit card account. (ISO 8583; MC DE.54->30 / VISA DE.54->30).| | LOAN | An account that covers a credit and its balance and movements. | | MORTGAGE | Security for a loan. | | FOREIGN_CURRENCY | An account that holds money in a foreign curreny. | | EXTERNAL | An account that represents an account of a foreign institution.| | CHECKING | Checking account. (ISO 8583; MC DE.54->20 / VISA DE.54->20) | | UNIVERSAL | ISO 8583; VISA DE.54->40) | | SPENDING_POWER | ISO 8583; VISA DE.54->64) | | FEE_COLLECTION_ACCOUNT | used to collect fees | | ATM | ATM | | VENDOR | Vendor | | SHAREHOLDER | Shareholder | | GENERAL_LEDGER | General ledger | | CASH_RESERVE | Cash Reserve Line of Credit | | LOAN_DENIAL | Load denial | | LEASE | Lease | | CONSUMER_LOAN | Consumer loan | | COMMERCIAL_LOAN | Cemercial loan | | RETIREMENT_LOAN | Retirement loan | | EXTERNAL_LOAN | External loan | | SHARE | Share | | INDIVIDUAL_RETIREMENT | Individual Retirement Account(IRA) |' AccountSubType: description: Represents the SubType of an account for AccountType type: string example: Business Savings InquiryPayload: type: object properties: ipAccountIdentifier: type: string description: Identifier for instant payment transactions minLength: 1 example: 123e4567e89b12d3a456426614174000 accountRef: $ref: '#/components/schemas/AccountRef' AuthorizePayload: type: object required: - transactionAmount properties: ipAccountIdentifier: type: string description: Identifier for instant payment transactions minLength: 1 example: 123e4567e89b12d3a456426614174000 accountRef: $ref: '#/components/schemas/AccountRef' transactionAmount: $ref: '#/components/schemas/TransactionAmount' ReversePayload: type: object required: - originalOperation properties: ipAccountIdentifier: type: string description: Identifier for instant payment transactions minLength: 1 example: 123e4567e89b12d3a456426614174000 accountRef: $ref: '#/components/schemas/AccountRef' originalOperation: $ref: '#/components/schemas/OriginalOperation' OnlinePayload: type: object required: - transactionAmount properties: ipAccountIdentifier: type: string description: Identifier for instant payment transactions minLength: 1 example: 123e4567e89b12d3a456426614174000 accountRef: $ref: '#/components/schemas/AccountRef' transactionAmount: $ref: '#/components/schemas/TransactionAmount' SafPayload: type: object properties: ipAccountIdentifier: type: string description: Identifier for instant payment transactions minLength: 1 example: 123e4567e89b12d3a456426614174000 accountRef: $ref: '#/components/schemas/AccountRef' TransactionBase: type: object required: - id - businessCorrelationId - time - operation properties: id: type: string description: Unique identifier for each request minLength: 1 example: 123e4567e89b12d3a456426614174000 businessCorrelationId: type: string description: Unique identifier for each transaction. This has to same for all the request of same business transaction minLength: 1 example: 7f2b9fcde28b42abbc10b0b9640f6ede time: $ref: '#/components/schemas/DateTime' operation: $ref: '#/components/schemas/Operation' IPAccountIdentifier: type: string description: Identifier for instant payment transactions example: DE89370400440532013000 OriginalOperation: type: string description: Original operation of a transaction example: debit FIID: type: string description: Financial institution Identifier example: '15' DateTime: type: string description: The date and time expressed in the pattern 'yyyy-MM-dd'T'HH:mm:ssZ', where yyyy is 4-digit year, MM is 2-digit month, dd is 2-digit date of month, HH is hours, mm is minutes, ss is seconds, SSS is milliseconds and Z is timezone offset format: yyyy-MM-dd'T'HH:mm:ss.SSSZ example: 2023-10-01T12:20:01.123+0000 AccountName: type: string description: The account name which is displayed to the user example: Your Savings account AccountRef: type: object required: - accountNumber - accountType - fiid properties: accountNumber: description: Account number type: string minLength: 1 example: A0123456789 accountType: $ref: '#/components/schemas/AccountType' fiid: $ref: '#/components/schemas/FIID' TransactionAmount: description: The transaction amount. type: object properties: amount: $ref: '#/components/schemas/Amount' AccountInformationBase: type: object required: - accountNumber properties: accountNumber: description: Account number type: string minLength: 5 example: '19023456789' accountCurrency: description: Currency code type: string pattern: '[A-Z]{3,3}' example: USD accountType: $ref: '#/components/schemas/AccountType' accountSubType: $ref: '#/components/schemas/AccountSubType' accountName: $ref: '#/components/schemas/AccountName' fiid: $ref: '#/components/schemas/FIID' amounts: $ref: '#/components/schemas/Amounts' AccountInfo: type: object allOf: - $ref: '#/components/schemas/AccountInformationBase' - type: object properties: accountOwnerName: type: string description: 'The owner of the account. ' example: JOHN DOE accountOwnership: $ref: '#/components/schemas/AccountOwnership' accountStatus: $ref: '#/components/schemas/AccountStatus' isStandinPresent: type: boolean description: Indicates whether the standin entries are present or not for an account AccountOwnership: type: string enum: - PRIMARY - JOINT - NOT_SPECIFIED - CUSTODIAN - TRUSTEE - POWER_OF_ATTORNEY - AUTHORIZED_SIGNER - TRUSTOR - CO_BORROWER - CO_SIGNER - CO_OWNER - CO_MAKER - CORPORATION - BORROWER - CORPORATE_OWNER - JOINT_PRIMARY - JOINT_SECONDARY - JOINT_AND - JOINT_OR - ENDORSER - GUARANTOR - GRANTOR - LANDLORD - SECONDARY - TENANT - SOLE_PROPRIETOR - GUARDIAN - EXECUTOR example: PRIMARY AccountStatus: type: string description: The status of the account enum: - ACTIVE - APPROVED - CLOSED - DORMANT - PENDING_CLOSED - CHARGEOFF - INACTIVE - NON_ACCRUAL - MATURED - ESCHEAT - ASSUMED - LOAN_DENIED - ORIGINATING - REDEEMED - MATURED_NOT_REDEEMED - NO_DEBIT - NO_CREDIT - NO_POST - FROZEN_NON_ACCRUAL - CHARGEDOFF_NON_ACCRUAL - OCCUPIED - NOT_AVAILABLE - UNOCCUPIED - ACTIVE_NO_POD - DO_NOT_CLOSE_ON_ZERO_BALANCE - FROZEN_ACCRUAL - OPEN_PRIMARY_ACCOUNT - RESTRICTED_PRIMARY_ACCOUNT - RESTRICTED_TO_DEPOSIT - NOT_SPECIFIED example: ACTIVE Amounts: type: array items: $ref: '#/components/schemas/AccountAmount' AccountAmount: type: object properties: amountType: $ref: '#/components/schemas/AccountAmountType' value: description: The amount value of the given currency type: string pattern: '[0-9]{1,13}\.[0-9]{1,3}' minimum: 0 example: '100.50' currency: description: Currency code type: string pattern: '[A-Z]{3,3}' example: USD AccountAmountType: type: string enum: - LEDGER_BALANCE - AVAILABLE_BALANCE - AVAILABLE_CREDIT - CREDIT_LIMIT - OVERDRAFT_LIMIT - LOAN_BALANCE - INTEREST_AMOUNT - REGULAR_PAYMENT_AMOUNT - REGULAR_PAYMENT_DUE - PRINCIPLE_BALANCE - CURRENT_AMOUNT_DUE - LAST_PAYMENT_AMOUNT - LAST_CHARGE_DUE - INTEREST_PAID_YEAR_TO_DATE - INTEREST_PAID_PREVIOUS_YEAR_TO_DATE - OFF_HOST_DEBIT_AMOUNT - OFF_HOST_CREDIT_AMOUNT - TOTAL_DEBIT_AMOUNT - TOTAL_CREDIT_AMOUNT - PAYOFF_AMOUNT - OWING_AMOUNT - AMOUNT_ALREADY_DRAWN_ON - MEMBER_PROVIDED_FEE_AMOUNT - REMAINING_PREAUTHORIZED_AMOUNT - HEALTHCARE_ELIGIBILITY_AMOUNT - PRESCRIPTION_ELIGIBILITY_AMOUNT - PREPAID_ONLINE_BILL_PAY_FEE_AMOUNT - CASH_BACK - ORIGINAL_AMOUNT - POI_AMOUNT - CO_PAY_AMOUNT - MINIMUM_AMOUNT_DUE - REWARD_BALANCE - LAST_STATEMENT_BALANCE - OUTSTANDING_CREDIT - OUTSTANDING_CASH - CASH_LIMIT - AVAILABLE_CASH - CASH_BALANCE example: AVAILABLE_BALANCE description: Amount types for account InquiryResponsePayload: type: object required: - accountInformation properties: accountInformation: $ref: '#/components/schemas/AccountInfo'