Appbricx
Docs
FeaturesPricingStart free

Get started

OverviewWhat Appbricx isQuickstart with a coding agentQuickstart with the builderCore concepts

Guides

Data and tablesAccess and rolesBusiness rulesSign-inCustom screensRealtime and topicsWorkflows, schedules and webhooksServer functionsAI in your appPaymentsFilesMessagesIntegrationsVerifyPublishing, domains and rollbackOperating your appExport and self-hostSelf-host install

Tutorials

Build a booking app with Claude CodeMulti-user todo listClient portalSlack on new sign-upTemplates

Reference

Reference homeFrontend SDKHTTP APIMCP toolsCLIIntegrations catalogContract formatAI key resolutionRun Appbricx locally

PayWhirl

Manage subscription customers and billing with PayWhirl.

Finance and paymentsAPI key6 actionsAll integrations

On this page
  1. Connect
  2. Call it from a workflow
  3. Actions (6)
  4. createCustomer
  5. cancelSubscription
  6. custom_api_call
  7. getCustomer
  8. searchCustomersSubscription
  9. subscribeCustomer
  10. Details

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.

Native workflow
// .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
// 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);
  },
});
From an app (connector proxy)
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.

InputTypeDescription
first_namerequiredtextFirst name
last_namerequiredtextLast name
emailrequiredtextEmail address
currencyrequiredtextCurrency code (ex. USD, GBP, AUD, CAD, EUR, etc)
passwordoptionaltextPassword (leave blank to let customer assign via secure link in welcome email)
phoneoptionalnumberPhone number
addressoptionallong textStreet address
cityoptionaltextCity
stateoptionaltextState / Region
zipoptionaltextZip / Postal Code
countryoptionaltextCountry Code (ex. US, GB, CA, AU, etc)
gateway_idoptionaltextPayWhirl ID of payment gateway to attach to customer. If left blank, first loaded gateway will be used.
utm_sourceoptionaltextAcquisition source (ex. google, bing, email, fall_campaign, etc)
utm_mediumoptionaltextAcquisition medium (ex. CPC, banner, text_ad, etc)
utm_termoptionaltextAcquisition keyword
utm_contentoptionaltextAcquisition Ad Content
utm_campaignoptionaltextAcquisition Ad Campaign
utm_groupoptionaltextAcquisition 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.

InputTypeDescription
subscription_idoptionalnumberSubscription ID
customer_idoptionaltextCustomer ID (can be used instead of subscription_id)

custom_api_call

Custom API Call. Make a custom API call to a specific endpoint

InputTypeDescription
urlrequiredobject (depends on other props)url
methodrequiredone of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD"Method
headersrequiredobjectAuthorization headers are injected automatically from your connection.
queryParamsrequiredobjectQuery Parameters
body_typeoptionalone of "none" | "json" | "form_data" | "raw"Body Type
bodyoptionalobject (depends on other props)Body
response_is_binaryoptionalbooleanEnable for files like PDFs, images, etc.
failsafeoptionalbooleanNo Error on Failure
timeoutoptionalnumberTimeout (in seconds)
followRedirectsoptionalbooleanFollow redirects

getCustomer

Get Customers. Retrieve a selection of customers. Useful for keeping track of customers in a local database.

InputTypeDescription
limitoptionalnumberNumber of entries to return. Limit 100.
order_keyoptionaltextField to sort by. Default: id
order_directionoptionalone of "asc" | "desc"Direction to order results
before_idoptionalnumberAll customers returned will have an ID less than this value
after_idoptionalnumberAll customers returned will have an ID greater than this value
keywordoptionaltextFilter 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.

InputTypeDescription
customer_idrequirednumberCustomer ID
statusoptionalone 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.

InputTypeDescription
customer_idrequirednumberCustomer ID
plan_idrequirednumberPlan ID
trial_endoptionalnumberUNIX timestamp in the future (UTC timezone)
promo_idoptionalnumberID of promo code to apply
quantityoptionalnumberQuantity (Default: 1)

Details

Id
paywhirl
Category
Finance and payments
Tags
subscriptions, billing, recurring, payments
Package
@activepieces/piece-paywhirl@0.0.5
Tier
Community

On this page

  1. Connect
  2. Call it from a workflow
  3. Actions (6)
  4. createCustomer
  5. cancelSubscription
  6. custom_api_call
  7. getCustomer
  8. searchCustomersSubscription
  9. subscribeCustomer
  10. Details
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authPaymentsWorkflows and jobsAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcasePricingFor coding agentsTemplatesPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use