Stripe: 8 reads and 7 writes, one client
Balance, customers, charges & products via your secret key. Every call below is available over HTTP, through the SDK and as a tool for a coding agent, with the same arguments and the same meter.
What Stripe can do here
The integration exposes 8 reads and 7 writes, each with a declared input and output schema rather than a page of documentation you would have to translate. Balance, customers, charges & products via your secret key.
How it authenticates
Stripe authenticates with a secretKey, supplied per request or stored once against your account and sealed at rest. On our side the same value is read from secretKey when we broker the call for you.
Capabilities it fulfils
Stripe answers payments.balance.get, payments.customer.create, payments.customer.get, payments.customer.list, payments.invoice.create, payments.payment.create, payments.refund.create, payments.subscription.list and payments.transaction.list in the vendor-neutral form, which means code asking for any of those can be pointed at Stripe without naming it. If it goes down, or you would rather use somebody else, that is a preference change and not a rewrite.
- balance — read: Account balance.
- listCustomers — read: List customers.
- createCustomer — write: Create a customer.
- listCharges — read: List charges.
- listProducts — read: List products.
- getCustomer — read: One customer.
- createRefund — write: Refund a charge or payment intent. FINANCIAL and irreversible.
- createInvoiceItem — write: Add ONE pending line item to a customer. Do this BEFORE createInvoice — an invoice only collects items that already exist. FINANCIAL.
- createInvoice — write: 🔴 CREATES A REAL INVOICE. FINANCIAL. With auto_advance it will be finalised and EMAILED to the customer without a further call.
- finalizeInvoice — write: Finalise a draft. 🔴 IRREVERSIBLE — a finalised invoice cannot go back to draft, and its line items are locked.
- sendInvoice — write: 🔴 EMAILS THE INVOICE TO THE CUSTOMER. An outward-facing action with no undo.
- listInvoices — read: List invoices.
- getInvoice — read: One invoice.
- createPaymentIntent — write: Take a payment. FINANCIAL.
- listSubscriptions — read: List subscriptions.
Questions
Do I have to bring my own API keys?
You can, and that lane is free for ever — pass your key on the request or store it against your account, and we are one proxy hop. The paid lane is the other direction: we call 226 providers with our credentials so you never register anywhere. Both go through the same client and the same operation names.
What happens to a key I store here?
It is sealed with AES-256-GCM before it reaches the database and is only ever opened to make the call you asked for. It is scoped to your account, it is never logged, and deleting the connection deletes it. For an OAuth provider we hold a refresh token instead, and revoking the link at the provider stops the calls here immediately.
What happens when a provider changes its API?
The operation contract is declared, so a response that no longer matches is a refusal rather than a silently wrong answer. The contract does not coerce types — a field declared a number that arrives as a string is rejected at the edge, on the way in and on the way out.