---
title: "Create email brand resource"
url: "https://docs.signnow.com/docs/deprecated-branding/operations/put-v2-brands-brand_id-email"
type: "endpoint"
section: "deprecated-branding"
slug: "deprecated-branding/operations/put-v2-brands-brand_id-email"
method: "PUT"
path: "/v2/brands/{brand_id}/resources/email"
operation_id: "put-v2-brands-brand_id-email"
authorization: "bearer"
---

# Create email brand resource

`PUT /v2/brands/{brand_id}/resources/email`

This endpoint allows users to create and update an email brand resource.

## Authorization

bearer

## Path Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `brand_id` | string | Yes | ID of the brand. Must match the pattern: [a-z0-9]{40}. |

## Header Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Content-Type` | string | No | application/json |

## Request Body

**Schema**

```json
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Sender's email address."
    },
    "logo": {
      "type": "object",
      "properties": {
        "position": {
          "type": "string",
          "description": "Logo position on the email page. Possible values: `left`, `middle`, `right`."
        }
      },
      "description": "Logo object that contains attributes for logo positioning on the email page."
    },
    "buttons": {
      "type": "object",
      "properties": {
        "color": {
          "type": "string",
          "description": "Button main color in hex color code."
        },
        "background": {
          "type": "string",
          "description": "Button background in hex color code."
        }
      },
      "description": "Button object that contains button attributes."
    },
    "subject": {
      "type": "string",
      "description": "Email subject."
    },
    "body_header": {
      "type": "string",
      "description": "Email header text. Up to 300 symbols."
    },
    "body_message": {
      "type": "string",
      "description": "Body text. Up to 300 hundred symbols."
    },
    "sender_email": {
      "type": "string",
      "description": "Valid email address for `Contact Sender` button."
    },
    "footer_message": {
      "type": "string",
      "description": "Footer text. Up to 300 symbols."
    },
    "signnow_references": {
      "type": "boolean",
      "description": "Whether or not to show links to signNow mobile apps. Possible values: true, false."
    }
  },
  "x-examples": {
    "Example 1": {
      "from": "valid@email",
      "logo": {
        "position": "left|middle|right"
      },
      "buttons": {
        "color": "#232323",
        "background": "#232323"
      },
      "subject": "Some subject text.",
      "body_header": "any text",
      "body_message": "any text",
      "sender_email": "valid@email",
      "footer_message": "any text",
      "signnow_references": true
    }
  }
}
```

**Example** (`Example 1`)

```json
{
  "from": "valid@email",
  "logo": {
    "position": "left|middle|right"
  },
  "buttons": {
    "color": "#232323",
    "background": "#232323"
  },
  "subject": "Some subject text.",
  "body_header": "any text",
  "body_message": "any text",
  "sender_email": "valid@email",
  "footer_message": "any text",
  "signnow_references": true
}
```

## Responses

### 201

Created

### 400

* Request without token/with invalid external bearer token/ with external app basic token
* Request for `brand_id` where brand resource `email` already exists
* Request without body
* Request with `position` parameter values are invalid
* Request with `position` parameter values are not string
* Request with `color` parameter value which is not string
* Request with `color` parameter value that doesn’t match the pattern (/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/)
* Request with `background` parameter value which is not string
* Request with `background` parameter value that doesn’t match the pattern (/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/)
* Request with `subject-text` parameter value which is not string
* Request with `subject-text` parameter value which are more than 300 characters
* Request with `from-email` parameter value which is not string
* Request with `from-email` parameter values which is not a valid email
* Request with `header-text` parameter value which is not a string
* Request with `header-text` parameter value which is more than 300 characters
* Request with `payload-text` parameter value which is not string
* Request with `payload-text` parameter value which is more than 300 characters
* Request with `signature` parameter value which is not string
* Request with `signature` parameter value which is more than 300 characters
* Request with `show-mobile-devices` parameter value which is not a boolean
* Request with `contact-sender` parameter value which is not string
* Request with `contact-sender` parameter value which is not a valid email

**Example** (`Request without body`)

```json
{
  "errors": [
    {
      "code": 2500202,
      "message": "Invalid payload given."
    }
  ]
}
```

**Example** (`Request with `position` parameter values are invalid`)

```json
{
  "errors": [
    {
      "code": 25002048,
      "message": "The 'position' attribute is invalid, allowed values: left, middle, right."
    }
  ]
}
```

**Example** (`Request with `position` parameter values are not string`)

```json
{
  "errors": [
    {
      "code": 25002047,
      "message": "The 'position' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `color` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002006,
      "message": "The 'color' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `signature` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002054,
      "message": "The 'signature' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `background` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002004,
      "message": "The 'background' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `from-email` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002050,
      "message": "The 'from-email' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `payload-text` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002053,
      "message": "The 'payload-text' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `subject-text` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002049,
      "message": "The 'subject-text' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `header-text` parameter value which is not a string`)

```json
{
  "errors": [
    {
      "code": 25002052,
      "message": "The 'header-text' attribute must be a string."
    }
  ]
}
```

**Example** (`Request with `contact-sender` parameter value which is not string`)

```json
{
  "errors": [
    {
      "code": 25002056,
      "message": "The 'contact-sender' attribute must be a string."
    }
  ]
}
```

**Example** (`Request for `brand_id` where brand resource `email` already exists`)

```json
{
  "errors": [
    {
      "code": 25002035,
      "message": "Brand resource already exists. Resource name: email."
    }
  ]
}
```

**Example** (`Request with `from-email` parameter values which is not a valid email`)

```json
{
  "errors": [
    {
      "code": 25002051,
      "message": "The 'from-email' attribute must be a valid email address."
    }
  ]
}
```

**Example** (`Request with `contact-sender` parameter value which is not a valid email`)

```json
{
  "errors": [
    {
      "code": 25002057,
      "message": "The 'contact-sender' attribute must be a valid email address."
    }
  ]
}
```

**Example** (`Request with `show-mobile-devices` parameter value which is not a boolean`)

```json
{
  "errors": [
    {
      "code": 25002055,
      "message": "The 'show-mobile-devices' attribute must be a boolean."
    }
  ]
}
```

**Example** (`Request with `signature` parameter value which is more than 300 characters`)

```json
{
  "errors": [
    {
      "code": 25002061,
      "message": "The 'signature' attribute must be less, than 300 characters."
    }
  ]
}
```

**Example** (`Request with `header-text` parameter value which is more than 300 characters`)

```json
{
  "errors": [
    {
      "code": 25002059,
      "message": "The 'header-text' attribute must be less, than 300 characters."
    }
  ]
}
```

**Example** (`Request with `payload-text` parameter value which is more than 300 characters`)

```json
{
  "errors": [
    {
      "code": 25002060,
      "message": "The 'payload-text' attribute must be less, than 300 characters."
    }
  ]
}
```

**Example** (`Request with `subject-text` parameter value which are more than 300 characters`)

```json
{
  "errors": [
    {
      "code": 25002058,
      "message": "The 'subject-text' attribute must be less, than 300 characters."
    }
  ]
}
```

**Example** (`Request without token/with invalid external bearer token/ with external app basic token`)

```json
{
  "code": 1537,
  "error": "invalid_token"
}
```

**Example** (`Request with `color` parameter value that doesn’t match the pattern (/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/)`)

```json
{
  "errors": [
    {
      "code": 25002007,
      "message": "The 'color' attribute format is invalid."
    }
  ]
}
```

**Example** (`Request with `background` parameter value that doesn’t match the pattern (/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/)`)

```json
{
  "errors": [
    {
      "code": 25002005,
      "message": "The 'background' attribute format is invalid."
    }
  ]
}
```

### 403

*Request with a valid bearer token from another user logged in
* Request with bearer token from user, authorised with external token from app they don’t own

**Example** (`Request with valid bearer token from another user logged in`)

```json
{
  "code": "25002030,",
  "message": "No access to the brand."
}
```

**Example** (`Request with bearer token from user, authorised with external token from app they don’t own`)

```json
{
  "errors": [
    {
      "code": 25002001,
      "message": "Brand action not allowed"
    }
  ]
}
```

### 404

* Request with `brand_id` that doesn't exist or is deleted
* Request with `brand_id` which is null or invalid (not 40 characters)

**Example** (`example-1`)

```json
{
  "111": null
}
```

## Code Examples

> Replace `$SIGNNOW_ACCESS_TOKEN` and any `{placeholder}` values before running.

### cURL

```bash
curl -X PUT \
  "https://api.signnow.com/v2/brands/{brand_id}/resources/email" \
  -H "Authorization: Bearer $SIGNNOW_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"from": "valid@email", "logo": {"position": "left|middle|right"}, "buttons": {"color": "#232323", "background": "#232323"}, "subject": "Some subject text.", "body_header": "any text", "body_message": "any text", "sender_email": "valid@email", "footer_message": "any text", "signnow_references": true}'
```

---
*Full reference: https://docs.signnow.com/docs/deprecated-branding/operations/put-v2-brands-brand_id-email*
