Download & Print CFPB letters
curl --request POST \
--url https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"with_qr_code": true
}
'import requests
url = "https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters"
payload = { "with_qr_code": True }
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({with_qr_code: true})
};
fetch('https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters', 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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters",
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([
'with_qr_code' => true
]),
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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters"
payload := strings.NewReader("{\n \"with_qr_code\": true\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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"with_qr_code\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters")
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 \"with_qr_code\": true\n}"
response = http.request(request)
puts response.read_body"<string>"{
"message": "<string>"
}{
"message": "An active membership is required."
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Download & Print CFPB letters
Generate CFPB validation letter PDFs for active consumers. Batches with 100 or fewer active consumers stream one PDF immediately; larger batches queue a ZIP build and email the owner a download link.
POST
/
communications
/
cfpb-validation-letter
/
{fileUploadHistory}
/
download-letters
Download & Print CFPB letters
curl --request POST \
--url https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"with_qr_code": true
}
'import requests
url = "https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters"
payload = { "with_qr_code": True }
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({with_qr_code: true})
};
fetch('https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters', 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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters",
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([
'with_qr_code' => true
]),
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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters"
payload := strings.NewReader("{\n \"with_qr_code\": true\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.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"with_qr_code\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creditor.younegotiate.com/communications/cfpb-validation-letter/{fileUploadHistory}/download-letters")
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 \"with_qr_code\": true\n}"
response = http.request(request)
puts response.read_body"<string>"{
"message": "<string>"
}{
"message": "An active membership is required."
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
CFPB import file upload history ID.
Body
application/json
Whether the generated CFPB validation letter should include the personalized QR code.
Response
PDF streamed immediately or large ZIP generation queued.
The response is of type file.
Last modified on July 20, 2026
Was this page helpful?
⌘I

