# POST /documentprocessing/barcodes/create

> Create a QR code, Code128, EAN13, Data Matrix or other barcode as a Base64 PNG, JPEG, GIF, BMP, TIFF or EMF image with text, colors, alignment and size.

- **Product:** DS Server
- **Section:** Documentation
- **Kind:** Endpoint
- **Path:** DS Server > API Reference > Web API > DocumentProcessing > /barcodes/create > POST /documentprocessing/barcodes/create
- **1699 words**
- **Web URL:** https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/barcodes-create/post/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/barcodes-create/post/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/barcodes-create/post/llms-full.txt

---

`POST` `https://example.com/documentprocessing/barcodes/create`

### Description

Creates a barcode image.

### Examples

The following example creates a Code128 barcode.

```bash
# Request:
curl --location --request POST 'https://trial.dsserver.io/documentprocessing/barcodes/create?barcodeType=code128' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer fePFHv8OtIyRSCAdOnn7USc9kKdYB2rg' \
    --data-raw '{
        "additionalText": "Sets an additional text that is displayed below or above the barcode image",
        "alignment": "BottomCenter",
        "backColor": "#ffffff",
        "foreColor": "#000000",
        "showText": true,
        "text": "Sets the text the barcode should encode.",
        "textAlignment": "Bottom",
        "upperTextLength": 23
    }'

# Result:
"iVBORw0KGgoAAAANSUhEUgAA[..]"
```

### Authorization

This endpoint supports the OAuth authorization method. DS Server checks the access token only when OAuth is enabled in the admin portal (see [Enable OAuth](https://docs.textcontrol.com/ds-server/administration/oauth/llms-full.txt)). With OAuth disabled, the default of a new installation, the endpoint accepts requests without a token.

DS Server implements OAuth as the authorization method. Two flows are supported:

- Authorization Code
- Client Credentials

To use the *Client Credentials* flow, switch on **Allow “Client Credentials” grant type** in the security profile (see [OAuth Grant Types](https://docs.textcontrol.com/ds-server/administration/oauth-grant-types/llms-full.txt)).

In both cases, a valid access token returned from the OAuth endpoints must be passed in a *Bearer* **Authorization Header**, as a **Query Parameter** or in a **Cookie**.

#### Authorization Header

| Header field | Description |
|---|---|
| Authorization | A Bearer authorization header (also called token authentication) contains the OAuth access token. The authorization method and a space i.e. "Bearer " is then put before your valid access token. For example: `Authorization: Bearer 4796E23054E64BC773CACBCAF24AD179DE9A3` |

#### Query Parameter

| Query parameter | Description |
|---|---|
| access\_token | The access token is passed directly in the endpoint URL as a query string. For example: `?access_token=4796E23054E64BC773CACBCAF24AD179DE9A3` |

#### Cookie

| Cookie | Description |
|---|---|
| access\_token | The access token is passed in a cookie named `access_token`. For example: `Cookie: access_token=4796E23054E64BC773CACBCAF24AD179DE9A3` |

### Request Parameters

| Name | Type | Value | Optional |
|---|---|---|---|
| imageFormat | String | A string that specifies the image format of the created barcode. Possible values are: "BMP", "EMF", "GIF", "JPEG", "PNG", "TIFF". **Default value is "PNG".** | yes |
| barcodeType | String | A string that specifies the barcode type. Possible values are: "QRCode", "Code128", "EAN13", "UPCA", "EAN8", "Interleaved2of5", "Postnet", "Code39", "AztecCode", "IntelligentMail", "Datamatrix", "PDF417", "MicroPDF", "Codabar", "FourState", "Code11", "Code93", "PLANET", "RoyalMail", "Maxicode". | yes |
| width | int | Specifies the width of the barcode image. **Default value is 200.** | yes |
| height | int | Specifies the height of the barcode image. **Default value is 200.** | yes |

### Request Payload

| Type | Value |
|---|---|
| Barcode | The Barcode object contains the settings for the requested barcode. |

#### Barcode

| Name | Type | Value | Optional |
|---|---|---|---|
| imageFormat | String | The image format. | yes |
| additionalText | String | Specifies additional text that is rendered with the barcode. | yes |
| alignment | String | The alignment of the barcode. Possible values are: "TopLeft", "TopCenter", "TopRight", "MiddleLeft", "MiddleCenter", "MiddleRight", "BottomCenter", "BottomLeft", "BottomRight". | yes |
| angle | Integer | Specifies the rotation angle of the barcode image. | yes |
| backColor | String | Specifies the background color of the barcode image. | yes |
| barcodeType | String | A string that specifies the barcode type. Possible values are: "QRCode", "Code128", "EAN13", "UPCA", "EAN8", "Interleaved2of5", "Postnet", "Code39", "AztecCode", "IntelligentMail", "Datamatrix", "PDF417", "MicroPDF", "Codabar", "FourState", "Code11", "Code93", "PLANET", "RoyalMail", "Maxicode". | yes |
| foreColor | String | Specifies the foreground color of the barcode image. | yes |
| showText | Boolean | Specifies whether to render the text. | yes |
| text | String | Specifies the actual data that is encoded in the barcode. | no |
| textAlignment | String | A string that specifies the position of the text. Possible values are: "Bottom", "Top". | yes |
| upperTextLength | Integer | Specifies the upper text length of the barcode. | yes |
| height | Integer | Specifies the height of the barcode. | yes |
| width | Integer | Specifies the width of the barcode. | yes |

### Success Response

| Status | Description |
|---|---|
| 200 | On success, the HTTP status code in the response header is 200 (OK). The response body contains the created barcode image encoded as a Base64 encoded string. |

### Error Response

| Status | Description |
|---|---|
| 401 | A 401 (Unauthorized) with an empty body is returned, if OAuth is enabled and the request has no valid access token. |
| 400 | A 400 (Bad Request) is returned, if the body can't be read as a Barcode object or a query parameter has a value of the wrong type, for example `width=abc`. The body is a problem details object (`application/json`) with the title "One or more validation errors occurred." and the message per field in `errors`. This check comes before the license check. |
| 415 | A 415 (Unsupported Media Type) is returned, if the `Content-Type` header of a request with a body is not `application/json`. |
| 405 | A 405 (Method Not Allowed) with an empty body and the header `Allow: POST` is returned for any other HTTP method, for example `GET`. |
| 400 | A 400 (Bad Request) is returned, if DS Server is not licensed or the license is invalid. On a server that is not registered, the body is the JSON string `"DS Server is not registered."` (`application/json`). DS Server checks the license before the parameter values, but after it has read the body and the typed query parameters. |
| 400 | A 400 (Bad Request) is returned, if no data is found in the body. |

---

## Nearby

- **Previous:** [/documentprocessing/barcodes/create](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/barcodes-create/llms-full.txt)
- **Next:** [/documentprocessing/barcodes/defaulttext](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/barcodes-defaulttext/llms-full.txt)
