cURL
curl --request POST \
--url https://api.json.pe/api/sunat/pdf \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ruc": "RUC_EMPRESA",
"usuario": "USUARIO_SOL",
"password": "PASSWORD_SOL",
"proveedor": "20606434546",
"tipo_doc": "01",
"serie": "F002",
"correlativo": "96"
}
'import requests
url = "https://api.json.pe/api/sunat/pdf"
payload = {
"ruc": "RUC_EMPRESA",
"usuario": "USUARIO_SOL",
"password": "PASSWORD_SOL",
"proveedor": "20606434546",
"tipo_doc": "01",
"serie": "F002",
"correlativo": "96"
}
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({
ruc: 'RUC_EMPRESA',
usuario: 'USUARIO_SOL',
password: 'PASSWORD_SOL',
proveedor: '20606434546',
tipo_doc: '01',
serie: 'F002',
correlativo: '96'
})
};
fetch('https://api.json.pe/api/sunat/pdf', 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.json.pe/api/sunat/pdf",
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([
'ruc' => 'RUC_EMPRESA',
'usuario' => 'USUARIO_SOL',
'password' => 'PASSWORD_SOL',
'proveedor' => '20606434546',
'tipo_doc' => '01',
'serie' => 'F002',
'correlativo' => '96'
]),
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.json.pe/api/sunat/pdf"
payload := strings.NewReader("{\n \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\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.json.pe/api/sunat/pdf")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.json.pe/api/sunat/pdf")
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 \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "exito",
"data": {
"pdf_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
}
}{
"success": false,
"message": "Bad Request"
}API Consulta
Descargar PDF (SUNAT)
Descarga el PDF del comprobante electrónico SUNAT. Mismo cuerpo que Descargar XML; responde con pdf_base64.
POST
https://api.json.pe/api
/
sunat
/
pdf
cURL
curl --request POST \
--url https://api.json.pe/api/sunat/pdf \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ruc": "RUC_EMPRESA",
"usuario": "USUARIO_SOL",
"password": "PASSWORD_SOL",
"proveedor": "20606434546",
"tipo_doc": "01",
"serie": "F002",
"correlativo": "96"
}
'import requests
url = "https://api.json.pe/api/sunat/pdf"
payload = {
"ruc": "RUC_EMPRESA",
"usuario": "USUARIO_SOL",
"password": "PASSWORD_SOL",
"proveedor": "20606434546",
"tipo_doc": "01",
"serie": "F002",
"correlativo": "96"
}
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({
ruc: 'RUC_EMPRESA',
usuario: 'USUARIO_SOL',
password: 'PASSWORD_SOL',
proveedor: '20606434546',
tipo_doc: '01',
serie: 'F002',
correlativo: '96'
})
};
fetch('https://api.json.pe/api/sunat/pdf', 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.json.pe/api/sunat/pdf",
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([
'ruc' => 'RUC_EMPRESA',
'usuario' => 'USUARIO_SOL',
'password' => 'PASSWORD_SOL',
'proveedor' => '20606434546',
'tipo_doc' => '01',
'serie' => 'F002',
'correlativo' => '96'
]),
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.json.pe/api/sunat/pdf"
payload := strings.NewReader("{\n \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\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.json.pe/api/sunat/pdf")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.json.pe/api/sunat/pdf")
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 \"ruc\": \"RUC_EMPRESA\",\n \"usuario\": \"USUARIO_SOL\",\n \"password\": \"PASSWORD_SOL\",\n \"proveedor\": \"20606434546\",\n \"tipo_doc\": \"01\",\n \"serie\": \"F002\",\n \"correlativo\": \"96\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "exito",
"data": {
"pdf_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
}
}{
"success": false,
"message": "Bad Request"
}Obtén el comprobante electrónico emitido en SUNAT en formato PDF.
Usa el mismo cuerpo de envío que Descargar XML (SUNAT). La respuesta incluye el PDF codificado en Base64 en
Usa el mismo cuerpo de envío que Descargar XML (SUNAT). La respuesta incluye el PDF codificado en Base64 en
data.pdf_base64.
Ejemplo de respuesta
{
"success": true,
"message": "exito",
"data": {
"pdf_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
RUC de la empresa
Example:
"RUC_EMPRESA"
Usuario SOL
Example:
"USUARIO_SOL"
Contraseña SOL
Example:
"PASSWORD_SOL"
RUC del emisor del comprobante. Si es una venta (comprobante emitido por tu empresa), usa el mismo valor que el campo ruc. Si es una compra (comprobante que te emitió un tercero), indica el RUC de la empresa que te emitió la factura.
Example:
"20606434546"
Tipo de documento
Example:
"01"
Serie del comprobante
Example:
"F002"
Número correlativo
Example:
"96"
⌘I
