Créer un terme de paiement
curl --request POST \
--url https://qwoty.app/api/payment-terms \
--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"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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', 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",
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([
'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"
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("POST", 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.post("https://qwoty.app/api/payment-terms")
.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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z"
}
}
Conditions de paiement
Créer un terme de paiement
Créer un nouveau terme de paiement avec des échéanciers personnalisés
POST
/
api
/
payment-terms
Créer un terme de paiement
curl --request POST \
--url https://qwoty.app/api/payment-terms \
--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"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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', 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",
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([
'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"
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("POST", 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.post("https://qwoty.app/api/payment-terms")
.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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z"
}
}
Autorisation
string
requis
Jeton Bearer pour l’authentification. Format :
Bearer qwoty_your_tokenCorps de la requête
string
requis
Nom du terme de paiement (50 caractères maximum)
string
requis
Identifiant API unique (format slug, ex. :
net_30_days)string
Code de référence interne (50 caractères maximum)
boolean
défaut:"true"
Indique si le terme de paiement est actif
string
Identifiant CRM externe
string
Identifiant ERP externe
string
Identifiant du système comptable externe
array
Tableau des échéances de paiement. Le pourcentage total doit être égal à 100 %.
Afficher Objet Échéance
Afficher Objet Échéance
string
requis
Nom de l’échéance
number
requis
Pourcentage du montant total (0-100)
enum
requis
Type de terme de paiement. Options :
due_now, due_on_receipt, net15, net30, net45, net60, net90, net120, eom30, eom45, eom60, po_received, customstring
Texte personnalisé (requis si le terme est
custom)number
requis
Ordre d’affichage (1, 2, 3…)
La somme de tous les pourcentages des échéances doit être exactement égale à 100 %.
Exemples
curl -X POST https://qwoty.app/api/payment-terms \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "Net 30 Days",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"installments": [
{
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"order_number": 1
}
]
}'
curl -X POST https://qwoty.app/api/payment-terms \
-H "Authorization: Bearer qwoty_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "30% Deposit + 70% on Delivery",
"api_name": "30_deposit_70_delivery",
"reference": "PT002",
"is_active": true,
"installments": [
{
"name": "Deposit on Order",
"percentage": 30,
"term": "due_now",
"order_number": 1
},
{
"name": "Balance on Delivery",
"percentage": 70,
"term": "due_on_receipt",
"order_number": 2
}
]
}'
const response = await fetch('https://qwoty.app/api/payment-terms', {
method: 'POST',
headers: {
Authorization: 'Bearer qwoty_your_token',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Net 30 Days',
api_name: 'net_30_days',
is_active: true,
installments: [
{
name: 'Full Payment',
percentage: 100,
term: 'net30',
order_number: 1,
},
],
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://qwoty.app/api/payment-terms',
headers={
'Authorization': 'Bearer qwoty_your_token',
'Content-Type': 'application/json'
},
json={
'name': 'Net 30 Days',
'api_name': 'net_30_days',
'is_active': True,
'installments': [
{
'name': 'Full Payment',
'percentage': 100,
'term': 'net30',
'order_number': 1
}
]
}
)
data = response.json()
Réponse
boolean
Indique si la requête a réussi
object
L’objet terme de paiement créé
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Net 30 Days",
"api_name": "net_30_days",
"reference": "PT001",
"is_active": true,
"installments": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Full Payment",
"percentage": 100,
"term": "net30",
"order_number": 1
}
],
"created_at": "2024-12-21T10:30:00Z"
}
}
Réponses d’erreur
{
"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"
}
Cette page vous a-t-elle été utile ?
⌘I

