Resend the result callback
curl --request POST \
--url https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend \
--header 'x-api-key: <api-key>'import requests
url = "https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend', 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://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"callback": {
"url": "https://example.com/hooks/sync2books",
"status": "delivered",
"event": "sale.completed",
"attempts": 1,
"lastAttemptAt": "2026-10-02T10:16:00.000Z",
"lastResponseStatus": 200,
"lastError": null,
"deliveredAt": "2026-10-02T10:16:00.000Z",
"nextAttemptAt": null
}
}
}Sales
Resend the result callback
Delivers the latest result of this sale to its callbackUrl once, now. Use it when your endpoint was down for longer than the automatic retries last. The response says how the attempt went. It is a 404 if the sale was created without a callbackUrl and a 409 if the sale has no result yet.
Required scope: sales:write.
POST
/
v1
/
sales
/
{id}
/
callback
/
resend
Resend the result callback
curl --request POST \
--url https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend \
--header 'x-api-key: <api-key>'import requests
url = "https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend', 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://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sync2books-compliance-api.apps.kintro.money/v1/sales/{id}/callback/resend")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"callback": {
"url": "https://example.com/hooks/sync2books",
"status": "delivered",
"event": "sale.completed",
"attempts": 1,
"lastAttemptAt": "2026-10-02T10:16:00.000Z",
"lastResponseStatus": 200,
"lastError": null,
"deliveredAt": "2026-10-02T10:16:00.000Z",
"nextAttemptAt": null
}
}
}Authorizations
ApiKeyAuthBearerAuth
Your API key, for example cmp_sk_test_xxxxxxxxxxxxxxxxxxxxxxxx. Create one on the Integrations page of the compliance dashboard.
Path Parameters
The id of a sale or credit note, as returned in data.sale.id.
Query Parameters
The business to act for. Required for organisation-wide keys; omit it for a business-bound key. List the ids you can use with GET /v1/businesses.
Response
The delivery state after the attempt.
Show child attributes
Show child attributes