Sample code for 30+ languages & platforms
AutoIt

Yousign Procedure Creation Basic Mode Upload File

See more Yousign Examples

Demonstrates the 1st step of Yousign procedure creation, which is to upload a PDF file.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example assumes the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")

;  Implements the following CURL command:

;  curl --location --request POST 'https://staging-api.yousign.com/files' \
;  --header 'Authorization: Bearer YOUR_API_KEY' \
;  --header 'Content-Type: application/json' \
;  --data-raw '{
;      "name": "The best name for my file.pdf",
;      "content": "JVBERi0..." }'

;  Load a PDF file to be uploaded.
$oPdfData = ObjCreate("Chilkat.BinData")
$bSuccess = $oPdfData.LoadFile("qa_data/pdf/helloWorld.pdf")
If ($bSuccess = False) Then
    ConsoleWrite("Failed to load PDF local file." & @CRLF)
    Exit
EndIf

;  Use the following online tool to generate HTTP code from a CURL command
;  Convert a cURL Command to HTTP Source Code

;  Use this online tool to generate code from sample JSON:
;  Generate Code to Create JSON

;  The following JSON is sent in the request body.

;  {
;    "name": "The best name for my file.pdf",
;    "content": "JVBERi0..."
;  }

$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("name","helloWorld.pdf")
$oJson.UpdateString("content",$oPdfData.GetEncoded("base64"))

;  Adds the "Authorization: Bearer YOUR_API_KEY" header.
$oHttp.AuthToken = "YOUR_API_KEY"

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpJson("POST","https://staging-api.yousign.com/files",$oJson,"application/json",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$oResp.GetBodySb($oSbResponseBody)
$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
$oJResp.EmitCompact = False

ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oJResp.Emit() & @CRLF)

Local $iRespStatusCode = $oResp.StatusCode
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode >= 400) Then
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oResp.Header & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

;  Sample JSON response:
;  (Sample code for parsing the JSON response is shown below)

;  {
;    "id": "/files/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
;    "name": "The best name for my file.pdf",
;    "type": "signable",
;    "contentType": "application/pdf",
;    "description": null,
;    "createdAt": "2018-12-01T11:36:20+01:00",
;    "updatedAt": "2018-12-01T11:36:20+01:00",
;    "sha256": "bb57ae2b2ca6ad0133a699350d1a6f6c8cdfde3cf872cf526585d306e4675cc2",
;    "metadata": [
;    ],
;    "workspace": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
;    "creator": null,
;    "protected": false,
;    "position": 0,
;    "parent": null
;  }

;  Sample code for parsing the JSON response...
;  Use the following online tool to generate parsing code from sample JSON:
;  Generate Parsing Code from JSON

Local $sId = $oJResp.StringOf("id")
Local $sName = $oJResp.StringOf("name")
Local $sV_type = $oJResp.StringOf("type")
Local $sContentType = $oJResp.StringOf("contentType")
Local $sDescription = $oJResp.StringOf("description")
Local $sCreatedAt = $oJResp.StringOf("createdAt")
Local $sUpdatedAt = $oJResp.StringOf("updatedAt")
Local $sha256 = $oJResp.StringOf("sha256")
Local $sWorkspace = $oJResp.StringOf("workspace")
Local $sCreator = $oJResp.StringOf("creator")
Local $bV_protected = $oJResp.BoolOf("protected")
Local $iPosition = $oJResp.IntOf("position")
Local $sParent = $oJResp.StringOf("parent")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("metadata")
While $i < $iCount_i
    $oJResp.I = $i
    $i = $i + 1
Wend