curl --request POST \
--url https://pro.resocom.com/api/v1/batches/{id}/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document": "<string>",
"documentVerso": "<string>",
"externalRef": "<string>",
"agencyPostalCode": "<string>"
}
'import requests
url = "https://pro.resocom.com/api/v1/batches/{id}/documents"
payload = {
"document": "<string>",
"documentVerso": "<string>",
"externalRef": "<string>",
"agencyPostalCode": "<string>"
}
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({
document: '<string>',
documentVerso: '<string>',
externalRef: '<string>',
agencyPostalCode: '<string>'
})
};
fetch('https://pro.resocom.com/api/v1/batches/{id}/documents', 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://pro.resocom.com/api/v1/batches/{id}/documents",
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([
'document' => '<string>',
'documentVerso' => '<string>',
'externalRef' => '<string>',
'agencyPostalCode' => '<string>'
]),
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://pro.resocom.com/api/v1/batches/{id}/documents"
payload := strings.NewReader("{\n \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\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://pro.resocom.com/api/v1/batches/{id}/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro.resocom.com/api/v1/batches/{id}/documents")
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 \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"position": 123
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}Déposer un document dans un lot
Ajoute un document à un lot ouvert (200 documents maximum par lot ; 400 documents non purgés et 5 Gio en attente par entreprise). Le dépôt est immédiat — rien n’est analysé à ce moment : le fichier attend, chiffré, le traitement du lot, puis est supprimé.
curl --request POST \
--url https://pro.resocom.com/api/v1/batches/{id}/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document": "<string>",
"documentVerso": "<string>",
"externalRef": "<string>",
"agencyPostalCode": "<string>"
}
'import requests
url = "https://pro.resocom.com/api/v1/batches/{id}/documents"
payload = {
"document": "<string>",
"documentVerso": "<string>",
"externalRef": "<string>",
"agencyPostalCode": "<string>"
}
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({
document: '<string>',
documentVerso: '<string>',
externalRef: '<string>',
agencyPostalCode: '<string>'
})
};
fetch('https://pro.resocom.com/api/v1/batches/{id}/documents', 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://pro.resocom.com/api/v1/batches/{id}/documents",
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([
'document' => '<string>',
'documentVerso' => '<string>',
'externalRef' => '<string>',
'agencyPostalCode' => '<string>'
]),
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://pro.resocom.com/api/v1/batches/{id}/documents"
payload := strings.NewReader("{\n \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\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://pro.resocom.com/api/v1/batches/{id}/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro.resocom.com/api/v1/batches/{id}/documents")
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 \"document\": \"<string>\",\n \"documentVerso\": \"<string>\",\n \"externalRef\": \"<string>\",\n \"agencyPostalCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"position": 123
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}{
"error": "invalid_api_key"
}Authorizations
Clé API créée dans Administration → Développeurs → Clés API (licence Groupe). Une clé en lecture seule ne peut appeler que les opérations GET.
Path Parameters
Body
Nature du document transmis.
identite, administratif Le document en base64 (préfixe data URL et retours à la ligne tolérés). Identité : image JPEG, PNG ou WebP (le recto). Administratif : PDF, JPEG, PNG, WebP ou TIFF d'une seule page, fichier unique. 10 Mo maximum.
Verso de la pièce d'identité (base64, optionnel). Refusé pour un document administratif.
Votre référence de dossier — renvoyée dans le résultat et filtrable en lecture.
255Code postal de la commune de l'agence qui contrôle (optionnel, France). Pour une pièce d'identité, il place son passage sur la carte du parcours du document, au centre de la commune ; un code partagé par plusieurs communes désigne la plus peuplée. Un code qu'aucune commune ne porte (CEDEX, faute de frappe) est refusé en 400 invalid_request, avant toute analyse.
^\d{5}$
