Fiserv BankingHub API

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.

OpenAPI Specification

fiserv-bankinghub-openapi.yml Raw ↑
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.