Delete (cancel) bill payment
curl --request POST \
--url https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/', 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://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}Bill Payments
Delete (cancel) bill payment
Cancel a bill payment and reverse its allocations. Only pending or failed payments can be deleted. Completed payments cannot be deleted. This operation marks the payment as cancelled and updates bill statuses. Following the REST pattern, this uses POST method as it’s a state change operation, not a resource deletion.
POST
/
v1
/
platform
/
businesses
/
{business_id}
/
bills
/
payments
/
{bill_payment_id}
/
delete
/
Delete (cancel) bill payment
curl --request POST \
--url https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/', 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://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/bills/payments/{bill_payment_id}/delete/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}{
"error_code": "<string>",
"message": "<string>",
"detail": {},
"request_id": "<string>"
}Authorizations
BusinessScopedJWTPartnerJWTBasicAuthBearerUnscopedBearerBusinessScoped
Business-scoped JWT token. Token payload includes business_id to automatically scope requests. Format: Bearer <your-jwt-token>
Use this for: Business-specific operations where the business context is embedded in the token.
Path Parameters
Bill Payment UUID
Business UUID
Was this page helpful?
⌘I