---
updatedAt: 2025-08-21T13:31:40.000Z
agentTools:
  siteIndex: https://merchants.westpac.com.au/llms.txt
  projectIndex: https://merchants.westpac.com.au/onlinepay/llms.txt
---

# Create Customer

> ⚠️
>
> This tool is provided to you for the purposes of assisting you with setting up your website to work with OnlinePay. In using the tool, you acknowledge that you are responsible for your website and for any connectivity with OnlinePay. You are responsible for the use of any output generated by the tool or use of any content and its integration and functionality with your website. You must have adequate technical skills and/or your own support in using the tool.
>
> You must not enter or use any Personal Information including customer Personal Information into or with the tool. The tool is provided for educational and testing purposes only to assist you with your website and live customer data such as card number(s), customer names or other Personal Information must never be used or inputted into the tool.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Customer API",
    "description": "Customer service provides a set of APIs used for storing and managing shoppers' personal details and contact information in a single place. Each stored customer is represented by an `id` which can be attached to the request of other Verifone services, where customer details can be provided (e.g. Checkout or 3DS services).",
    "version": "1.12.0"
  },
  "servers": [
    {
      "url": "https://au.gsc.verifone.cloud/oidc/customer-service",
      "description": "Australia"
    },
    {
      "url": "https://cst.test-gsc.vfims.com/oidc/customer-service",
      "description": "Global Sandbox"
    }
  ],
  "paths": {
    "/v2/customer": {
      "post": {
        "summary": "Create Customer",
        "tags": [
          "Customer"
        ],
        "security": [
          {
            "BasicAuth": []
          }
        ],
        "operationId": "postV2Customer",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/Model4"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "Successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "billing": {
        "type": "object",
        "properties": {
          "address_1": {
            "maxLength": 40,
            "type": "string",
            "description": "Customer's primary billing address information. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements."
          },
          "address_2": {
            "maxLength": 40,
            "type": "string",
            "description": "Customer's secondary billing address information."
          },
          "address_3": {
            "maxLength": 40,
            "type": "string",
            "description": "Customer's third billing address information."
          },
          "city": {
            "maxLength": 28,
            "type": "string",
            "description": "Customer's city on their billing address. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements."
          },
          "country_code": {
            "type": "string",
            "description": "Customer's alpha 2 digit ISO 3166 country code. (e.g. United States = US) <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements."
          },
          "first_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Customer's first name. **Required** in case that companyName is not provided. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements."
          },
          "middle_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Customer's middle name. <br />"
          },
          "last_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Customer's last name. **Required** in case that companyName is not provided. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements."
          },
          "phone": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Customer's phone number for billing address."
          },
          "postal_code": {
            "maxLength": 10,
            "type": "string",
            "description": "Customer's postal code of their billing address. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements. Required unless market or regional mandate restricts sending this information."
          },
          "state": {
            "maxLength": 35,
            "type": "string",
            "description": "Customer's state or province of their billing address. (e,g. Ohio = OH, Texas = TX)"
          }
        }
      },
      "shipping": {
        "type": "object",
        "properties": {
          "address_1": {
            "maxLength": 40,
            "type": "string",
            "description": "Consumer's primary shipping address information.</br>\n**Field required for**: Google Pay, Apple Pay"
          },
          "address_2": {
            "maxLength": 40,
            "type": "string",
            "description": "Consumer's secondary shipping address information."
          },
          "address_3": {
            "maxLength": 40,
            "type": "string",
            "description": "Consumer's third shipping address information."
          },
          "city": {
            "maxLength": 28,
            "type": "string",
            "description": "Consumer's city on their shipping address.</br>\n**Field required for**: Google Pay, Apple Pay"
          },
          "first_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Consumer's first name."
          },
          "middle_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Consumer's middle name."
          },
          "last_name": {
            "maxLength": 22,
            "type": "string",
            "description": "Consumer's last name."
          },
          "phone": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Consumer's phone number.",
            "x-alternatives": [
              {
                "type": "string",
                "maxLength": 25,
                "pattern": "^[0-9-\\s\\-+().-]+$"
              },
              {
                "type": "integer"
              }
            ]
          },
          "country_code": {
            "type": "string",
            "description": "Consumer's alpha 2 digit ISO 3166 country code. (e.g. United\nStates = US)</br>\n**Field required for**: Google Pay, Apple Pay"
          },
          "postal_code": {
            "maxLength": 10,
            "type": "string",
            "description": "Consumer's postal code of their shipping address.</br>\n**Field required for**: Google Pay, Apple Pay"
          },
          "state": {
            "maxLength": 35,
            "type": "string",
            "description": "Consumer's state or province of their shipping address. (e,g.\nOhio = OH, Texas = TX)"
          }
        }
      },
      "tax": {
        "type": "object",
        "properties": {
          "identifier": {
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "An optional identifier of the document recipient:<br> Personal ID (for individuals) <br>Tax identification number (for business)",
            "x-constraint": {
              "length": 9
            }
          }
        }
      },
      "Model1": {
        "required": [
          "created_at",
          "entity_id",
          "id",
          "updated_at"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Customers ID",
            "x-format": {
              "guid": true
            }
          },
          "billing": {
            "$ref": "#/components/schemas/billing"
          },
          "company_name": {
            "maxLength": 100,
            "type": "string",
            "description": "Company of the customer. . **Required** in case that billing.firstName & billing.lastName are not provided."
          },
          "company_registration_number": {
            "maxLength": 24,
            "type": "string",
            "description": "Unique identifier of the company, recognised by the government.\n                        Known as CoC (Chamber of Commerce) number in some countries"
          },
          "email_address": {
            "maxLength": 255,
            "type": "string",
            "description": "Consumer's email address. <br /> Note:Required for 3DS. Please refer to the 3D Secure API specification for the format requirements.",
            "x-format": {
              "email": {
                "minDomainSegments": 2
              }
            }
          },
          "entity_id": {
            "type": "string",
            "description": "Entity id on which the customer is created. Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)"
          },
          "phone_number": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Cardholder's  phone number"
          },
          "shipping": {
            "$ref": "#/components/schemas/shipping"
          },
          "title": {
            "pattern": "^[a-zA-Z-\\s.]+$",
            "maxLength": 120,
            "type": "string",
            "description": "Title"
          },
          "work_phone": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Consumer's work phone number."
          },
          "tax": {
            "$ref": "#/components/schemas/tax"
          },
          "language": {
            "type": "string",
            "description": "Customer language preferences for the Invoice document. Read <a target=\"_blank\" href=\"https://verifone.cloud/docs/online-payments/localisation\">Localisation</a> for details."
          },
          "created_at": {
            "type": "string",
            "description": "Time at which this customer has been created",
            "format": "date"
          },
          "updated_at": {
            "type": "string",
            "description": "Time at which this customer has been updated for last time",
            "format": "date"
          }
        }
      },
      "details": {
        "type": "object"
      },
      "Model3": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "description": "A 3-digit code which uniquely identify an error."
          },
          "details": {
            "$ref": "#/components/schemas/details"
          },
          "message": {
            "type": "string",
            "description": "A description of the error."
          },
          "timestamp": {
            "type": "integer",
            "description": "Error timestamp"
          }
        }
      },
      "Model4": {
        "required": [
          "entity_id"
        ],
        "type": "object",
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/billing"
          },
          "company_name": {
            "maxLength": 100,
            "type": "string",
            "description": "Company of the customer. . **Required** in case that billing.firstName & billing.lastName are not provided."
          },
          "company_registration_number": {
            "maxLength": 24,
            "type": "string",
            "description": "Unique identifier of the company, recognised by the government.\n                        Known as CoC (Chamber of Commerce) number in some countries"
          },
          "email_address": {
            "maxLength": 255,
            "type": "string",
            "description": "Consumer's email address.<br>\n Note: Required for 3DS. Please refer to the 3D Secure API specification for the format requirements.",
            "x-format": {
              "email": {
                "minDomainSegments": 2
              }
            }
          },
          "entity_id": {
            "type": "string",
            "description": "Entity id on which the customer is created. Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)"
          },
          "phone_number": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Cardholder's  phone number"
          },
          "shipping": {
            "$ref": "#/components/schemas/shipping"
          },
          "title": {
            "pattern": "^[a-zA-Z-\\s.]+$",
            "maxLength": 120,
            "type": "string",
            "description": "Title"
          },
          "work_phone": {
            "maxLength": 25,
            "pattern": "^[0-9-\\s\\-+().-]+$",
            "type": "string",
            "description": "Consumer's work phone number."
          },
          "tax": {
            "$ref": "#/components/schemas/tax"
          },
          "language": {
            "type": "string",
            "description": "Customer language preferences for the Invoice document. Read <a target=\"_blank\" href=\"https://verifone.cloud/docs/online-payments/localisation\">Localisation</a> for details."
          }
        }
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  }
}
```