curl --request PATCH \
--url https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"externalUserId": "<string>",
"title": "Sign: Verification of Identity",
"url": "http://www.yourwebsite.com",
"actionText": "Complete",
"cancelled": true,
"cancelledText": "Signing Cancelled!",
"cancelledUrl": "http://www.yourwebsite.com",
"completed": true,
"completedText": "Signing Complete!",
"completedUrl": "http://www.yourwebsite.com",
"expired": true,
"expiredText": "Signing Expired!",
"expiredUrl": "http://www.yourwebsite.com"
}
'import requests
url = "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}"
payload = {
"externalUserId": "<string>",
"title": "Sign: Verification of Identity",
"url": "http://www.yourwebsite.com",
"actionText": "Complete",
"cancelled": True,
"cancelledText": "Signing Cancelled!",
"cancelledUrl": "http://www.yourwebsite.com",
"completed": True,
"completedText": "Signing Complete!",
"completedUrl": "http://www.yourwebsite.com",
"expired": True,
"expiredText": "Signing Expired!",
"expiredUrl": "http://www.yourwebsite.com"
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
externalUserId: '<string>',
title: 'Sign: Verification of Identity',
url: 'http://www.yourwebsite.com',
actionText: 'Complete',
cancelled: true,
cancelledText: 'Signing Cancelled!',
cancelledUrl: 'http://www.yourwebsite.com',
completed: true,
completedText: 'Signing Complete!',
completedUrl: 'http://www.yourwebsite.com',
expired: true,
expiredText: 'Signing Expired!',
expiredUrl: 'http://www.yourwebsite.com'
})
};
fetch('https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'externalUserId' => '<string>',
'title' => 'Sign: Verification of Identity',
'url' => 'http://www.yourwebsite.com',
'actionText' => 'Complete',
'cancelled' => true,
'cancelledText' => 'Signing Cancelled!',
'cancelledUrl' => 'http://www.yourwebsite.com',
'completed' => true,
'completedText' => 'Signing Complete!',
'completedUrl' => 'http://www.yourwebsite.com',
'expired' => true,
'expiredText' => 'Signing Expired!',
'expiredUrl' => 'http://www.yourwebsite.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}"
payload := strings.NewReader("{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}"
response = http.request(request)
puts response.read_body{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Patch a portal task
Updates a client portal task.
curl --request PATCH \
--url https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"externalUserId": "<string>",
"title": "Sign: Verification of Identity",
"url": "http://www.yourwebsite.com",
"actionText": "Complete",
"cancelled": true,
"cancelledText": "Signing Cancelled!",
"cancelledUrl": "http://www.yourwebsite.com",
"completed": true,
"completedText": "Signing Complete!",
"completedUrl": "http://www.yourwebsite.com",
"expired": true,
"expiredText": "Signing Expired!",
"expiredUrl": "http://www.yourwebsite.com"
}
'import requests
url = "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}"
payload = {
"externalUserId": "<string>",
"title": "Sign: Verification of Identity",
"url": "http://www.yourwebsite.com",
"actionText": "Complete",
"cancelled": True,
"cancelledText": "Signing Cancelled!",
"cancelledUrl": "http://www.yourwebsite.com",
"completed": True,
"completedText": "Signing Complete!",
"completedUrl": "http://www.yourwebsite.com",
"expired": True,
"expiredText": "Signing Expired!",
"expiredUrl": "http://www.yourwebsite.com"
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
externalUserId: '<string>',
title: 'Sign: Verification of Identity',
url: 'http://www.yourwebsite.com',
actionText: 'Complete',
cancelled: true,
cancelledText: 'Signing Cancelled!',
cancelledUrl: 'http://www.yourwebsite.com',
completed: true,
completedText: 'Signing Complete!',
completedUrl: 'http://www.yourwebsite.com',
expired: true,
expiredText: 'Signing Expired!',
expiredUrl: 'http://www.yourwebsite.com'
})
};
fetch('https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'externalUserId' => '<string>',
'title' => 'Sign: Verification of Identity',
'url' => 'http://www.yourwebsite.com',
'actionText' => 'Complete',
'cancelled' => true,
'cancelledText' => 'Signing Cancelled!',
'cancelledUrl' => 'http://www.yourwebsite.com',
'completed' => true,
'completedText' => 'Signing Complete!',
'completedUrl' => 'http://www.yourwebsite.com',
'expired' => true,
'expiredText' => 'Signing Expired!',
'expiredUrl' => 'http://www.yourwebsite.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}"
payload := strings.NewReader("{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smokeball.com/matters/{matterId}/portal/tasks/{taskId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"externalUserId\": \"<string>\",\n \"title\": \"Sign: Verification of Identity\",\n \"url\": \"http://www.yourwebsite.com\",\n \"actionText\": \"Complete\",\n \"cancelled\": true,\n \"cancelledText\": \"Signing Cancelled!\",\n \"cancelledUrl\": \"http://www.yourwebsite.com\",\n \"completed\": true,\n \"completedText\": \"Signing Complete!\",\n \"completedUrl\": \"http://www.yourwebsite.com\",\n \"expired\": true,\n \"expiredText\": \"Signing Expired!\",\n \"expiredUrl\": \"http://www.yourwebsite.com\"\n}"
response = http.request(request)
puts response.read_body{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Body
The optional external user identifier of the external system.
The title of the task to be displayed in the UI.
"Sign: Verification of Identity"
The URL that will be displayed within the task content.
"http://www.yourwebsite.com"
Optional action text, a single word to describe the action the task relates to.
Defaults to "Complete", but other examples could be "Sign" or "Review".
"Complete"
Whether the task is Cancelled
true
Optional cancelled text, used on the task cancelled screen if provided.
"Signing Cancelled!"
Optional cancelled URL, which is a URL that is loaded in the task content body instead of the default cancelled screen if provided.
This option overrides CancelledText if provided.
"http://www.yourwebsite.com"
Whether the task is Completed
true
Optional completed text, used on the task success screen if provided.
"Signing Complete!"
Optional completed URL, which is a URL that is loaded in the task content body instead of the default success screen if provided.
This option overrides CompletedText if provided.
"http://www.yourwebsite.com"
Whether the task is Expired
true
Optional expired text, used on the task expired screen if provided.
"Signing Expired!"
Optional expired URL, which is a URL that is loaded in the task content body instead of the default expired screen if provided.
This option overrides ExpiredText if provided.
"http://www.yourwebsite.com"
Response
When request is accepted. Returns the id of the task to be updated.