PayWhirl
Manage subscription customers and billing with PayWhirl.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("paywhirl", "createCustomer", {
"first_name": "<first name>",
"last_name": "<last name>",
"email": "<email>",
"currency": "<currency>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("PayWhirl answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "paywhirl-createcustomer",
name: "PayWhirl: Create Customer",
description: "Calls PayWhirl when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("paywhirl", {
"action": "createCustomer",
"first_name": "<first name>",
"last_name": "<last name>",
"email": "<email>",
"currency": "<currency>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/paywhirl/createCustomer" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"first_name":"<first name>","last_name":"<last name>","email":"<email>","currency":"<currency>"}}'Actions
createCustomerin catalog
Create Customer. Create a new customer. This is required before binding a customer to a plan via a subscription.
Also accepted as create_customer.
| Input | Type | Description |
|---|---|---|
first_namerequired | text | First name |
last_namerequired | text | Last name |
emailrequired | text | Email address |
currencyrequired | text | Currency code (ex. USD, GBP, AUD, CAD, EUR, etc) |
passwordoptional | text | Password (leave blank to let customer assign via secure link in welcome email) |
phoneoptional | number | Phone number |
addressoptional | long text | Street address |
cityoptional | text | City |
stateoptional | text | State / Region |
zipoptional | text | Zip / Postal Code |
countryoptional | text | Country Code (ex. US, GB, CA, AU, etc) |
gateway_idoptional | text | PayWhirl ID of payment gateway to attach to customer. If left blank, first loaded gateway will be used. |
utm_sourceoptional | text | Acquisition source (ex. google, bing, email, fall_campaign, etc) |
utm_mediumoptional | text | Acquisition medium (ex. CPC, banner, text_ad, etc) |
utm_termoptional | text | Acquisition keyword |
utm_contentoptional | text | Acquisition Ad Content |
utm_campaignoptional | text | Acquisition Ad Campaign |
utm_groupoptional | text | Acquisition Ad Group |
cancelSubscription
Cancel Subscription. Cancel a customer's existing subscription. This will prevent the subscription from making any additional charges and unbind the customer from the plan.
| Input | Type | Description |
|---|---|---|
subscription_idoptional | number | Subscription ID |
customer_idoptional | text | Customer ID (can be used instead of subscription_id) |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
getCustomer
Get Customers. Retrieve a selection of customers. Useful for keeping track of customers in a local database.
| Input | Type | Description |
|---|---|---|
limitoptional | number | Number of entries to return. Limit 100. |
order_keyoptional | text | Field to sort by. Default: id |
order_directionoptional | one of "asc" | "desc" | Direction to order results |
before_idoptional | number | All customers returned will have an ID less than this value |
after_idoptional | number | All customers returned will have an ID greater than this value |
keywordoptional | text | Filter by keyword |
searchCustomersSubscription
Get Customer Subscriptions. Get a list of subscriptions associated with a given customer. Useful for determining which services a customer is currently expecting.
| Input | Type | Description |
|---|---|---|
customer_idrequired | number | Customer ID |
statusoptional | one of "active" | "canceled" | "all" | Filter by subscription status. Active (default) excludes canceled; Canceled shows only canceled; All shows all subscriptions. |
subscribeCustomer
Subscribe Customer. Enroll a customer in an existing plan. The customer must have a valid payment method on file.
| Input | Type | Description |
|---|---|---|
customer_idrequired | number | Customer ID |
plan_idrequired | number | Plan ID |
trial_endoptional | number | UNIX timestamp in the future (UTC timezone) |
promo_idoptional | number | ID of promo code to apply |
quantityoptional | number | Quantity (Default: 1) |
Details
- Id
paywhirl- Category
- Finance and payments
- Tags
- subscriptions, billing, recurring, payments
- Package
@activepieces/piece-paywhirl@0.0.5- Tier
- Community