elsa-workflows / elsa-workflows/elsa-extensions

Add Stripe Integration

Open
#8 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **Stripe** in Elsa Workflows. The module should allow workflows to interact with Stripe, supporting payments, invoices, refunds, customer management, and event monitoring.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.Stripe`
- [ ] Implement **Workflow Activities**:
- [ ] **CancelPaymentIntent** - Cancels a payment intent by its ID. Refunds remaining capturable amount if applicable.
- [ ] **CancelPayout** - Cancels a previously created payout.
- [ ] **CapturePaymentIntent** - Captures an existing uncaptured payment intent.
- [ ] **ConfirmPaymentIntent** - Confirms a payment intent and attempts to initiate a payment.
- [ ] **CreateCustomer** - Creates a new customer object.
- [ ] **CreatePaymentIntent** - Creates a new payment intent.
- [ ] **CreatePayout** - Creates a new payout to send funds to a bank account.
- [ ] **CreateRefund** - Creates a new refund.
- [ ] **CreateInvoice** - Creates a new invoice for a customer.
- [ ] **CreateInvoiceItem** - Creates a new invoice item to be added to a draft invoice.
- [ ] **DeleteCustomer** - Permanently deletes a customer.
- [ ] **DeleteDraftInvoice** - Permanently deletes a draft invoice.
- [ ] **DeleteInvoiceItem** - Permanently deletes an invoice item if it’s not attached to a finalized invoice.
- [ ] **FinalizeDraftInvoice** - Finalizes a draft invoice.
- [ ] **ListAllBalanceHistory** - Retrieves a list of transactions that contributed to the Stripe account balance.
- [ ] **ListAllCustomers** - Retrieves a list of customers.
- [ ] **ListAllInvoiceLineItems** - Retrieves a list of invoice line items.
- [ ] **ListAllPayouts** - Retrieves a list of payouts sent to bank accounts or Stripe.
- [ ] **ListAllRefunds** - Retrieves a list of all refunds.
- [ ] **ListPaymentIntents** - Retrieves a list of payment intents or filters by customer.
- [ ] **ListPaymentLinkLines** - Retrieves all lines of the specified payment link.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **RetrieveBalance** - Retrieves the current Stripe account balance.
- [ ] **RetrieveBalanceTransaction** - Retrieves details of a specific balance transaction.
- [ ] **RetrieveCustomer** - Retrieves details of a specific customer.
- [ ] **RetrievePaymentIntent** - Retrieves details of a payment intent.
- [ ] **RetrievePayout** - Retrieves details of a specific payout.
- [ ] **RetrieveRefund** - Retrieves details of a refund.
- [ ] **RetrieveInvoice** - Retrieves details of an invoice.
- [ ] **RetrieveInvoiceItem** - Retrieves details of an invoice item.
- [ ] **SearchCustomers** - Retrieves customers filtered by criteria.
- [ ] **SearchInvoiceItems** - Retrieves invoice items filtered by criteria.
- [ ] **SearchInvoices** - Retrieves invoices filtered by criteria.
- [ ] **UpdateCustomer** - Updates a customer’s details.
- [ ] **UpdatePaymentIntent** - Updates a payment intent.
- [ ] **UpdatePayout** - Updates a payout.
- [ ] **UpdateRefund** - Updates a refund.
- [ ] **UpdateInvoice** - Updates an invoice.
- [ ] **UpdateInvoiceItem** - Updates an invoice item.
- [ ] **VoidInvoice** - Voids a finalized invoice. Cannot be undone.
- [ ] **WatchEvents** - Triggers when a given event occurs.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [Stripe API Docs](https://stripe.com/docs/api)
- 🛠️ [Stripe .NET SDK](https://www.nuget.org/packages/Stripe.net/)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via API Keys.
- Ensure event monitoring works efficiently for real-time payment updates.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.