---
title: Search for BPAY billers
slug: api/search-for-bpay-billers
docTags: 
createdAt: 2026-08-20T02:02:37.496Z
---

{
  "id": "Or6Xa-6-9VJdJcFlej27V",
  "type": "api-oas-v2",
  "data": {
    "method": "GET",
    "url": "https://api.mpay.com.au/bpay/v1/billers",
    "servers": [
      {
        "url": "https://api.mpay.com.au/bpay/v1/billers",
        "description": "Production URL"
      },
      {
        "url": "https://api.m-pay.com.au/bpay/v1/billers",
        "description": "Sandbox URL"
      }
    ],
    "name": "Search for BPAY billers",
    "description": "<p>This API returns an array of BPAY billers matched to the case-insensitive search string. The system matches on the billerLongName and billerShortName. Use skip and take to page through the result set. Skip and take will be changed back to their defaults if they are over-range. Status will be 'UnknownBillerCode' if there are no matches.</p>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [
        {
          "kind": "optional",
          "name": "search",
          "type": "string",
          "example": "Telstra",
          "description": "<p><strong>Optional</strong>. The search string used to match billers on billerLongName and billerShortName.</p>",
          "default": "Telstra",
          "pattern": "^.+$"
        },
        {
          "kind": "optional",
          "name": "skip",
          "type": "string",
          "example": "0",
          "description": "<p><strong>Optional</strong>. The number of records to skip when paging through the result set.</p>",
          "default": "0",
          "pattern": "^[0-9]+$"
        },
        {
          "kind": "optional",
          "name": "take",
          "type": "string",
          "example": "10",
          "description": "<p><strong>Optional</strong>. The number of records that were requested.</p>",
          "default": "10",
          "pattern": "^[0-9]+$"
        }
      ],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "basicAuth",
          "name": "basicAuth",
          "kind": "optional",
          "type": "http",
          "description": "<p>To authenticate using basic authentication, generate an API key and pass it as the username. No password is required.</p>",
          "scheme": "basic"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Successful response. The matching BPAY billers were returned.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "customType": "bPayBillersResponse_V1",
            "schema": [
              {
                "name": "search",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Optional</strong>. The case-insensitive search string that was used to match billers.</p>",
                "example": "Telstra",
                "default": "Telstra",
                "pattern": "^.+$"
              },
              {
                "name": "totalCount",
                "kind": "optional",
                "type": "integer",
                "description": "The total number of billers matching the search.",
                "example": 25,
                "default": 25,
                "pattern": "^[0-9]+$"
              },
              {
                "name": "skip",
                "kind": "optional",
                "type": "integer",
                "description": "The actual number of records skipped.",
                "example": 0,
                "default": 0,
                "pattern": "^[0-9]+$"
              },
              {
                "name": "take",
                "kind": "optional",
                "type": "integer",
                "description": "The number of records that were requested.",
                "example": 10,
                "default": 10,
                "pattern": "^[0-9]+$"
              },
              {
                "name": "billers",
                "kind": "optional",
                "type": "array",
                "description": "The array of matching BPAY billers.",
                "modelRef": "#/components/schemas/bPayBiller",
                "customType": "bPayBiller[]",
                "schema": [
                  {
                    "name": "billerCode",
                    "kind": "optional",
                    "type": "string",
                    "description": "The BPAY biller code.",
                    "example": "123456",
                    "default": "123456",
                    "pattern": "^[0-9]+$"
                  },
                  {
                    "name": "billerLongName",
                    "kind": "optional",
                    "type": "string",
                    "description": "The full registered name of the biller.",
                    "example": "Example Biller Proprietary Limited",
                    "default": "Example Biller Proprietary Limited",
                    "pattern": "^.+$"
                  },
                  {
                    "name": "billerShortName",
                    "kind": "optional",
                    "type": "string",
                    "description": "The abbreviated name of the biller.",
                    "example": "Example Biller",
                    "default": "Example Biller",
                    "pattern": "^.+$"
                  },
                  {
                    "name": "acceptedPaymentMethods",
                    "kind": "optional",
                    "type": "string",
                    "description": "The BPAY payment method codes accepted by the biller.",
                    "example": "101,201",
                    "default": "101,201",
                    "pattern": "^[A-Za-z0-9,]+$"
                  },
                  {
                    "name": "activationDate",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "description": "<p>The date the biller was activated, in ISO 8601 format.</p>",
                    "example": "2020-01-01T00:00:00+10:00",
                    "default": "2020-01-01T00:00:00+10:00",
                    "format": "date-time",
                    "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)?$"
                  },
                  {
                    "name": "deactivationDate",
                    "kind": "optional",
                    "type": "string<date-time>",
                    "description": "<p><strong>Optional</strong>. The date the biller was deactivated, in ISO 8601 format. Present only if the biller has been deactivated.</p>",
                    "example": "2030-12-31T00:00:00+10:00",
                    "default": "2030-12-31T00:00:00+10:00",
                    "format": "date-time",
                    "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)?$"
                  },
                  {
                    "name": "minPaymentAmount",
                    "kind": "optional",
                    "type": "number",
                    "description": "The minimum payment amount accepted by the biller.",
                    "example": 1,
                    "default": 1,
                    "pattern": "^[0-9]+(\\.[0-9]{1,2})?$"
                  },
                  {
                    "name": "maxPaymentAmount",
                    "kind": "optional",
                    "type": "number",
                    "description": "The maximum payment amount accepted by the biller.",
                    "example": 9999999999.99,
                    "default": 9999999999.99,
                    "pattern": "^[0-9]+(\\.[0-9]{1,2})?$"
                  },
                  {
                    "name": "crnValidationRuleName",
                    "kind": "optional",
                    "type": "string",
                    "description": "The name of the CRN validation rule applied by the biller.",
                    "example": "MOD10V05",
                    "default": "MOD10V05",
                    "pattern": "^[A-Za-z0-9]+$"
                  },
                  {
                    "name": "checkDigitRuleName",
                    "kind": "optional",
                    "type": "string",
                    "description": "The name of the check digit rule applied to the CRN.",
                    "example": "MOD10V05",
                    "default": "MOD10V05",
                    "pattern": "^[A-Za-z0-9]+$"
                  },
                  {
                    "name": "lengthMask",
                    "kind": "optional",
                    "type": "string",
                    "description": "The permitted length range of the CRN.",
                    "example": "4-20",
                    "default": "4-20",
                    "pattern": "^[0-9\\-]+$"
                  },
                  {
                    "name": "fixedDigits",
                    "kind": "optional",
                    "type": "string",
                    "description": "<p><strong>Optional</strong>. Fixed digits that must appear within the CRN, if the biller requires them.</p>",
                    "example": "12",
                    "default": "12",
                    "pattern": "^[0-9]*$"
                  },
                  {
                    "name": "isVariableCrn",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "<p>Indicates whether the biller uses a variable CRN (a new CRN for each bill).</p>",
                    "example": true,
                    "default": true,
                    "pattern": "^(true|false)$"
                  }
                ]
              },
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer",
                "description": "This value represents the total time in milliseconds that the Platform took to process the request.",
                "example": 42,
                "default": 42,
                "pattern": "^[0-9]+$"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "This is the status of the request. A code of 'Ok' indicates no errors.",
                "example": "Ok",
                "default": "Ok",
                "pattern": "^[A-Za-z]+$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p>This is a description of the status. If an 'Ok' status is returned, then this will be 'Operation completed successfully'.</p>",
                "example": "Operation completed successfully",
                "default": "Operation completed successfully",
                "pattern": "^.+$"
              }
            ],
            "modelRef": "#/components/schemas/bPayBillersResponse_V1",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "Bad Request. The request was malformed or contained invalid parameters.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "The standard error envelope returned when a request cannot be completed.",
            "customType": "errorResponse_V1",
            "schema": [
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "The status code indicating the type of error that occurred.",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z]+$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p>A human-readable description of the error that occurred.</p>",
                "example": "The request could not be processed.",
                "default": "The request could not be processed.",
                "pattern": "^.+$"
              },
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer",
                "description": "This value represents the total time in milliseconds that the Platform took to process the request.",
                "example": 42,
                "default": 42,
                "pattern": "^[0-9]+$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse_V1",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "Unauthorized. Authentication failed because the API key was missing or invalid.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "The standard error envelope returned when a request cannot be completed.",
            "customType": "errorResponse_V1",
            "schema": [
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "The status code indicating the type of error that occurred.",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z]+$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p>A human-readable description of the error that occurred.</p>",
                "example": "The request could not be processed.",
                "default": "The request could not be processed.",
                "pattern": "^.+$"
              },
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer",
                "description": "This value represents the total time in milliseconds that the Platform took to process the request.",
                "example": 42,
                "default": 42,
                "pattern": "^[0-9]+$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse_V1",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "500",
        "description": "Internal Server Error. An unexpected error occurred while processing the request.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "The standard error envelope returned when a request cannot be completed.",
            "customType": "errorResponse_V1",
            "schema": [
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "The status code indicating the type of error that occurred.",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z]+$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p>A human-readable description of the error that occurred.</p>",
                "example": "The request could not be processed.",
                "default": "The request could not be processed.",
                "pattern": "^.+$"
              },
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer",
                "description": "This value represents the total time in milliseconds that the Platform took to process the request.",
                "example": 42,
                "default": 42,
                "pattern": "^[0-9]+$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse_V1",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "04pFC0wdAmsWxCWYuJY4u",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request GET \\\n     --url 'https://api.mpay.com.au/bpay/v1/billers?search=Telstra&skip=0&take=10' \\\n     --header 'accept: application/json'"
        },
        {
          "id": "mkAsFmOLtWJf_54eLk7sW",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.mpay.com.au/bpay/v1/billers?search=Telstra&skip=0&take=10\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "odwJ6T_yySX6m_UCIhvYj",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.mpay.com.au/bpay/v1/billers?search=Telstra&skip=0&take=10\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Get.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "VBfabNkNsL1QuR78iLoqG",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.mpay.com.au/bpay/v1/billers?search=Telstra&skip=0&take=10\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "04pFC0wdAmsWxCWYuJY4u"
    },
    "results": {
      "languages": [
        {
          "id": "QOGSnMmGW9rQr0cevMGNR",
          "language": "200",
          "code": "// Successful response. The matching BPAY billers were returned.\n{\n  \"search\": \"Telstra\",\n  \"totalCount\": 25,\n  \"skip\": 0,\n  \"take\": 10,\n  \"billers\": [\n    {\n      \"billerCode\": \"123456\",\n      \"billerLongName\": \"Example Biller Proprietary Limited\",\n      \"billerShortName\": \"Example Biller\",\n      \"acceptedPaymentMethods\": \"101,201\",\n      \"activationDate\": \"2020-01-01T00:00:00+10:00\",\n      \"deactivationDate\": \"2030-12-31T00:00:00+10:00\",\n      \"minPaymentAmount\": 1,\n      \"maxPaymentAmount\": 9999999999.99,\n      \"crnValidationRuleName\": \"MOD10V05\",\n      \"checkDigitRuleName\": \"MOD10V05\",\n      \"lengthMask\": \"4-20\",\n      \"fixedDigits\": \"12\",\n      \"isVariableCrn\": true\n    }\n  ],\n  \"durationMs\": 42,\n  \"status\": \"Ok\",\n  \"statusDescription\": \"Operation completed successfully\"\n}"
        },
        {
          "id": "kMD5aZTKAVB21tFHTl0A8",
          "language": "400",
          "code": "// Bad Request. The request was malformed or contained invalid parameters.\n{\n  \"status\": \"Error\",\n  \"statusDescription\": \"The request could not be processed.\",\n  \"durationMs\": 42\n}"
        },
        {
          "id": "T0CJZO782qfyS6L6h8rbM",
          "language": "401",
          "code": "// Unauthorized. Authentication failed because the API key was missing or invalid.\n{\n  \"status\": \"Error\",\n  \"statusDescription\": \"The request could not be processed.\",\n  \"durationMs\": 42\n}"
        },
        {
          "id": "YxbfiJP5NBGgGFOPgNeDF",
          "language": "500",
          "code": "// Internal Server Error. An unexpected error occurred while processing the request.\n{\n  \"status\": \"Error\",\n  \"statusDescription\": \"The request could not be processed.\",\n  \"durationMs\": 42\n}"
        }
      ],
      "selectedLanguageId": "QOGSnMmGW9rQr0cevMGNR"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}