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 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:
CustomerRequest request = new CustomerRequest()
.firstName("Mark")
.lastName("Jones")
.company("Jones Co.")
.email("mark.jones@example.com")
.fax("419-555-1234")
.phone("614-555-1234")
.website("http://example.com");
Result<Customer> result = gateway.customer().create(request);
result.isSuccess();
// true
result.getTarget().getId();
// e.g. 594019
Create with payment method
You can also create a customer with an associated payment method:
CustomerRequest request = new CustomerRequest()
.firstName("Fred")
.lastName("Jones")
.paymentMethodNonce(nonceFromTheClient);
Result<Customer> result = gateway.customer().create(request);
result.isSuccess();
// true
Customer customer = result.getTarget();
customer.getId();
// e.g. 160923
customer.getPaymentMethods().get(0).getToken();
// e.g. f28w
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 Customer.update()
to update an existing customer:
CustomerRequest request = new CustomerRequest()
.firstName("New First Name")
.lastName("New Last Name");
Result<Customer> updateResult = gateway.customer().update("the_customer_id", request);
If the customer can't be found, it will throw a NotFoundException
.
See the reference and more examples of updating a customer.
Find
Use Customer.find()
to find a customer by ID:
Customer customer = gateway.customer().find("the_customer_id");
If the customer can't be found, it will throw a NotFoundException
.
The return value of this call will be a Customer
response object.
Delete
Use Customer.delete()
to delete a customer and its payment methods using the customer's ID:
Result<Customer> result = gateway.customer().delete("the_customer_id");
result.isSuccess();
// true
If the customer can't be found, it will throw a NotFoundException
.