---
search:
  tags:
    - customers
    - POST
seo:
  description: >-
    Create customer send gate. Reference for the POST
    /workspaces/{organizationId}/customers/{id}/send-gate endpoint in the Pile
    API.
sidebar:
  label: Create customer send gate
  badge: POST
title: Create customer send gate
type: openapi-operation
---
`POST /workspaces/{organizationId}/customers/{id}/send-gate`

**Request body** (`application/json`)

- `touchId` (string)
- `channel` (string, required)
- `action` (string)
- `contactId` (string)
- `contactEmail` (string)
- `emailStatus` (string)
- `emailVerifiedAt` (string)
- `doNotContact` (boolean)
- `doNotEmail` (boolean)
- `doNotCall` (boolean)
- `euResident` (boolean)
- `hasExplicitConsent` (boolean)
- `allowCatchAll` (boolean)
- `allowRole` (boolean)
- `allowUnverified` (boolean)

Request body example:

```json
{
  "touchId": "touch-preview",
  "channel": "email",
  "action": "engage",
  "contactId": "default-contact",
  "contactEmail": "string",
  "emailStatus": "valid",
  "emailVerifiedAt": "string",
  "doNotContact": true,
  "doNotEmail": true,
  "doNotCall": true,
  "euResident": true,
  "hasExplicitConsent": true,
  "allowCatchAll": true,
  "allowRole": true,
  "allowUnverified": true
}
```

**Responses**

- `200` — Deterministic send/claim GateDecision
- `404` — Customer not found

Response example, 200:

```json
{
  "touchId": "string",
  "channel": "string",
  "result": "pass",
  "reasons": [
    "string"
  ],
  "matchedExclusions": [
    "string"
  ],
  "evaluatedAt": "string"
}
```
