E-Signature

DocuSign e-signature integration (Bring Your Own Key)

1 endpoints in this category. All require X-API-Key header.


E-Signature (BYOK)

POST /api/RequestSignatureBYOK 1 token

E-signature with your own DocuSign credentials.

Parameters
NameTypeRequiredDescription
document.content string required Base64 PDF
signers array required Array of {email, name}
byok.accountId string required Your DocuSign account ID
byok.accessToken string required Your DocuSign access token
emailSubject string optional Email subject
status string optional sent or created (default: sent)
Request Example
JSON
{"document": {"name": "contract.pdf", "content": "<base64-pdf>"}, "signers": [{"email": "signer@example.com", "name": "John"}], "byok": {"accountId": "your-id", "accessToken": "your-token"}, "status": "sent"}
Code Examples
curl -X POST "https://docbutterfly.com/api/RequestSignatureBYOK" \
  -H "X-API-Key: df_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"document": {"name": "contract.pdf", "content": "<base64-pdf>"}, "signers": [{"email": "signer@example.com", "name": "John"}], "byok": {"accountId": "your-id", "accessToken": "your-token"}, "status": "sent"}'
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", "df_your_api_key_here");

var json = @"{""document"": {""name"": ""contract.pdf"", ""content"": ""<base64-pdf>""}, ""signers"": [{""email"": ""signer@example.com"", ""name"": ""John""}], ""byok"": {""accountId"": ""your-id"", ""accessToken"": ""your-token""}, ""status"": ""sent""}";
var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");

var response = await client.PostAsync("https://docbutterfly.com/api/RequestSignatureBYOK", content);
response.EnsureSuccessStatusCode();

var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
import requests
import json

url = "https://docbutterfly.com/api/RequestSignatureBYOK"
headers = {
    "X-API-Key": "df_your_api_key_here",
    "Content-Type": "application/json"
}
payload = json.loads('{"document": {"name": "contract.pdf", "content": "<base64-pdf>"}, "signers": [{"email": "signer@example.com", "name": "John"}], "byok": {"accountId": "your-id", "accessToken": "your-token"}, "status": "sent"}')

response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()

data = response.json()
print(json.dumps(data, indent=2))
┌─────────────────────────────────────────────┐
│  Power Automate - HTTP Action               │
├─────────────────────────────────────────────┤
│                                             │
│  Method:  POST                              │
│  URI:     https://docbutterfly.com/api/RequestSignatureBYOK
│                                             │
│  Headers:                                   │
│    X-API-Key:    df_your_api_key_here       │
│    Content-Type: application/json           │
│                                             │
│  Body:                                      │
│    {
│      "document": {
│        "name": "contract.pdf",
│        "content": "\u003Cbase64-pdf\u003E"
│      },
│      "signers": [
│        {
│          "email": "signer@example.com",
│          "name": "John"
│        }
│      ],
│      "byok": {
│        "accountId": "your-id",
│        "accessToken": "your-token"
│      },
│      "status": "sent"
│    }
│                                             │
└─────────────────────────────────────────────┘

Steps:
1. Add an HTTP action to your flow
2. Set Method to "POST"
3. Set URI to "https://docbutterfly.com/api/RequestSignatureBYOK"
4. Add the headers shown above
5. Paste the Body JSON into the Body field
6. Replace placeholder values with dynamic content as needed
Try in Testbed