> ## 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.

# Search

> Search the Ingo biller/payee database and retrieve the payee_id required for BillPay verify.



## OpenAPI

````yaml specs/ingopay-search-v11.yaml POST /gateway/search
openapi: 3.0.3
info:
  title: IngoPay API — Search
  description: >
    Search the Ingo Money biller/payee database for support of a given customer
    account to be funded.


    The Search method allows a partner to search the biller database using a
    combination of search parameters. Multiple matches may be returned. Each
    result indicates whether the payee/biller is card based (`CA`) or not (`BP`)
    via the `account_type` field on each issuer.


    - An issuer returned with `account_type: CA` follows the **card** Verify and
      Process call sequence to tokenize and fund the account.

    - An issuer returned with `account_type: BP` follows the **BillPay** Verify
      and Process call sequence to tokenize and fund the account.


    The `payee_id` returned in the `issuers[]` array is required on the
    subsequent Verify and Process calls for `BP` account types. Always call
    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 client is configured as a retail participant.
  version: '11'
  contact:
    name: Ingo Money Developer Support
    url: https://developers.ingopayments.com
servers:
  - url: https://payapi-sandbox.ingo.money
    description: Sandbox
  - url: https://payapi.ingo.money
    description: Production
security:
  - HmacAuth: []
paths:
  /gateway/search:
    post:
      tags:
        - Search
      summary: Search for a biller or payee
      description: >
        Performs a biller/payee lookup for a given customer account number,
        optionally narrowed by payee name and remittance address. Returns
        matching issuers with transaction limits, card type, estimated posting
        information, and the `account_type` that determines which Verify and
        Process sequence to use.


        For retail participants, `store_id`, `clerk_id`, and `terminal_id` are
        required.
      operationId: gatewaySearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
            example:
              participant_id: 12345
              account_type: BP
              account: '12345678'
              payee_name: Anytown Utilities
              payee_city: Anytown
              payee_state: GA
              payee_zip: '00000'
              participant_unique_id1: PARTNER-REF-001
              participant_unique_id2: PARTNER-REF-002
              timestamp: 1586975609
              version: 11
      responses:
        '200':
          description: Search completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
              examples:
                success:
                  summary: Two matching billers found
                  value:
                    status: 100
                    client_message: Success
                    data:
                      count: 2
                      issuers:
                        - payee_id: '123456'
                          payee_name: Anytown Utilities
                          payee_address: 100 Innovation Way
                          payee_city: Anytown
                          payee_state: GA
                          payee_zip: '00000'
                          min: '5.00'
                          max: '2000.00'
                          card_type: NA
                          issuing_network: NA
                          estimated_posting_time: Payment will post 04/17/2026
                          estimated_posting_date: 04/17/2026
                          account_type: BP
                        - payee_id: '123457'
                          payee_name: Anytown Utilities North
                          payee_address: 100 Innovation Way
                          payee_city: Anytown
                          payee_state: GA
                          payee_zip: '00000'
                          min: '5.00'
                          max: '2000.00'
                          card_type: NA
                          issuing_network: NA
                          estimated_posting_time: Payment will post 04/17/2026
                          estimated_posting_date: 04/17/2026
                          account_type: BP
                      request_timestamp: 1587050949
                      participant_unique_id1: PARTNER-REF-001
                      participant_unique_id2: PARTNER-REF-002
                    time: '1.8152'
                noBillerFound:
                  summary: No eligible biller found for the account
                  value:
                    status: 700
                    client_message: >-
                      Account not currently available for payment via Ingo Money
                      Network
                    data:
                      request_timestamp: 1587050949
                    time: '0.8644'
                validationError:
                  summary: Request validation failure
                  value:
                    status: 600
                    client_message: Account number validation error
                    data:
                      errors:
                        account: Field is required
                    time: '0.0121'
components:
  schemas:
    SearchRequest:
      type: object
      required:
        - participant_id
        - account_type
        - account
        - participant_unique_id1
        - timestamp
        - version
      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 generated by Ingo.
          example: 12345
        account_type:
          type: string
          minLength: 2
          maxLength: 2
          enum:
            - BP
          description: >
            For Bill Payment the value should be set to `BP`. Search is
            supported for the BillPay distribution only; results indicate
            per-issuer whether to continue with the card (`CA`) or BillPay
            (`BP`) Verify and Process sequence.
          example: BP
        account:
          type: string
          minLength: 1
          maxLength: 255
          description: Customer account number to search against.
          example: '12345678'
        amount:
          type: number
          format: float
          minimum: 0.01
          nullable: true
          description: >
            Dollar amount of the intended disbursement. When provided, used to
            validate against biller transaction limits.
          example: 1010.5
        payee_name:
          type: string
          maxLength: 255
          nullable: true
          description: Name of payee (biller/issuer).
          example: Anytown Utilities
        payee_address1:
          type: string
          maxLength: 255
          nullable: true
          description: Payee (biller/issuer) remittance address 1.
          example: 100 Innovation Way
        payee_address2:
          type: string
          maxLength: 255
          nullable: true
          description: Payee (biller/issuer) remittance address 2.
          example: Suite 200
        payee_city:
          type: string
          maxLength: 255
          nullable: true
          description: Payee (biller/issuer) remittance city.
          example: Anytown
        payee_state:
          type: string
          minLength: 2
          maxLength: 2
          nullable: true
          pattern: >-
            ^(?:A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$
          description: >
            Payee (biller/issuer) remittance state (standard US postal
            abbreviation, uppercase).
          example: GA
        payee_zip:
          type: string
          maxLength: 10
          nullable: true
          pattern: ^[0-9]{5}(?:-[0-9]{4})?$
          description: >
            Payee (biller/issuer) remittance zip — 5 digit or 10 digit (xxxxx or
            xxxxx-xxxx).
          example: '00000'
        store_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Participant assigned store ID. Required when the client is
            configured as a retail participant (retail flag enabled in client
            configuration).
          example: STORE-001
        clerk_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Participant assigned clerk ID. Required when the client is
            configured as a retail participant (retail flag enabled in client
            configuration).
          example: CLK-007
        terminal_id:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Participant assigned terminal ID. Required when the client is
            configured as a retail participant (retail flag enabled in client
            configuration).
          example: TERM-042
        participant_unique_id1:
          type: string
          minLength: 1
          maxLength: 255
          nullable: false
          description: >
            Participant provided unique transaction identifier. Echoed back on
            the response.
          example: PARTNER-REF-001
        participant_unique_id2:
          type: string
          maxLength: 255
          nullable: true
          description: >
            Optional second participant provided unique transaction identifier.
            Echoed back on the response only when supplied on the request.
          example: PARTNER-REF-002
        timestamp:
          type: integer
          description: Unix timestamp of the request.
          example: 1586975609
        version:
          type: integer
          description: 'API version of the request. Current version is: 11.'
          example: 11
    SearchResponse:
      type: object
      properties:
        status:
          type: integer
          description: >
            Numeric code describing the status of the API request (for example,
            100 = Success). See the API Status Codes reference for the full
            list.
          example: 100
        client_message:
          type: string
          description: Text description associated with the status code.
          example: Success
        data:
          type: object
          description: Information about the results of the search.
          properties:
            count:
              type: integer
              description: Count of account issuers returned.
              example: 2
            issuers:
              type: array
              description: >
                Array of issuers / payees matching the request criteria when the
                call is successful.
              items:
                $ref: '#/components/schemas/Issuer'
            request_timestamp:
              type: integer
              description: Unix timestamp of the request.
              example: 1587050949
            participant_unique_id1:
              type: string
              description: Echo of the participant provided value.
              example: PARTNER-REF-001
            participant_unique_id2:
              type: string
              description: >
                Echo of the participant provided value. Returned only when
                supplied on the request.
              example: PARTNER-REF-002
            errors:
              type: object
              description: >-
                Field-level validation errors. Present on validation failure
                only.
              additionalProperties:
                type: string
        time:
          type: string
          description: Time in seconds to complete the request.
          example: '1.8152'
    Issuer:
      type: object
      properties:
        payee_id:
          type: string
          description: >
            Unique Ingo assigned identifier for the payee. Required on the
            subsequent Verify and Process method calls for Bill Payment (`BP`)
            account_type payees.
          example: '123456'
        payee_name:
          type: string
          description: Name of payee (biller/issuer).
          example: Anytown Utilities
        payee_address:
          type: string
          nullable: true
          description: >
            Payee (biller/issuer) remittance address, if available. May be
            blank/empty.
          example: 100 Innovation Way
        payee_city:
          type: string
          nullable: true
          description: >
            Payee (biller/issuer) remittance city, if available. May be
            blank/empty.
          example: Anytown
        payee_state:
          type: string
          nullable: true
          description: >
            Payee (biller/issuer) remittance state, if available. May be
            blank/empty.
          example: GA
        payee_zip:
          type: string
          nullable: true
          description: >
            Payee (biller/issuer) remittance zip, if available. May be
            blank/empty.
          example: '00000'
        min:
          type: string
          description: Minimum payment amount accepted.
          example: '5.00'
        max:
          type: string
          description: Maximum payment amount accepted.
          example: '2000.00'
        card_type:
          type: string
          description: '"Debit", "Prepaid Debit", "Credit", or "NA".'
          example: NA
        issuing_network:
          type: string
          description: >
            If a card, the network of issuance — "Visa", "MasterCard", "American
            Express", etc. Can also be "NA".
          example: NA
        estimated_posting_time:
          type: string
          description: >
            Estimated posting time of the payment. Examples: "Your payment will
            post within 5 minutes." or "Your payment will post today's date." or
            "Your payment will post next business day's date."
          example: Payment will post 04/17/2026
        estimated_posting_date:
          type: string
          description: Estimated posting date of the payment in MM/DD/YYYY format.
          example: 04/17/2026
        account_type:
          type: string
          enum:
            - CA
            - BP
          description: >
            `CA` — use the card payee **Verify** and **Process** methods. `BP` —
            use the biller payee **Verify** and **Process** methods.
          example: BP
  securitySchemes:
    HmacAuth:
      type: http
      scheme: hmac-sha512
      description: >-
        HMAC-SHA512 signed Authorization header. See the Authentication page for
        the complete signing guide.

````