Server-side Implementation
Create payment method
Once the customer has successfully authenticated with PayPal, you can use one of the following calls
to create a payment method. You will be using this payment method for processing transactions
against the PayPal Order.
Create a new customer with a payment method
If you do not already have a record for this customer in your Vault, you can create a new customer
with a payment method using
Customer: Create
with the
paymentMethodNonce
parameter.
- Callbacks
- Promises
gateway.customer.create({
firstName: "Charity",
lastName: "Smith",
paymentMethodNonce: nonceFromTheClient
}, (err, result) => {
result.success;
// true
result.customer.id;
// e.g 160923
result.customer.paymentMethods[0].token;
// e.g f28wm
});
Update an existing customer with a payment method
If the customer already exists in your Vault, you can add a new payment method to that customer
using Customer: Update
with the
paymentMethodNonce
parameter.
- Callbacks
- Promises
gateway.customer.update("theCustomerId", {
paymentMethodNonce: nonceFromTheClient
}, (err, result) => {
result.success;
// true
});
notFoundError
. Alternatively, you can use
Payment Method: Create
to accomplish the
same thing as above.
Process transactions
Use the transaction API to process customer payments against the PayPal Order:
- Create a transaction using payment information
- Submit a transaction for settlement to get paid
- Find a transaction
- Search for transactions that match specific criteria
- Void a transaction to cancel it before it settles
- Refund a settled transaction to return funds to the customer
Currency support
The customer will be charged in the currency associated with the
merchantAccountId passed in the
Transaction: Sale
call. We support
all currencies that PayPal REST APIs support. For details on accepting foreign currencies with PayPal, see our
PayPal account setup guide.
Seller Protection
By passing a shipping address, you may also be eligible for
PayPal Seller Protection. You can check the status of Seller Protection as follows:
- Callbacks
- Promises
gateway.transaction.find("theTransactionId", (err, transaction) => {
transaction.paypalAccount.sellerProtectionStatus;
// "ELIGIBLE"
});
Void an order
As the PayPal Order is represented by a customer's payment method, to void an order you need to
delete the payment method by calling
Payment Method: Delete
.