Paddle
Paddle is a payment infrastructure provider designed for SaaS and software businesses.
Data integration: Skyvia supports importing data to and from Paddle, exporting Paddle data to CSV files, replicating Paddle data to relational databases, and synchronizing Paddle data with other cloud apps and relational databases.
Backup: Skyvia Backup does not support Paddle.
Query: Skyvia Query supports Paddle.
Establishing Connection
To create a connection to Paddle, specify the environment and provide an authentication token.
Getting Credentials
To obtain the authentication token, log in to Paddle. In the Paddle interface, go to the left-hand menu panel, click Developer Tools, and select Authentication:
On the opened page, find the API Keys section and click Generate API key:
Creating Connection
To connect to Paddle, follow these steps:
-
Select the Environment type.
-
Enter the authentication token generated in the previous step.
Connector Specifics
Object Peculiarities
Notifications
Notifications older than 90 days are not retained. To limit the search period, use filtering by the From and To fields. If a query is executed without specifying conditions, these fields return empty values. You can set filtering either for the From or To fields individually, or use both together.
Example of filter setting:
1
2
3
SELECT t.*
FROM Notifications AS t
WHERE (t.To = '2025-01-15 12:00:00' AND t."From" = '2025-01-10 12:00:00')
Notifications Log
Notifications are retained for 90 days. If you try to list logs for a notification that is no longer available, Paddle returns an error.
Subscriptions
For UPDATE operations, mapping of the ProrationBillingMode field is required. When performing a SELECT request, this field always returns an empty value. Additionally, ensure proper mapping of the Items field, as the array of included objects may vary depending on the selected item type. For more details, see the official documentation.
Transactions
Proper mapping of the Items field is required, as the array of included objects may vary depending on the selected item type. For more details, see the official documentation.
Nested Objects
The Items field of the Subscriptions and Transactions objects is a nested object. To insert or update nested values in the Items field during import, enable the Nested Objects option in the import configuration settings.
Filtering Specifics
The Paddle API supports the following native filters:
Object | Fields and Operators |
---|---|
Adjustments | Action (= ), CustomerId (= , IN), Status (= , IN), SubscriptionId (= , IN), TransactionId (= , IN) |
Customers | Email (= , IN) |
CustomerAddresses | CustomerId (= , IN) |
CustomerBusinesses | CustomerId (= , IN) |
CustomerPaymentMethods | AddressId (= , IN), CustomerId (= , IN) |
Discounts | Code (= , IN) |
Notifications | NotificationSettingId (= , IN), Status (= , IN) |
NotificationSettings | Active (= ), TrafficSource (= ) |
Prices | ProductId (= , IN) |
Products | TaxCategory (= , IN) |
Reports | Status (= , IN) |
Simulations | NotificationSettingId (= , IN), Status (= , IN) |
Subscriptions | CollectionMode (= ), AddressId (= , IN), CustomerId (= , IN), Status (= , IN) |
Transactions | CollectionMode (= ), CustomerId (= , IN), InvoiceNumber (= , IN), Origin (= , IN), Status (= , IN), SubscriptionId (= , IN), CreatedDate (>= , > , <= , < ), UpdatedDate (>= , > , <= , < ), BilledAt (>= , > , <= , < ) |
Use these filters to improve performance and save API calls. You can use filters with other fields or operators, but it may increase API call usage.
Native Sorting
The Paddle API natively supports sorting for the following fields in the specified objects:
Object | Field | Sorting Order |
---|---|---|
Adjustments | Id | asc/desc |
Customers | Id | asc/desc |
Discounts | CreatedDate, Id | asc/desc |
Notifications | Id | asc/desc |
NotificationSettings | Id | asc/desc |
Prices | BillingCycle_Frequency, BillingCycleInterval, Id, ProductId, Quantity_Maximum, Quantity_Minimum, Status, TaxMode, UnitPrice_Amount, UnitPrice_CurrencyCode | asc/desc |
Products | CustomData, Description, Id, ImageUrl, Name, Status, TaxCategory, CreatedDate, UpdatedDate | asc/desc |
Reports | Id | asc/desc |
Simulations | Id | asc/desc |
Subscriptions | Id | asc/desc |
Transactions | Id, BilledAt, CreatedDate, UpdatedDate | asc/desc |
Note that the Paddle API does not support native sorting by multiple fields simultaneously. You can only sort records natively by a single field.
Incremental Replication and Synchronization
Skyvia supports Replication with Incremental Updates for the following objects: Adjustments, CustomerAddresses, CustomerBusinesses, CustomerPaymentMethods, Customers, Discounts, Prices, Products, Reports, SimulationRuns, SimulationRunEvents, Simulations, Subscriptions, Transactions.
Synchronization is available for the objects: CustomerAddresses, CustomerBusinesses, Customers, Discounts, Prices, Products, Simulations, Transactions.
Since these objects support only INSERT and UPDATE operations, attempt to delete a record from one of these objects during synchronization will result in an error, such as: ‘Table Customers does not support DELETE statement.’
DML Operations
Operation | Object |
---|---|
INSERT, UPDATE, DELETE | NotificationSettings |
INSERT, UPDATE | CustomerAddresses, CustomerBusinesses, Customers, Discounts, Prices, Products, Simulations, Transactions |
INSERT | Adjustments, Reports, SimulationRuns |
UPDATE | Subscriptions |
DELETE | CustomerPaymentMethods |
Stored Procedures
Skyvia represents part of the supported Paddle features as stored procedures. For example, you can call a stored procedure by specifying it as the command text in the ExecuteCommand action of a Target component in a Data Flow or in a Query.
For the Paddle connector, all parameters specified in procedures are required.
ReplayNotification
To replay a notification, i.e. to resend a previously sent webhook notification, use the command:
call ReplayNotification(:notification_id)
ReplayEventSimulationRun
To re-execute a simulated event run, use the command:
call ReplayEventSimulationRun(:simulation_event_id,:simulation_run_id,:simulation_id)
ActivateSubscription
To activate a trialing subscription, use the command:
call ActivateSubscription(:subscription_id)
PauseSubscription
To pause a subscription, use the command:
call PauseSubscription(:subscription_id)
ResumePausedSubscription
To resume a paused subscription, use the command:
call ResumePausedSubscription(:subscription_id)
CancelSubscription
To cancel a subscription, use the command:
call CancelSubscription(:subscription_id)
Supported Actions
Skyvia supports all the common actions for Paddle.