Invoices
Update Draft Invoice
Invoices are created automatically once payment is successful for prepaid subscriptions and session-based payments. No invoice is created for unsuccessful session payments.
For subscriptions, invoices with DRAFT status can be updated to change the invoice amount based on the resources consumed by the customer. After updating the invoice, use Approve Draft Invoice to make the invoice available to the customer.
Note: This API works only for subscriptions and does not work for session-based payments.
POST
/
invoice
/
v1.0
/
updateDraftInvoice
Update Draft Invoice
curl --request POST \
--url https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-signature: <api-key>' \
--data '
{
"invoiceId": "<string>",
"items": [
{
"name": "<string>",
"quantity": 123,
"amount": 123,
"description": "<string>"
}
]
}
'import requests
url = "https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice"
payload = {
"invoiceId": "<string>",
"items": [
{
"name": "<string>",
"quantity": 123,
"amount": 123,
"description": "<string>"
}
]
}
headers = {
"x-api-key": "<api-key>",
"x-signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
'x-signature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
invoiceId: '<string>',
items: [{name: '<string>', quantity: 123, amount: 123, description: '<string>'}]
})
};
fetch('https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice', 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-api.transactbridge.com/invoice/v1.0/updateDraftInvoice",
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([
'invoiceId' => '<string>',
'items' => [
[
'name' => '<string>',
'quantity' => 123,
'amount' => 123,
'description' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-signature: <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://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice"
payload := strings.NewReader("{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-signature", "<api-key>")
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://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice")
.header("x-api-key", "<api-key>")
.header("x-signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"sub_status": "<string>",
"data": {}
}Authorizations
Merchant API Key
Generated request signature
Body
application/json
Was this page helpful?
⌘I
Update Draft Invoice
curl --request POST \
--url https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-signature: <api-key>' \
--data '
{
"invoiceId": "<string>",
"items": [
{
"name": "<string>",
"quantity": 123,
"amount": 123,
"description": "<string>"
}
]
}
'import requests
url = "https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice"
payload = {
"invoiceId": "<string>",
"items": [
{
"name": "<string>",
"quantity": 123,
"amount": 123,
"description": "<string>"
}
]
}
headers = {
"x-api-key": "<api-key>",
"x-signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
'x-signature': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
invoiceId: '<string>',
items: [{name: '<string>', quantity: 123, amount: 123, description: '<string>'}]
})
};
fetch('https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice', 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-api.transactbridge.com/invoice/v1.0/updateDraftInvoice",
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([
'invoiceId' => '<string>',
'items' => [
[
'name' => '<string>',
'quantity' => 123,
'amount' => 123,
'description' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-signature: <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://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice"
payload := strings.NewReader("{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-signature", "<api-key>")
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://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice")
.header("x-api-key", "<api-key>")
.header("x-signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.transactbridge.com/invoice/v1.0/updateDraftInvoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"invoiceId\": \"<string>\",\n \"items\": [\n {\n \"name\": \"<string>\",\n \"quantity\": 123,\n \"amount\": 123,\n \"description\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"sub_status": "<string>",
"data": {}
}