Saltar al contenido principal
POST
/
v1
/
pix-automatico
/
composite
/
cobv
Crear un QR compuesto de Pix Automático CobV (con vencimiento)
curl --request POST \
  --url https://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "accountId": "<string>",
  "daysAfterDue": 123,
  "dueDate": "<string>",
  "finalAmount": 123,
  "jwkUrl": "<string>",
  "key": "<string>",
  "paymentPayloadUrl": "<string>",
  "recipientStreet": "<string>",
  "recurrence": {
    "contractNumber": "<string>",
    "debtor": {
      "cpfCnpj": "<string>",
      "name": "<string>",
      "personType": 123
    },
    "frequency": 123,
    "recipient": {
      "cnpj": "<string>",
      "ispb": "<string>",
      "name": "<string>"
    },
    "recurrenceId": "<string>",
    "retry": 123,
    "startDate": "<string>",
    "amount": 123,
    "contractDesc": "<string>",
    "endDate": "<string>",
    "maxFloorAmount": 123
  },
  "recurrencePayloadUrl": "<string>",
  "state": "<string>",
  "txId": "<string>",
  "zipCode": "<string>",
  "certificateIspb": "<string>",
  "description": [
    {
      "name": "<string>",
      "value": "<string>"
    }
  ],
  "discount": 123,
  "fine": 123,
  "interest": 123,
  "originalAmount": 123,
  "payer": {
    "document": "<string>",
    "name": "<string>",
    "request": "<string>"
  },
  "rebate": 123
}
'
import requests

url = "https://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv"

payload = {
"accountId": "<string>",
"daysAfterDue": 123,
"dueDate": "<string>",
"finalAmount": 123,
"jwkUrl": "<string>",
"key": "<string>",
"paymentPayloadUrl": "<string>",
"recipientStreet": "<string>",
"recurrence": {
"contractNumber": "<string>",
"debtor": {
"cpfCnpj": "<string>",
"name": "<string>",
"personType": 123
},
"frequency": 123,
"recipient": {
"cnpj": "<string>",
"ispb": "<string>",
"name": "<string>"
},
"recurrenceId": "<string>",
"retry": 123,
"startDate": "<string>",
"amount": 123,
"contractDesc": "<string>",
"endDate": "<string>",
"maxFloorAmount": 123
},
"recurrencePayloadUrl": "<string>",
"state": "<string>",
"txId": "<string>",
"zipCode": "<string>",
"certificateIspb": "<string>",
"description": [
{
"name": "<string>",
"value": "<string>"
}
],
"discount": 123,
"fine": 123,
"interest": 123,
"originalAmount": 123,
"payer": {
"document": "<string>",
"name": "<string>",
"request": "<string>"
},
"rebate": 123
}
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({
accountId: '<string>',
daysAfterDue: 123,
dueDate: '<string>',
finalAmount: 123,
jwkUrl: '<string>',
key: '<string>',
paymentPayloadUrl: '<string>',
recipientStreet: '<string>',
recurrence: {
contractNumber: '<string>',
debtor: {cpfCnpj: '<string>', name: '<string>', personType: 123},
frequency: 123,
recipient: {cnpj: '<string>', ispb: '<string>', name: '<string>'},
recurrenceId: '<string>',
retry: 123,
startDate: '<string>',
amount: 123,
contractDesc: '<string>',
endDate: '<string>',
maxFloorAmount: 123
},
recurrencePayloadUrl: '<string>',
state: '<string>',
txId: '<string>',
zipCode: '<string>',
certificateIspb: '<string>',
description: [{name: '<string>', value: '<string>'}],
discount: 123,
fine: 123,
interest: 123,
originalAmount: 123,
payer: {document: '<string>', name: '<string>', request: '<string>'},
rebate: 123
})
};

fetch('https://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv', 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://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv",
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([
'accountId' => '<string>',
'daysAfterDue' => 123,
'dueDate' => '<string>',
'finalAmount' => 123,
'jwkUrl' => '<string>',
'key' => '<string>',
'paymentPayloadUrl' => '<string>',
'recipientStreet' => '<string>',
'recurrence' => [
'contractNumber' => '<string>',
'debtor' => [
'cpfCnpj' => '<string>',
'name' => '<string>',
'personType' => 123
],
'frequency' => 123,
'recipient' => [
'cnpj' => '<string>',
'ispb' => '<string>',
'name' => '<string>'
],
'recurrenceId' => '<string>',
'retry' => 123,
'startDate' => '<string>',
'amount' => 123,
'contractDesc' => '<string>',
'endDate' => '<string>',
'maxFloorAmount' => 123
],
'recurrencePayloadUrl' => '<string>',
'state' => '<string>',
'txId' => '<string>',
'zipCode' => '<string>',
'certificateIspb' => '<string>',
'description' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'discount' => 123,
'fine' => 123,
'interest' => 123,
'originalAmount' => 123,
'payer' => [
'document' => '<string>',
'name' => '<string>',
'request' => '<string>'
],
'rebate' => 123
]),
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://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv"

payload := strings.NewReader("{\n \"accountId\": \"<string>\",\n \"daysAfterDue\": 123,\n \"dueDate\": \"<string>\",\n \"finalAmount\": 123,\n \"jwkUrl\": \"<string>\",\n \"key\": \"<string>\",\n \"paymentPayloadUrl\": \"<string>\",\n \"recipientStreet\": \"<string>\",\n \"recurrence\": {\n \"contractNumber\": \"<string>\",\n \"debtor\": {\n \"cpfCnpj\": \"<string>\",\n \"name\": \"<string>\",\n \"personType\": 123\n },\n \"frequency\": 123,\n \"recipient\": {\n \"cnpj\": \"<string>\",\n \"ispb\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"recurrenceId\": \"<string>\",\n \"retry\": 123,\n \"startDate\": \"<string>\",\n \"amount\": 123,\n \"contractDesc\": \"<string>\",\n \"endDate\": \"<string>\",\n \"maxFloorAmount\": 123\n },\n \"recurrencePayloadUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"txId\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"certificateIspb\": \"<string>\",\n \"description\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"fine\": 123,\n \"interest\": 123,\n \"originalAmount\": 123,\n \"payer\": {\n \"document\": \"<string>\",\n \"name\": \"<string>\",\n \"request\": \"<string>\"\n },\n \"rebate\": 123\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://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"<string>\",\n \"daysAfterDue\": 123,\n \"dueDate\": \"<string>\",\n \"finalAmount\": 123,\n \"jwkUrl\": \"<string>\",\n \"key\": \"<string>\",\n \"paymentPayloadUrl\": \"<string>\",\n \"recipientStreet\": \"<string>\",\n \"recurrence\": {\n \"contractNumber\": \"<string>\",\n \"debtor\": {\n \"cpfCnpj\": \"<string>\",\n \"name\": \"<string>\",\n \"personType\": 123\n },\n \"frequency\": 123,\n \"recipient\": {\n \"cnpj\": \"<string>\",\n \"ispb\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"recurrenceId\": \"<string>\",\n \"retry\": 123,\n \"startDate\": \"<string>\",\n \"amount\": 123,\n \"contractDesc\": \"<string>\",\n \"endDate\": \"<string>\",\n \"maxFloorAmount\": 123\n },\n \"recurrencePayloadUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"txId\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"certificateIspb\": \"<string>\",\n \"description\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"fine\": 123,\n \"interest\": 123,\n \"originalAmount\": 123,\n \"payer\": {\n \"document\": \"<string>\",\n \"name\": \"<string>\",\n \"request\": \"<string>\"\n },\n \"rebate\": 123\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://plugin-pix-direct.api.lerian.net/v1/pix-automatico/composite/cobv")

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 \"accountId\": \"<string>\",\n \"daysAfterDue\": 123,\n \"dueDate\": \"<string>\",\n \"finalAmount\": 123,\n \"jwkUrl\": \"<string>\",\n \"key\": \"<string>\",\n \"paymentPayloadUrl\": \"<string>\",\n \"recipientStreet\": \"<string>\",\n \"recurrence\": {\n \"contractNumber\": \"<string>\",\n \"debtor\": {\n \"cpfCnpj\": \"<string>\",\n \"name\": \"<string>\",\n \"personType\": 123\n },\n \"frequency\": 123,\n \"recipient\": {\n \"cnpj\": \"<string>\",\n \"ispb\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"recurrenceId\": \"<string>\",\n \"retry\": 123,\n \"startDate\": \"<string>\",\n \"amount\": 123,\n \"contractDesc\": \"<string>\",\n \"endDate\": \"<string>\",\n \"maxFloorAmount\": 123\n },\n \"recurrencePayloadUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"txId\": \"<string>\",\n \"zipCode\": \"<string>\",\n \"certificateIspb\": \"<string>\",\n \"description\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"fine\": 123,\n \"interest\": 123,\n \"originalAmount\": 123,\n \"payer\": {\n \"document\": \"<string>\",\n \"name\": \"<string>\",\n \"request\": \"<string>\"\n },\n \"rebate\": 123\n}"

response = http.request(request)
puts response.read_body
{
  "qrCode": "<string>",
  "documentId": "<string>",
  "recurrencePayload": "<string>"
}
{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "about:blank"
}

Autorizaciones

Authorization
string
header
requerido

Autenticación con token JWT Bearer. Obtén el token desde el endpoint /v1/login/oauth/access_token usando credenciales de cliente (clientId y clientSecret).

Incluye el token en el encabezado Authorization: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

El token expira después de 3600 segundos (1 hora).

Cuerpo

application/json
accountId
string
requerido

El id de cuenta del CRM del beneficiario (aporta nombre + ciudad).

daysAfterDue
integer<int64>
requerido

Días tras el vencimiento en los que aún se puede pagar el cobro (diasAposVenc).

dueDate
string
requerido

Fecha de vencimiento del pago (dtVenc; aaaa-mm-dd).

finalAmount
number<double>
requerido

Monto final del cobro en reales (valorFinal, tras los ajustes).

jwkUrl
string
requerido

URL del JWK Set (urlJwk; sin esquema).

key
string
requerido

La clave Pix del beneficiario a la que paga el QR compuesto.

paymentPayloadUrl
string
requerido

URL del host JWS de la CobV (urlPayloadJson; sin esquema).

recipientStreet
string
requerido

Calle del beneficiario (logradouroRecebedor).

recurrence
object
requerido
recurrencePayloadUrl
string
requerido

URL del host JWS de la recurrencia (urlPayloadJsonRec; sin esquema).

state
string
requerido

Estado del beneficiario (uf).

txId
string
requerido

Id de conciliación (idConciliacaoRecebedor).

zipCode
string
requerido

Código postal del beneficiario (cep).

certificateIspb
string

ISPB del certificado del PSP indirecto (ispbCertificadoJws, cadena).

description
object[] | null

Entradas de datos adicionales opcionales (dadosAdicionais).

discount
number<double>

Descuento en reales (desconto; omite/0 para saltar).

fine
number<double>

Multa en reales (multa; omite/0 para saltar).

interest
number<double>

Intereses en reales (juros; omite/0 para saltar).

originalAmount
number<double>

Monto original del cobro en reales (valorOriginal, antes de los ajustes).

payer
object
rebate
number<double>

Abono en reales (abatimento; omite/0 para saltar).

Respuesta

Creado

qrCode
string
requerido

El payload del QR compuesto EMV generado (decodificado de base64, listo para renderizar).

documentId
string

El id de documento de la recurrencia/cobro (idDocumento, GUID).

recurrencePayload
string

El JWS de recurrencia firmado (payloadJwsRecorrencia).