# PayPal Invoicing Add-On ¶

## Introduction ¶

> The PayPal Invoicing Add-On is a premium one, you can buy it on our landing page. Thank you!

Easy Forms' PayPal Invoicing Add-On allows you integrate Easy Forms with PayPal Invoicing. With this add-on you can send PayPal invoices to your customers through your forms by using the new PayPal REST API to perform transactions using HTTP verbs and a RESTful endpoint structure.

## Install PayPal Invoicing Add-On ¶

The PayPal Invoicing Add-On installing process is very simple, same to any other Add-On. To install the PayPal Invoicing Add-On follow the documentation to install an Add-On from the Add-On Manager.

## Create a Payment Invoicing Form ¶

Forms are created through the Form Builder. You just need to drag and drop the fields your form needs. Then, from the PayPal Invoicing Add-On interface you can select the fields that will collect the necessary information to generate the invoice in PayPal. For example, price, quantity, the Template, etc.

## Get data from your PayPal account ¶

Now that you have a form, let's integrate it with your PayPal account. For this you must perform the following steps:

1. Log in https://developer.paypal.com/developer/applications/
2. Under “REST API apps”, click the "Create App" button
3. Enter the following information:
   - App Name: Easy Forms (or Your preferred name)
   - Sandbox developer account: Email by default
4. Click "Create App"

Next you will see the the account information you'll need to set up the invoicing form.

> Note: Two buttons will appear at the top of the page: Sandbox and Live. You should use Live when putting your form into production and Sandbox if you are going to make tests.

## Set Up Payment Forms with your PayPal account ¶

To create a PayPal Invoicing configuration, you must perform the following steps:

1. Go to the *Add-Ons Manager+ and click on PayPal Invoicing.
2. Click the "Set Up a Form" button.
3. A form used to configure the invoicing process will appear:
   - Form: Required. It is the form you'll integrate with your PayPal account.
   - Mode: "Sandbox" or "Live".
   - Status: Allows to disable the PayPal Invoicing configuration.
   - Client ID: Required in Live mode. Api Credential.
   - Client Secret: Required in Live mode. Api Credential.
   - Sandbox Client ID: Required in Sandbox mode. Api Credential.
   - Sandbox Client Secret: Required in Sandbox mode. Api Credential.
   - Template: Required. Use details from this template to create the invoices. Easy Forms will load your templates from your PayPal account automatically. By default, every PayPal account has 3 templates:
     - Quantity. The unit of measure is quantity. This invoice template is typically used for physical goods.
     - Hours. The unit of measure is hours. This invoice template is typically used for services.
     - Amount. The unit of measure is amount. This invoice template is typically used when only amount is required.
   - Opt-In Condition: Enable a conditional logic to only send invoices when a condition is met.
   - Opt-In Field: Select the field that must be present to pass the condition.
   - Items: Each item represents a product or service that will be detailed in the Invoice. It's composed of:
     - Name: Describes the item.
     - Description: Map the Form Field to the Invoice Item description.
     - Price/Rate/Amount: It's the form field used to collect the product price or hour rate or fixed amount, according to the selected template.
     - Quantity/Hours: It is the form field to collect the number of products or hours, according to the selected template. This number is multiplied by the price or hourly rate, to get the transaction sub-total. If you don't select any fields, the quantity/hours used is going to be 1.
     - Tax Name: Add a Sales Tax name.
     - Tax Percent: Add a Sales Tax percent.
     - Discount Percent: Add a Discount Tax.
   - Recipients: Each recipient represents the user's details and preferences that will receives the Invoice. It's composed of a Billing section and a Shipping section:
     - Billing Info
       - Email Address: Required. The Email field from which we are going to collect the email address.
       - Language: Optional. Used to send the invoice in a different language.
       - Name:
       - Surname:
       - Address Line 1
       - Admin Area 2
       - Admin Area 1
       - Postal Code
       - Country Code
       - Phone Country Code
       - Phone Number
       - Phone Type
       - Additional Value
     - Shipping Info
       - Name
       - Surname:
       - Address Line 1
       - Admin Area 2
       - Admin Area 1
       - Postal Code
       - Country Code
4. Click Create.

> Important: To display all the fields correctly, the application will ask you to enter the API keys that correspond to the selected environment (Sandbox or Live) and will show you the "Connect to PayPal" button. For example, we will use this feature to bring the list of Invoice Templates from your account.