Cross-Provider Workflow

Stripe Payouts to Google Sheet Reconciliation

Version 1.0.0

List Stripe payouts and append them to a Google Sheet for reconciliation.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

stripe google-sheets

Workflows

payouts-to-sheet
List a Stripe payout, read its detail, append to a sheet.
Lists Stripe payouts, retrieves the most recent payout's detail, and appends a reconciliation row to a Google Sheet.
3 steps inputs: limit, payoutId, range, spreadsheetId outputs: payoutStatus, updatedRange
1
list-payouts
$sourceDescriptions.stripePayoutsApi.getPayouts
List recent Stripe payouts.
2
get-payout
$sourceDescriptions.stripePayoutsApi.getPayoutsPayout
Retrieve a single payout's detail.
3
append-to-sheet
$sourceDescriptions.googleSheetsApi.appendValues
Append the payout as a reconciliation row in the sheet.

Source API Descriptions

Arazzo Workflow Specification

fin-stripe-payouts-to-sheet-reconciliation.yml Raw ↑
arazzo: 1.0.1
info:
  title: Stripe Payouts to Google Sheet Reconciliation
  summary: List Stripe payouts and append them to a Google Sheet for reconciliation.
  description: >-
    A reconciliation workflow that retrieves a Stripe payout, reads its detail,
    and appends the payout data as a row in a Google Sheet so finance can match
    bank deposits to Stripe settlements. Demonstrates moving settlement data
    from a payments provider into a spreadsheet ledger.
  version: 1.0.0
sourceDescriptions:
  - name: stripePayoutsApi
    url: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-payouts-api-openapi.yml
    type: openapi
  - name: googleSheetsApi
    url: https://raw.githubusercontent.com/api-evangelist/google-sheets/refs/heads/main/openapi/google-sheets-openapi.yml
    type: openapi
workflows:
  - workflowId: payouts-to-sheet
    summary: List a Stripe payout, read its detail, append to a sheet.
    description: >-
      Lists Stripe payouts, retrieves the most recent payout's detail, and
      appends a reconciliation row to a Google Sheet.
    inputs:
      type: object
      properties:
        limit:
          type: integer
        payoutId:
          type: string
        spreadsheetId:
          type: string
        range:
          type: string
    steps:
      - stepId: list-payouts
        description: List recent Stripe payouts.
        operationId: $sourceDescriptions.stripePayoutsApi.getPayouts
        parameters:
          - name: limit
            in: query
            value: $inputs.limit
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          payouts: $response.body#/data
      - stepId: get-payout
        description: Retrieve a single payout's detail.
        operationId: $sourceDescriptions.stripePayoutsApi.getPayoutsPayout
        parameters:
          - name: payout
            in: path
            value: $inputs.payoutId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          payoutAmount: $response.body#/amount
          payoutStatus: $response.body#/status
          arrivalDate: $response.body#/arrival_date
      - stepId: append-to-sheet
        description: Append the payout as a reconciliation row in the sheet.
        operationId: $sourceDescriptions.googleSheetsApi.appendValues
        parameters:
          - name: spreadsheetId
            in: path
            value: $inputs.spreadsheetId
          - name: range
            in: path
            value: $inputs.range
          - name: valueInputOption
            in: query
            value: USER_ENTERED
        requestBody:
          contentType: application/json
          payload:
            range: $inputs.range
            majorDimension: ROWS
            values:
              - - $inputs.payoutId
                - $steps.get-payout.outputs.payoutAmount
                - $steps.get-payout.outputs.payoutStatus
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          updatedRange: $response.body#/updates/updatedRange
    outputs:
      payoutStatus: $steps.get-payout.outputs.payoutStatus
      updatedRange: $steps.append-to-sheet.outputs.updatedRange