Cross-Provider Workflow

Stripe Dispute to SendGrid Email

Version 1.0.0

Update a Stripe dispute with evidence, then email a status update.

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

Providers Orchestrated

stripe sendgrid

Workflows

dispute-and-email-update
Update a Stripe dispute, then email a status update via SendGrid.
Submits evidence on a dispute in Stripe and emails a notification with the dispute status to a risk stakeholder via SendGrid.
2 steps inputs: disputeId, notifyEmail, productDescription outputs: disputeReason, disputeStatus, emailStatus
1
update-dispute
$sourceDescriptions.stripeApi.postDisputesDispute
Submit evidence on the Stripe dispute.
2
email-update
$sourceDescriptions.sendgridApi.SendMail
Email a dispute status update via SendGrid Mail Send.

Source API Descriptions

Arazzo Workflow Specification

pay-stripe-dispute-to-sendgrid-email-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Stripe Dispute to SendGrid Email
  summary: Update a Stripe dispute with evidence, then email a status update.
  description: >-
    A cross-provider workflow that submits evidence on a Stripe dispute and then
    emails an internal stakeholder a status update through SendGrid's Mail Send API.
    Helps a risk team keep records and people aligned the moment a chargeback is
    contested.
  version: 1.0.0
sourceDescriptions:
  - name: stripeApi
    url: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-disputes-api-openapi.yml
    type: openapi
  - name: sendgridApi
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: dispute-and-email-update
    summary: Update a Stripe dispute, then email a status update via SendGrid.
    description: >-
      Submits evidence on a dispute in Stripe and emails a notification with the
      dispute status to a risk stakeholder via SendGrid.
    inputs:
      type: object
      properties:
        disputeId:
          type: string
        productDescription:
          type: string
        notifyEmail:
          type: string
    steps:
      - stepId: update-dispute
        description: Submit evidence on the Stripe dispute.
        operationId: $sourceDescriptions.stripeApi.postDisputesDispute
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            dispute: $inputs.disputeId
            evidence[product_description]: $inputs.productDescription
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          disputeStatus: $response.body#/status
          disputeReason: $response.body#/reason
      - stepId: email-update
        description: Email a dispute status update via SendGrid Mail Send.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.notifyEmail
                subject: Dispute evidence submitted
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: Evidence submitted for dispute $inputs.disputeId.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      disputeStatus: $steps.update-dispute.outputs.disputeStatus
      disputeReason: $steps.update-dispute.outputs.disputeReason
      emailStatus: $steps.email-update.outputs.emailStatus