A payment method represents transactable payment information such as credit card details or a customer's authorization to charge a PayPal or Venmo account. Payment methods belong to a customer, are securely stored in the Braintree Vault, and have a paymentMethodToken attribute that you can store on your servers (with reduced PCI compliance burden) and later use to create transactions.

Create

Use Payment Method: Create to create a payment method for an existing customer using a payment method nonce received from the client:

Java
PaymentMethodRequest request = new PaymentMethodRequest()
  .customerId("131866")
  .paymentMethodNonce(nonceFromTheClient);

Result<? extends PaymentMethod> result = gateway.paymentMethod().create(request);

Alternatively, you can create a new customer with a payment method using Customer: Create with the paymentMethodNonce() parameter.

Once successfully created, you can use Transaction: Sale with the paymentMethodToken() parameter to create a transaction.

note

Braintree strongly recommends verifying all cards before they are stored in your Vault by enabling card verification for your entire account in the Control Panel. If you choose to manually verify cards, set verifyCard to true.

Update

Use Payment Method: Update to update an existing payment method.

Make default

Use the makeDefault option to set a payment method as the default for its customer:

Java
PaymentMethodRequest updateRequest = new PaymentMethodRequest()
  .options()
    .makeDefault(true)
    .done();

Result<? extends PaymentMethod> result = gateway.paymentMethod().update("the_token", updateRequest);

Billing address

Update the billing address:

Java
PaymentMethodRequest updateRequest = new PaymentMethodRequest()
  .billingAddress()
    .streetAddress("100 Maple Lane")
    .options()
      .updateExisting(true)
      .done()
    .done();

Result<? extends PaymentMethod> result = gateway.paymentMethod().update("the_token", updateRequest);

If the payment method can't be found, it will throw a NotFoundException.

You can also omit the updateExisting option to create a new billing address for just this payment method.

See the reference and more examples of updating a payment method. If you want to update both payment method and customer information together, use Customer: Update.

Find

Use Payment Method: Find to find a payment method:

Java
PaymentMethod paymentMethod = gateway.paymentMethod().find("token");

If the payment method can't be found, it will throw a NotFoundException.

The return value of the Payment Method: Find call will be a PaymentMethod response object.

Delete

Use Payment Method: Delete to delete a payment method:

Java
Result<? extends PaymentMethod> result = gateway.paymentMethod().delete("the_token");

result.isSuccess();
// true

If the payment method can't be found, it will throw a NotFoundException.

See also