Add a charge
Needs: Tasks, Read-write
Adds a charge on the task's Finance tab. If the task has no primary charge yet, this one becomes primary and sets the task's price code. Later charges are not primary.
Errors
422withThis task has been billed, so its charges can't change.for a billed task.
curl -X POST "https://app.imploy.com.au/api/integrations/v1/tasks/123/charges" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"price_code": 301,
"minutes": 30
}'
import requests
import json
url = "https://app.imploy.com.au/api/integrations/v1/tasks/123/charges"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"price_code": 301,
"minutes": 30
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app.imploy.com.au/api/integrations/v1/tasks/123/charges", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"price_code": 301,
"minutes": 30
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"price_code": 301,
"minutes": 30
}`)
req, err := http.NewRequest("POST", "https://app.imploy.com.au/api/integrations/v1/tasks/123/charges", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app.imploy.com.au/api/integrations/v1/tasks/123/charges')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"price_code": 301,
"minutes": 30
}'
response = http.request(request)
puts response.body
{
"created": 7,
"data": {
"id": 90,
"title": "Review care plan",
"date": "2026-03-02",
"client": {
"id": 12,
"name": "Example Client"
},
"assignee": {
"id": 40,
"name": "Example Admin"
},
"minutes": 30,
"price_code": 301,
"charge": "Care management",
"billable": true,
"completed": false,
"charges": [
{
"id": 7,
"name": "Care management",
"price_code": 301,
"minutes": 30,
"total_cost": 45,
"claim_type": "Direct service",
"primary": true
}
],
"can_edit": true
}
}
{
"message": "Invalid or expired access token."
}
{
"message": "Access token does not permit this action."
}
{
"message": "Too many requests."
}
/tasks/{task_id}/chargesTarget server for requests. Edit to use your own host.
An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
imp_at_. Send it as Authorization: Bearer imp_at_XXXX.The task id.
The media type of the request body
A price code id from the price codes endpoint.
Quantity in minutes, 1 to 1440. Defaults to 15.
Direct service (default), Cancellation, NDIA required report, Provider travel or Non face-to-face.
Required when claim_type is Cancellation.
Overrides the calculated cost. Otherwise the cost is the rate times minutes divided by 60.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Path Parameters
The task id.
Body
A price code id from the price codes endpoint.
Quantity in minutes, 1 to 1440. Defaults to 15.
Direct service (default), Cancellation, NDIA required report, Provider travel or Non face-to-face.
Required when claim_type is Cancellation.
Overrides the calculated cost. Otherwise the cost is the rate times minutes divided by 60.