Verifone Customer API

Operations for creating, retrieving, updating, and deleting customer records.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/verifone-customer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

verifone-customer-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: 3D Secure 3DS Authentication Customer API
  version: 3.43.0
  description: Operations for listing and retrieving 3DS authentication records. Use these endpoints to query historical authentication results filtered by amount, currency, card, status, and more.
servers:
- url: https://emea.gsc.verifone.cloud/oidc/3ds-service
  description: EMEA Production
- url: https://us.gsc.verifone.cloud/oidc/3ds-service
  description: Americas Production
- url: https://nz.gsc.verifone.cloud/oidc/3ds-service
  description: New Zealand Production
- url: https://cst.test-gsc.vfims.com/oidc/3ds-service
  description: Global Sandbox
- url: https://uscst-gb.gsc.vficloud.net/oidc/3ds-service
  description: Americas Sandbox
security:
- BearerAuth: []
- BasicAuth: []
tags:
- name: Customer
  description: Operations for creating, retrieving, updating, and deleting customer records.
paths:
  /v2/customer:
    get:
      tags:
      - Customer
      summary: List Customers
      operationId: getV2Customer
      parameters:
      - name: search
        in: query
        required: true
        description: "A filter query in [RSQL format](https://aboullaite.me/rsql/) to retrieve customers. The returned\ncustomers are limited to those that can be retrieved by the user.\n\n**Filterable fields:**\n\n| Criteria | Type | Operators |\n|---|---|---|\n| billing.address_1 | string | ==, !=, =in=, =out=, =regex= |\n| billing.address_2 | string | ==, !=, =in=, =out=, =regex= |\n| billing.address_3 | string | ==, !=, =in=, =out=, =regex= |\n| billing.city | string | ==, !=, =in=, =out=, =regex= |\n| billing.country_code | string | ==, !=, =in=, =out=, =regex= |\n| billing.first_name | string | ==, !=, =in=, =out=, =regex= |\n| billing.middle_name | string | ==, !=, =in=, =out=, =regex= |\n| billing.last_name | string | ==, !=, =in=, =out=, =regex= |\n| billing.phone | string | ==, !=, =in=, =out=, =regex= |\n| billing.postal_code | string | ==, !=, =in=, =out=, =regex= |\n| billing.state | string | ==, !=, =in=, =out=, =regex= |\n| company_name | string | ==, !=, =in=, =out=, =regex= |\n| company_registration_number | string | ==, !=, =in=, =out=, =regex= |\n| email_address | string | ==, !=, =in=, =out=, =regex= |\n| entity_id | string | ==, !=, =in=, =out=, =regex= |\n| id | string | ==, !=, =in=, =out=, =regex= |\n| phone_number | string | ==, !=, =in=, =out=, =regex= |\n| shipping.address_1 | string | ==, !=, =in=, =out=, =regex= |\n| shipping.address_2 | string | ==, !=, =in=, =out=, =regex= |\n| shipping.address_3 | string | ==, !=, =in=, =out=, =regex= |\n| shipping.city | string | ==, !=, =in=, =out=, =regex= |\n| shipping.country_code | string | ==, !=, =in=, =out=, =regex= |\n| shipping.first_name | string | ==, !=, =in=, =out=, =regex= |\n| shipping.middle_name | string | ==, !=, =in=, =out=, =regex= |\n| shipping.last_name | string | ==, !=, =in=, =out=, =regex= |\n| shipping.phone | number | ==, !=, =in=, =out=, =gt=, =ge=, =lt=, =le= |\n| shipping.postal_code | string | ==, !=, =in=, =out=, =regex= |\n| shipping.state | string | ==, !=, =in=, =out=, =regex= |\n| title | string | ==, !=, =in=, =out=, =regex= |\n| work_phone | string | ==, !=, =in=, =out=, =regex= |\n| tax.identifier | string | ==, !=, =in=, =out=, =regex= |\n| created_at | date | ==, !=, =in=, =out=, =gt=, =ge=, =lt=, =le= |\n| updated_at | date | ==, !=, =in=, =out=, =gt=, =ge=, =lt=, =le= |\n| language | string | ==, !=, =in=, =out=, =regex= |\n\n**Operators:**\n\n| Operator | Description |\n|---|---|\n| == | equal |\n| != | not equal |\n| =lt= | less than |\n| =le= | less than and equal to |\n| =gt= | greater than |\n| =ge= | greater than and equal to |\n| =regex= | pattern matching |\n| =in= | multiple arguments search |\n| =out= | exclude |\n| **;** | Logical AND |\n| **,** | Logical OR |\n\n**Note:** Logical AND (`;`) has higher precedence than Logical OR (`,`). Use parentheses `()` to\noverride operator precedence.\n\n**Examples:**\n\n    /v2/customer?search=id==123&order_by=ASC&order_criteria=email_address&page_size=1&page_number=2\n\n    /v2/customer?search=id==123435&order_by=DESC&order_criteria=billing.address_1&page_size=10&page_number=1\n\n    /v2/customer?search=id==dg373&order_by=ASC&order_criteria=company_name&page_size=1&page_number=2"
        schema:
          type: string
      - name: order_criteria
        in: query
        description: 'The field to order results by. If not specified, results are ordered by created date.


          Allowed values: `billing.address_1`, `billing.address_2`, `billing.address_3`, `billing.city`,

          `billing.country_code`, `billing.first_name`, `billing.middle_name`, `billing.last_name`,

          `billing.phone`, `billing.postal_code`, `billing.state`, `company_name`,

          `company_registration_number`, `email_address`, `entity_id`, `id`, `phone_number`,

          `shipping.address_1`, `shipping.address_2`, `shipping.address_3`, `shipping.city`,

          `shipping.country_code`, `shipping.first_name`, `shipping.last_name`, `shipping.phone`,

          `shipping.postal_code`, `shipping.state`, `title`, `work_phone`, `tax.identifier`, `created_at`'
        schema:
          type: string
      - name: order_by
        in: query
        description: The sort direction. Defaults to `DESC` if not specified.
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: page_number
        in: query
        description: Page number to retrieve. Defaults to `1` if not specified.
        schema:
          minimum: 1
          type: integer
      - name: page_size
        in: query
        description: Number of results per page. Defaults to `50` if not specified.
        schema:
          minimum: 1
          type: integer
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Customer
      summary: Create Customer
      operationId: postV2Customer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/customer/{customerId}:
    get:
      tags:
      - Customer
      summary: Get Customer
      operationId: getV2CustomerById
      parameters:
      - name: customerId
        in: path
        description: Customer UUID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Customer
      summary: Update Customer
      operationId: postV2CustomerById
      parameters:
      - name: customerId
        in: path
        description: Customer UUID
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerRequest'
        required: true
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Customer
      summary: Delete Customer
      operationId: deleteV2CustomerById
      parameters:
      - name: customerId
        in: path
        description: Customer UUID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Customer successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Tax:
      type: object
      properties:
        identifier:
          pattern: ^[0-9]+$
          type: string
          maxLength: 9
          description: 'An optional identifier of the document recipient:


            - Personal ID (for individuals)

            - Tax identification number (for businesses)'
    Billing:
      type: object
      properties:
        address_1:
          maxLength: 40
          type: string
          description: 'Customer''s primary billing address information.


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for 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.


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        country_code:
          type: string
          description: 'Customer''s alpha-2 ISO 3166 country code (e.g. `US` for United States).


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        first_name:
          maxLength: 22
          type: string
          description: 'Customer''s first name. **Required** when `company_name` is not provided.


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        middle_name:
          maxLength: 22
          type: string
          description: Customer's middle name.
        last_name:
          maxLength: 22
          type: string
          description: 'Customer''s last name. **Required** when `company_name` is not provided.


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        phone:
          maxLength: 25
          pattern: ^[0-9\s\-+().-]+$
          type: string
          description: Customer's phone number for the billing address.
        postal_code:
          maxLength: 10
          type: string
          description: 'Customer''s postal code for their billing address.


            **Note:** Required for 3DS unless a market or regional mandate restricts sending this information.'
        state:
          maxLength: 35
          type: string
          description: Customer's state or province for their billing address (e.g. `OH` for Ohio, `TX` for Texas).
    CustomerRequest:
      required:
      - entity_id
      type: object
      properties:
        billing:
          $ref: '#/components/schemas/Billing'
        company_name:
          maxLength: 100
          type: string
          description: Company name of the customer. **Required** when `billing.first_name` and `billing.last_name` are not provided.
        company_registration_number:
          maxLength: 24
          type: string
          description: Unique identifier of the company recognised by the government. Known as CoC (Chamber of Commerce) number in some countries.
        email_address:
          maxLength: 255
          type: string
          format: email
          description: 'Consumer''s email address.


            **Field required for:** Klarna, PayPal


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        entity_id:
          type: string
          description: Entity ID on which the customer is created. The Entity ID can be found at the organisation level as Organisation ID (`Administration > Organizations > [Organization] > Organisation ID`).
        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: Customer's title (e.g. `Mr`, `Mrs`, `Dr`).
        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 preference for Invoice documents. See [Localisation](https://docs.verifone.com/online-payments/checkout/localization) for details.
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: A 3-digit code that uniquely identifies the error.
        details:
          type: object
          description: Additional error details.
        message:
          type: string
          description: A human-readable description of the error.
        timestamp:
          type: integer
          description: Unix timestamp of when the error occurred.
    CustomerResponse:
      required:
      - created_at
      - entity_id
      - id
      - updated_at
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Customer UUID.
        billing:
          $ref: '#/components/schemas/Billing'
        company_name:
          maxLength: 100
          type: string
          description: Company name of the customer. **Required** when `billing.first_name` and `billing.last_name` are not provided.
        company_registration_number:
          maxLength: 24
          type: string
          description: Unique identifier of the company recognised by the government. Known as CoC (Chamber of Commerce) number in some countries.
        email_address:
          maxLength: 255
          type: string
          format: email
          description: 'Consumer''s email address.


            **Note:** Required for 3DS. Please refer to the 3D Secure API specification for format requirements.'
        entity_id:
          type: string
          description: Entity ID on which the customer is created.
        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: Customer's title (e.g. `Mr`, `Mrs`, `Dr`).
        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 preference for Invoice documents. See [Localisation](https://docs.verifone.com/online-payments/checkout/localization) for details.
        created_at:
          type: string
          format: date-time
          description: Timestamp when this customer was created.
        updated_at:
          type: string
          format: date-time
          description: Timestamp when this customer was last updated.
    Shipping:
      type: object
      properties:
        address_1:
          maxLength: 40
          type: string
          description: 'Consumer''s primary shipping address information.


            **Field required for:** Klarna, PayPal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish'
        address_2:
          maxLength: 40
          type: string
          description: 'Consumer''s secondary shipping address information.


            **Field required for:** PayPal'
        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.


            **Field required for:** Klarna, PayPal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish'
        first_name:
          maxLength: 22
          type: string
          description: 'Consumer''s first name.


            **Field required for:** Klarna, Vipps, MobilePay'
        middle_name:
          maxLength: 22
          type: string
          description: Consumer's middle name.
        last_name:
          maxLength: 22
          type: string
          description: 'Consumer''s last name.


            **Field required for:** Klarna, Vipps, MobilePay'
        phone:
          maxLength: 25
          pattern: ^[0-9\s\-+().-]+$
          type: string
          description: 'Consumer''s phone number for the shipping address.


            **Field required for:** Klarna, PayPal, Vipps, MobilePay'
        country_code:
          type: string
          description: 'Consumer''s alpha-2 ISO 3166 country code (e.g. `US` for United States).


            **Field required for:** Klarna, PayPal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish'
        postal_code:
          maxLength: 10
          type: string
          description: 'Consumer''s postal code for their shipping address.


            **Field required for:** Klarna, PayPal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish'
        state:
          maxLength: 35
          type: string
          description: 'Consumer''s state or province for their shipping address (e.g. `OH` for Ohio, `TX` for Texas).


            **Field required for:** Klarna, PayPal'
    CustomerListResponse:
      type: array
      items:
        $ref: '#/components/schemas/CustomerResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT Bearer token. Pass as: `Authorization: Bearer <token>`. The JWT must be signed with your Verifone-provisioned private key and must include `entity_id`, `sub` (user_id), and `roles` claims.'
    BasicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic authentication. Pass base64-encoded `username:password` as: `Authorization: Basic <credentials>`.'