curl --request POST \
--url https://payments.sandbox.lerian.net/v1/boletos/installments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"firstDueDate": "2030-01-15",
"installments": 2,
"intervalDays": 30,
"midazAccountId": "<string>",
"payer": {
"document": "<string>",
"name": "<string>",
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
}
},
"type": "TRADITIONAL",
"guarantor": {
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
},
"document": "<string>",
"name": "<string>"
},
"installmentAmounts": [
"<string>"
],
"totalAmount": "100.00"
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://payments.sandbox.lerian.net/v1/boletos/installments"
payload := strings.NewReader("{\n \"firstDueDate\": \"2030-01-15\",\n \"installments\": 2,\n \"intervalDays\": 30,\n \"midazAccountId\": \"<string>\",\n \"payer\": {\n \"document\": \"<string>\",\n \"name\": \"<string>\",\n \"address\": {\n \"city\": \"<string>\",\n \"complement\": \"<string>\",\n \"neighborhood\": \"<string>\",\n \"number\": \"<string>\",\n \"state\": \"<string>\",\n \"street\": \"<string>\",\n \"zipCode\": \"<string>\"\n }\n },\n \"type\": \"TRADITIONAL\",\n \"guarantor\": {\n \"address\": {\n \"city\": \"<string>\",\n \"complement\": \"<string>\",\n \"neighborhood\": \"<string>\",\n \"number\": \"<string>\",\n \"state\": \"<string>\",\n \"street\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"document\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"installmentAmounts\": [\n \"<string>\"\n ],\n \"totalAmount\": \"100.00\"\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))
}const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstDueDate: '2030-01-15',
installments: 2,
intervalDays: 30,
midazAccountId: '<string>',
payer: {
document: '<string>',
name: '<string>',
address: {
city: '<string>',
complement: '<string>',
neighborhood: '<string>',
number: '<string>',
state: '<string>',
street: '<string>',
zipCode: '<string>'
}
},
type: 'TRADITIONAL',
guarantor: {
address: {
city: '<string>',
complement: '<string>',
neighborhood: '<string>',
number: '<string>',
state: '<string>',
street: '<string>',
zipCode: '<string>'
},
document: '<string>',
name: '<string>'
},
installmentAmounts: ['<string>'],
totalAmount: '100.00'
})
};
fetch('https://payments.sandbox.lerian.net/v1/boletos/installments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://payments.sandbox.lerian.net/v1/boletos/installments"
payload = {
"firstDueDate": "2030-01-15",
"installments": 2,
"intervalDays": 30,
"midazAccountId": "<string>",
"payer": {
"document": "<string>",
"name": "<string>",
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
}
},
"type": "TRADITIONAL",
"guarantor": {
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
},
"document": "<string>",
"name": "<string>"
},
"installmentAmounts": ["<string>"],
"totalAmount": "100.00"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"boletos": [
{
"amount": "<string>",
"dueDate": "<string>",
"id": "<string>",
"installmentLabel": "<string>",
"installmentNumber": 123,
"status": "<string>"
}
],
"installmentsCount": 123,
"seriesId": "<string>",
"status": "<string>",
"totalAmount": "<string>"
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}"<string>"{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Issue installment boletos
Not implemented in V1: a request that reaches the handler is answered with 501, so the 201 below is the shape a later release will serve and not a response this one returns. What is refused AHEAD of the handler keeps its own status — authentication and authorization answer 401 and 403, a missing or malformed Idempotency-Key answers 400 PBP-0012, and schema validation answers 400 PBP-0001. The operation stays declared for that reason: a series of installment boletos with automatic amount distribution.
curl --request POST \
--url https://payments.sandbox.lerian.net/v1/boletos/installments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"firstDueDate": "2030-01-15",
"installments": 2,
"intervalDays": 30,
"midazAccountId": "<string>",
"payer": {
"document": "<string>",
"name": "<string>",
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
}
},
"type": "TRADITIONAL",
"guarantor": {
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
},
"document": "<string>",
"name": "<string>"
},
"installmentAmounts": [
"<string>"
],
"totalAmount": "100.00"
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://payments.sandbox.lerian.net/v1/boletos/installments"
payload := strings.NewReader("{\n \"firstDueDate\": \"2030-01-15\",\n \"installments\": 2,\n \"intervalDays\": 30,\n \"midazAccountId\": \"<string>\",\n \"payer\": {\n \"document\": \"<string>\",\n \"name\": \"<string>\",\n \"address\": {\n \"city\": \"<string>\",\n \"complement\": \"<string>\",\n \"neighborhood\": \"<string>\",\n \"number\": \"<string>\",\n \"state\": \"<string>\",\n \"street\": \"<string>\",\n \"zipCode\": \"<string>\"\n }\n },\n \"type\": \"TRADITIONAL\",\n \"guarantor\": {\n \"address\": {\n \"city\": \"<string>\",\n \"complement\": \"<string>\",\n \"neighborhood\": \"<string>\",\n \"number\": \"<string>\",\n \"state\": \"<string>\",\n \"street\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"document\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"installmentAmounts\": [\n \"<string>\"\n ],\n \"totalAmount\": \"100.00\"\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))
}const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
firstDueDate: '2030-01-15',
installments: 2,
intervalDays: 30,
midazAccountId: '<string>',
payer: {
document: '<string>',
name: '<string>',
address: {
city: '<string>',
complement: '<string>',
neighborhood: '<string>',
number: '<string>',
state: '<string>',
street: '<string>',
zipCode: '<string>'
}
},
type: 'TRADITIONAL',
guarantor: {
address: {
city: '<string>',
complement: '<string>',
neighborhood: '<string>',
number: '<string>',
state: '<string>',
street: '<string>',
zipCode: '<string>'
},
document: '<string>',
name: '<string>'
},
installmentAmounts: ['<string>'],
totalAmount: '100.00'
})
};
fetch('https://payments.sandbox.lerian.net/v1/boletos/installments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://payments.sandbox.lerian.net/v1/boletos/installments"
payload = {
"firstDueDate": "2030-01-15",
"installments": 2,
"intervalDays": 30,
"midazAccountId": "<string>",
"payer": {
"document": "<string>",
"name": "<string>",
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
}
},
"type": "TRADITIONAL",
"guarantor": {
"address": {
"city": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"number": "<string>",
"state": "<string>",
"street": "<string>",
"zipCode": "<string>"
},
"document": "<string>",
"name": "<string>"
},
"installmentAmounts": ["<string>"],
"totalAmount": "100.00"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"boletos": [
{
"amount": "<string>",
"dueDate": "<string>",
"id": "<string>",
"installmentLabel": "<string>",
"installmentNumber": 123,
"status": "<string>"
}
],
"installmentsCount": 123,
"seriesId": "<string>",
"status": "<string>",
"totalAmount": "<string>"
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}"<string>"{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Authorizations
JWT bearer token issued by the identity provider.
Headers
Tenant organization ID. Accepted but ignored: the tenant is determined by the credentials you authenticate with, so sending this header, or sending a different value in it, changes nothing.
Client-supplied idempotency key. Required in practice even though the schema marks it optional: a request that omits this header is refused with 400 PBP-0012.
Body
Due date of the first installment, YYYY-MM-DD.
"2030-01-15"
Number of installments.
2
Days between consecutive installments.
30
Midaz account the series settles into.
Show child attributes
Show child attributes
Boleto type applied to every installment.
"TRADITIONAL"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Per-installment amounts, at most 36. When supplied, its length must match installments.
3632Show child attributes
Show child attributes
Series total as a decimal string. Optional: either this or installmentAmounts must be supplied.
32"100.00"
Was this page helpful?

