arazzo: 1.0.1
info:
title: Stripe Write Off Invoice
summary: Create and finalize an invoice, then mark it uncollectible.
description: >-
The bad-debt write-off pattern for an invoice that will not be paid. The
workflow creates a draft Invoice for a customer, finalizes it, then marks the
finalized invoice as uncollectible so it is removed from active collection.
Every step spells out its form-encoded request inline so the flow can be read
and executed without opening the underlying OpenAPI description.
version: 1.0.0
x-realizes-capability-ids:
- BC-200.30
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-200.30
capability_name: Accounts Receivable Management
spec: stripe-finalize-api-openapi.yml
confidence: 0.7
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: finalizeApi
url: ../openapi/stripe-finalize-api-openapi.yml
type: openapi
- name: invoiceApi
url: ../openapi/stripe-invoice-api-openapi.yml
type: openapi
- name: postApi
url: ../openapi/stripe-post-api-openapi.yml
type: openapi
workflows:
- workflowId: write-off-invoice
summary: Finalize an invoice and mark it uncollectible.
description: >-
Creates a draft Invoice for the customer, finalizes it, then marks it
uncollectible to write off the bad debt.
inputs:
type: object
required:
- customer
properties:
customer:
type: string
description: ID of the customer whose invoice is being written off.
steps:
- stepId: createDraftInvoice
description: Create a draft Invoice for the customer.
operationId: postInvoices
requestBody:
contentType: application/x-www-form-urlencoded
payload:
customer: $inputs.customer
auto_advance: false
successCriteria:
- condition: $statusCode == 200
outputs:
invoiceId: $response.body#/id
- stepId: finalizeInvoice
description: Finalize the invoice so it can be marked uncollectible.
operationId: postInvoicesInvoiceFinalize
parameters:
- name: invoice
in: path
value: $steps.createDraftInvoice.outputs.invoiceId
successCriteria:
- condition: $statusCode == 200
outputs:
status: $response.body#/status
- stepId: markUncollectible
description: Mark the finalized invoice uncollectible to write it off.
operationId: postInvoicesInvoiceMarkUncollectible
parameters:
- name: invoice
in: path
value: $steps.createDraftInvoice.outputs.invoiceId
successCriteria:
- condition: $statusCode == 200
outputs:
status: $response.body#/status
outputs:
invoiceId: $steps.createDraftInvoice.outputs.invoiceId
status: $steps.markUncollectible.outputs.status
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.