On This Page
PayPal and Venmo Developer Guide
This section describes how to use this guide and where to find further information.
- Audience and Purpose
- This guide is written for application developers who want to integrate PayPal, Pay Later, and Venmo into their order management system.
- Convention
- This statement appears in this document:IMPORTANTAnImportantstatement contains information essential to successfully completing a task or learning a concept.
- Customer Support
- For support information about any service, visit the Support Center:
Recent Revisions to This Document
25.11.01
This is the first General Availability release of this guide.
25.05.01
Add a new section for creating a Venmo order. See Create a Venmo Order.
Updated the payment workflows to distinguish the differences between PayPal and Venmo. See
Authorizing and Capturing a Payment Workflow and Processing a Sale Workflow.
25.01.01
Pilot release.
VISA Platform Connect: Specifications and Conditions for
Resellers/Partners
The following are specifications and conditions that apply to a Reseller/Partner enabling
its merchants through
Cybersource for
. Failure to meet any of the specifications and conditions below is
subject to the liability provisions and indemnification obligations under
Reseller/Partner’s contract with Visa/Cybersource.Visa Platform Connect
(“VPC”)
processing- Before boarding merchants for payment processing on a VPC acquirer’s connection, Reseller/Partner and the VPC acquirer must have a contract or other legal agreement that permits Reseller/Partner to enable its merchants to process payments with the acquirer through the dedicated VPC connection and/or traditional connection with such VPC acquirer.
- Reseller/Partner is responsible for boarding and enabling its merchants in accordance with the terms of the contract or other legal agreement with the relevant VPC acquirer.
- Reseller/Partner acknowledges and agrees that all considerations and fees associated with chargebacks, interchange downgrades, settlement issues, funding delays, and other processing related activities are strictly between Reseller and the relevant VPC acquirer.
- Reseller/Partner acknowledges and agrees that the relevant VPC acquirer is responsible for payment processing issues, including but not limited to, transaction declines by network/issuer, decline rates, and interchange qualification, as may be agreed to or outlined in the contract or other legal agreement between Reseller/Partner and such VPC acquirer.
DISCLAIMER: NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR ANY ERRORS OR
OMISSIONS BY THE
Visa Platform Connect
ACQUIRER IN PROCESSING TRANSACTIONS. NEITHER VISA
NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR RESELLER/PARTNER BOARDING MERCHANTS OR
ENABLING MERCHANT PROCESSING IN VIOLATION OF THE TERMS AND CONDITIONS IMPOSED BY THE
RELEVANT Visa Platform Connect
ACQUIRER. Introduction to PayPal and Venmo
PayPal and Venmo are two payment methods that you can offer your customers through
Cybersource
. When your customers check out on your website, they can choose
to pay with PayPal or Venmo, and then use their PayPal or Venmo account to complete the
purchase. PayPal also offers installant payments known as PayPal Pay Later. Benefits
Integrating PayPal or Venmo into your system gives you and your customers these
payment options.
- PayPal
- PayPal is a secure and convenient payment service. Your customers can make payments without directly using their bank accounts or credit cards.
- Venmo (US only)
- Venmo is a mobile payment service owned by PayPal that enables your customers to make payments from their Venmo mobile app. Customers link their Venmo accounts to their bank accounts, debit cards, and credit cards to send and receive payments.IMPORTANTVenmo requires that you integrate a JavaScript SDK into your checkout experience.For more information about how to integrate the SDK into your website, see the Pay with Venmo integration section and the JavaScript SDK reference section on the PayPal developer website:
- Pay with Venmo integration:
- JavaScript SDK reference:https://developer.paypal.com/sdk/js/reference/
- PayPal Pay Later
- With PayPal, customers can pay in installments, but merchants receive full payment immediately.
- Pay in 3:Customer pays in three installments. Available in the UK.
- Pay in 4:Customers pay in four installments. Available in the US.
- Pay Monthly:Customers pay in monthly recurring installments.
Getting Started with REST
To begin processing payments through
Cybersource
, you must first set
up your payment processing system to be REST compliant. Cybersource
uses the REST architecture for developing web services. REST enables communication
between a client and server using HTTP protocols. If you have not set up secure communications between your client and server using
either a
JSON Web Token
or HTTP signature
, see the Getting Started with REST Developer
Guide
.Set Up Merchant Accounts
Before you can process payments with PayPal, you must acquire PayPal merchant
credentials. Complete these steps to obtain the credentials and to link your PayPal
merchant account with your
Cybersource
merchant account:- Set up a PayPal business or premier account:
- Set up a PayPal developer sandbox account.
- Create your PayPal credentials by creating a PayPal app as directed on the PayPal developer website:
- Save the sandbox account facilitator email address, the client ID, and the secret key for future reference.For example:
- Sandbox account facilitator email address:merchantuser-facilitator@merchant.com
- Client ID:AahnQzKLL2vvG_UI6YQy9xcyt5joMLVoPHW-1Bv8gCvPkTiNwQSRCvKIKXy8UZZguijbwJTTs_Cjhdz
- Secret key:EOE3eqqeIBy4q8LhsON0-wp2zPb_0SOqPH3sopx_uwuIMkCug7zw3aKDunstrXmcrGecmpeUJgsqTGO
- ContactCybersourcemerchant support and provide your PayPal credentials:
- Sandbox account facilitator email address
- Client ID
- Secret key
When your account is set up, you can begin processing PayPal or Venmo payments.
Overview of Processing PayPal Transactions
PayPal requires you to create an order before processing a payment. After creating an
order, you can process the payment using the authorization and capture API requests, or
the sale API request. This section describes the steps required in order to create and
manage orders and to process transactions.
Requests and Endpoints
These are the requests you can send to
Cybersource
to process PayPal
transactions and their corresponding endpoints.Request | Endpoint |
|---|---|
Create an Order |
|
Update an Order |
|
Save an Order |
|
Void an Order |
|
Authorize and Re-authorize a Payment |
|
Reverse an Authorization |
|
Capture a Payment |
|
Process a Sale |
|
Refund a Payment |
|
Check Status |
|
Authorizing and Capturing a Payment Workflow
This workflow illustrates a successful authorization and capture.
Figure:
Authorization and Capture Workflow
- The customer begins to check out on the merchant's website and chooses one of these payment methods:
- PayPal
- PayPal Pay Later
- Venmo
- You request a create order and sets theprocessingInformation.authorizationOptions.authTyperequest field toAUTHORIZE. For more information, see Create a PayPal Order.
- Cybersourceresponds with this information in the response message:
- PAYER_ACTION_REQUIREDstatus
- PayPal checkout redirect URL or a Venmo checkout QR code
- Order ID
- Order request ID
- You redirect the customer to the PayPal checkout URL or display the Venmo QR code. The Venmo QR code is generated by setting the transaction ID in the Venmo Java SDK.
- The customer uses their PayPal or Venmo account to complete the payment and is redirected to the merchant's checkout page.
- You request a check status with the order transaction ID. For more information, see Check Status for a Transaction.
- Cybersourceresponds with anAPPROVEDstatus.
- You display the order confirmation to the customer.
- You request an authorization with the order ID. For more information, see Authorize a Payment.
- Cybersourceresponds with theCOMPLETEDstatus and authorization request ID.If you or the customer modify the purchase details before the authorized funds are captured, you must provide the updated payment information toCybersourceusing one of these requests:
- PayPal: You send a re-authorization request. For more information, see Re-authorize a PayPal Payment.
- Venmo: You send an update order request. For more information, see Update an Order.
- You request a capture with the authorization request ID. For more information, see Capture a Payment.
- Cybersourceresponds with thePENDINGstatus and a capture request ID.
- You request a check status with the capture request ID. For more information, see Check Status for a Transaction.
- Cybersourceresponds with aCOMPLETEDstatus.
- You display the payment confirmation to the customer.
Processing a Sale Workflow
This workflow describes the sequence of events that comprises processing a successful
payment using the sale request.
Figure:
Sale Workflow
- The customer begins to check out on the merchant's website and chooses one of these payment methods:
- PayPal
- PayPal Pay Later
- Venmo
- You send a create order API request toCybersourceand set theprocessingInformation.authorizationOptions.authTyperequest field toCAPTURE. For more information, see Create a PayPal Order.
- Cybersourceresponds with this information in the response message:
- PAYER_ACTION_REQUIREDstatus
- PayPal checkout redirect URL or a Venmo checkout QR code
- Order ID
- Order request ID
- You redirect the customer to the PayPal checkout URL or display the Venmo QR code. The Venmo QR code is generated by setting the transaction ID in the Venmo Java SDK.
- The customer uses their PayPal or Venmo account to complete the payment and is redirected to the merchant's checkout page.
- You request a check status with the order transaction ID. For more information, see Check Status for a Transaction.
- Cybersourceresponds with anAPPROVEDstatus.
- You display the order confirmation to the customer.
- You request a sale with the order ID. For more information, see Process a Sale.
- Cybersourceresponds with aPENDINGstatus and a sale request ID.
- You request a check status with the sale request ID. For more information, see Check Status for a Transaction.
- Cybersourceresponds with aCOMPLETEDstatus.
- You display a payment confirmation to the customer.
Refunding a Payment Workflow
This workflow illustrates the process of issuing a refund.
Figure:
Refund Workflow
- The customer returns a purchase to the merchant.
- You request a refund and includes the capture request ID or sale request ID. For more information, see Refund a Payment.
- Cybersourceresponds with aPENDINGstatus and a refund request ID.
- You request a check status with the refund request ID. For more information, see Check Status for a Transaction.
- Cybersourceresponds with aREFUNDEDstatus.
- You display a refund confirmation to the customer.
Creating and Updating an Order Workflow
This workflow illustrates the process of creating and updating an order.
Figure:
Creating and Updating an Order Workflow
- The customer begins to check out on the merchant's website and chooses one of these payment methods:
- PayPal
- PayPal Pay Later
- Venmo
- You request a create order. For more information, see Create a PayPal Order.
- Cybersourceresponds with this information in the response message:
- PAYER_ACTION_REQUIREDstatus
- PayPal checkout redirect URL or a Venmo checkout QR code
- Order ID
- Order request ID
- You redirect the customer to the PayPal checkout URL or display the Venmo QR code. The Venmo QR code is generated by setting the transaction ID in the Venmo Java SDK.
- The customer uses their PayPal or Venmo account to complete the payment and is redirected to the merchant's checkout page.
- The customer or merchant decides to change order information, such as the payment amount.IMPORTANTYou cannot update an order after an authorization or sale is complete.
- You request an update order. For more information, see Update an Order.
- Cybersourceresponds with aCOMPLETEDstatus.
- The merchant can send a follow-on request discussed in one of these topics:
Saving and Voiding an Order Workflow
This workflow illustrates the process of saving and then voiding an order. Voiding an
order is optional.
Figure:
Save and Void an Order Workflow
- The customer begins to check out on the merchant's website and chooses one of these payment methods:
- PayPal
- PayPal Pay Later
- Venmo
- You request a create order. For more information, see Create a PayPal Order.
- Cybersourceresponds with this information in the response message:
- PAYER_ACTION_REQUIREDstatus
- PayPal checkout redirect URL or a Venmo checkout QR code
- Order ID
- Order request ID
- You redirect the customer to the PayPal checkout URL or display the Venmo QR code. The Venmo QR code is generated by setting the transaction ID in the Venmo Java SDK.
- The customer uses their PayPal or Venmo account to complete the payment and is redirected to the merchant's checkout page.
- The customer gives the merchant consent to save the customer's payment credentials in the order.
- You send a save order API request with the order ID toCybersource. For more information, see Save an Order.
- Cybersourceresponds with aCOMPLETEDstatus.
- You can now authorize the order as many times as needed until the payment is captured.
- (Optional) The customer or merchant decides to delete the saved order with their payment credentials.
- You send a void order API request toCybersource. For more information, see Void an Order.
- Cybersourceresponds with theVOIDEDstatus.
- You display a confirmation that the order and the customer's payment credentials are no longer saved on the merchant's website.
Order Management Statuses Workflow
This workflow shows the statuses that can occur at each stage of creating and managing an
order.
You can send a check status request after every request in this workflow to verify the
status response.
Figure:
Order Management Statuses
- You request a create order and receive one of these possible statuses:
- PAYER_ACTION_REQUIRE: The request was successful, and you must redirect the customer to the PayPal checkout URL in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
- If the customer changes their purchase, you request an update order and receive one of these possible statuses:
- COMPLETED: The request was successful and the order information is updated.
- INVALID_REQUEST: The request was not successful. Send a new update order request.
- If the customer consents to future purchases on PayPal or Venmo checkout page, you request a save order and receive one of these possible statuses:
- COMPLETED: The request was successful and the customer's payment information from the order is saved for future transactions.
- INVALID_REQUEST: The request was not successful. Send a new save order request.
- If the customer notifies you to delete the customer's saved payment credentials, you request a void order and receive one of these possible statuses:
- VOIDED: The request was successful and the customer's payment credentials are no longer saved.
- INVALID_REQUEST: The request was not successful. Send a new request.
Response Statuses for Authorizing a Payment Workflow
This workflow shows the statuses that can occur at each stage of the payment process.
Figure:
Authorization Payment Statuses
- You request a create order and receive one of these possible statuses:
- PAYER_ACTION_REQUIRE: The request was successful, and you must redirect the customer to the PayPal checkout URL in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
- You request a check status for the created order and receive one of these possible statuses:
- COMPLETED: The order was approved by the customer. This status can also occur when the order is successfully used for an authorization or sale.
- INVALID_REQUEST: The request was not successful. Send a new request.
- You request an authorization and receive one of these possible statuses:
- COMPLETED: The authorized funds were successfully captured.
- INVALID_REQUEST: The authorization request was not successful. Send a new authorization request.
- PENDING: The authorization request was successful, and PayPal is reviewing the request. Use the check status request as often as necessary until the status updates.
- If you or the customer decide to cancel the payment, you request an authorization reversal and receive one of these possible statuses:
- REVERSED: The reversal request was successful, and the authorized funds are released from hold.
- INVALID_REQUEST: The reversal request was not successful. Send a new reversal request.
- You request a capture and receive one of these possible statuses:
- COMPLETED: The funds were successfully captured, and the payment is complete.
- DECLINED: The funds were not captured because PayPal declined the request after a review.
- INVALID_REQUEST: The capture request was not successful. Send a new capture request.
- PENDING: The capture request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates. For more information, see Check Status for a Transaction.
- If the customer returns a purchase, you request a refund and receive one of these possible statuses:
- PENDING: The refund request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
- REFUNDED: The captured funds were successfully refunded to the customer's account. This status can also occur during a customer dispute, such as a chargeback or reversal.
- INVALID_REQUEST: The refund request was not successful. Send a new refund request.
Response Statuses for a Sale Workflow
This workflow shows the statuses that can occur at each stage of the payment process.
Figure:
Sale Payment Statuses
- You request a create order and receive one of these possible statuses:
- PAYER_ACTION_REQUIRE: The request was successful, and you must redirect the customer to the PayPal checkout URL in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
- You request a check status for the created order and receive one of these possible statuses:
- COMPLETED: The order was approved by the customer. This status can also occur when the order is successfully used for an authorization or sale.
- INVALID_REQUEST: The request was not successful. Send a new request.
- You request a sale toCybersourceand receive one of these possible statuses:
- COMPLETED: The sale successfully processed, and the payment is complete.
- DECLINED: The sale request is declined. Send a new sale request.
- INVALID_REQUEST: The sale request is not successful. Send a new sale request.
- PENDING: The sale request is successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
- If the customer returns a purchase, you request a refund and receive one of these possible statuses:
- PENDING: The refund request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
- REFUNDED: The captured funds were successfully refunded to the customer's account. This status can also occur during a customer dispute, such as a chargeback or reversal.
- INVALID_REQUEST: The refund request was not successful. Send a new refund request.
Order Management Requests
This section describes how to manage orders using the
REST API
.Create a PayPal Order
This section describes how to create a
PayPal
order.You must send a create order request to begin processing a new payment. Creating an order
enables the customer to complete checkout using their PayPal account.
- Itemization
- Every unique item being purchased must be itemized in the request as a line item. For more information about how to format line items in a request, see Including Line Items in Requests.
- Payment Processing Type
- You must also set theprocessingInformation.authorizationOptions.authTyperequest field toAUTHORIZEorCAPTUREto indicate which follow-on requests you will send to process the payment. Set the field value toAUTHORIZEif you want to process the payment using the authorization and capture requests. Set the field value toCAPTUREif you want to process the payment using the sale request.
- Payment Method
- To specify that the customer is paying with PayPal, set thepaymentInformation.paymentType.method.namerequest field topayPal.
- Saving Payment Credentials
- You can save a customer's payment credentials in order to make future transactions fast and simple for the customer. To save the customer's credentials, you must include the optionalprocessingInformation.processingInstructionrequest field and set its value toORDER_SAVED_EXPLICITLY. After you successfully create the order and the customer completes the checkout, you must send a follow-on save payment credentials request. For more information, see Save an Order.
A successful request is indicated by a PayPal redirect URL in the
processorInformation.paymentUrl
response field and a request ID in the id
response
field. Redirect the customer to the PayPal URL where they can log in to their PayPal
account to approve and complete the payment. Save the request ID in your system for the
follow-on API requests. Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/intentsTest:
POST
https://apitest.cybersource.com
/pts/v2/intentsRequesting to Create a
PayPal Order
Follow these steps to successfully create an order.
- Send aPOSTrequest to theendpoint and include these required fields:https://api.cybersource.com/v2/intents
- orderInformation.amountDetails.taxDetails.taxId
- orderInformation.amountDetails.taxDetails.type
- orderInformation.invoiceDetails.invoiceNumber
- orderInformation.invoiceDetails.productDescription
- paymentInformation.customer.customerid
- Set topayPal.
- Set toeWallet.
- Set toAP_ORDER.
- processingInformation.authorizationOptions.authType
- Set to one of these values:
- AUTHORIZE: The created order can be processed with an authorization and capture.
- CAPTURE: The created order can be processed for a sale.
- Include any optional fields in the request:
- orderInformation.invoiceDetails.productDescription
- processingInformation.processingInstruction
- Set toORDER_SAVED_EXPLICITLYto save the customer's payment credentials using the save an order follow-on request.
- Redirect the customer to the received URL in theprocessorInformation.paymentUrlresponse field."processorInformation": { "transactionId": "1CE47930A46117822", "paymentUrl": "https://www.sandbox.paypal.com/checkoutnow?token=1CE47930A46117822" }
- When the customer completes checking out using their PayPal account, the customer is redirected to the URL you included in themerchantInformation.successUrlrequest field.
Example: Creating a PayPal Order
Request
{ "clientReferenceInformation": { "code": "123456" }, "buyerInformation": { "language": "en", "personalIdentification": [ { "id": "123", "type": "BR_CNPJ" } ], "dateOfBirth": "20210101" }, "orderInformation": { "shipTo": { "country": "PL", "postalCode": "CV-1012", "locality": "San" }, "billTo": { "firstName": "ab", "lastName": "c", "address1": "ABC city, XYZ street", "phoneNumber": "1234", "email": "test@enets.com", "locality": "San", "company": { "name": "abc" } }, "amountDetails": { "totalAmount": "150", "currency": "USD", "taxAmount": "50", "taxDetails": { "taxId": "123456", "type": "BR_CPF" } }, "invoiceDetails": { "invoiceNumber": "123", "productDescription": "1bc" }, "lineItems": [ { "productName": "test-product", "quantity": 5, "productDescription": "description-123", "unitPrice": "20", "taxAmount": "10", "totalAmount": "100", "typeOfSupply": "01" } ] }, "merchantInformation": { "successUrl": "https://developer.paypal.com/home", "merchantDescriptor": { "name": "Demo-Merchant" }, "returnUrl": "https://developer.paypal.com/home" }, "paymentInformation": { "customer": { "customerid": "12345" }, "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "authorizationOptions": { "authType": "AUTHORIZE" }, "actionList": [ "AP_ORDER" ] } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1CE47930A46117822", "paymentUrl": "https://www.sandbox.paypal.com/checkoutnow?token=1CE47930A46117822" }, "message": "Successful", "status": "PAYER_ACTION_REQUIRE", "id": "7259726679396017501991", "submitTimeUtc": "2024-09-10T12:51:08Z" }
Response Statuses for Creating a PayPal Order
Cybersource
responds to your request with one of these statuses in
the status
field:- PAYER_ACTION_REQUIRE: The request was successful, and you must redirect the customer to the PayPal checkout URL in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
When you request a status update,
Cybersource
responds with one of these
statuses in the status
field:- COMPLETED: The order was approved by the customer. This status can also occur when the order is successfully used for an authorization or sale.
Follow-On Requests
After you create an order, you can send these follow-on API requests using the order
ID from the response message.
- Update Order
- To update the order information, such as the payment amount or line items, send an update order request. For more information, see Update an Order.
- Save Order
- To save the customer's payment credentials in the order to make future check out experiences faster for the customer, send a save order request. For more information, see Save an Order.
- Authorization
- To authorize funds for a payment, send an authorization request. For more information, see Authorize a Payment.
- Sale
- To authorize and capture funds for a payment in the same request, send a sale request. For more information, see Process a Sale.
Create a Venmo Order
This section describes how to create a
Venmo
order.You must send a create order request to begin processing a new payment. Creating an order
enables the customer to complete checkout using their Venmo account.
- Itemization
- Every unique item being purchased must be itemized in the request as a line item. For more information about how to format line items in a request, see Including Line Items in Requests.
- Payment Processing Type
- You must also set theprocessingInformation.authorizationOptions.authTyperequest field toAUTHORIZEorCAPTUREto indicate which follow-on requests you will send to process the payment. Set the field value toAUTHORIZEif you want to process the payment using the authorization and capture requests. Set the field value toCAPTUREif you want to process the payment using the sale request.
- Payment Method
- To specify that the customer is paying with Venmo, set thepaymentInformation.paymentType.method.namerequest field toVenmo.
- Saving Payment Credentials
- You can save a customer's payment credentials in order to make future transactions fast and simple for the customer. To save the customer's credentials, you must include the optionalprocessingInformation.processingInstructionrequest field and set its value toORDER_SAVED_EXPLICITLY. After you successfully create the order and the customer completes the checkout, you must send a follow-on save payment credentials request. For more information, see Save an Order.
A successful request is indicated by a Venmo transaction ID in the
processorInformation.transactionId
response field and a request ID in the
id
response field. Your system should set the transaction ID in the SDK to automatically
create a Venmo checkout button on your checkout webpage. When the customer clicks the
Venmo button, a QR displays to the customer. Your customer uses their Venmo mobile app
to scan the QR code and complete the checkout using their Venmo mobile app. Save the
request ID in your system for the follow-on API requests.Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/intentsTest:
POST
https://apitest.cybersource.com
/pts/v2/intentsRequesting to Create a Venmo Order
Follow these steps to successfully create an order.
- Send aPOSTrequest to theendpoint and include these required fields:https://api.cybersource.com/v2/intents
- orderInformation.amountDetails.taxDetails.taxId
- orderInformation.amountDetails.taxDetails.type
- orderInformation.invoiceDetails.invoiceNumber
- orderInformation.invoiceDetails.productDescription
- paymentInformation.customer.customerid
- Set tovenmo.
- Set toeWallet.
- Set toAP_ORDER.
- processingInformation.authorizationOptions.authType
- Set to one of these values:
- AUTHORIZE: The created order can be processed with an authorization and capture.
- CAPTURE: The created order can be processed for a sale.
- Include any optional fields in the request:
- orderInformation.invoiceDetails.productDescription
- processingInformation.processingInstruction
- Set toORDER_SAVED_EXPLICITLYto save the customer's payment credentials using the save an order follow-on request.
- After sending your request, your system sets theprocessorInformation.transactionIdresponse field value in the Venmo SDK. The SDK creates a Venmo checkout button that the customer clicks to display a Venmo QR code. Your customer scans the QR code using their Venmo mobile app. When your customer approves the payment on their Venmo mobile app, the payment is complete.
Example: Creating a Venmo Order
Request
Response to a Successful Request
Response Statuses for Creating a Venmo Order
Cybersource
responds to your request with one of these statuses in
the status
field:- PAYER_ACTION_REQUIRE: The request was successful, and your system must create a Venmo checkout button using the Venmo SDK in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
When you request a status update,
Cybersource
responds with one of these
statuses in the status
field:- COMPLETED: The order was approved by the customer. This status can also occur when the order is successfully used for an authorization or sale.
Follow-On Requests
After you create an order, you can send these follow-on API requests using the order
ID from the response message.
- Update Order
- To update the order information, such as the payment amount or line items, send an update order request. For more information, see Update an Order.
- Save Order
- To save the customer's payment credentials in the order to make future check out experiences faster for the customer, send a save order request. For more information, see Save an Order.
- Authorization
- To authorize funds for a payment, send an authorization request. For more information, see Authorize a Payment.
- Sale
- To authorize and capture funds for a payment in the same request, send a sale request. For more information, see Process a Sale.
Update an Order
You can update the information in an order, such as the payment details and line items,
by requesting an update order. Updating an order is necessary when a customer decides to
change their purchase, billing, or shipping information, and when inventory adjustments
occur.
Include all of the customer's information sent in the create order request in the update
order request to ensure the order's accuracy. Only exclude fields that relate to
information you are intentionally removing from an order.
IMPORTANT
You cannot update an order after an authorization or
sale is complete.
Endpoints
Production:
PATCH
https://api.cybersource.com
/pts/v2/intents/{id}
Test:
PATCH
https://apitest.cybersource.com
/pts/v2/intents/{id}
Set the to the order ID
contained in the create order response.
{id}
Required Fields for Updating an Order
- orderInformation.amountDetails.insuranceAmount
- orderInformation.amountDetails.shippingAmount
- orderInformation.amountDetails.shippingDiscountAmount
- orderInformation.amountDetails.taxDetails.taxId
- orderInformation.amountDetails.taxDetails.type
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_UPDATE_ORDER.
Optional Fields for Updating an Order
- orderInformation.invoiceDetails.productDescription
Example: Updating an Order
Request
{ "orderInformation": { "shipTo": { "country": "PL", "address1": "I", "address2": "I", "locality": "I", "administrativeArea": "I", "postalCode": "I" }, "amountDetails": { "totalAmount": "65", "currency": "USD", "taxAmount": "20", "shippingAmount": "15", "dutyAmount": "5", "insuranceAmount": "15", "shippingDiscountAmount": "5", "discountAmount": "5", "taxDetails": { "taxId": "123456", "type": "BR_CPF" } }, "lineItems": [ { "productName": "test-product", "quantity": 1, "productDescription": "description-123", "unitPrice": "20", "taxAmount": "20", "totalAmount": "20", "typeOfSupply": "01" } ] }, "processingInformation": { "actionList": [ "AP_UPDATE_ORDER" ] }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } } }
Response to a Successful Request
{ "message": "Successful", "status": "COMPLETED", "id": "7259607420486012601991", "submitTimeUtc": "2024-09-10T09:32:22Z" }
Response Statuses for Updating an Order
Cybersource
responds to your request with one of these statuses in
the status
field:- COMPLETED: The request was successful and the order information is updated.
- INVALID_REQUEST: The request was not successful. Send a new update order request.
Save an Order
After the customer completes the purchase using the Paypal or Venmo redirect URL from the
create order response, you can save the customer's order by requesting a save order.
Saving a customer's order enables you to retain an order even after you have authorized
the payment. This is necessary for situations where you must reverse the authorization
but plan to authorize the same order again. When the order is authorized and captured,
you can longer authorize the saved order.
If you decide that you no longer need to retain a saved order, you can cancel the saved
order by sending a void order request. For more information, see Void an Order.
IMPORTANT
The customer must give you consent to saving their payment
credentials in an order before you save their information.
- Prerequisite
- Before sending the save order request, you must ensure that the create order request included theprocessingInformation.processingInstructionfield set to theORDER_SAVED_EXPLICITLYvalue.
Endpoints
Production:
PATCH
https://api.cybersource.com
/pts/v2/intents/{id}
Test:
PATCH
https://apitest.cybersource.com
/pts/v2/intents/{id}
Set the to the order ID
contained in the create order response.
{id}
Required Fields for Saving an Order
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_EXTENDED_ORDER.
Example: Saving an Order
Request
{ "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_EXTEND_ORDER" ] } }
Response to a Successful Request
{ "processorInformation": { "networkTransactionId": "O-0PJ044907K025064E", "transactionId": "15280613LP005810C" }, "message": "Successful", "status": "COMPLETED", "id": "7259829628396022101991", "submitTimeUtc": "2024-09-10T15:42:42Z" }
Response Statuses for Saving an Order
Cybersource
responds to your request with one of these statuses in
the status
response field:- COMPLETED: The request was successful and the customer's payment information from the order is saved for future transactions.
- INVALID_REQUEST: The request was not successful. Send a new save order request.
Void an Order
You can cancel a saved order from your system by requesting a void order. Cancelling an
order is necessary if you decide you no longer need to authorize a saved order.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/voidsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/voidsSet the to the request
ID.
{id}
Required Fields for Voiding an Order
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_CANCEL.
Example: Voiding an Order
Request
{ "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_CANCEL" ] } }
Response to a Successful Request
{ "message": "Successful", "status": "VOIDED", "id": "7259850570396024801991", "submitTimeUtc": "2024-09-10T16:17:37Z" }
Response Statuses for Voiding an Order
Cybersource
responds to your request with one of these statuses in
the status
response field:- VOIDED: The request was successful and the customer's payment credentials are no longer saved.
- INVALID_REQUEST: The request was not successful. Send a new request.
Check Status for an Order
You can retrieve the current status of any API request by requesting a check status. Use
the check status request as often as necessary to obtain the information you need.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/refresh-payment-status/{id}
Test:
POST
https://apitest.cybersource.com
/pts/v2/refresh-payment-status/{id}
Set the
to the request ID of the API service you are retrieving.
{id}
Required Fields for Checking Status
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_STATUS.
Example: Checking Status
Request
{ "agreementInformation": { "agreementId": "agreementId" }, "clientReferenceInformation": { "code": "12" }, "processingInformation": { "actionList": [ "AP_STATUS" ] }, "paymentInformation": { "customer": { "customerId": "201.1" }, "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } } }
Response to a Successful Request
{ "submitTimeUtc": "2024-09-12T15:45:31Z", "orderInformation": { "referenceId": "default", "description": "1bc", "merchantDescriptor": "Demo-Merchant" }, "processorInformation": { "transactionId": "2F930071T65206814", "paymentUrl": "https://www.sandbox.paypal.com/checkoutnow?token=2F930071T65206814" }, "paypalgateway_mid": "J4QDR26LU6K4A", "message": "Successful", "reconciliationId": "7261559298496016901991", "paypalgateway_merchant_email": "sb-g66r631737562@business.example.com", "status": "PAYER_ACTION_REQUIRE", "id": "7261559585096017001991" }
Response Statuses for Checking Status
Cybersource
responds to your request with one of these statuses in
the status
response field. The possible
statuses are dependent on the API service you are retrieving a status for.- Create Order
- COMPLETED: The order was approved by the customer. This status can also occur when the order is successfully used for an authorization or sale.
- PAYER_ACTION_REQUIRE: The request was successful, and you must redirect the customer to the PayPal checkout URL in order for the customer to approve the payment.
- INVALID_REQUEST: The request was not successful. Send a new request.
- Update Order
- COMPLETED: The request was successful and the order information is updated.
- INVALID_REQUEST: The request was not successful. Send a new update order request.
- Save Order
- COMPLETED: The request was successful and the customer's payment information from the order is saved for future transactions.
- INVALID_REQUEST: The request was not successful. Send a new save order request.
- Void Order
- VOIDED: The request was successful and the customer's payment credentials are no longer saved.
- INVALID_REQUEST: The request was not successful. Send a new request.
Payment Processing Requests
This section describes how to process a payment using the
REST API
.Authorize a Payment
You must request an authorization to secure funds for a payment. Include the request ID
that you received in the create order response in the
processingInformation.intentsId
request field to link the authorization to
the created order.Successfully authorized funds expire after 29 days. If the funds are not captured within
3 days of the authorization, you must request Re-authorization to maintain the honor
period. The
honor period
is a 3-day period in which PayPal accepts the capture
request that a merchant submits. If the 3-day honor period expires because you did not
send a re-authorization request, PayPal contacts the card's issuer to re-authorize the
payment. For more information, see Re-authorize a PayPal Payment.The
PENDING
status and a request ID in the id
response field indicate a
successful request. Save the request ID for follow-on requests.Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/Test:
POST
https://apitest.cybersource.com
/pts/v2/payments/Required Fields for Authorizing a Payment
- agreementInformation.id
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_AUTH.
- processingInformation.intentsId
- Set to the request ID in the create order responseidfield.
Example: Authorizing a Payment
Request
{ "agreementInformation": { "id": "agreementId-1" }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_AUTH" ], "intentsId": "7261369946776012601991" } }
Response to a Successful Request
{ "submitTimeUtc": "2024-09-12T10:29:56Z", "processorInformation": { "sellerProtection": { "eligibility": "ELIGIBLE", "disputeCategories": [ "ITEM_NOT_RECEIVED", "UNAUTHORIZED_TRANSACTION" ] }, "transactionId": "4AA39743A21277452", "orderStatus": "COMPLETED", "orderId": "7LT08604AM018373M", "updateTimeUtc": "2024-09-12T10:31:10Z", "expirationTimeUtc": "2024-10-11T10:31:10Z" }, "orderInformation": { "amountDetails": { "totalAmount": "28.60", "currency": "USD" }, "billTo": { "email": "jsmith@cybs.com", "lastName": "Smith", "firstName": "John" } }, "updateTimeUtc": "2024-09-12T10:31:10Z", "buyerInformation": { "merchantCustomerId": "FDYJEFZ6G5YPG" }, "message": "Successful", "createTimeUtc": "2024-09-12T10:31:10Z", "clientReferenceInformation": { "code": "default" }, "reconciliationId": "7261369946776012601991", "status": "COMPLETED", "id": "7261370686446012701991" }
Response Statuses for Authorizing a Payment
Cybersource
responds to your request with one of these statuses in
the status
response field:- INVALID_REQUEST: The authorization request was not successful. Send a new authorization request.
- PENDING: The authorization request was successful, and PayPal is reviewing the request. Use the check status request as often as necessary until the status updates.
When you request a status update,
Cybersource
responds with one of
these statuses in the status
response field:- COMPLETED: The authorized funds were successfully captured.
- PENDING: The authorization request was successful, and PayPal is reviewing the request. Continue to send periodic check status requests until the status updates.
- REVERSED: The authorized funds were released back to the customer and cannot be captured.
Follow-On Requests
After the payment is authorized, you can send these follow-on requests using the
request ID from the authorization response message.
- Authorization Reversal
- To cancel the hold on the authorized funds, you must send an authorization reversal request. For more information, see Reverse an Authorization.
- Re-authorization
- To update information in the authorization, such as the payment amount, you must send a re-authorization request. For more information, see Re-authorize a PayPal Payment.
- Capture
- To capture the authorized funds and complete the payment, you must send a capture request. For more information, see Capture a Payment.
- Check Status
- To know when the authorization status updates, you must periodically send a check status request. For more information, see Check Status for a Transaction.
Re-authorize a PayPal Payment
Re-authorizing an authorized PayPal payment maintains the 3-day honor period in which you
can capture the payment. If the 3-day honor period expires because you did not send a
re-authorization request, PayPal contacts the card's issuer to re-authorize the payment.
When the issuer approves the re-authorization, PayPal accepts the capture request you
submitted. Re-authorizing an authorization also enables you to change the payment
amount. You can begin requesting a re-authorization 3 days after the original
authorization was requested. If you reauthorize a payment on the 28th day of its
authorization period, you only have 1 day to capture it. You can only re-authorize
PayPal
payments. Re-authorizing a payment using saved credentials is not
supported.IMPORTANT
If you need to reverse a re-authorized payment, use the initial
authorization request ID in the reversal request.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/Test:
POST
https://apitest.cybersource.com
/pts/v2/payments/Required Fields for Re-authorizing a PayPal
Payment
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_REAUTH.
Example: Re-authorizing a PayPal Payment
Request
{ "orderInformation": { "amountDetails": { "totalAmount": "31.00", "currency": "USD" } }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_REAUTH" ], "linkId": "7261189513277014411040" } }
Response to a Successful Request
{ "submitTimeUtc": "2024-09-18T05:11:30Z", "processorInformation": { "transactionId": "8XL39452XB324090U", "expirationTimeUtc": "2024-10-11T05:29:13Z", "updateTimeUtc": "2024-09-18T05:11:30Z" }, "message": "Successful", "status": "COMPLETED", "id": "7266362888326306001991" }
Response Statuses for Re-authorizing a PayPal
Payment
Cybersource
responds to your request with one of these statuses in
the status
response field:- INVALID_REQUEST: The request was not successful. Send a new authorization request.
- PENDING: The request was successful, and PayPal is reviewing the request. Use the check status request as often as necessary until the status updates.
When you request a status update,
Cybersource
responds with this
status in the status
field:- COMPLETED: The request was successful and the authorization is updated.
Reverse an Authorization
You can cancel an authorized payment by requesting an authorization reversal, which
removes the hold on any authorized funds. An authorization reversal is typically
requested when a customer cancels a payment or a merchant captures less than the total
authorized amount. You cannot reverse a reauthorized transaction.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/reversalsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/reversalsSet the to the request ID
returned in the authorization request.
{id}
Required Fields for Reversing an Authorization
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_AUTH_REVERSAL.
Example: Reversing an Authorization
Request
{ "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_AUTH_REVERSAL" ] } }
Response to a Successful Request
{ "message": "Successful", "status": "REVERSED", "id": "7259791326166018601991", "submitTimeUtc": "2024-09-10T14:38:52Z" }
Response Statuses for Reversing an Authorization
Cybersource
responds to your request with one of these statuses in
the status
response field:- REVERSED: The reversal request was successful, and the authorized funds are released from hold.
- INVALID_REQUEST: The reversal request was not successful. Send a new reversal request.
Capture a Payment
You can capture an authorized payment by requesting a capture, which completes the
payment.
You can capture the full amount in a single request or capture partial amounts in
multiple capture requests.
The
PENDING
status and a new request ID indicate a successful capture.
Send a follow-on check status request periodically to receive the current status of the
capture. The payment is complete when the check status request responds with a
COMPLETED
status. For more information about sending a check status
request, see Check Status for a Transaction. Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/capturesTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/capturesSet the to the request ID
contained in the authorization response.
{id}
Required Fields for Capturing a Payment
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_CAPTURE.
- Set to one of these values:
- true: Release the authorization hold on the remaining funds.
- false: Do not release the authorization hold on the remaining funds.
- processingInformation.captureOptions.notes
Example: Capturing a Payment
Request
{ "orderInformation": { "amountDetails": { "currency": "USD", "totalAmount": "65" } }, "merchantInformation": { "merchantDescriptor": { "name": "test-descriptor" } }, "processingInformation": { "captureOptions": { "notes": "paypalV2", "isFinal": "true" }, "actionList": [ "AP_CAPTURE" ] }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "6EM63359FN838823Y" }, "message": "Successful", "status": "COMPLETED", "id": "7265097759866005201991", "submitTimeUtc": "2024-09-16T18:02:56Z" }
Response Statuses for Capturing a Payment
Cybersource
responds to your request with one of these statuses in
the status
response field:- INVALID_REQUEST: The capture request was not successful. Send a new capture request.
- PENDING: The capture request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates. For more information, see Check Status for a Transaction.
When you request a status update,
Cybersource
responds with one of
these statuses in the status
field:- COMPLETED: The funds were successfully captured, and the payment is complete.
- DECLINED: The funds were not captured because PayPal declined the request after a review.
Process a Sale
You can process a payment by requesting a sale, which authorizes and captures funds for a
payment in the same request. Include the request ID that you received in the create
order response in the
processingInformation.intentsId
request field to link the sale to the
created order.A
PENDING
status in the response indicates that the request is
successful. After sending a sale request, send a follow-on check status request
periodically. The payment is complete when you receive a response with a
COMPLETED
status. For more information about sending a check status
request, see Check Status for a Transaction.Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsRequired Fields for Processing a Sale
- agreementInformation.id
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set topayPal.
- Set toAP_SALE.
- processingInformation.intentsId
- Set to the request ID in the create order responseidfield.
Example: Processing a Sale
Request
{ "agreementInformation":{ "id":"BillingAgreement1" }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_SALE" ], "intentsId": "7266411151136307001991" } }
Response to a Successful Request
{ "submitTimeUtc": "2024-09-18T06:35:32Z", "processorInformation": { "sellerProtection": { "eligibility": "ELIGIBLE" }, "transactionId": "58N37188U0725624T", "orderStatus": "COMPLETED", "orderId": "4P210796DA793354A", "updateTimeUtc": "2024-09-18T06:35:32Z" }, "orderInformation": { "amountDetails": { "totalAmount": "65.00", "currency": "USD" }, "billTo": { "email": "jsmith@cybs.com", "lastName": "Smith", "firstName": "John" } }, "buyerInformation": { "merchantCustomerId": "FDYJEFZ6G5YPG" }, "message": "Successful", "processingInformation": { "captureOptions": { "finalCapture": "true" } }, "clientReferenceInformation": { "code": "default" }, "reconciliationId": "7266411151136307001991", "status": "COMPLETED", "id": "7266413310926307101991" }
Response Statuses for Processing a Sale
Cybersource
responds to your request with one of these statuses in
the status
response field:- INVALID_REQUEST: The sale request is not successful. Send a new sale request.
- PENDING: The sale request is successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
When you request a status update,
Cybersource
responds with one of
these statuses in the status
field:- COMPLETED: The sale successfully processed, and the payment is complete.
- DECLINED: The sale request is declined. Send a new sale request.
- PENDING: The sale request is successful and is being reviewed by PayPal. Continue to send the check status request until the status updates. For more information, see Check Status for a Transaction.
Refund a Payment
When a customer returns a purchase, you can request a refund to return the entire or
partial payment amount to the customer's account. Include the request ID from a
completed capture or sale. A
PENDING
response status indicates that the
refund was successful. Send a follow-on check status request periodically to receive the
current status of the refund. The payment is refunded when the check status request
responds with the REFUNDED
status. For more information about sending a
check status request, see Check Status for a Transaction.Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Required Fields for Refunding a Payment
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_REFUND.
Example: Refunding a Payment
Request
{ "orderInformation": { "amountDetails": { "totalAmount": "31", "currency": "USD" } }, "paymentInformation": { "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } }, "processingInformation": { "actionList": [ "AP_REFUND" ] } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "8EY55721B5181393M" }, "message": "Successful", "status": "REFUNDED", "id": "7262018791236022601991", "submitTimeUtc": "2024-09-13T04:31:19Z" }
Response Statuses for Refunding a Payment
Cybersource
responds to your request with one of these statuses in
the status
response field:- PENDING: The refund request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
- INVALID_REQUEST: The refund request was not successful. Send a new refund request.
When you request the status of a refund,
Cybersource
responds with one of
these statuses in the status
response field:- REFUNDED: The captured funds were successfully refunded to the customer's account. This status can also occur during a customer dispute, such as a chargeback or reversal.
Check Status for a Transaction
You can retrieve the current status of any API request by requesting a check status. Use
the check status request as often as necessary to obtain the information you need.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/refresh-payment-status/{id}
Test:
POST
https://apitest.cybersource.com
/pts/v2/refresh-payment-status/{id}
Set the
to the request ID of the API service you are retrieving.
{id}
Required Fields for Checking Status
- Set to one of these values:
- payPal: the PayPal payment method.
- venmo: the Venmo payment method.
- Set toeWallet.
- Set toAP_STATUS.
Example: Checking Status
Request
{ "agreementInformation": { "agreementId": "agreementId" }, "clientReferenceInformation": { "code": "12" }, "processingInformation": { "actionList": [ "AP_STATUS" ] }, "paymentInformation": { "customer": { "customerId": "201.1" }, "paymentType": { "method": { "name": "payPal" }, "name": "eWallet" } } }
Response to a Successful Request
{ "submitTimeUtc": "2024-09-12T15:45:31Z", "orderInformation": { "referenceId": "default", "description": "1bc", "merchantDescriptor": "Demo-Merchant" }, "processorInformation": { "transactionId": "2F930071T65206814", "paymentUrl": "https://www.sandbox.paypal.com/checkoutnow?token=2F930071T65206814" }, "paypalgateway_mid": "J4QDR26LU6K4A", "message": "Successful", "reconciliationId": "7261559298496016901991", "paypalgateway_merchant_email": "sb-g66r631737562@business.example.com", "status": "PAYER_ACTION_REQUIRE", "id": "7261559585096017001991" }
Response Statuses for Checking Status
Cybersource
responds to your request with one of these statuses in
the status
response field. The possible
statuses are dependent on the API service you are retrieving a status for.- Authorization
- COMPLETED: The authorized funds were successfully captured.
- INVALID_REQUEST: The authorization request was not successful. Send a new authorization request.
- PENDING: The authorization request was successful, and PayPal is reviewing the request. Use the check status request as often as necessary until the status updates.
- REVERSED: The authorized funds were released back to the customer and cannot be captured.
- Authorization Reversal
- REVERSED: The reversal request was successful, and the authorized funds are released from hold.
- INVALID_REQUEST: The reversal request was not successful. Send a new reversal request.
- Capture
- COMPLETED: The funds were successfully captured, and the payment is complete.
- DECLINED: The funds were not captured because PayPal declined the request after a review.
- INVALID_REQUEST: The capture request was not successful. Send a new capture request.
- PENDING: The capture request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates. For more information, see Check Status for a Transaction.
- Re-authorization
- COMPLETED: The request was successful and the authorization is updated.
- INVALID_REQUEST: The request was not successful. Send a new authorization request.
- PENDING: The request was successful, and PayPal is reviewing the request. Use the check status request as often as necessary until the status updates.
- Refund
- REFUNDED: The captured funds were successfully refunded to the customer's account. This status can also occur during a customer dispute, such as a chargeback or reversal.
- INVALID_REQUEST: The refund request was not successful. Send a new refund request.
- PENDING: The refund request was successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
- Sale
- COMPLETED: The sale successfully processed, and the payment is complete.
- DECLINED: The sale request is declined. Send a new sale request.
- INVALID_REQUEST: The sale request is not successful. Send a new sale request.
- PENDING: The sale request is successful and is being reviewed by PayPal. Use the check status request as often as necessary until the status updates.
Reference Information
This section contains reference information that is useful when integrating PayPal and
Venmo.
Including Line Items in Requests
PayPal requires that each unique item in your customers' purchases be itemized as
line items when you create or manage an order.
Line items
are used to include information about each item, such as product
name, quantity, and price. Line items are included in a request in the
lineItem[]
array request field.These fields are required for each line item in your request:
Including Line Items
This example shows how to format line items in a request.
{ "orderInformation": { "lineItems": [ { "productName": "test-product-1", "quantity": 5, "productDescription": "description-123", "unitPrice": "20", "taxAmount": "10", "totalAmount": "100", "typeOfSupply": "01" }, { "productName": "test-product-2", "quantity": 1, "productDescription": "description-456", "unitPrice": "5", "taxAmount": "1", "totalAmount": "6", "typeOfSupply": "01" }, { "productName": "test-product-3", "quantity": 2, "productDescription": "description-789", "unitPrice": "4", "taxAmount": "2", "totalAmount": "10", "typeOfSupply": "01" } ] } }
Generating Reports In the Business Center
Business Center
You can generate various types of reports for your financial and reconciliation data. For
more information about how to automate your reports, see the
Reporting Developer
Guide
. For more information about how to use your Business Center
account to generate reports, see the Reporting User
Guide
.The
Reporting User Guide
contains these relevant topics:- How and When Reports Are Generated
- Downloading Available Reports
- Subscribing to Standard Reports
Additional Resources
For additional information about how to use the
Business Center
and manage
reports, see these helpful resources.- Business CenterNavigation
- For an overview of the various resources available in theBusiness Center, see this YouTube video:
- Getting Started with theBusiness Center
- For a step-by-step demonstration of how to navigate in theBusiness Center, see this YouTube video:
- Managing Report Subscriptions
- For an overview of how to manage report subscriptions in the Downloadable Reports section in theBusiness Center, see this YouTube video:
- Downloading Reports
- For an overview of how to download available reports in the Reports section of theBusiness Center, see this YouTube video:
Configure Alternative Payments Methods in the Business Center
in the
Business Center
Follow these steps to configure alternative payment methods
in
the
: Business Center
- In the left navigation panel, click theAvailable Productsicon. The Available Products page appears.
- In the Alternative Payment Methods section, clickEnable.
- Check the box next to each alternative payment method you want to enable and configure. You can choose alternative payment methods from these categories:
- Bank Transfer
- Buy Now Pay Later (BNPL)
- Card Payment
- Direct Debit
- eWallet
- Gift Card
- Local Card
- Post Pay Reference
- QR
- ClickContinue. The Product Configuration page appears.
- Enter the required details for each alternative payment method you want to configure.ClickCopy to other sectionsto populate the information to any other alternative payment methods that you selected.IMPORTANTYou must selectI have read and agree to the Terms and Conditionsfor each alternative payment method you want to enable.
- ClickContinueto return to the Available Products page.
Add Merchant Account Information
Follow these steps to add merchant account information:
- In Basic Information, enter the merchant account name and the organization ID in the provided text fields.
ADDITIONAL INFORMATION
- The merchant account name is the name of the business.
- The organization ID is the name or identifier of the account that you are creating. It must be unique, not just in the portfolio or account, but in the system.
- Enter the merchant information in the provided text fields. Required fields are noted with an asterisk (*).
- ClickSave. You are returned to the Add Merchant page. You can skip the optional hierarchy step by clickingSkip.
Configure the Transacting Organization and Products
Follow these steps to modify the transacting organization details, or to enable and
configure products for the transacting organization:
- ClickStartin the Transacting Organization and Products section. The Transacting Organization and Products page is displayed.
- Optional: modify the name and ID of the organization by using the text fields in the Transacting Organization Details section. By default, the name is the merchant name with 001 added to the end of the name. If you accept this default, additional transacting organizations will have default names that iterate the numbers at the end of their names, beginning with 002.
- Optional: to edit the organization information, ClickEditin the Transacting Organization Information section. After editing, clickApply.
- To enable a product in the Product Enablement section, click the Enablement drop-down menu and selectEnabled.
- To modify the configuration, click theEditorconfigurebutton (depending on the product). Some products are not configurable.
- To confirm the configuration, clickApply.
- To save all product configurations, clickSave. You are returned to the Add Merchant page.
- To continue working with this organization, clickContinue working with this merchant. To finish and return to Merchant Management, clickReturn to merchant management.
Set Up the Transacting Organization and Products
The transacting organization is the entity that processes transactions. Follow these
steps to create a transacting organization and configure products for it:
- ClickStartin the Transacting Organization and Products section. The Transacting Organization and Products page is displayed.
- Optional: modify the name and ID of the organization by using the text fields in the Transacting Organization Details section. The ID must be unique, not just in the portfolio or account, but across the system. By default, the name is the merchant name with 001 added to the end of the name. If you accept this default, additional transacting organizations will have default names that iterate the numbers at the end of their names, beginning with 002.
- Optional: By default, the organization information is inherited from the parent organization. To edit the organization information, clickEditin the Transacting Organization Information section. After editing, clickApply.
- To enable a product in the Product Enablement section, click the Enablement drop-down menu and selectEnabled.
- To modify the configuration, click theEditorConfigurebutton (depending on the product). Some products are not configurable.
- To confirm the configuration, clickApply.
- To save all product configurations, clickSave. You are returned to the Add Merchant page.
- To continue working with this organization, clickContinue working with this merchant. To finish and return to Merchant Management or to add another merchant, clickReturn to merchant management.
ADDITIONAL INFORMATION
The image below shows the Transacting Organization and Products page.Figure:
Transacting Organization and Products