Update Payment Term
curl --request PUT \
--url https://qwoty.app/api/payment-terms/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_name": "<string>",
"reference": "<string>",
"is_active": true,
"id_crm": "<string>",
"id_erp": "<string>",
"id_accounting": "<string>",
"installments": [
{
"name": "<string>",
"percentage": 123,
"term": {},
"custom_text": "<string>",
"order_number": 123
}
]
}
'import requests
url = "https://qwoty.app/api/payment-terms/{id}"
payload = {
"name": "<string>",
"api_name": "<string>",
"reference": "<string>",
"is_active": True,
"id_crm": "<string>",
"id_erp": "<string>",
"id_accounting": "<string>",
"installments": [
{
"name": "<string>",
"percentage": 123,
"term": {},
"custom_text": "<string>",
"order_number": 123
}
]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
api_name: '<string>',
reference: '<string>',
is_active: true,
id_crm: '<string>',
id_erp: '<string>',
id_accounting: '<string>',
installments: [
{
name: '<string>',
percentage: 123,
term: {},
custom_text: '<string>',
order_number: 123
}
]
})
};
fetch('https://qwoty.app/api/payment-terms/{id}', 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://qwoty.app/api/payment-terms/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_name' => '<string>',
'reference' => '<string>',
'is_active' => true,
'id_crm' => '<string>',
'id_erp' => '<string>',
'id_accounting' => '<string>',
'installments' => [
[
'name' => '<string>',
'percentage' => 123,
'term' => [
],
'custom_text' => '<string>',
'order_number' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://qwoty.app/api/payment-terms/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.put("https://qwoty.app/api/payment-terms/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qwoty.app/api/payment-terms/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Net 30 Days (Updated)",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"id_crm": "crm_123",
"id_erp": "erp_456",
"id_accounting": "acc_789",
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"custom_text": null,
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z",
"updated_at": "2024-12-21T14:45:00Z"
}
}
Payment Terms
Update Payment Term
Update an existing payment term
PUT
/
api
/
payment-terms
/
{id}
Update Payment Term
curl --request PUT \
--url https://qwoty.app/api/payment-terms/{id} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"api_name": "<string>",
"reference": "<string>",
"is_active": true,
"id_crm": "<string>",
"id_erp": "<string>",
"id_accounting": "<string>",
"installments": [
{
"name": "<string>",
"percentage": 123,
"term": {},
"custom_text": "<string>",
"order_number": 123
}
]
}
'import requests
url = "https://qwoty.app/api/payment-terms/{id}"
payload = {
"name": "<string>",
"api_name": "<string>",
"reference": "<string>",
"is_active": True,
"id_crm": "<string>",
"id_erp": "<string>",
"id_accounting": "<string>",
"installments": [
{
"name": "<string>",
"percentage": 123,
"term": {},
"custom_text": "<string>",
"order_number": 123
}
]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
api_name: '<string>',
reference: '<string>',
is_active: true,
id_crm: '<string>',
id_erp: '<string>',
id_accounting: '<string>',
installments: [
{
name: '<string>',
percentage: 123,
term: {},
custom_text: '<string>',
order_number: 123
}
]
})
};
fetch('https://qwoty.app/api/payment-terms/{id}', 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://qwoty.app/api/payment-terms/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'api_name' => '<string>',
'reference' => '<string>',
'is_active' => true,
'id_crm' => '<string>',
'id_erp' => '<string>',
'id_accounting' => '<string>',
'installments' => [
[
'name' => '<string>',
'percentage' => 123,
'term' => [
],
'custom_text' => '<string>',
'order_number' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://qwoty.app/api/payment-terms/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.put("https://qwoty.app/api/payment-terms/{id}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qwoty.app/api/payment-terms/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"api_name\": \"<string>\",\n \"reference\": \"<string>\",\n \"is_active\": true,\n \"id_crm\": \"<string>\",\n \"id_erp\": \"<string>\",\n \"id_accounting\": \"<string>\",\n \"installments\": [\n {\n \"name\": \"<string>\",\n \"percentage\": 123,\n \"term\": {},\n \"custom_text\": \"<string>\",\n \"order_number\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Net 30 Days (Updated)",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"id_crm": "crm_123",
"id_erp": "erp_456",
"id_accounting": "acc_789",
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"custom_text": null,
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z",
"updated_at": "2024-12-21T14:45:00Z"
}
}
Authorization
string
required
Bearer token for authentication. Format:
Bearer qwoty_your_tokenPath Parameters
string
required
UUID of the payment term to update
Request Body
string
Name of the payment term (max 50 characters)
string
Unique API identifier (slug format)
string
Internal reference code (max 50 characters)
boolean
Whether the payment term is active
string
External CRM identifier
string
External ERP identifier
string
External accounting system identifier
array
Array of payment installments. If provided, replaces all existing installments.
You can update individual fields or the entire payment term. Omitted fields
remain unchanged.
If updating installments, the sum of all percentages must equal 100%.
Examples
curl -X PUT https://qwoty.app/api/payment-terms/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "Net 30 Days (Updated)"
}'
curl -X PUT https://qwoty.app/api/payment-terms/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"is_active": false
}'
curl -X PUT https://qwoty.app/api/payment-terms/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "50% Deposit + 50% Net 30",
"api_name": "50_deposit_50_net30",
"installments": [
{
"name": "Deposit",
"percentage": 50,
"term": "due_now",
"order_number": 1
},
{
"name": "Balance",
"percentage": 50,
"term": "net30",
"order_number": 2
}
]
}'
const paymentTermId = '550e8400-e29b-41d4-a716-446655440000'
const response = await fetch(
`https://qwoty.app/api/payment-terms/${paymentTermId}`,
{
method: 'PUT',
headers: {
Authorization: 'Bearer qwoty_your_token',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Net 30 Days (Updated)',
is_active: true,
}),
},
)
const data = await response.json()
import requests
payment_term_id = '550e8400-e29b-41d4-a716-446655440000'
response = requests.put(
f'https://qwoty.app/api/payment-terms/{payment_term_id}',
headers={
'Authorization': 'Bearer qwoty_your_token',
'Content-Type': 'application/json'
},
json={
'name': 'Net 30 Days (Updated)',
'is_active': True
}
)
data = response.json()
Response
boolean
Indicates if the request was successful
object
The updated payment term object with all fields
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Net 30 Days (Updated)",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"id_crm": "crm_123",
"id_erp": "erp_456",
"id_accounting": "acc_789",
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"custom_text": null,
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z",
"updated_at": "2024-12-21T14:45:00Z"
}
}
Error Responses
{
"success": false,
"error": "Payment term not found"
}
{
"success": false,
"error": "Installment percentages must sum to 100%"
}
{
"success": false,
"error": "Payment term with api_name 'net_30_days' already exists"
}
{
"success": false,
"error": "Invalid API token"
}
Was this page helpful?
⌘I

