Saltar al contenido principal
POST
/
v1
/
organizations
/
{organization_id}
/
holders
Crear un titular
curl --request POST \
  --url https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders \
  --header 'Content-Type: application/json' \
  --data '
{
  "createdAt": "2023-11-07T05:31:56Z",
  "deletedAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "addresses": {},
  "contact": {
    "mobilePhone": "<string>",
    "otherPhone": "<string>",
    "primaryEmail": "<string>",
    "secondaryEmail": "<string>"
  },
  "document": "<string>",
  "externalId": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "legalPerson": {
    "activity": "<string>",
    "foundingDate": "2023-12-25",
    "representative": {
      "document": "<string>",
      "email": "<string>",
      "name": "<string>",
      "role": "<string>"
    },
    "size": "<string>",
    "status": "<string>",
    "tradeName": "<string>",
    "type": "<string>"
  },
  "metadata": {},
  "name": "<string>",
  "naturalPerson": {
    "birthDate": "2023-12-25",
    "civilStatus": "<string>",
    "fatherName": "<string>",
    "favoriteName": "<string>",
    "gender": "<string>",
    "motherName": "<string>",
    "nationality": "<string>",
    "socialName": "<string>",
    "status": "<string>"
  },
  "type": "<string>"
}
'
import requests

url = "https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders"

payload = {
"createdAt": "2023-11-07T05:31:56Z",
"deletedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"addresses": {},
"contact": {
"mobilePhone": "<string>",
"otherPhone": "<string>",
"primaryEmail": "<string>",
"secondaryEmail": "<string>"
},
"document": "<string>",
"externalId": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"legalPerson": {
"activity": "<string>",
"foundingDate": "2023-12-25",
"representative": {
"document": "<string>",
"email": "<string>",
"name": "<string>",
"role": "<string>"
},
"size": "<string>",
"status": "<string>",
"tradeName": "<string>",
"type": "<string>"
},
"metadata": {},
"name": "<string>",
"naturalPerson": {
"birthDate": "2023-12-25",
"civilStatus": "<string>",
"fatherName": "<string>",
"favoriteName": "<string>",
"gender": "<string>",
"motherName": "<string>",
"nationality": "<string>",
"socialName": "<string>",
"status": "<string>"
},
"type": "<string>"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
createdAt: '2023-11-07T05:31:56Z',
deletedAt: '2023-11-07T05:31:56Z',
updatedAt: '2023-11-07T05:31:56Z',
addresses: {},
contact: {
mobilePhone: '<string>',
otherPhone: '<string>',
primaryEmail: '<string>',
secondaryEmail: '<string>'
},
document: '<string>',
externalId: '<string>',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
legalPerson: {
activity: '<string>',
foundingDate: '2023-12-25',
representative: {document: '<string>', email: '<string>', name: '<string>', role: '<string>'},
size: '<string>',
status: '<string>',
tradeName: '<string>',
type: '<string>'
},
metadata: {},
name: '<string>',
naturalPerson: {
birthDate: '2023-12-25',
civilStatus: '<string>',
fatherName: '<string>',
favoriteName: '<string>',
gender: '<string>',
motherName: '<string>',
nationality: '<string>',
socialName: '<string>',
status: '<string>'
},
type: '<string>'
})
};

fetch('https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders', 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://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders",
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([
'createdAt' => '2023-11-07T05:31:56Z',
'deletedAt' => '2023-11-07T05:31:56Z',
'updatedAt' => '2023-11-07T05:31:56Z',
'addresses' => [

],
'contact' => [
'mobilePhone' => '<string>',
'otherPhone' => '<string>',
'primaryEmail' => '<string>',
'secondaryEmail' => '<string>'
],
'document' => '<string>',
'externalId' => '<string>',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'legalPerson' => [
'activity' => '<string>',
'foundingDate' => '2023-12-25',
'representative' => [
'document' => '<string>',
'email' => '<string>',
'name' => '<string>',
'role' => '<string>'
],
'size' => '<string>',
'status' => '<string>',
'tradeName' => '<string>',
'type' => '<string>'
],
'metadata' => [

],
'name' => '<string>',
'naturalPerson' => [
'birthDate' => '2023-12-25',
'civilStatus' => '<string>',
'fatherName' => '<string>',
'favoriteName' => '<string>',
'gender' => '<string>',
'motherName' => '<string>',
'nationality' => '<string>',
'socialName' => '<string>',
'status' => '<string>'
],
'type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders"

payload := strings.NewReader("{\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"deletedAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\",\n \"addresses\": {},\n \"contact\": {\n \"mobilePhone\": \"<string>\",\n \"otherPhone\": \"<string>\",\n \"primaryEmail\": \"<string>\",\n \"secondaryEmail\": \"<string>\"\n },\n \"document\": \"<string>\",\n \"externalId\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"legalPerson\": {\n \"activity\": \"<string>\",\n \"foundingDate\": \"2023-12-25\",\n \"representative\": {\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"size\": \"<string>\",\n \"status\": \"<string>\",\n \"tradeName\": \"<string>\",\n \"type\": \"<string>\"\n },\n \"metadata\": {},\n \"name\": \"<string>\",\n \"naturalPerson\": {\n \"birthDate\": \"2023-12-25\",\n \"civilStatus\": \"<string>\",\n \"fatherName\": \"<string>\",\n \"favoriteName\": \"<string>\",\n \"gender\": \"<string>\",\n \"motherName\": \"<string>\",\n \"nationality\": \"<string>\",\n \"socialName\": \"<string>\",\n \"status\": \"<string>\"\n },\n \"type\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

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://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders")
.header("Content-Type", "application/json")
.body("{\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"deletedAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\",\n \"addresses\": {},\n \"contact\": {\n \"mobilePhone\": \"<string>\",\n \"otherPhone\": \"<string>\",\n \"primaryEmail\": \"<string>\",\n \"secondaryEmail\": \"<string>\"\n },\n \"document\": \"<string>\",\n \"externalId\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"legalPerson\": {\n \"activity\": \"<string>\",\n \"foundingDate\": \"2023-12-25\",\n \"representative\": {\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"size\": \"<string>\",\n \"status\": \"<string>\",\n \"tradeName\": \"<string>\",\n \"type\": \"<string>\"\n },\n \"metadata\": {},\n \"name\": \"<string>\",\n \"naturalPerson\": {\n \"birthDate\": \"2023-12-25\",\n \"civilStatus\": \"<string>\",\n \"fatherName\": \"<string>\",\n \"favoriteName\": \"<string>\",\n \"gender\": \"<string>\",\n \"motherName\": \"<string>\",\n \"nationality\": \"<string>\",\n \"socialName\": \"<string>\",\n \"status\": \"<string>\"\n },\n \"type\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://ledger.sandbox.lerian.net/v1/organizations/{organization_id}/holders")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"deletedAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\",\n \"addresses\": {},\n \"contact\": {\n \"mobilePhone\": \"<string>\",\n \"otherPhone\": \"<string>\",\n \"primaryEmail\": \"<string>\",\n \"secondaryEmail\": \"<string>\"\n },\n \"document\": \"<string>\",\n \"externalId\": \"<string>\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"legalPerson\": {\n \"activity\": \"<string>\",\n \"foundingDate\": \"2023-12-25\",\n \"representative\": {\n \"document\": \"<string>\",\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"role\": \"<string>\"\n },\n \"size\": \"<string>\",\n \"status\": \"<string>\",\n \"tradeName\": \"<string>\",\n \"type\": \"<string>\"\n },\n \"metadata\": {},\n \"name\": \"<string>\",\n \"naturalPerson\": {\n \"birthDate\": \"2023-12-25\",\n \"civilStatus\": \"<string>\",\n \"fatherName\": \"<string>\",\n \"favoriteName\": \"<string>\",\n \"gender\": \"<string>\",\n \"motherName\": \"<string>\",\n \"nationality\": \"<string>\",\n \"socialName\": \"<string>\",\n \"status\": \"<string>\"\n },\n \"type\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "createdAt": "2023-11-07T05:31:56Z",
  "deletedAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "addresses": {
    "additional1": {
      "city": "<string>",
      "country": "<string>",
      "line1": "<string>",
      "line2": "<string>",
      "state": "<string>",
      "zipCode": "<string>",
      "description": "<string>"
    },
    "additional2": {
      "city": "<string>",
      "country": "<string>",
      "line1": "<string>",
      "line2": "<string>",
      "state": "<string>",
      "zipCode": "<string>",
      "description": "<string>"
    },
    "primary": {
      "city": "<string>",
      "country": "<string>",
      "line1": "<string>",
      "line2": "<string>",
      "state": "<string>",
      "zipCode": "<string>",
      "description": "<string>"
    }
  },
  "contact": {
    "mobilePhone": "<string>",
    "otherPhone": "<string>",
    "primaryEmail": "<string>",
    "secondaryEmail": "<string>"
  },
  "document": "<string>",
  "externalId": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "legalPerson": {
    "activity": "<string>",
    "foundingDate": "2023-12-25",
    "representative": {
      "document": "<string>",
      "email": "<string>",
      "name": "<string>",
      "role": "<string>"
    },
    "size": "<string>",
    "status": "<string>",
    "tradeName": "<string>",
    "type": "<string>"
  },
  "metadata": {},
  "name": "<string>",
  "naturalPerson": {
    "birthDate": "2023-12-25",
    "civilStatus": "<string>",
    "fatherName": "<string>",
    "favoriteName": "<string>",
    "gender": "<string>",
    "motherName": "<string>",
    "nationality": "<string>",
    "socialName": "<string>",
    "status": "<string>"
  },
  "type": "<string>"
}
{
"code": "<string>",
"detail": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"status": 123,
"title": "<string>",
"type": "about:blank"
}

Encabezados

Content-Type
string

El tipo de medio del recurso. El valor recomendado es application/json.

X-Request-Id
string<uuid>

Un identificador único utilizado para rastrear y seguir cada solicitud.

Authorization
string

Token JWT bearer para autenticación. Requerido cuando PLUGIN_AUTH_ENABLED=true (obligatorio en despliegues multiinquilino). Opcional en el modo OSS de inquilino único predeterminado. Formato: Bearer <token>

X-Idempotency
string

Una clave única que garantiza la idempotencia de la transacción. Si no se proporciona, el sistema genera automáticamente un hash SHA-256 basado en el cuerpo de la solicitud. Las claves están delimitadas por organización y ledger.

Siempre valide el header de respuesta X-Idempotency-Replayed para distinguir transacciones nuevas de reproducciones en caché.

Consulte Reintentos e idempotencia para mejores prácticas.

X-TTL
integer

El tiempo de vida (TTL) de la clave de idempotencia, definido en segundos. Si no se proporciona, el valor predeterminado es 300 segundos (5 minutos). Solo se usa el TTL de la primera solicitud; cambiarlo en reintentos no tiene efecto.

Consulte Reintentos e idempotencia para más detalles.

Parámetros de ruta

organization_id
string<uuid>
requerido

El identificador único de la Organización asociada al Ledger.

Cuerpo

application/json
createdAt
string<date-time>
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

deletedAt
string<date-time> | null
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

updatedAt
string<date-time>
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

addresses
object
contact
object
document
string
Maximum string length: 100
Ejemplo:

"91315026015"

externalId
string
Maximum string length: 256
Ejemplo:

"G4K7N8M2"

id
string<uuid>
Ejemplo:

"00000000-0000-0000-0000-000000000000"

metadata
object
name
string
Maximum string length: 256
Ejemplo:

"John Doe"

naturalPerson
object
type
string
Maximum string length: 100
Ejemplo:

"NATURAL_PERSON"

Respuesta

OK

createdAt
string<date-time>
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

deletedAt
string<date-time> | null
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

updatedAt
string<date-time>
requerido
Ejemplo:

"2025-01-01T00:00:00Z"

addresses
object
contact
object
document
string
Maximum string length: 100
Ejemplo:

"91315026015"

externalId
string
Maximum string length: 256
Ejemplo:

"G4K7N8M2"

id
string<uuid>
Ejemplo:

"00000000-0000-0000-0000-000000000000"

metadata
object
name
string
Maximum string length: 256
Ejemplo:

"John Doe"

naturalPerson
object
type
string
Maximum string length: 100
Ejemplo:

"NATURAL_PERSON"