Skip to main content

EXECMODULE: Stripe Checkout

Stripe Checkout Session Module

Create Stripe Checkout sessions directly from your workflow. This module reads a SalesOrder and builds Stripe line items from its LineItems.

Module Class

com.valkyrlabs.workflow.modules.payments.StripeCheckoutModule

Environment

  • STRIPE_SECRET_KEY (required for live calls)
  • STRIPE_API_BASE (optional, defaults to https://api.stripe.com)

Inputs (module inputMap)

  • orderId (String, UUID) — required; SalesOrder to charge
  • success_url (String) — required; user redirect after success
  • cancel_url (String) — required; user redirect after cancel
  • currency (String) — optional; ISO code, default usd
  • ownerId (String) — optional; added to client_reference_id and metadata

Outputs (module outputMap)

  • session_id (String)
  • checkout_url (String)
  • On error: error (String) and optionally stripe_body (String)

Possible error codes: stripe_secret_missing, missing_inputs, invalid_order_id, order_not_found, order_has_no_items, io_error, stripe_http_<code>

Example Usage

moduleData (optional)
{
"currency": "usd"
}
inputMap example
{
"orderId": "b2dd2c8e-8c07-4cdb-8c7c-df6b5a6f3e9a",
"success_url": "https://app.example.com/pay/success",
"cancel_url": "https://app.example.com/pay/cancel",
"currency": "usd",
"ownerId": "user-123"
}

Notes

  • Price selection prefers Product.salePrice, then Product.price, and finally LineItem.lineItemAmount if present. Amounts are converted to Stripe unit_amount in cents.
  • This module performs a live HTTP call to Stripe when STRIPE_SECRET_KEY is present and inputs are valid.