curl --request POST \
--url https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate \
--header 'Authorization: Bearer <token>'import requests
url = "https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate', 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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate",
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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate"
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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate")
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{
"recurring_invoice": {
"id": "0198f2c1-8a3e-7c11-9f4d-2b6a7c8e9d01",
"status": "scheduled",
"client_id": "5c1f4e3a-9b7d-4a1e-8f2c-3d6b8a0e7f11",
"start_date": "2026-09-01",
"frequency": {
"value": 1,
"recurrence": "monthly"
},
"payment_terms_days": 30,
"invoice_status": "draft",
"purchase_order": "PO-2026-042",
"terms_and_conditions": "<string>",
"header": "<string>",
"footer": "<string>",
"currency": "EUR",
"amount_due": {
"value": "120.00",
"currency": "EUR"
},
"bank_account": {
"iban": "FR7630006000011234567890189",
"bic": "QNTOFRP1XXX"
},
"email_template": {
"send_to": [
"accounting@acme.com"
],
"copy_to_self": true,
"email_title": "Your invoice",
"email_body": "<string>"
},
"direct_debit_enabled": true,
"is_einvoice": true,
"items": [
{
"title": "Consulting",
"description": "<string>",
"quantity": "1",
"unit_price": {
"value": "100.00",
"currency": "EUR"
},
"vat_rate": "0.2",
"unit": "hour",
"vat_exemption_code": "<string>",
"discount": {
"type": "percentage",
"value": "0.1000"
}
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"client_name": "ACME SAS",
"end_date": "2023-12-25",
"next_invoice_date": "2026-10-01",
"prev_invoice_date": "2023-12-25",
"discount": {
"type": "percentage",
"value": "0.1000"
},
"payment_link": {
"methods": [
"credit_card"
]
},
"payment_reporting": {
"method": "MP01",
"conditions": "TP01"
}
}
}Reactivate a recurring invoice
OAuth scope: client_invoice.write
Returns a suspended recurring invoice to active, resuming invoice generation.
Generation resumes at the next scheduled date, which the response shows again as next_invoice_date. Invoices skipped during the suspension are not generated.
Only a suspended recurring invoice can be reactivated. scheduled, active, canceled and finished all return 412 recurring_invoice_status_transition_forbidden. A suspended recurring invoice whose end_date has passed becomes finished and cannot be reactivated.
Takes no request body.
curl --request POST \
--url https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate \
--header 'Authorization: Bearer <token>'import requests
url = "https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate', 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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate",
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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate"
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://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://thirdparty.qonto.com/v2/recurring_invoices/{id}/reactivate")
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{
"recurring_invoice": {
"id": "0198f2c1-8a3e-7c11-9f4d-2b6a7c8e9d01",
"status": "scheduled",
"client_id": "5c1f4e3a-9b7d-4a1e-8f2c-3d6b8a0e7f11",
"start_date": "2026-09-01",
"frequency": {
"value": 1,
"recurrence": "monthly"
},
"payment_terms_days": 30,
"invoice_status": "draft",
"purchase_order": "PO-2026-042",
"terms_and_conditions": "<string>",
"header": "<string>",
"footer": "<string>",
"currency": "EUR",
"amount_due": {
"value": "120.00",
"currency": "EUR"
},
"bank_account": {
"iban": "FR7630006000011234567890189",
"bic": "QNTOFRP1XXX"
},
"email_template": {
"send_to": [
"accounting@acme.com"
],
"copy_to_self": true,
"email_title": "Your invoice",
"email_body": "<string>"
},
"direct_debit_enabled": true,
"is_einvoice": true,
"items": [
{
"title": "Consulting",
"description": "<string>",
"quantity": "1",
"unit_price": {
"value": "100.00",
"currency": "EUR"
},
"vat_rate": "0.2",
"unit": "hour",
"vat_exemption_code": "<string>",
"discount": {
"type": "percentage",
"value": "0.1000"
}
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"client_name": "ACME SAS",
"end_date": "2023-12-25",
"next_invoice_date": "2026-10-01",
"prev_invoice_date": "2023-12-25",
"discount": {
"type": "percentage",
"value": "0.1000"
},
"payment_link": {
"methods": [
"credit_card"
]
},
"payment_reporting": {
"method": "MP01",
"conditions": "TP01"
}
}
}Authorizations
Bearer authorization header: Bearer <token>, where <token> is the access token received from the authorization server at the end of the OAuth 2.0 flow.
Headers
Required only for Sandbox API requests; to get one, please sign up to the Developer Portal.
Path Parameters
The unique identifier of the recurring invoice.
Response
The recurring invoice, now active.
Show child attributes
Show child attributes
Was this page helpful?