Skip to main content

PayPal Transaction

This page contains the setup guide and reference information for the PayPal Transaction source connector.

This connector uses PayPal APIs OAuth 2.0 access token to authenticate requests.

Prerequisites

You need a PayPal account, which you can get by following these steps.

On the same page, you can also find how to set up a sandbox so you can test the connector before using it in production.

Setup guide

Step 1: Get your PayPal credentials

After creating your account, you can get your Client ID and Secret from the Apps & Credentials page.

Step 2: Set up the PayPal Transaction connector in Airbyte

  1. Log into your Airbyte account

  2. In the left navigation bar, click Sources.

    a. If this is your first time creating a source, use the search bar and enter Paypal Transaction and select it.

    b. If you already have sources configured, go to the top-right corner and click +new source. Then enter Paypal Transaction in the search bar and select the connector.

  3. Set the name for your source

  4. Enter your Client ID

  5. Enter your Client secret

  6. Start Date: Use the provided datepicker or enter manually a UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ.

  7. Toggle Sandbox on or off. By default, the toggle is off, meaning the connector works with the production environment.

  8. (Optional) Dispute Start Date Range: Use the provided datepicker or enter a UTC date and time in the format YYYY-MM-DDTHH:MM:SS.sssZ. The milliseconds are required. If you don't set a date, the list_disputes stream defaults to 180 days in the past. This option only applies to the list_disputes stream.

  9. (Optional) Refresh Token: You can enter a refresh token manually. The connector handles token refresh automatically.

  10. (Optional) Number of days per request: The number of days of data to request per API call. This helps avoid hitting rate limits. PayPal has a 10K record limit per request, so this option is useful if your sync frequency is weekly and you have more than 10K records per week. The default value is 7, and the maximum is 31 days.

  11. Click Set up source

info

By default, syncs are run with a slice period of 7 days. If you see errors with the message Result set size is greater than the maximum limit or an error code like RESULTSET_TOO_LARGE:

  • Try lowering the size of the slice period in the optional parameters of your connection configuration.
  • You can try lowering the scheduling sync window in case a single-day slice period is not enough. Lowering the sync period may help avoid reaching the 10K limit.

Supported sync modes

The PayPal Transaction source connector supports the following sync modes:

FeatureSupported?
Full Refresh SyncYes
Incremental - Append SyncYes
NamespacesNo

Supported Streams

This Source is capable of syncing the following core Streams:

Transactions Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureTransactions
Start DateTimestamp with TZ (no ms)
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestMax 31 , 7(D)
Pagination StrategyPage Increment
Page size Max 500 (F)
Full Refresh
Incremental (D)

D: Default configured Value

F: Fixed Value. This means it is not configurable.


Balances Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureBalances
Start DateTimestamp with TZ (no ms)
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestNA
Pagination StrategyNA
Page size NA
Full Refresh
Incremental (D)

D: Default configured Value

F: Fixed Value. This means it is not configurable.


List Products Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureList Products
Start DateNA
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestNA
Pagination StrategyPage Increment
Page size Max 20 (F)
Full Refresh (D)
Incremental

D: Default configured Value

F: Fixed Value. This means it is not configurable.

caution

The API limits the speed of data retrieval. A catalog with 30K or more products could take 10-15 minutes to retrieve.


Show Products Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureShow Prod. Details
Start DateNA
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestNA
Pagination StrategyNA
Page size NA
Full Refresh (D)
Incremental

D: Default configured Value

F: Fixed Value. This means it is not configurable.

caution

The parent stream (list_products) paginates with a maximum page size of 20 items. PayPal API calls are not concurrent, so the time depends entirely on the server. This stream could take a considerable time to sync. Depending on the size of the catalog, it could take several hours.


List Disputes Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureList Disputes
Start DateNA
Dispute Start Date RangeTimestamp with TZ (w/ms)
Refresh tokenAuto
Number of days per requestMax 180 , 7(D)
Pagination StrategyPage Token
Page size Max 50 (F)
Full Refresh
Incremental (D)

D: Default configured Value

F: Fixed Value. This means it is not configurable.


Search Invoices Stream

The following table contains the configuration parameters and default values for this stream.

Param/FeatureSearch Invoices
Start DateTimestamp with TZ (no ms)
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestND
Pagination StrategyPage Number
Page size Max 100 (F)
Full Refresh (D)
Incremental

D: Default configured Value

F: Fixed Value. This means it is not configurable.

ND: Not Defined in the source.

info

The start_date from the configuration is passed to the body of the request as creation_date_range.start and creation_date_range.end. For more information, see the PayPal Invoicing API documentation.


List Payments Stream

The following table contains the configuration parameters and default values for this stream.

info

The PayPal Payments API v1 is deprecated by PayPal. This stream continues to work, but PayPal recommends using the Orders API v2 for new integrations.

Param/FeatureList Payments
Start DateTimestamp with TZ (no ms)
Dispute Start Date RangeNA
Refresh tokenAuto
Number of days per requestNA , 7(D)
Pagination StrategyPage Cursor
Page size Max 20 (F)
Full Refresh
Incremental (D)

D: Default configured Value

F: Fixed Value. This means it is not configurable.


Performance Considerations

  • Data Availability: It takes a maximum of 3 hours for executed transactions to appear in the list transactions call.
  • Number of days per request: The maximum supported date range is 31 days.
  • Historical Data: You can't retrieve more than 3 years of data for the transactions stream. For dispute_start_date, you can only retrieve 180 days of data (see specifications per stream).
  • records_per_request: The maximum number of records in a single request is 10K (API server restriction).
  • page_size: The number of records per page differs per stream. The connector sets the maximum allowed page size for each stream by default.
  • requests_per_minute: The maximum limit is 50 requests per minute from a single IP address to all endpoints (API server restriction).

Data type map

Integration TypeAirbyte Type
stringstring
numbernumber
arrayarray
objectobject

Reference

Config fields reference

Field
Type
Property name
string
client_id
string
client_secret
boolean
is_sandbox
string
start_date
string
dispute_start_date
string
end_date
string
refresh_token
integer
time_window

Changelog

Expand to review
VersionDatePull RequestSubject
2.6.262026-02-2774027Fix INVALID_DATE_TIME_FORMAT error on disputes stream by using 3-digit milliseconds
2.6.252026-02-1773574Update dependencies
2.6.242026-02-1073171Update dependencies
2.6.232026-02-0372637Update dependencies
2.6.222026-01-2270967Update HTTP response action for 400 error transactions from IGNORE to FAIL
2.6.212026-01-2071652Update dependencies
2.6.202025-12-1870505Update dependencies
2.6.192025-11-2569974Update dependencies
2.6.182025-11-1869668Update dependencies
2.6.172025-10-2969044Update dependencies
2.6.162025-10-2168286Update dependencies
2.6.152025-10-1467760Update dependencies
2.6.142025-10-0767348Update dependencies
2.6.132025-09-3066378Update dependencies
2.6.122025-09-0965835Update dependencies
2.6.112025-08-2365171Update dependencies
2.6.102025-08-0964716Update dependencies
2.6.92025-08-0264258Update dependencies
2.6.82025-07-2663821Update dependencies
2.6.72025-07-1963449Update dependencies
2.6.62025-07-1263255Update dependencies
2.6.52025-07-0562625Update dependencies
2.6.42025-06-2862390Update dependencies
2.6.32025-06-2161932Update dependencies
2.6.22025-06-1451848Update dependencies
2.6.12025-06-0558674Update CDK to fix complex datatype errors with interpolation
2.6.02024-10-2347282Migrate to Manifest-only
2.5.82025-01-1143797Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
2.5.72024-06-2540269Update dependencies
2.5.62024-06-2240110Update dependencies
2.5.52024-06-0438983[autopull] Upgrade base image to v1.2.1
2.5.42024-05-2038265Replace AirbyteLogger with logging.Logger
2.5.32024-04-2436654Schema descriptions
2.5.22024-04-1937435Updated manifest.yaml to use the latest CDK Manifest version to fix the Incremental STATE values
2.5.12024-03-1536165Unpin CDK Version
2.5.02024-03-1536173Extended Disputes stream schema with missing properties
2.4.02024-02-2035465Per-error reporting and continue sync on stream failures
2.3.02024-02-1434510Silver certified. New Streams Added
2.2.22024-02-0935075Manage dependencies with Poetry.
2.2.12024-01-1134155prepare for airbyte-lib
2.2.02023-10-2531852The size of the time_window can be configured
2.1.22023-10-2331759Keep transaction_id as a string and fetch data in 7-day batches
2.1.12023-10-1931599Base image migration: remove Dockerfile and use the python-connector-base image
2.1.02023-08-1429223Migrate Python CDK to Low Code schema
2.0.02023-07-0527916Update Balances schema
1.0.02023-07-0327968mark Client ID and Client Secret as required fields
0.1.132023-02-2022916Specified date formatting in specification
0.1.122023-02-1823211Fix error handler
0.1.112023-01-2722019Set AvailabilityStrategy for streams explicitly to None
0.1.102022-09-0417554Made the spec and source config to be consistent
0.1.92022-08-1815741Removed OAuth2.0 option
0.1.82022-07-2515000Added support of OAuth2.0 authentication, fixed bug when normalization couldn't handle nested cursor field and primary key
0.1.72022-07-1814804Added RESULTSET_TOO_LARGE error validation
0.1.62022-06-1013682Updated paypal transaction schema
0.1.52022-04-2712335Added fixtures to mock time.sleep for connectors that explicitly sleep
0.1.42021-12-229034Updated connector fields title/description
0.1.32021-12-168580Added more logs during check connection stage
0.1.22021-11-087499Removed base-python dependencies
0.1.12021-08-035155Fixed start_date_min limit
0.1.02021-06-104240PayPal Transaction Search API