The customer object is an important component of the Braintree gateway. Use customers to store and organize payment methods. A single customer can have multiple payment methods.

This guide will walk you through the basics. See Customer Request and Customer Response references for complete details.

Create

Use Braintree_Customer::create() to add new customers.

You can create just a customer without an associated payment method, and the operation will be successful if all customer validations pass:

PHP
Click to copy
Copied
$result = Braintree_Customer::create([
    'firstName' => 'Mike',
    'lastName' => 'Jones',
    'company' => 'Jones Co.',
    'email' => 'mike.jones@example.com',
    'phone' => '281.330.8004',
    'fax' => '419.555.1235',
    'website' => 'http://example.com'
]);

$result->success;
# true

$result->customer->id;
# Generated customer id

Create with payment method

You can also create a customer with an associated payment method:

PHP
Click to copy
Copied
$result = Braintree_Customer::create([
    'firstName' => 'Mike',
    'lastName' => 'Jones',
    'company' => 'Jones Co.',
    'paymentMethodNonce' => nonceFromTheClient
]);
if ($result->success) {
    echo($result->customer->id);
    echo($result->customer->paymentMethods[0]->token);
} else {
    foreach($result->errors->deepAll() AS $error) {
        echo($error->code . ": " . $error->message . "\n");
    }
}

Success depends on both customer validations and payment method validations, and whether the payment method is verified (if card verification is enabled).

See the reference and more examples of creating a customer.

Update

Use Braintree_Customer::update() to update an existing customer:

PHP
Click to copy
Copied
$updateResult = Braintree_Customer::update(
    'a_customer_id',
    [
      'firstName' => 'New First',
      'lastName' => 'New Last',
      'company' => 'New Company',
      'email' => 'new.email@example.com',
      'phone' => 'new phone',
      'fax' => 'new fax',
      'website' => 'http://new.example.com'
    ]
);

$updateResult->success
# true if update was successful

If the customer cannot be found, you'll receive a Braintree_Exception_NotFound exception.

See the reference and more examples of updating a customer.

Find

Use Braintree_Customer::find() to find a customer by ID:

PHP
Click to copy
Copied
$customer = Braintree_Customer::find('a_customer_id');

If the customer cannot be found, you'll receive a Braintree_Exception_NotFound exception.

The return value of this call will be a Braintree_Customer response object.

Delete

Use Braintree_Customer::delete() to delete a customer and its payment methods using the customer's ID:

PHP
Click to copy
Copied
$result = Braintree_Customer::delete('a_customer_id');

$result->success
#=> true

If the customer cannot be found, you'll receive a Braintree_Exception_NotFound exception.

Still have questions?

If you can’t find an answer, contact our Support team.