openapi: 3.1.0 info: title: Fiserv BankingHub API description: >- The Fiserv BankingHub API provides RESTful access to core banking operations including account management, transactions, transfers, payments, and party (customer) management. BankingHub enables financial institutions and fintech partners to integrate account opening, fund transfers, payment processing, and customer data management into their applications. version: '1.0.0' contact: name: Fiserv Developer Support url: https://developer.fiserv.com/product/BankingHub termsOfService: https://www.fiserv.com/en/legal.html externalDocs: description: BankingHub API Documentation url: https://developer.fiserv.com/product/BankingHub/docs/?path=docs/get-started.md servers: - url: https://cert.api.fiservapps.com description: Certification Environment - url: https://prod.api.fiservapps.com description: Production Environment tags: - name: Accounts description: >- Create, retrieve, update, and manage deposit and loan accounts. - name: Parties description: >- Manage customer and party information including personal details and contact information. - name: Payments description: >- Process payment transactions including credits, debits, and bill payments. - name: Transactions description: >- Retrieve and manage account transaction history and details. - name: Transfers description: >- Initiate and manage fund transfers between accounts. security: - bearerAuth: [] paths: /banking/accounts: post: operationId: addAccount summary: Fiserv Create a new account description: >- Creates a new deposit or loan account for an existing customer. Supports checking, savings, money market, certificate of deposit, and loan account types. tags: - Accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountAddRequest' responses: '201': description: Account created successfully content: application/json: schema: $ref: '#/components/schemas/AccountAddResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/accounts/{accountId}: get: operationId: getAccount summary: Fiserv Retrieve account details description: >- Retrieves detailed information for a specific account including balance, status, and account attributes. tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account details returned content: application/json: schema: $ref: '#/components/schemas/AccountInquiryResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: operationId: updateAccount summary: Fiserv Update account details description: >- Updates attributes of an existing account such as status, description, or other configurable fields. tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountUpdateRequest' responses: '200': description: Account updated successfully content: application/json: schema: $ref: '#/components/schemas/AccountUpdateResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/accounts/{accountId}/transactions: get: operationId: listTransactions summary: Fiserv List account transactions description: >- Retrieves transaction history for a specific account. Supports filtering by date range, transaction type, and amount range. tags: - Transactions parameters: - $ref: '#/components/parameters/AccountId' - name: fromDate in: query schema: type: string format: date description: >- Start date for the transaction search range. - name: toDate in: query schema: type: string format: date description: >- End date for the transaction search range. - name: transactionType in: query schema: type: string description: >- Filter by transaction type. responses: '200': description: Transactions returned content: application/json: schema: $ref: '#/components/schemas/TransactionListResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/transfers: post: operationId: createTransfer summary: Fiserv Initiate a fund transfer description: >- Initiates a fund transfer between accounts. Supports internal transfers between accounts at the same institution and external transfers via ACH or wire. tags: - Transfers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransferAddRequest' responses: '201': description: Transfer initiated successfully content: application/json: schema: $ref: '#/components/schemas/TransferAddResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/transfers/{transferId}: get: operationId: getTransfer summary: Fiserv Retrieve transfer details description: >- Retrieves the status and details of a previously initiated fund transfer. tags: - Transfers parameters: - name: transferId in: path required: true schema: type: string description: >- The unique transfer identifier. responses: '200': description: Transfer details returned content: application/json: schema: $ref: '#/components/schemas/TransferInquiryResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Transfer not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/payments: post: operationId: createPayment summary: Fiserv Process a payment description: >- Processes a payment transaction including credits, debits, bill payments, and disbursements through the enterprise payments hub. tags: - Payments requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentAddRequest' responses: '201': description: Payment processed successfully content: application/json: schema: $ref: '#/components/schemas/PaymentAddResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/payments/{paymentId}/reverse: post: operationId: reversePayment summary: Fiserv Reverse a payment description: >- Reverses a previously processed payment transaction. tags: - Payments parameters: - name: paymentId in: path required: true schema: type: string description: >- The unique payment identifier. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentReversalRequest' responses: '200': description: Payment reversed successfully content: application/json: schema: $ref: '#/components/schemas/PaymentReversalResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Payment not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/parties: post: operationId: addParty summary: Fiserv Create a customer party description: >- Creates a new customer party record including personal information, contact details, and identification data. tags: - Parties requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PartyAddRequest' responses: '201': description: Party created successfully content: application/json: schema: $ref: '#/components/schemas/PartyAddResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /banking/parties/{partyId}: get: operationId: getParty summary: Fiserv Retrieve party details description: >- Retrieves detailed information for a specific customer party including personal data, addresses, and contact information. tags: - Parties parameters: - name: partyId in: path required: true schema: type: string description: >- The unique party identifier. responses: '200': description: Party details returned content: application/json: schema: $ref: '#/components/schemas/PartyInquiryResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Party not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: operationId: updateParty summary: Fiserv Update party details description: >- Updates attributes of an existing customer party record. tags: - Parties parameters: - name: partyId in: path required: true schema: type: string description: >- The unique party identifier. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PartyUpdateRequest' responses: '200': description: Party updated successfully content: application/json: schema: $ref: '#/components/schemas/PartyUpdateResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Party not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: >- OAuth 2.0 Bearer token for API authentication. parameters: AccountId: name: accountId in: path required: true schema: type: string description: >- The unique account identifier. schemas: AccountAddRequest: type: object description: >- Request body for creating a new account. required: - partyId - accountType properties: partyId: type: string description: >- The party identifier for the account owner. accountType: type: string enum: - DDA - SDA - MMA - CDA - LOAN description: >- The type of account to create. productCode: type: string description: >- The product code for the account. branchId: type: string description: >- The branch identifier where the account is opened. initialDeposit: type: number format: double description: >- The initial deposit amount. currency: type: string pattern: '^[A-Z]{3}$' description: >- The ISO 4217 currency code. AccountAddResponse: type: object description: >- Response body for account creation. properties: accountId: type: string description: >- The newly created account identifier. accountType: type: string description: >- The account type. status: type: string description: >- The account status. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. AccountInquiryResponse: type: object description: >- Response body for account inquiry. properties: accountId: type: string description: >- The account identifier. accountType: type: string description: >- The account type. status: type: string description: >- The account status. balances: type: object description: >- Account balance information. properties: available: type: number format: double description: >- The available balance. current: type: number format: double description: >- The current (ledger) balance. pending: type: number format: double description: >- The pending balance. openDate: type: string format: date description: >- The date the account was opened. branchId: type: string description: >- The branch identifier. AccountUpdateRequest: type: object description: >- Request body for updating account attributes. properties: status: type: string description: >- The updated account status. description: type: string description: >- The updated account description. AccountUpdateResponse: type: object description: >- Response body for account update. properties: accountId: type: string description: >- The account identifier. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. TransactionListResponse: type: object description: >- Response body for transaction list inquiry. properties: accountId: type: string description: >- The account identifier. transactions: type: array items: $ref: '#/components/schemas/Transaction' description: >- The list of transactions. Transaction: type: object description: >- A single account transaction record. properties: transactionId: type: string description: >- The unique transaction identifier. transactionType: type: string description: >- The type of transaction (e.g., debit, credit). amount: type: number format: double description: >- The transaction amount. currency: type: string description: >- The ISO 4217 currency code. description: type: string description: >- The transaction description. postDate: type: string format: date description: >- The posting date. effectiveDate: type: string format: date description: >- The effective date. runningBalance: type: number format: double description: >- The running balance after the transaction. TransferAddRequest: type: object description: >- Request body for initiating a fund transfer. required: - fromAccountId - toAccountId - amount properties: fromAccountId: type: string description: >- The source account identifier. toAccountId: type: string description: >- The destination account identifier. amount: type: number format: double description: >- The transfer amount. currency: type: string pattern: '^[A-Z]{3}$' description: >- The ISO 4217 currency code. transferType: type: string enum: - INTERNAL - ACH - WIRE description: >- The type of transfer. memo: type: string description: >- A memo or description for the transfer. scheduledDate: type: string format: date description: >- The scheduled date for the transfer. TransferAddResponse: type: object description: >- Response body for transfer initiation. properties: transferId: type: string description: >- The unique transfer identifier. status: type: string description: >- The transfer status. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. TransferInquiryResponse: type: object description: >- Response body for transfer inquiry. properties: transferId: type: string description: >- The transfer identifier. fromAccountId: type: string description: >- The source account. toAccountId: type: string description: >- The destination account. amount: type: number format: double description: >- The transfer amount. status: type: string description: >- The current transfer status. createdDate: type: string format: date-time description: >- The date and time the transfer was created. PaymentAddRequest: type: object description: >- Request body for processing a payment. required: - paymentType - amount properties: paymentType: type: string enum: - CREDIT - DEBIT - BILL_PAYMENT - DISBURSEMENT description: >- The type of payment. accountId: type: string description: >- The account to debit or credit. amount: type: number format: double description: >- The payment amount. currency: type: string pattern: '^[A-Z]{3}$' description: >- The ISO 4217 currency code. payee: type: object description: >- The payment recipient details. properties: name: type: string description: >- The payee name. accountNumber: type: string description: >- The payee account number. routingNumber: type: string description: >- The payee routing number. memo: type: string description: >- A memo or description for the payment. PaymentAddResponse: type: object description: >- Response body for payment processing. properties: paymentId: type: string description: >- The unique payment identifier. status: type: string description: >- The payment status. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. PaymentReversalRequest: type: object description: >- Request body for reversing a payment. properties: reason: type: string description: >- The reason for the reversal. PaymentReversalResponse: type: object description: >- Response body for payment reversal. properties: paymentId: type: string description: >- The reversed payment identifier. status: type: string description: >- The reversal status. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. PartyAddRequest: type: object description: >- Request body for creating a customer party. required: - partyType - name properties: partyType: type: string enum: - INDIVIDUAL - ORGANIZATION description: >- The type of party. name: type: object description: >- The party name. properties: firstName: type: string description: >- The first name (for individuals). lastName: type: string description: >- The last name (for individuals). organizationName: type: string description: >- The organization name (for organizations). taxId: type: string description: >- The tax identification number (SSN or EIN). dateOfBirth: type: string format: date description: >- The date of birth (for individuals). contact: type: object description: >- Contact information. properties: email: type: string format: email description: >- The email address. phone: type: string description: >- The phone number. address: type: object description: >- The physical address. properties: line1: type: string description: >- Address line 1. line2: type: string description: >- Address line 2. city: type: string description: >- The city. state: type: string description: >- The state or province. postalCode: type: string description: >- The postal code. country: type: string description: >- The country code. PartyAddResponse: type: object description: >- Response body for party creation. properties: partyId: type: string description: >- The unique party identifier. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. PartyInquiryResponse: type: object description: >- Response body for party inquiry. properties: partyId: type: string description: >- The party identifier. partyType: type: string description: >- The party type. name: type: object description: >- The party name. properties: firstName: type: string description: >- The first name. lastName: type: string description: >- The last name. organizationName: type: string description: >- The organization name. contact: type: object description: >- Contact information. properties: email: type: string description: >- The email address. phone: type: string description: >- The phone number. address: type: object description: >- The physical address. properties: line1: type: string description: >- Address line 1. city: type: string description: >- The city. state: type: string description: >- The state or province. postalCode: type: string description: >- The postal code. country: type: string description: >- The country code. PartyUpdateRequest: type: object description: >- Request body for updating party details. properties: contact: type: object description: >- Updated contact information. properties: email: type: string format: email description: >- The updated email address. phone: type: string description: >- The updated phone number. address: type: object description: >- Updated address information. properties: line1: type: string description: >- Address line 1. city: type: string description: >- The city. state: type: string description: >- The state or province. postalCode: type: string description: >- The postal code. country: type: string description: >- The country code. PartyUpdateResponse: type: object description: >- Response body for party update. properties: partyId: type: string description: >- The party identifier. statusCode: type: string description: >- The response status code. statusDescription: type: string description: >- The response status description. ErrorResponse: type: object description: >- Standard error response. properties: statusCode: type: string description: >- The error status code. statusDescription: type: string description: >- A human-readable error description. errors: type: array items: type: object properties: code: type: string description: >- The specific error code. message: type: string description: >- The error message. field: type: string description: >- The field that caused the error. description: >- Detailed error information.