---
title: Upload Doc Signer Class 3 Certificate
slug: contract360/upload-doc-signer-class-3-certificate
description: Learn how to securely incorporate digital signatures into your document workflow with the Upload Doc Signer Class 2 Certificate API. This API allows users to upload a PFX file and password to enable authorized access. Discover sample cURL commands, input 
docTags: 
createdAt: 2023-08-07T06:34:05.459Z
---

# Introduction

Introducing the "**Upload Doc Sign Config**" – a powerful tool designed to streamline the process of securely incorporating digital signatures into your document workflow. **This API enables you to effortlessly configure your Document Signer Certificate Class 3 by simply inputting ClientID, KeyId and Accesskey of the certificate.** Once added, the API employs robust encryption mechanisms to safeguard this sensitive information within the server. This ensures that your certificate remains protected and confidential, ready to be utilized for the seamless and secure signing of documents. With this innovative solution, you can confidently enhance your document signing procedures, maintaining the highest standards of security and integrity throughout the process.

# Authentication

API authentication is a crucial security process that ensures authorized access to an application programming interface (API). It involves validating the identity of users or systems seeking to interact with the API. Please use the `access token` shared with you by your assigned Signzy's CSM. Please set the value of the key `Authorization` in the headers to the `access token`, while making an API call. In this way, Signzy's system will be able to authenticate you and you will be able to make a successful API call.&#x20;

# API Details

The details of the API can be found here.

## Sample cURL

:::CodeblockTabs
Pre Production

```curl
curl --location 'https://api-preproduction.signzy.app/api/v3/esign/uploadDocSignConfig' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXX' \
--form 'type="DocSignerClass3"' \
--form 'certificateName="test certificate"' \
--form 'clientId="XXX"' \
--form 'keyId="XXX"' \
--form 'accessKey="XXXXX"'
```

Production

```curl
curl --location 'https://api.signzy.app/api/v3/esign/uploadDocSignConfig' \
--header 'Authorization: XXXXXXXXXXXXXXXXXXXXX' \
--form 'type="DocSignerClass3"' \
--form 'certificateName="test certificate"' \
--form 'clientId="XXX"' \
--form 'keyId="XXX"' \
--form 'accessKey="XXXXXX"'
```
:::

## Input Parameters

| **Parameter Name** | **Type** | **Mandatory/Optional** | **Description**                                               |
| ------------------ | -------- | ---------------------- | ------------------------------------------------------------- |
| type               | String   | Mandatory              | For uploading DSC class 3 certificate, pass 'DocSignerClass3' |
| certificateName    | String   | Mandatory              | Title for the certificate uploaded                            |
| clientId           | String   | Mandatory              | Client ID of the Document Signer Class 3 Certificate          |
| keyId              | String   | Mandatory              | KeyId of the Document Signer Class 3 Certificate              |
| accessKey          | String   | Mandatory              | Access key of the Document Signer Class 3 Certificate         |

## Sample Response

:::CodeblockTabs
200

```json
{
    "certificateId": "66547c971ddbd3b75a893f7c",
    "isUploadSuccessful": true,
    "certificateName": "test certificate"
}
```
:::

## Output Parameters

| **Parameter Name** | **Type** | **Description**                                                                                                                                                      |
| ------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| certificateId      | String   | ID of the certificate that has been uploaded, the certificate ID has to be used while doing the eSign.                                                               |
| isUploadSuccessful | Boolean  | - If the upload is successful, the value would be <font color="">`TRUE`</font><br />- If the upload is unsucessful, the value would be <font color="">`FALSE`</font> |
| certificateName    | String   | Title of the certificate                                                                                                                                             |

## Sample Errors

:::CodeblockTabs
400

```json
{
    "name": "error",
    "message": "docSignerClass2PfxFile is not allowed to be empty",
    "reason": "VALIDATION_ERROR",
    "type": "Bad Request",
    "statusCode": 400
}
```

400

```json
{
    "name": "error",
    "message": "Validation failed for DSC certificate",
    "reason": "Bad Request",
    "type": "Bad Request",
    "statusCode": 400
}
```

401

```json
{
    "message": "Invalid authentication credentials"
}
```

404

```json
{
    "name": "error",
    "message": "Unable to download file",
    "reason": "NOT FOUND ERROR",
    "type": "Not Found",
    "statusCode": 404
}
```

500

```json
{
    "message": "Internal Server Error"
}
```

504

```json
{
    "message": "The upstream server is timing out"
}
```
:::

## Error Parameter

| **Parameter** | **Type** | **Description**                                 |
| ------------- | -------- | ----------------------------------------------- |
| name          | String   | In case of error, the name will come as "error" |
| message       | String   | Error Message                                   |
| reason        | String   | Reason for the Error                            |
| type          | String   | Type of Error                                   |
| statusCode    | String   | Status code of the Error                        |

## Error Codes

| **Error Code** | **Error Message**     | **Explanation**                                                    |
| -------------- | --------------------- | ------------------------------------------------------------------ |
| 400            | Bad Request           | Input parameter has a missing required parameter or invalid inputs |
| 401            | Authorization Failed  | Authorization token is invalid                                     |
| 500            | Internal Server Error | Internal error at Signzy, Please write to us at help\@signzy.com   |

