← All action domains

Stripe

26 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Cancel failed Tap to Pay attempt

stripe.cancel_mobile_terminal_paymentwriteconfirm

Cancel a failed or abandoned Tap to Pay PaymentIntent in the selected connected Stripe account. If the card was authorized, cancellation releases the authorization instead of collecting money; succeeded payments are never canceled by this action.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account where the Tap to Pay attempt was created.
mode"live" | "test"optionalWhether the attempt used live money or Stripe test mode. Default: "test"
payment_intent_idstringrequiredThe Stripe PaymentIntent created by this mobile checkout attempt.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.cancel_mobile_terminal_payment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "payment_intent_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_cancel_mobile_terminal_payment at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect a Stripe account

stripe.connect_accountwriteconfirmadmin only

Connect another Stripe account by its secret key. The key is verified against Stripe and stored encrypted, and an import of that account's customers, charges and subscriptions starts immediately — a large account continues in the background. Customers are matched to existing contacts by email address; new ones are added as contacts but are NOT subscribed to marketing unless subscribe_to_marketing is set. Handles credentials that can charge money.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
secret_keystringrequiredThe Stripe live secret key (sk_live_… or rk_live_…). Add the same account's test key separately in test_secret_key.
display_namestringoptionalWhat to call this account here. Defaults to the name Stripe reports.
publishable_keystringrequiredThis account's live publishable key (pk_live_…). Required because every connected account can be selected by invoices, products, funnels, and websites.
webhook_secretstringoptionalSigning secret (whsec_…) for a webhook endpoint you created yourself. Usually leave this blank: an endpoint is registered in the account automatically on connect (when the key can manage webhooks), so payments and refunds appear instantly. Provide one only to point at an endpoint you set up by hand instead.
test_secret_keystringoptionalThis same account's Stripe test secret key (sk_test_… or rk_test_…).
test_publishable_keystringoptionalThis same account's Stripe test publishable key (pk_test_…). Required for test checkout forms.
test_webhook_secretstringoptionalOptional signing secret for this account's test-mode webhook endpoint.
create_contactsbooleanoptionalCreate a CRM contact for a payer who isn't already one. False means only enrich people already in the CRM. Default: true
subscribe_to_marketingbooleanoptionalAllow contacts created by this import to receive marketing email. Defaults to FALSE — someone who paid you has not consented to campaigns, and imported contacts are added to the email opt-out list unless this is true. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.connect_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "secret_key": "example",
    "publishable_key": "example"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_connect_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect with Stripe

stripe.connect_oauthwriteconfirmadmin only

Get a browser link to connect a Stripe business by signing in to Stripe and approving Chirply. An owner or admin must complete consent in their browser. Grants access to payments, invoices, subscriptions and CRM data; this action itself charges no money and sends no messages. Existing agency-managed Connect setups remain key-based.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
mode"live" | "test"optionalLive business authorization, or test mode for an already-connected Stripe business. Default: "live"
account_idstring (uuid)optionalExisting Chirply Stripe connection to reconnect or add test mode to. Stripe must return the same business.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.connect_oauth \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "live",
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_connect_oauth at https://app.chirply.io/api/mcp, same bearer token, same input.

What this contact has paid

stripe.contact_revenueread

One contact's saved Stripe history across connected accounts: financials separated by currency and live/test connection, collected money, net after refunds, successful-payment counts, refunded-payment counts and amounts, disputed-charge counts and full charge values, subscriptions and recent charges. historyPending means an initial import is incomplete; totals can increase as older payments arrive. financialsError means currency totals could not be loaded. Amounts are minor units. Refund counts count charges with refunds, not individual refund events; disputed amounts are not confirmed losses. Legacy scalar totals may mix currencies; use financials for money. Read-only; sends no messages and charges no money.

Parameters

FieldTypeRequiredDescription
contact_idstring (uuid)requiredThe CRM contact's id.
payment_limitintegeroptionalHow many recent payments to include. Default: 10

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.contact_revenue \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "contact_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_contact_revenue at https://app.chirply.io/api/mcp, same bearer token, same input.

Enter card securely

stripe.create_mobile_paymentwriteconfirm

Create a Stripe PaymentIntent in the selected connected account for secure in-person card entry. Confirming the Stripe payment form can charge the customer's real card in live mode and incurs that account's Stripe processing fees; the card number and security code are never received or stored here. Also CREATES A STRIPE CUSTOMER in that connected account when the payer has no Stripe customer record yet — a permanent record carrying their name, email and phone — and links it to the CRM contact for reuse on later payments.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account that will receive this payment.
amount_centsintegerrequiredThe amount to collect in the currency's smallest unit, such as cents for USD.
currencystringrequiredThree-letter ISO currency code, such as usd.
descriptionstringoptionalOptional description shown with the payment in Stripe.
receipt_emailstring (email)optionalOptional customer email where Stripe may send a receipt.
contact_idstring (uuid)optionalOptional CRM customer to associate with this payment and prefill the receipt email from.
stripe_customer_record_idstring (uuid)optionalOptional imported Stripe customer record to charge or associate with the checkout in the selected Stripe account.
payer_namestringoptionalOptional payer name supplied at the point of sale when no saved customer is selected.
payer_phonestringoptionalOptional payer phone number supplied at the point of sale when no saved customer is selected.
mode"live" | "test"optionalUse live credentials to collect real money or test credentials for a simulated payment. Default: "test"

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.create_mobile_payment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "amount_cents": 50,
    "currency": "USD"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_create_mobile_payment at https://app.chirply.io/api/mcp, same bearer token, same input.

Disconnect a Stripe account

stripe.disconnect_accountwriteconfirmadmin only

Delete a connected Stripe account's stored keys and remove every customer, payment and subscription imported from it. Contacts are KEPT — they just lose the revenue that came from this account. Nothing changes inside Stripe itself. Irreversible short of reconnecting and re-importing.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected account's id (from stripe.list_accounts).

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.disconnect_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_disconnect_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Turn on real-time sync

stripe.enable_realtime_syncwriteconfirmadmin only

Register the platform's webhook inside this connected Stripe account so payments, refunds and subscription changes land on the contact the instant they happen, instead of waiting up to an hour for the next scheduled import. Uses the account's stored secret key to create the endpoint — no dashboard steps for the user. If that key is a restricted one that can't manage webhooks, this reports why and the account stays on the hourly import (paste a signing secret by hand as the fallback). Safe to run repeatedly; it re-registers rather than duplicating.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected account's id (from stripe.list_accounts).

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.enable_realtime_sync \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_enable_realtime_sync at https://app.chirply.io/api/mcp, same bearer token, same input.

Stripe accounts

stripe.list_accountsreadadmin only

List every Stripe account this account has connected, with how many customers, payments and subscriptions have been imported from each, when it last synced, and which one collects money for invoices and funnels. Read-only; returns no keys.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.list_accounts \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool stripe_list_accounts at https://app.chirply.io/api/mcp, same bearer token, same input.

Stripe customers

stripe.list_customersread

List the Stripe customer records imported into this account, newest first. One human can own several of these — one per Stripe account they've bought from — and `contact_id` is the single CRM contact they were all matched onto. Filter by contact to see every Stripe identity behind one person.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
account_idstring (uuid)optionalOnly customers from this connected Stripe account.
contact_idstring (uuid)optionalOnly the Stripe customer records belonging to this CRM contact.
querystringoptionalText to match against name or email.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.list_customers \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool stripe_list_customers at https://app.chirply.io/api/mcp, same bearer token, same input.

Stripe payments

stripe.list_paymentsread

List charges imported from the connected Stripe accounts, newest first. Amounts are in minor units (cents) in the charge's own currency. `status` is the outcome of the ATTEMPT — a succeeded payment that was later refunded is still `succeeded`, with `amount_refunded_cents` set — so never total money without filtering to succeeded.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
account_idstring (uuid)optionalOnly payments taken by this connected Stripe account.
contact_idstring (uuid)optionalOnly payments made by this CRM contact.
status"succeeded" | "pending" | "failed"optionalOutcome of the attempt.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.list_payments \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool stripe_list_payments at https://app.chirply.io/api/mcp, same bearer token, same input.

Stripe subscriptions

stripe.list_subscriptionsread

List subscriptions imported from the connected Stripe accounts, in every status so cancelled plans are still visible as history. Amounts are per interval, in minor units.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
account_idstring (uuid)optionalOnly subscriptions in this connected Stripe account.
contact_idstring (uuid)optionalOnly this CRM contact's subscriptions.
statusstringoptionalStripe status to filter on: active, trialing, past_due, canceled, unpaid, incomplete, paused.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.list_subscriptions \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool stripe_list_subscriptions at https://app.chirply.io/api/mcp, same bearer token, same input.

Stripe import history

stripe.list_sync_runsreadadmin only

Every import attempt against the connected Stripe accounts, newest first, with what it pulled, how many contacts it matched versus created, and the error if it failed. This is what answers “why isn't this customer here?”.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
account_idstring (uuid)optionalOnly runs against this connected account.
status"running" | "succeeded" | "failed"optionalOnly runs with this outcome.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.list_sync_runs \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool stripe_list_sync_runs at https://app.chirply.io/api/mcp, same bearer token, same input.

Choose a Stripe account

stripe.payment_accountsread

List the connected Stripe accounts that an account member can select when taking a mobile payment. Returns display and availability fields only; no secret or publishable keys are exposed.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.payment_accounts \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool stripe_payment_accounts at https://app.chirply.io/api/mcp, same bearer token, same input.

Open secure card form

stripe.prepare_mobile_card_entryread

Return the selected connected Stripe account's publishable configuration so the mobile app can display Stripe's encrypted card form. This does not create a PaymentIntent, charge anyone, or leave an incomplete transaction; the intent is created only after the customer enters a payment method and confirms Pay.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account that will receive the eventual payment.
mode"live" | "test"optionalUse live configuration for real money or test configuration for a simulated payment. Default: "test"

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.prepare_mobile_card_entry \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_prepare_mobile_card_entry at https://app.chirply.io/api/mcp, same bearer token, same input.

Prepare Tap to Pay payment

stripe.prepare_mobile_terminal_paymentwriteconfirm

Create a Stripe Customer for the selected CRM contact when needed — a permanent record in that connected account carrying their name, email and phone — then create the card-present PaymentIntent that the authenticated mobile app will collect. The later native confirmation can charge the customer's real card in live mode and incurs the connected account's Stripe Terminal fees; this preparation call alone does not collect a card.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account that will receive this payment.
amount_centsintegerrequiredThe amount to collect in the currency's smallest unit, such as cents for USD.
currencystringrequiredThree-letter ISO currency code, such as usd.
descriptionstringoptionalOptional description shown with the payment in Stripe.
receipt_emailstring (email)optionalOptional customer email where Stripe may send a receipt.
contact_idstring (uuid)optionalOptional CRM customer to associate with this payment and prefill the receipt email from.
stripe_customer_record_idstring (uuid)optionalOptional imported Stripe customer record to charge or associate with the checkout in the selected Stripe account.
payer_namestringoptionalOptional payer name supplied at the point of sale when no saved customer is selected.
payer_phonestringoptionalOptional payer phone number supplied at the point of sale when no saved customer is selected.
mode"live" | "test"optionalUse live credentials to collect real money or test credentials for a simulated payment. Default: "test"

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.prepare_mobile_terminal_payment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "amount_cents": 50,
    "currency": "USD"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_prepare_mobile_terminal_payment at https://app.chirply.io/api/mcp, same bearer token, same input.

Start Tap to Pay

stripe.prepare_tap_to_paywriteconfirm

Create a short-lived Stripe Terminal connection token for the selected connected account and list that account's reader locations. If that account has no Terminal location yet, this also CREATES ONE in Stripe from the account's saved business address — a permanent Terminal Location record on the connected account, named after the account — or, when the address is incomplete, returns setup_required instead of creating anything. A later confirmation on a supported NFC phone can collect real money in live mode and incurs Stripe Terminal fees; this call alone does not charge anything.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account that will receive Tap to Pay payments.
mode"live" | "test"optionalUse live credentials for real cards or test credentials for a simulated reader. Default: "test"

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.prepare_tap_to_pay \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_prepare_tap_to_pay at https://app.chirply.io/api/mcp, same bearer token, same input.

Connections in my other accounts

stripe.reusable_connectionsreadadmin only

List Stripe app connections in other Chirply accounts that this signed-in person administers and can add here. Read-only; returns business names and IDs, never API tokens or financial records.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.reusable_connections \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool stripe_reusable_connections at https://app.chirply.io/api/mcp, same bearer token, same input.

Search payment contacts

stripe.search_payment_recipientsread

Search every CRM contact by first name, last name, combined full name, business, email, or phone for the mobile point of sale, with matching imported Stripe customers included when available. Read-only; returns safe identifiers scoped to the selected account and Stripe account.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account whose imported customers should be searched.
mode"live" | "test"optionalSearch live or test Stripe customer records. Default: "test"
querystringrequiredName, business, email, phone number, or Stripe customer id to find.
limitintegeroptionalMaximum unified recipients to return. Default: 12

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.search_payment_recipients \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "query": "example"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_search_payment_recipients at https://app.chirply.io/api/mcp, same bearer token, same input.

Sync a Stripe account

stripe.sync_accountwriteadmin only

Import one connected Stripe account again, picking up where the last run left off. Reads only — nothing is created or charged in Stripe. May create CRM contacts for payers who aren't contacts yet (subject to the account's settings), and those contacts are excluded from marketing unless the account allows it. A large account may not finish in one call; check `done` in the result and call again.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected account's id (from stripe.list_accounts).
fullbooleanoptionalWalk the whole account from the beginning instead of only what's changed since the last sync. Slow on a large account, and only needed if you think something was missed. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.sync_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_sync_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Sync all Stripe accounts

stripe.sync_all_accountswriteadmin only

Import every connected Stripe account that has syncing switched on. Same read-only behaviour as stripe.sync_account, run across all of them with the time budget shared between accounts.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.sync_all_accounts \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool stripe_sync_all_accounts at https://app.chirply.io/api/mcp, same bearer token, same input.

Import progress

stripe.sync_progressreadadmin only

Read each connected Stripe account's import stage, running/queued/completed state, delayed-batch warning, saved customer/payment/subscription counts, last completed sync and tracked webhook activity. Financials separate currencies and live/test connections: successful collected amounts, net after refunds, net attributed to CRM contacts, refunded-payment counts/amounts and disputed-charge counts/full charge amounts. Counts describe charges, not individual refund events; disputed value is not confirmed losses. Totals remain partial during import. Read-only; sends no messages and charges no money.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.sync_progress \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool stripe_sync_progress at https://app.chirply.io/api/mcp, same bearer token, same input.

Change a Stripe account's settings

stripe.update_accountwriteconfirmadmin only

Rename a connected Stripe account, turn its import on or off, change whether it creates contacts or lets them receive marketing email, or replace or REMOVE its live/test keys. Every account remains available on invoices, products, funnels, and websites. Replacement keys are verified before they overwrite working ones. Removing a publishable key (send an empty string) stops card payments on that account until one is added back, and changes nothing else — the secret key, webhook and the other mode's credentials are untouched and importing carries on. Omitted fields are never touched.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected account's id (from stripe.list_accounts).
display_namestringoptionalNew name for this account here.
sync_enabledbooleanoptionalKeep importing from this account.
create_contactsbooleanoptionalCreate contacts for payers who aren't already contacts.
subscribe_to_marketingbooleanoptionalAllow contacts imported from this account to receive marketing email. Applies to future imports only.
secret_keystringoptionalReplacement Stripe secret key.
publishable_keystringoptionalReplacement LIVE publishable key (pk_live_…). An empty string removes the stored one, which turns off card payments on this account until a key is added back but leaves the connection, its secret key, its webhook and its test credentials working. Omit to leave it alone.
webhook_secretstringoptionalReplacement webhook signing secret.
test_secret_keystringoptionalReplacement Stripe test secret key.
test_publishable_keystringoptionalReplacement TEST publishable key (pk_test_…). An empty string removes the stored one, which turns off test-mode card entry only; live payments are unaffected. Omit to leave it alone.
test_webhook_secretstringoptionalReplacement test webhook signing secret.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.update_account \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_update_account at https://app.chirply.io/api/mcp, same bearer token, same input.

Verify mobile payment

stripe.verify_mobile_paymentread

Retrieve one mobile PaymentIntent directly from its connected Stripe account and return Stripe's authoritative current status, amount, customer and receipt details. This is read-only and does not create, capture, cancel, refund or otherwise change the payment.

Parameters

FieldTypeRequiredDescription
account_idstring (uuid)requiredThe connected Stripe account that received the mobile payment.
mode"live" | "test"optionalWhether the payment used live money or Stripe test mode. Default: "test"
payment_intent_idstringrequiredThe Stripe PaymentIntent identifier returned to the mobile checkout.

Example

curl -X POST https://app.chirply.io/api/v1/actions/stripe.verify_mobile_payment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "payment_intent_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool stripe_verify_mobile_payment at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=stripe — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.