curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>",
"blockId": "<string>",
"personalExtension": {
"expiresAt": "2023-11-07T05:31:56Z",
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
},
"predecessorTaskId": "<string>",
"reason": "<string>",
"resume": {},
"sharedIncrease": {
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
}
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy"
payload = {
"appId": "<string>",
"blockId": "<string>",
"personalExtension": {
"expiresAt": "2023-11-07T05:31:56Z",
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
},
"predecessorTaskId": "<string>",
"reason": "<string>",
"resume": {},
"sharedIncrease": { "total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
appId: '<string>',
blockId: '<string>',
personalExtension: {
expiresAt: '2023-11-07T05:31:56Z',
total: {currencyCode: '<string>', nanos: 123, units: '<string>'}
},
predecessorTaskId: '<string>',
reason: '<string>',
resume: {},
sharedIncrease: {total: {currencyCode: '<string>', nanos: 123, units: '<string>'}}
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy', 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://{tenantDomain}.conductor.one/api/v1/task/spend-remedy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => '<string>',
'blockId' => '<string>',
'personalExtension' => [
'expiresAt' => '2023-11-07T05:31:56Z',
'total' => [
'currencyCode' => '<string>',
'nanos' => 123,
'units' => '<string>'
]
],
'predecessorTaskId' => '<string>',
'reason' => '<string>',
'resume' => [
],
'sharedIncrease' => [
'total' => [
'currencyCode' => '<string>',
'nanos' => 123,
'units' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{tenantDomain}.conductor.one/api/v1/task/spend-remedy"
payload := strings.NewReader("{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "<string>"
}
}Create Spend Remedy Task
Request a precise spending change for a refusal delivered to this caller. Repeated submissions return the canonical task; personal app restrictions need no approval.
curl --request POST \
--url https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appId": "<string>",
"blockId": "<string>",
"personalExtension": {
"expiresAt": "2023-11-07T05:31:56Z",
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
},
"predecessorTaskId": "<string>",
"reason": "<string>",
"resume": {},
"sharedIncrease": {
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
}
}
'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy"
payload = {
"appId": "<string>",
"blockId": "<string>",
"personalExtension": {
"expiresAt": "2023-11-07T05:31:56Z",
"total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
}
},
"predecessorTaskId": "<string>",
"reason": "<string>",
"resume": {},
"sharedIncrease": { "total": {
"currencyCode": "<string>",
"nanos": 123,
"units": "<string>"
} }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
appId: '<string>',
blockId: '<string>',
personalExtension: {
expiresAt: '2023-11-07T05:31:56Z',
total: {currencyCode: '<string>', nanos: 123, units: '<string>'}
},
predecessorTaskId: '<string>',
reason: '<string>',
resume: {},
sharedIncrease: {total: {currencyCode: '<string>', nanos: 123, units: '<string>'}}
})
};
fetch('https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy', 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://{tenantDomain}.conductor.one/api/v1/task/spend-remedy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => '<string>',
'blockId' => '<string>',
'personalExtension' => [
'expiresAt' => '2023-11-07T05:31:56Z',
'total' => [
'currencyCode' => '<string>',
'nanos' => 123,
'units' => '<string>'
]
],
'predecessorTaskId' => '<string>',
'reason' => '<string>',
'resume' => [
],
'sharedIncrease' => [
'total' => [
'currencyCode' => '<string>',
'nanos' => 123,
'units' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{tenantDomain}.conductor.one/api/v1/task/spend-remedy"
payload := strings.NewReader("{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/task/spend-remedy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": \"<string>\",\n \"blockId\": \"<string>\",\n \"personalExtension\": {\n \"expiresAt\": \"2023-11-07T05:31:56Z\",\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n },\n \"predecessorTaskId\": \"<string>\",\n \"reason\": \"<string>\",\n \"resume\": {},\n \"sharedIncrease\": {\n \"total\": {\n \"currencyCode\": \"<string>\",\n \"nanos\": 123,\n \"units\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.
Body
TaskServiceCreateSpendRemedyRequest requests a scoped change through the configured policy. Beneficiary, operation and authority are derived from the caller's verified refusal.
This message contains a oneof named requested_change. Only a single field of the following list may be set at a time:
- personalExtension
- sharedIncrease
- resume
Narrows delivered audience proof. An APP-scoped refusal may supply this context; other scopes require it. The verified receipt determines the app.
The blockId field.
A proposed personal replacement total and absolute expiration.
Show child attributes
Show child attributes
Explicit reconsideration names the current closed request.
The reason field.
Resume carries no monetary terms or expiration.
A proposed shared replacement total, never an additive credit.
Show child attributes
Show child attributes
Response
Successful response
The TaskServiceCreateSpendRemedyResponse message.
This object references a task by ID.
Show child attributes
Show child attributes
Was this page helpful?