Mark invoice as paid
curl --request POST \
--url https://api.quentli.com/v1/invoices/{id}/mark-paid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"externalTypeId": "<string>",
"paymentTime": "2023-11-07T05:31:56Z"
}
}
'import requests
url = "https://api.quentli.com/v1/invoices/{id}/mark-paid"
payload = { "input": {
"externalTypeId": "<string>",
"paymentTime": "2023-11-07T05:31:56Z"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({input: {externalTypeId: '<string>', paymentTime: '2023-11-07T05:31:56Z'}})
};
fetch('https://api.quentli.com/v1/invoices/{id}/mark-paid', 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://api.quentli.com/v1/invoices/{id}/mark-paid",
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([
'input' => [
'externalTypeId' => '<string>',
'paymentTime' => '2023-11-07T05:31:56Z'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.quentli.com/v1/invoices/{id}/mark-paid"
payload := strings.NewReader("{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.quentli.com/v1/invoices/{id}/mark-paid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.quentli.com/v1/invoices/{id}/mark-paid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"invoice": {
"id": "inv_1234567890abcdefghij",
"createdAt": "2025-01-10T12:00:00.000Z",
"updatedAt": "2025-01-10T12:00:00.000Z",
"customerId": "cus_1234567890abcdefghij",
"subscriptionId": "sub_1234567890abcdefghij",
"collectionMethod": "SEND_REMINDER",
"totalAmount": 150000,
"currency": "MXN",
"dueDate": "2025-02-01T06:00:00.000Z",
"expireDate": null,
"organizationId": "org_1234567890abcdefghij",
"isPaid": false,
"paidById": null,
"amountPaid": 0,
"beneficiaryId": null,
"allowOfftimePayment": false,
"paidWithId": null,
"canceledAt": null,
"canceledById": null,
"items": [
{
"id": "invi_1234567890abcdefghij",
"description": "Colegiatura Enero 2025",
"conceptId": "pc_1234567890abcdefghij",
"concept": null,
"quantity": 1
}
],
"meta": {
"Ciclo Escolar": "2025-1"
}
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}Invoices
Mark invoice as paid
Manually marks an invoice as paid, creating a payment record.
POST
/
v1
/
invoices
/
{id}
/
mark-paid
Mark invoice as paid
curl --request POST \
--url https://api.quentli.com/v1/invoices/{id}/mark-paid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"externalTypeId": "<string>",
"paymentTime": "2023-11-07T05:31:56Z"
}
}
'import requests
url = "https://api.quentli.com/v1/invoices/{id}/mark-paid"
payload = { "input": {
"externalTypeId": "<string>",
"paymentTime": "2023-11-07T05:31:56Z"
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({input: {externalTypeId: '<string>', paymentTime: '2023-11-07T05:31:56Z'}})
};
fetch('https://api.quentli.com/v1/invoices/{id}/mark-paid', 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://api.quentli.com/v1/invoices/{id}/mark-paid",
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([
'input' => [
'externalTypeId' => '<string>',
'paymentTime' => '2023-11-07T05:31:56Z'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.quentli.com/v1/invoices/{id}/mark-paid"
payload := strings.NewReader("{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.quentli.com/v1/invoices/{id}/mark-paid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.quentli.com/v1/invoices/{id}/mark-paid")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"externalTypeId\": \"<string>\",\n \"paymentTime\": \"2023-11-07T05:31:56Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"invoice": {
"id": "inv_1234567890abcdefghij",
"createdAt": "2025-01-10T12:00:00.000Z",
"updatedAt": "2025-01-10T12:00:00.000Z",
"customerId": "cus_1234567890abcdefghij",
"subscriptionId": "sub_1234567890abcdefghij",
"collectionMethod": "SEND_REMINDER",
"totalAmount": 150000,
"currency": "MXN",
"dueDate": "2025-02-01T06:00:00.000Z",
"expireDate": null,
"organizationId": "org_1234567890abcdefghij",
"isPaid": false,
"paidById": null,
"amountPaid": 0,
"beneficiaryId": null,
"allowOfftimePayment": false,
"paidWithId": null,
"canceledAt": null,
"canceledById": null,
"items": [
{
"id": "invi_1234567890abcdefghij",
"description": "Colegiatura Enero 2025",
"conceptId": "pc_1234567890abcdefghij",
"concept": null,
"quantity": 1
}
],
"meta": {
"Ciclo Escolar": "2025-1"
}
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}{
"error": {
"message": "<string>"
}
}Authorizations
Organization API key using Authorization: Bearer sk_....
Path Parameters
Identifier of the invoice.
Body
application/json
Optional body for marking an invoice as paid (id is in the URL path).
Show child attributes
Show child attributes
Response
Invoice marked as paid
Response after marking an invoice as paid.
Invoice record representing a payment request sent to a customer.
Show child attributes
Show child attributes
Was this page helpful?
⌘I