> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.solvimon.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.solvimon.com/_mcp/server.

# Delete a workflow action by ID

DELETE https://test.api.solvimon.com/v{version}/workflow-actions/{resourceId}

Deletes the workflow action identified by the provided resource ID and returns the deleted action. Requires the WORKFLOW_ACTION.DELETE permission.

Reference: https://docs.solvimon.com/api-docs/configuration-api/workflow-actions/delete-workflow-actions-by-resource-id

## Authentication

- `X-API-KEY` header (required) — API Key authentication via header
- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://test.api.solvimon.com` (The TEST environment for our API, default)
- `https://api.solvimon.com` (The live environment for our API)

## Request

### Path parameters

- `version` (string, required, default: 1) — version
- `resourceId` (string, required, default: ) — The ID of the resource to be requested.

### Headers

- `x-platform-id` (string, optional) — Platform ID.

## Response

### 200

OK

- `object_type` (string, optional, nullable)
- `id` (string, optional, nullable)
- `workflow_id` (string, optional) — Workflow that owns this action.
- `type` (enum, optional) — Action type that selects the matching action configuration.
  - Allowed values: `SEND_EMAIL_TO_CUSTOMER`, `EXPORT_TO_ERP`, `SEND_WEBHOOK`, `E_INVOICING`
- `description` (string, optional, nullable) — Description of what this action does.
- `status` (enum, optional) — Status of the action.
  - Allowed values: `ACTIVE`, `INACTIVE`, `DRAFT`, `ARCHIVED`
- `locked` (boolean, optional, nullable) — Whether this action is managed by Solvimon. A locked action cannot be updated or deleted.
- `created_at` (string, optional, nullable) — Date time when the action was created.
- `updated_at` (string, optional, nullable) — Date time when the action was last updated.
- `send_email_to_customer` (SendEmailToCustomer, optional) — Email action configuration used to send an email to the customer.
- `export_to_erp` (ExportToErpAction, optional) — Export-to-ERP action configuration. Used when type is EXPORT_TO_ERP.
- `send_webhook` (SendWebhookAction, optional) — Send-webhook action configuration. Used when type is SEND_WEBHOOK.
- `e_invoicing` (EInvoicingWorkflowAction, optional) — eInvoicing action configuration. Used when type is E_INVOICING.

## Errors

### 401 Unauthorized Error

Unauthorized

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

### 403 Forbidden Error

Forbidden

- `type` (enum, required)
  - Allowed values: `API_ERROR`, `INVALID_REQUEST`
- `code` (enum, required)
  - Allowed values: `RESOURCE_NOT_FOUND`, `RESOURCES_NOT_FOUND`, `UNABLE_TO_PROCESS_INSTRUCTIONS`, `BAD_REQUEST`, `UNSUPPORTED_MEDIA_TYPE`, `RESOURCE_ALREADY_EXISTS`, `CUSTOM_FIELD_VALUE_ALREADY_EXISTS`, `COULD_NOT_CREATE_RESOURCE`, `COULD_NOT_UPDATE_RESOURCE`, `COULD_NOT_DELETE_RESOURCE`, `MISSING_VERSION`, `UNSUPPORTED_VERSION`, `UNAUTHORISED`, `PORTAL_URL_EXPIRED`, `PORTAL_URL_REVOKED`, `CHECKOUT_SESSION_CLOSED`, `CUSTOMER_NOT_FOUND`, `PLATFORM_NOT_FOUND`, `PRICING_PLAN_NOT_FOUND`, `PRODUCT_NOT_FOUND`, `PRODUCT_ITEM_NOT_FOUND`, `PRICING_NOT_FOUND`, `PRICING_ITEM_NOT_FOUND`, `USER_NOT_FOUND`, `METER_NOT_FOUND`, `METER_VALUE_NOT_FOUND`, `METER_PROPERTY_NOT_FOUND`, `PRICING_ITEM_SUMMARIES_NOT_FOUND`, `MISSING_ID`, `INVALID_ID`, `MISSING_REFERENCE`, `MISSING_FIELD`, `INVALID_FIELD`, `INVALID_OPERATION`, `INTERNAL_ERROR`, `USER_NOT_ALLOWED`, `IDEMPOTENCY_CHECK_FAILED`, `INVALID_REQUEST`
- `message` (string, required)
- `field` (string, optional, nullable)
- `resource_id` (string, optional, nullable)
- `resource_type` (enum, optional, nullable)
  - Allowed values: `CUSTOMER`, `CUSTOM_FIELD`, `PLATFORM`, `PLATFORM_UPTODATE`, `METER`, `METER_VALUE`, `METER_PROPERTY`, `METER_PROPERTY_VARIABLE`, `METER_VALUE_CALCULATION`, `INGEST_DATA`, `METER_DATA`, `CHARGE_DATA`, `PERSIST_DATA`, `ADJUSTMENT_DATA`, `PRODUCT_CATEGORY`, `PRODUCT`, `PRODUCT_ITEM`, `PRICING`, `PRICING_GROUP`, `PRICING_ITEM`, `PRICING_ITEM_CONFIG`, `PRICING_PLAN_SUBSCRIPTION`, `PRICING_PLAN_SUBSCRIPTION_GROUP`, `PRICING_PLAN_SCHEDULE`, `SEAT_ASSIGNMENT`, `SHIPPING_ADDRESS`, `PRICING_PLAN`, `PRICING_PLAN_VERSION`, `PRICING_PLAN_GROUP`, `QUOTE`, `QUOTE_VERSION`, `QUOTE_TEMPLATE`, `QUOTE_VERSION_SUMMARY`, `API_KEY`, `USER`, `ROLE`, `PROXY_USER`, `EXTERNAL_CREDENTIALS`, `TOKEN`, `INVOICE`, `E_INVOICE`, `PDF`, `BILLING_ENTITY`, `FEATURE`, `MEMBERSHIP`, `PAYMENT`, `PAYMENT_ACCEPTOR`, `PAYMENT_METHOD`, `PAYMENT_METHOD_OPTIONS`, `PAYMENT_SCHEDULE`, `PAYMENT_REQUEST`, `INTEGRATION`, `WEBHOOK`, `WEBHOOK_EVENT`, `FILE`, `FILE_PROCESSING_SETTINGS`, `TEAM`, `DOWNLOAD_URL`, `CSV_REPORT`, `REPORT`, `REPORT_GENERATE_REQUEST`, `REPORT_CONFIGURATION`, `REPORT_SUBSCRIPTION`, `REPORT_DEFINITION`, `ACCOUNT_GROUP`, `ENTITY`, `EVENT_TRACE`, `EVENT_TRACE_LINK`, `PRICING_CATEGORY`, `CONTACT`, `ALERT_RULE`, `ALERT`, `USAGE_LIMIT`, `AUDIT_RECORD`, `PORTAL_URL`, `AUTHENTICATION_PROVIDER`, `REPROCESS`, `APPROVAL_POLICY`, `APPROVAL_REQUEST`, `BULK_ACTION`, `COUPON`, `PROMOTION_CODE`, `WALLET`, `WALLET_TYPE`, `WALLET_GRANT`, `AUTO_TOPUP_CONFIG`, `WORKFLOW`, `WORKFLOW_TRIGGER`, `WORKFLOW_ACTION`, `WORKFLOW_ACTION_EXECUTION`, `CREDIT_TYPE`, `SIGNATURE_REQUEST`, `ATTACHMENT`, `DOCUMENT`, `EXCHANGE_RATE`
- `reason` (enum, optional, nullable)
  - Allowed values: `MISSING_FIELDS`
- `missing_fields` (MissingFields, optional)

## Types

### SendEmailToCustomer

Defines the email content, sender details, recipients, and template configuration used by the action.

- `integration_id` (string, optional) — Integration that provides the email delivery channel configuration.
- `use_template_subject` (boolean, optional) — When enabled, no subject override is sent to the email provider. Cannot be combined with `subject`. Defaults to true.
- `subject` (string, optional, nullable) — Subject line used for the email.
- `from` (EmailIdentifier, optional) — Sender address and display information for the email.
- `reply_to` (EmailIdentifier, optional) — Reply-to address and display information for the email.
- `support_email` (string, optional, nullable) — Support email address exposed to templates as the `support_email` variable. Falls back to the reply-to address when not set.
- `cc_recipients` (list of string, optional, nullable) — CC recipient email addresses.
- `bcc_recipients` (list of string, optional, nullable) — BCC recipient email addresses.
- `tags` (list of string, optional, nullable) — Optional tags for this workflow email. A maximum of 3 ASCII tags, each up to 128 characters.
- `template_name` (string, optional) — Template name used to render the email.
- `localize_template_names` (boolean, optional) — When enabled, the template name is localized based on the customer's locale. At send time the action looks up `<template_name>_<language>-<country>` (e.g. `credit.invoice_en-us`) and falls back to `<template_name>` when that localized template does not exist. Defaults to false.
- `variant` (enum, optional) — Template variant that selects the matching target-specific email configuration.
  - Allowed values: `INVOICE`, `PAYMENT`, `PRICING_PLAN_SUBSCRIPTION`, `WALLET`
- `date_format` (string, optional, nullable) — Optional format applied to date variables in the email (e.g. invoice_date, invoice_due_date). Uses Java DateTimeFormatter pattern syntax, for example "dd.MM.yyyy" or "yyyy-MM-dd". When omitted, dates are formatted as "MMMM d, yyyy" (e.g. "July 21, 2026").
- `delivery_delay_seconds` (integer, optional, nullable) — Optional delay in seconds from action execution to email delivery, between 0 and 259200. When omitted or cleared, delivery is immediate.
- `invoice` (SendEmailInvoiceConfiguration, optional) — Invoice email settings used when the action runs for an invoice workflow.
- `payment` (SendEmailPaymentConfiguration, optional) — Payment email settings used when the action runs for a payment workflow.
- `pricing_plan_subscription` (SendEmailPricingPlanSubscriptionConfiguration, optional) — Pricing plan subscription email settings used when the action runs for a pricing plan subscription workflow.
- `wallet` (SendEmailWalletConfiguration, optional) — Wallet email settings used when the action runs for a wallet workflow.

### ExportToErpAction

Configures how an invoice (or, later, other resources) is exported to an ERP. The executor selects which integration performs the export.

- `executor` (enum, optional) — Selects which integration is responsible for performing the export.
  - Allowed values: `THIRD_PARTY`, `NATIVE`
- `integration_id` (string, optional, nullable) — ERP integration associated with this export. Currently informational only and does not affect execution.

### SendWebhookAction

Configures a webhook delivery action. The referenced webhook is invoked when the workflow runs.

- `webhook_id` (string, optional) — The webhook that is invoked when this action runs.

### EInvoicingWorkflowAction

Configures the statutory eInvoicing submission for one mandate of one eInvoicing integration. Whether the mandate applies to an invoice is determined by the mandate configuration on the integration, not by this action.

- `integration_id` (string, optional) — eInvoicing integration that submits the eInvoice.
- `mandate_name` (string, optional) — Name of the mandate on that integration this action submits for, for example BE_B2B_PEPPOL.

### MissingFields

- `fields` (list of string, required)

### EmailIdentifier

- `name` (string, optional, nullable)
- `email` (string, optional)

### SendEmailInvoiceConfiguration

Defines invoice-specific options for emails sent by the workflow action. Fields allowed/required depend on `type`.

- `type` (enum, optional) — Invoice email type.
  - Allowed values: `TO_FINAL`, `OVERDUE`, `UPCOMING_PAYMENT_REMINDER`
- `include_pdf` (boolean, optional) — Attach the invoice PDF to the email. Only applicable for TO_FINAL and OVERDUE
- `include_payment_link` (boolean, optional) — Include a payment link in the email. Only applicable for TO_FINAL and OVERDUE
- `include_customer_contacts_as_cc` (boolean, optional) — Add the customer's configured contacts as CC recipients. Defaults to false when absent.

### SendEmailPaymentConfiguration

Defines payment-specific options for emails sent by the workflow action.

- `include_customer_contacts_as_cc` (boolean, optional) — Controls whether the customer's configured contacts are added as CC recipients.

### SendEmailPricingPlanSubscriptionConfiguration

Defines subscription-specific options for emails sent by the workflow action.

- `include_customer_contacts_as_cc` (boolean, optional) — Controls whether the customer's configured contacts are added as CC recipients.

### SendEmailWalletConfiguration

Defines wallet-specific options for emails sent by the workflow action.

- `include_customer_contacts_as_cc` (boolean, optional) — Controls whether the customer's configured contacts are added as CC recipients.

## Examples

**Response**

```json
{
  "object_type": "string",
  "id": "string",
  "workflow_id": "string",
  "type": "SEND_EMAIL_TO_CUSTOMER",
  "description": "string",
  "status": "ACTIVE",
  "locked": true,
  "created_at": "string",
  "updated_at": "string",
  "send_email_to_customer": {
    "integration_id": "string",
    "use_template_subject": true,
    "subject": "string",
    "from": {
      "name": "string",
      "email": "string"
    },
    "reply_to": {
      "name": "string",
      "email": "string"
    },
    "support_email": "string",
    "cc_recipients": [
      "string"
    ],
    "bcc_recipients": [
      "string"
    ],
    "tags": [
      "string"
    ],
    "template_name": "string",
    "localize_template_names": true,
    "variant": "INVOICE",
    "date_format": "string",
    "delivery_delay_seconds": 1,
    "invoice": {
      "type": "TO_FINAL",
      "include_pdf": true,
      "include_payment_link": true,
      "include_customer_contacts_as_cc": true
    },
    "payment": {
      "include_customer_contacts_as_cc": true
    },
    "pricing_plan_subscription": {
      "include_customer_contacts_as_cc": true
    },
    "wallet": {
      "include_customer_contacts_as_cc": true
    }
  },
  "export_to_erp": {
    "executor": "THIRD_PARTY",
    "integration_id": "string"
  },
  "send_webhook": {
    "webhook_id": "string"
  },
  "e_invoicing": {
    "integration_id": "string",
    "mandate_name": "string"
  }
}
```

**SDK Code**

```python
import requests

url = "https://test.api.solvimon.com/v1/workflow-actions/:resourceId"

headers = {"X-API-KEY": "<apiKey>"}

response = requests.delete(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://test.api.solvimon.com/v1/workflow-actions/:resourceId';
const options = {method: 'DELETE', headers: {'X-API-KEY': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://test.api.solvimon.com/v1/workflow-actions/:resourceId"

	req, _ := http.NewRequest("DELETE", url, nil)

	req.Header.Add("X-API-KEY", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://test.api.solvimon.com/v1/workflow-actions/:resourceId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["X-API-KEY"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.delete("https://test.api.solvimon.com/v1/workflow-actions/:resourceId")
  .header("X-API-KEY", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('DELETE', 'https://test.api.solvimon.com/v1/workflow-actions/:resourceId', [
  'headers' => [
    'X-API-KEY' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://test.api.solvimon.com/v1/workflow-actions/:resourceId");
var request = new RestRequest(Method.DELETE);
request.AddHeader("X-API-KEY", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["X-API-KEY": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://test.api.solvimon.com/v1/workflow-actions/:resourceId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```