> ## Documentation Index
> Fetch the complete documentation index at: https://developers.ingopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Biller Search

> Search for available billers and retrieve the payee_id required for BillPay verify.



## OpenAPI

````yaml specs/ingopay-biller-payments-search.yaml POST /gateway/v1/biller/search
openapi: 3.0.3
info:
  title: IngoPay API — Biller Payments Search
  description: >
    Search for eligible billers by account number before initiating a BillPay
    disbursement.


    The `payee_id` returned in the `billers[]` array is required when calling
    the BillPay Verify endpoint (`POST /gateway/verify` with `account_type:
    BP`). Always call Biller Search first to identify and confirm the target
    biller before proceeding to Verify.


    **Retail participants:** `store_id`, `clerk_id`, and `terminal_id` are
    required when the `retail` flag is enabled in client configuration.
  version: '1'
  contact:
    name: Ingo Money Developer Support
    url: https://developers.ingomoney.com
servers:
  - url: https://payapi-sandbox.ingo.money
    description: Sandbox
  - url: https://payapi.ingo.money
    description: Production
security:
  - HmacAuth: []
paths:
  /gateway/v1/biller/search:
    post:
      tags:
        - Biller Search
      summary: Search for a biller by account number
      description: >
        Performs a biller lookup for a given account number. Returns biller
        eligibility, transaction limits, card type, and estimated posting
        information. The `id` value returned in each biller object is the
        `payee_id` required by the BillPay Verify endpoint.


        For retail participants, `store_id`, `clerk_id`, and `terminal_id` are
        required when the `retail` flag is enabled in client configuration.
      operationId: billerSearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillerSearchRequest'
            example:
              participant_id: 12345
              account: '12345678'
              amount: 1010.5
              rail_type: CREDIT
      responses:
        '200':
          description: Biller search successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillerSearchResponse'
              example:
                status: 100
                client_message: Success
                data:
                  billers:
                    - id: '123457'
                      name: First Service Middle Jersey
                      address: PO Box 5555
                      city: Anytown
                      state: NJ
                      zip: '00000'
                      min: '5.00'
                      max: '2000.00'
                      card_type: NA
                      estimated_posting_time: Payment will post 04/22/2026
                      estimated_posting_date: 04/22/2026
                      credit_enabled: 1
                      debit_enabled: 0
        '400':
          description: Validation error or biller not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 700
                client_message: Account not currently available for payment
                data:
                  errors:
                    account: Field is required
components:
  schemas:
    BillerSearchRequest:
      type: object
      required:
        - participant_id
        - account
      description: >
        `store_id`, `clerk_id`, and `terminal_id` are required when the client
        is configured as a retail participant (`retail` flag enabled in client
        configuration).
      properties:
        participant_id:
          type: integer
          description: Unique participant identifier assigned by Ingo.
          example: 12345
        account:
          type: string
          maxLength: 255
          description: Customer bill payment account number to search against.
          example: '12345678'
        amount:
          type: number
          format: float
          minimum: 0.01
          nullable: true
          description: >
            Optional dollar amount of the intended disbursement. When provided,
            used to validate against biller transaction limits.
          example: 1010.5
        rail_type:
          type: string
          maxLength: 6
          nullable: true
          enum:
            - CREDIT
            - DEBIT
          description: >
            Optional rail type filter. `CREDIT` = push (credit) disbursement,
            `DEBIT` = pull (debit) transaction. Defaults to `CREDIT` when not
            provided.
          example: CREDIT
        store_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Client assigned store ID. Required when the client is configured as
            a retail participant (`retail` flag enabled).
          example: STORE-001
        clerk_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Client assigned clerk ID. Required when the client is configured as
            a retail participant (`retail` flag enabled).
          example: CLK-007
        terminal_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Client assigned terminal ID. Required when the client is configured
            as a retail participant (`retail` flag enabled).
          example: TERM-042
    BillerSearchResponse:
      type: object
      properties:
        status:
          type: integer
          description: >
            Numeric code describing the status of the API request. 100 =
            Success.
          example: 100
        client_message:
          type: string
          description: Text description associated with the status code.
          example: Success
        data:
          type: object
          properties:
            billers:
              type: array
              description: |
                Array of matching billers for the account number provided.
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: >
                      Ingo assigned biller ID. This value is the `payee_id`
                      required when calling the BillPay Verify endpoint (`POST
                      /gateway/verify` with `account_type: BP`).
                    example: '123457'
                  name:
                    type: string
                    description: Name of the biller.
                    example: First Service Middle Jersey
                  address:
                    type: string
                    nullable: true
                    description: Biller mailing address.
                    example: PO Box 5555
                  city:
                    type: string
                    nullable: true
                    description: Biller city.
                    example: Secaucus
                  state:
                    type: string
                    nullable: true
                    description: Biller state.
                    example: NJ
                  zip:
                    type: string
                    nullable: true
                    description: Biller zip code.
                    example: 07032-0310
                  min:
                    type: string
                    nullable: true
                    description: |
                      Minimum transaction amount accepted by this biller.
                    example: '5.00'
                  max:
                    type: string
                    nullable: true
                    description: |
                      Maximum transaction amount accepted by this biller.
                    example: '2000.00'
                  card_type:
                    type: string
                    nullable: true
                    description: Card type identifier for the biller.
                    example: NA
                  estimated_posting_time:
                    type: string
                    nullable: true
                    description: Estimated posting time narrative.
                    example: Payment will post 04/22/2026
                  estimated_posting_date:
                    type: string
                    nullable: true
                    description: Estimated posting date.
                    example: 04/22/2026
                  credit_enabled:
                    type: integer
                    enum:
                      - 0
                      - 1
                    description: >
                      Whether the biller accepts push (credit) transactions. 1 =
                      Enabled, 0 = Not enabled.
                    example: 1
                  debit_enabled:
                    type: integer
                    enum:
                      - 0
                      - 1
                    description: >
                      Whether the biller accepts pull (debit) transactions. 1 =
                      Enabled, 0 = Not enabled.
                    example: 0
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 700
        client_message:
          type: string
          example: Account not currently available for payment
        data:
          type: object
          nullable: true
          properties:
            errors:
              type: object
              description: Field-level validation errors.
              additionalProperties:
                type: string
  securitySchemes:
    HmacAuth:
      type: http
      scheme: hmac-sha512
      description: >-
        HMAC-SHA512 signed Authorization header. See the Authentication page for
        the complete signing guide.

````