# createDocFromUploadAsync

### Overview

Parameters:&#x20;

* [DocFromPdf](https://docs.zapsign.com.br/facilitadores/sdks/sdk-em-typescript/classes-usadas/body/docfrompdf)

Return:

* [DocResponse](https://docs.zapsign.com.br/facilitadores/sdks/sdk-em-typescript/classes-usadas/response/docresponse) - in case of success
* Exception - in case of failure

To create this document we will need:

* set your apiToken;
* build your signers;
* build the document;
* call the method.

### How to use:

Save your [apiToken](/english/master.md):

<pre class="language-typescript"><code class="lang-typescript"><strong>const apiToken: string = "YOUR TOKEN";
</strong></code></pre>

Build your signers with the [Signer](/english/facilitators/sdks/typescript-sdk/used-classes/body/signer.md) class:&#x20;

```typescript
const signer1: Signer = new SignerBuilder()
                .withName("My First Signer")
                .build();

const signer2: Signer = new SignerBuilder()
                .withName("My Second Signer")
                .withEmail("test@test.com")
                .withLockEmail(true)
                .withLockPhone(true)
                .withPhoneCountry("55")
                .withPhoneNumber("99999999999")
                .withAuthMode("assinaturaTela") // draw on screen
                .withSendAutomaticEmail(false)
                .withSendAutomaticWhatsapp(false)
                .build();
                
let signers: Signer[] = [];
                
signers.push(signer1, signer2);
```

Now, build your document with the [DocFromPdf](/english/facilitators/sdks/typescript-sdk/used-classes/body/docfrompdf.md) class:

```typescript
const docFromPdf: DocFromPdf = new DocFromPdfBuilder()
                                .withSandbox(false)
                                .withName("My Contract")
                                .withBrandLogo("#000000")
                                .withLang("en")
                                .withSigners(signers)
                                .withUrlPdf("https://zapsign.s3.amazonaws.com/2022/1/pdf/63d19807-cbfa-4b51-8571-215ad0f4eb98/ca42e7be-c932-482c-b70b-92ad7aea04be.pdf")
                                .build();
                                

```

Finally, call the createDocFromUploadAsync method to get the returned value of [docAsyncResponse](/english/facilitators/sdks/typescript-sdk/used-classes/response/docasyncresponse.md) class or an error message:

```typescript
async function exempleCreateDocFromUploadAsync() {
    try {
        docResponse: DocResponse = await new DocRequests(apiToken).createDocFromUploadAsync(docFromPdf);
        jsonDocResponse: string = new JsonConverter().docAsyncResponseToJson(docResponse);
        console.log(jsonDocResponse);
    } catch(Err) {
        console.log(Err);
    }
}
```

### Example:

```typescript
import { Signer } from "sdk-node-typescript-zapsign/src/body/signer/Signer";
import { SignerBuilder } from 'sdk-node-typescript-zapsign/src/body/signer/builders/SignerBuilder';
import DocRequests from "sdk-node-typescript-zapsign/src/docs/DocRequests";
import { JsonConverter } from "sdk-node-typescript-zapsign/src/services/JsonConverter";
import { DocFromPdfBuilder } from "sdk-node-typescript-zapsign/src/body/doc/builders/DocFromPdfBuilder";
const signer1: Signer = new SignerBuilder()
                .withName("My First Signer")
                .build();

const signer2: Signer = new SignerBuilder()
                .withName("My Second Signer")
                .withEmail("test@test.com")
                .withLockEmail(true)
                .withLockPhone(true)
                .withPhoneCountry("55")
                .withPhoneNumber("99999999999")
                .withAuthMode("assinaturaTela") // draw on screen
                .withSendAutomaticEmail(false)
                .withSendAutomaticWhatsapp(false)
                .build();
                
let signers: Signer[] = [];
                
signers.push(signer1, signer2);

const docFromPdf: DocFromPdf = new DocFromPdfBuilder()
                                .withSandbox(false)
                                .withName("My Contract")
                                .withPrimaryColor("#000000")
                                .withLang("en")
                                .withSigners(signers)
                                .withUrlPdf("https://zapsign.s3.amazonaws.com/2022/1/pdf/63d19807-cbfa-4b51-8571-215ad0f4eb98/ca42e7be-c932-482c-b70b-92ad7aea04be.pdf")
                                .build();
                                
async function exempleCreateDocFromUploadAsync() {
    try {
        docResponse: DocResponse = await new DocRequests(apiToken).createDocFromUploadAsync(docFromPdf);
        jsonDocResponse: string = new JsonConverter().docAsyncResponseToJson(docResponse);
        console.log(jsonDocResponse);
    } catch(Err) {
        console.log(Err);
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zapsign.com.br/english/facilitators/sdks/typescript-sdk/documents-requests/createdocfromuploadasync.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
