Returns a collection of Customer response objects.

For operators available on search fields, see the search fields page.

Node.js
var stream = gateway.customer.search(function (search) {
  search.id().is("the_customer_id");
}, function (err, response) {
  response.each(function (err, customer) {
    console.log(customer.firstName);
  });
});
Parameters
addressCountryName text

The country on an address associated with the customer.

addressExtendedAddress text

The extended address on an address associated with the customer.

addressFirstName text

The first name on an address associated with the customer.

addressLastName text

The last name on an address associated with the customer.

addressLocality text

The locality (e.g. city) on an address associated with the customer.

addressPostalCode text

The postal code on an address associated with the customer.

addressRegion text

The region (e.g. state) on an address associated with the customer.

addressStreetAddress text

The street address on an address associated with the customer.

cardholderName text

The name on a credit card associated with the customer.

company text

The customer's company.

createdAt range

The date/time the customer was created.

creditCardExpirationDate text

The expiration date of a credit card associated with the customer.

creditCardNumber text

The number of a credit card associated with the customer.

Card number search is restricted: starts with searches up to the first 6 digits, ends with searches last 4 digits, and contains is not allowed.

email text

The customer's email.

fax text

The customer's fax number.

firstName text

The customer's first name.

id text

A string value representing an existing customer in your Vault.

ids multiple

A list of customer IDs to search for.

lastName text

The customer's last name.

paymentMethodToken text

The payment method token of a payment method associated with the customer.

paymentMethodTokenWithDuplicates text

Same as payment method token, except this will return all customers that have a credit card with the same number as the payment method being searched.

paypalAccountEmail text

The email of a PayPal account associated with the customer.

phone text

The customer's phone number.

website text

The customer's website.

Examples

Customer fields

Node.js
var stream = gateway.customer.search(function (search) {
  search.company().is("Acme Inc.");
  search.email().is("john.doe@example.com");
  search.fax().is("555-123-1234");
  search.firstName().is("John");
  search.id().is("theCustomerId");
  search.lastName().is("Doe");
  search.phone().is("555-321-4321");
  search.website().is("http://www.example.com");
});

Address fields

Node.js
var stream = gateway.customer.search(function (search) {
  search.addressFirstName().is("John");
  search.addressLastName().is("Doe");
  search.addressStreetAddress().is("111 First St.");
  search.addressExtendedAddress().is("Suite #3");
  search.addressLocality().is("Chicago");
  search.addressRegion().is("IL");
  search.addressPostalCode().is("12345");
  search.addressCountryName().is("USA");
});

Credit card fields

Node.js
var stream = gateway.customer.search(function (search) {
  search.cardholderName().is("John Doe");
  search.paymentMethodToken().is("thePaymentMethodToken");
});

Credit card number

Searching on credit card number has a few restrictions. If you search using "starts with" you can only enter up to the first 6 digits. If you search using "ends with" you can only enter the last 4 digits. And you can't search on "contains."

Node.js
var stream = gateway.customer.search(function (search) {
  search.creditCardNumber().startsWith("510510");
});
Node.js
var stream = gateway.customer.search(function (search) {
  search.creditCardNumber().endsWith("5100");
});

Expiration date

Expiration date also has restrictions. "is" and "is not" work, while "starts with," "ends with," and "contains" do not.

Node.js
var stream = gateway.customer.search(function (search) {
  search.creditCardExpirationDate().is("12/13");
});
Node.js
var stream = gateway.customer.search(function (search) {
  search.creditCardExpirationDate().isNot("12/13");
});

Created at

You can search for customers that were created at a certain time. For instance, you can find all customers which were created in the past 3 days.

An example:

Node.js
var today = new Date();
var yesterday = new Date();
yesterday.setDate(today.getDate() - 1);

var stream = gateway.customer.search(function (search) {
  search.createdAt().min(yesterday);
});

Payment method token with duplicates

You can search for customers that have duplicated credit card numbers using payment method token as a reference.

An example:

Node.js
var stream = gateway.customer.search(function (search) {
  search.paymentMethodTokenWithDuplicates().is("paymentMethodToken");
});

All customers

You can get a list of all customers stored in the Vault. This will return a resource collection of customer objects. Search results are currently capped so this may not work for everybody.

Node.js
// this call is not implemented in node

See also