---
title: "PayPal Initiate"
method: POST
path: "/paypal/initiate"
tags: ["PayPal"]
---

# PayPal Initiate

`POST /paypal/initiate`

This request initiates a PayPal transaction.

**Integration Methods:**
- Host Direct

See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

## Headers

- `InterfaceVersion` string, required
- `InterfaceName` string, required
- `CompanyName` string, required
- `AccessToken` string, uuid, required

## Request body

- object
  - `amount` object, required
    - `tax` number, required — The amount of sales tax charged for a transaction. The tax amount is used by businesses to track tax expenses for accounting purposes. Identifying the tax amount also helps consumers understand the total amount that they were billed. This field is part of Level 2 card data.
    - `total` number, required — The amount being charged for a particular transaction. If other amount fields are sent, they must be included in the total amount. Amount cannot be zero.
  - `currencyCode` string, ISO 4217 3 Character Alphabetic Code, required — Transaction currency code. See the [Currency Codes](/guides/appendices/currency-codes) section for details. **Note: This is currently supported when processing for a merchant outside of the US and Canada. If processing for a US or Canadian merchant then this field will be ignored and the transaction will process in the merchant's configured currency.**
  - `customer` object, required
    - `addressLine1` string, required — Cardholder’s street address exactly as it appears on their billing statement. This field is used in AVS.
    - `city` string, required — Customer address city.
    - `country` string, required — 2 character ISO Country Code. See the [ISO](https://www.iso.org/obp/ui/#search/code/) website for details.
    - `emailAddress` string, required — Customer email address.
    - `firstName` string, required — Specifies a consumer’s first name. This field is used in AVS. If the interface sends this field, the value specified by the interface will be returned in the response, unless the API Option [USECARDNAME](/guides/appendices/api-options#usecardname) is included in the request and a Commerce Engine or UTG-controlled PIN pad is in use. If the interface does not send the `customer` object, the consumer's name will be returned in the `customer` object if the name is present in the card's EMV or track data.
    - `lastName` string, required — Specifies a consumer’s last name. This field is used in AVS. If the interface sends this field, the value specified by the interface will be returned in the response, unless the API Option [USECARDNAME](/guides/appendices/api-options#usecardname) is included in the request and a Commerce Engine or UTG-controlled PIN pad is in use. If the interface does not send the `customer` object, the consumer's name will be returned in the `customer` object if the name is present in the card's EMV or track data.
    - `ipAddress` string, required — Public source IP Address where the request originates, not the IP Address of the web server.
    - `phoneNumber` string, required — Customer phone number
    - `phoneCountry` string, required — Country calling code of the phone number. Required when sending `customer.phoneNumber`.
    - `region` string, required — A level 2 country subdivision code according to ISO-3166-2.
    - `externalId` string, required — Your external identifier for the Customer
    - `enrollDate` string, ISO 8601, required — Date of the user's first transaction in your system, regardless of payment method used. The date and time must be passed in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm)
  - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
  - `sourceIp` string, required — Public source IP Address where the request originates, not the IP Address of the web server.
  - `transaction` object, required
    - `invoice` string, required — 10-digit invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a batch in Shift4's Gateway. **Note: For US and Canadian processing: Although the invoice number is sent as a JSON string it is a numeric value. No alpha characters are allowed.** **For processing outside of the US and Canada alpha characters are allowed.**
    - `ota` OTARequestPayPal — **Conditional: Utilize this object for Online Travel Agency transactions**
      - `changeGuest` 'Y' | 'N', required — Whether the guest (the person being served) is able to be changed. Fraudsters tend to pay for services that can change the guest.
      - `serviceEndDate` string, YYYY-MM-DD, required — OTA service end date in YYYY-MM-DD format. A consumer booking a service such as a hotel for too many days elevates risk.
      - `serviceStartDate` string, YYYY-MM-DD, required — OTA service start date in YYYY-MM-DD format. A service start date that is very close to the transaction date elevates risk.
      - `startCity` string, required — OTA start city.
      - `startCountry` string, ISO 3166 Alpha-2, required — OTA start country in ISO 3166 Alpha-2 format.; for example, country where bus ticket was purchased.
      - `startZipCode` string, required — OTA start zip code.
      - `type` string[], required — OTA transaction type array.
    - `vendorReference` string, required — Optional field for information that can be searched in the merchant portal.

## Response `200`

Transaction was processed

- object
  - `result` object[]
    - `amount` object, required
      - `tax` number, required — The amount of sales tax charged for a transaction. The tax amount is used by businesses to track tax expenses for accounting purposes. Identifying the tax amount also helps consumers understand the total amount that they were billed. This field is part of Level 2 card data.
      - `total` number, required — The amount being charged for a particular transaction. If other amount fields are sent, they must be included in the total amount. Amount cannot be zero.
    - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `payPal` object, required
      - `clientMetaDataId` string — Identifier for completing risk check. Returned if `transaction.ota` is sent in the request.
      - `clientToken` string, required — A Base64 encoded string used to initialize client SDKs.
    - `server` object, required
      - `name` string, required — The name of the server that processed the request.
    - `transaction` object, required
      - `authSource` 'E' | 'O' | 'A' | 'F', required — In a response, a code returned by the processor to indicate which host issued the response. Value | Description -------|---------------------------- E | Engine (Online) O | Offline A | APM (Online) F | Payment Platform (Online)
      - `invoice` string, required — 10-digit invoice number assigned by the interface to identify a transaction. An invoice number serves as a unique key that identifies a transaction within a batch in Shift4's Gateway. **Note: For US and Canadian processing: Although the invoice number is sent as a JSON string it is a numeric value. No alpha characters are allowed.** **For processing outside of the US and Canada alpha characters are allowed.**
      - `vendorReference` string — Optional field for information that can be searched in the merchant portal.

---

[API](https://skmtc.dev/shift4/apis/shift4-payment-api.md) · [All operations](https://skmtc.dev/shift4/apis/shift4-payment-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/shift4/shift4-payment-api/revisions/2f85c87cc9e5/schema)
