---
title: Validate a Verification Token
slug: api/validate-a-verification-token
docTags: 
createdAt: 2026-09-15T06:22:27.331Z
---

{
  "id": "uwzmVsWq-8yJHGaj_-r7D",
  "type": "api-oas-v2",
  "data": {
    "method": "POST",
    "url": "https://api.mpay.com.au/verify/v1/aba/validate",
    "servers": [
      {
        "url": "https://api.mpay.com.au/verify/v1/aba/validate",
        "description": "Production URL"
      },
      {
        "url": "https://api.m-pay.com.au/verify/v1/aba/validate",
        "description": "Sandbox URL"
      }
    ],
    "name": "Validate a Verification Token",
    "description": "Completes a verification by submitting the verification token together with the amount and code that were received on the account being verified.",
    "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": [],
      "bodyDataParameters": [
        {
          "kind": "required",
          "name": "body",
          "type": "object",
          "description": "Request payload used to complete a verification against an issued token.",
          "customType": "verifyValidateBody_V1",
          "schema": [
            {
              "name": "token",
              "kind": "required",
              "type": "string",
              "description": "<p><strong>Required.</strong> The text(GUID) that identifies the token, as returned by verify/v2/aba/initiate.</p>",
              "example": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
              "default": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            {
              "name": "amount",
              "kind": "optional",
              "type": "number<double>",
              "description": "<p><strong>Conditional.</strong> The amount credited to the account being verified, as observed by the account holder. Supply this value when the verification was initiated using an amount.</p>",
              "example": 0.03,
              "default": 0.03,
              "format": "double",
              "minimum": 0,
              "pattern": "^\\d+(\\.\\d{1,2})?$",
              "multipleOf": 0.01
            },
            {
              "name": "code",
              "kind": "optional",
              "type": "string",
              "description": "<p><strong>Conditional.</strong> The code received on the account being verified, as observed by the account holder. Supply this value when the verification was initiated using a code.</p>",
              "example": "483920",
              "default": "483920",
              "maxLength": 20,
              "pattern": "^[A-Za-z0-9]{1,20}$"
            }
          ],
          "modelRef": "#/components/schemas/verifyValidateBody_V1",
          "isExpanded": true
        }
      ],
      "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": "Success. The verification token was validated successfully.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "Response returned when a verification token is validated.",
            "customType": "verifyAccountValidateResponse_V1",
            "schema": [
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "<p><strong>Required.</strong> This value represents the total time in milliseconds that the Platform took to process the request.</p>",
                "example": 74,
                "default": 74,
                "format": "int32",
                "minimum": 0,
                "pattern": "^[0-9]{1,10}$"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is the status of the request. A code of 'Ok' indicates no errors.</p>",
                "example": "Ok",
                "default": "Ok",
                "pattern": "^[A-Za-z0-9]{1,32}$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> 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": "^.{0,512}$"
              }
            ],
            "modelRef": "#/components/schemas/verifyAccountValidateResponse_V1",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "<p>Bad Request. The request could not be processed because one or more fields are missing, malformed, or failed validation. Check <code>statusDescription</code> for the specific field or rule that failed.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"durationMs\":12,\"status\":\"Error\",\"statusDescription\":\"Validation failed: 'bsb' must be in the format '000-000'.\"}",
            "description": "Standard error envelope returned by every Account Verification endpoint.",
            "customType": "errorResponse",
            "schema": [
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "<p><strong>Required.</strong> This value represents the total time in milliseconds that the Platform took to process the request.</p>",
                "example": 12,
                "default": 12,
                "format": "int32",
                "minimum": 0,
                "pattern": "^[0-9]{1,10}$"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is the status of the request. A code of 'Ok' indicates no errors. Any other code indicates that the request failed.</p>",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z0-9]{1,32}$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is a description of the status. When the request fails, this explains which field or rule caused the failure.</p>",
                "example": "Validation failed: 'bsb' must be in the format '000-000'.",
                "default": "Validation failed: 'bsb' must be in the format '000-000'.",
                "pattern": "^.{0,512}$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "401",
        "description": "<p>Unauthorized. The API key was missing, malformed, or is not valid for this environment. Pass your API key as the basic authentication username with no password.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"durationMs\":4,\"status\":\"Unauthorized\",\"statusDescription\":\"Authentication failed. Supply a valid API key as the basic authentication username.\"}",
            "description": "Standard error envelope returned by every Account Verification endpoint.",
            "customType": "errorResponse",
            "schema": [
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "<p><strong>Required.</strong> This value represents the total time in milliseconds that the Platform took to process the request.</p>",
                "example": 12,
                "default": 12,
                "format": "int32",
                "minimum": 0,
                "pattern": "^[0-9]{1,10}$"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is the status of the request. A code of 'Ok' indicates no errors. Any other code indicates that the request failed.</p>",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z0-9]{1,32}$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is a description of the status. When the request fails, this explains which field or rule caused the failure.</p>",
                "example": "Validation failed: 'bsb' must be in the format '000-000'.",
                "default": "Validation failed: 'bsb' must be in the format '000-000'.",
                "pattern": "^.{0,512}$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "500",
        "description": "Internal Server Error. An unexpected error occurred while processing the request. The request was not completed and can be safely retried.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"durationMs\":1503,\"status\":\"Error\",\"statusDescription\":\"An unexpected error occurred while processing the request. Please try again later.\"}",
            "description": "Standard error envelope returned by every Account Verification endpoint.",
            "customType": "errorResponse",
            "schema": [
              {
                "name": "durationMs",
                "kind": "optional",
                "type": "integer<int32>",
                "description": "<p><strong>Required.</strong> This value represents the total time in milliseconds that the Platform took to process the request.</p>",
                "example": 12,
                "default": 12,
                "format": "int32",
                "minimum": 0,
                "pattern": "^[0-9]{1,10}$"
              },
              {
                "name": "status",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is the status of the request. A code of 'Ok' indicates no errors. Any other code indicates that the request failed.</p>",
                "example": "Error",
                "default": "Error",
                "pattern": "^[A-Za-z0-9]{1,32}$"
              },
              {
                "name": "statusDescription",
                "kind": "optional",
                "type": "string",
                "description": "<p><strong>Required.</strong> This is a description of the status. When the request fails, this explains which field or rule caused the failure.</p>",
                "example": "Validation failed: 'bsb' must be in the format '000-000'.",
                "default": "Validation failed: 'bsb' must be in the format '000-000'.",
                "pattern": "^.{0,512}$"
              }
            ],
            "modelRef": "#/components/schemas/errorResponse",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "M-IWkNsNLMSA55yyLvAR_",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request POST \\\n     --url https://api.mpay.com.au/verify/v1/aba/validate \\\n     --header 'accept: application/json' \\\n     --header 'content-type: application/json' \\\n     --data '{\n     \"token\": \"3f2504e0-4f89-11d3-9a0c-0305e82c3301\",\n     \"amount\": 0.03,\n     \"code\": \"483920\"\n     }'"
        },
        {
          "id": "J0bC4fNeZ1QVE70NoU5P7",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar raw = JSON.stringify({\n   \"token\": \"3f2504e0-4f89-11d3-9a0c-0305e82c3301\",\n   \"amount\": 0.03,\n   \"code\": \"483920\"\n});\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   body: raw,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.mpay.com.au/verify/v1/aba/validate\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "C04HUc-9rwNEGi1nVFlFY",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.mpay.com.au/verify/v1/aba/validate\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest.body = JSON.dump({\n   \"token\": \"3f2504e0-4f89-11d3-9a0c-0305e82c3301\",\n   \"amount\": 0.03,\n   \"code\": \"483920\"\n})\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "CKhnQ5n0oO1DaT1VJOKH6",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.mpay.com.au/verify/v1/aba/validate\"\n\npayload = json.dumps({\n   \"token\": \"3f2504e0-4f89-11d3-9a0c-0305e82c3301\",\n   \"amount\": 0.03,\n   \"code\": \"483920\"\n})\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "M-IWkNsNLMSA55yyLvAR_"
    },
    "results": {
      "languages": [
        {
          "id": "response-0-200",
          "language": "200",
          "code": "// Success. The verification token was validated successfully.\n{\n  \"durationMs\": 74,\n  \"status\": \"Ok\",\n  \"statusDescription\": \"Operation completed successfully\"\n}"
        },
        {
          "id": "response-1-400",
          "language": "400",
          "code": "// Bad Request. The request could not be processed because one or more fields are missing, malformed, or failed validation. Check statusDescription for the specific field or rule that failed.\n{\n  \"durationMs\": 12,\n  \"status\": \"Error\",\n  \"statusDescription\": \"Validation failed: 'bsb' must be in the format '000-000'.\"\n}"
        },
        {
          "id": "response-2-401",
          "language": "401",
          "code": "// Unauthorized. The API key was missing, malformed, or is not valid for this environment. Pass your API key as the basic authentication username with no password.\n{\n  \"durationMs\": 12,\n  \"status\": \"Error\",\n  \"statusDescription\": \"Validation failed: 'bsb' must be in the format '000-000'.\"\n}"
        },
        {
          "id": "response-3-500",
          "language": "500",
          "code": "// Internal Server Error. An unexpected error occurred while processing the request. The request was not completed and can be safely retried.\n{\n  \"durationMs\": 12,\n  \"status\": \"Error\",\n  \"statusDescription\": \"Validation failed: 'bsb' must be in the format '000-000'.\"\n}"
        }
      ],
      "selectedLanguageId": "response-0-200"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}