curl --request POST \
--url https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"debtors": [
{
"contactInfoAddressCity": "Montevideo",
"contactInfoAddressCountry": "UY",
"contactInfoAddressPostalCode": "11300",
"contactInfoAddressState": "Montevideo",
"contactInfoAddressStreet": "Av. Italia 1234",
"contactInfoContactName": "Ana Pérez",
"contactInfoEmails": [
{
"address": "ana@example.com",
"primary": true,
"type": "personal"
}
],
"contactInfoPhoneNumbers": [
{
"phone": "+59899123456",
"primary": true,
"type": "mobile"
}
],
"debts": [
{
"currency": "UYU",
"debtType": "credit_card",
"description": "Factura de agosto",
"dueDate": "2026-08-30",
"externalId": "fac-2026-0001",
"issueDate": "2026-07-30",
"paidAmount": 0,
"totalAmount": 12500.5
},
{
"currency": "UYU",
"dueDate": "2026-09-15",
"externalId": "fac-2026-0002",
"totalAmount": 3200
}
],
"externalId": "cli-000123",
"identityDocumentNumber": "41234567",
"identityDocumentType": "ci",
"identityEntityType": "individual",
"identityFirstName": "Ana",
"identityLastName": "Pérez"
},
{
"externalId": "cli-000124",
"identityDocumentNumber": "30123456",
"identityDocumentType": "dni",
"identityFirstName": "Juan"
}
]
}
'import requests
url = "https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors"
payload = { "debtors": [
{
"contactInfoAddressCity": "Montevideo",
"contactInfoAddressCountry": "UY",
"contactInfoAddressPostalCode": "11300",
"contactInfoAddressState": "Montevideo",
"contactInfoAddressStreet": "Av. Italia 1234",
"contactInfoContactName": "Ana Pérez",
"contactInfoEmails": [
{
"address": "ana@example.com",
"primary": True,
"type": "personal"
}
],
"contactInfoPhoneNumbers": [
{
"phone": "+59899123456",
"primary": True,
"type": "mobile"
}
],
"debts": [
{
"currency": "UYU",
"debtType": "credit_card",
"description": "Factura de agosto",
"dueDate": "2026-08-30",
"externalId": "fac-2026-0001",
"issueDate": "2026-07-30",
"paidAmount": 0,
"totalAmount": 12500.5
},
{
"currency": "UYU",
"dueDate": "2026-09-15",
"externalId": "fac-2026-0002",
"totalAmount": 3200
}
],
"externalId": "cli-000123",
"identityDocumentNumber": "41234567",
"identityDocumentType": "ci",
"identityEntityType": "individual",
"identityFirstName": "Ana",
"identityLastName": "Pérez"
},
{
"externalId": "cli-000124",
"identityDocumentNumber": "30123456",
"identityDocumentType": "dni",
"identityFirstName": "Juan"
}
] }
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({
debtors: [
{
contactInfoAddressCity: 'Montevideo',
contactInfoAddressCountry: 'UY',
contactInfoAddressPostalCode: '11300',
contactInfoAddressState: 'Montevideo',
contactInfoAddressStreet: 'Av. Italia 1234',
contactInfoContactName: 'Ana Pérez',
contactInfoEmails: [{address: 'ana@example.com', primary: true, type: 'personal'}],
contactInfoPhoneNumbers: [{phone: '+59899123456', primary: true, type: 'mobile'}],
debts: [
{
currency: 'UYU',
debtType: 'credit_card',
description: 'Factura de agosto',
dueDate: '2026-08-30',
externalId: 'fac-2026-0001',
issueDate: '2026-07-30',
paidAmount: 0,
totalAmount: 12500.5
},
{
currency: 'UYU',
dueDate: '2026-09-15',
externalId: 'fac-2026-0002',
totalAmount: 3200
}
],
externalId: 'cli-000123',
identityDocumentNumber: '41234567',
identityDocumentType: 'ci',
identityEntityType: 'individual',
identityFirstName: 'Ana',
identityLastName: 'Pérez'
},
{
externalId: 'cli-000124',
identityDocumentNumber: '30123456',
identityDocumentType: 'dni',
identityFirstName: 'Juan'
}
]
})
};
fetch('https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors', 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.v3.mozarth.com/public/v1/portfolios/{id}/debtors",
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([
'debtors' => [
[
'contactInfoAddressCity' => 'Montevideo',
'contactInfoAddressCountry' => 'UY',
'contactInfoAddressPostalCode' => '11300',
'contactInfoAddressState' => 'Montevideo',
'contactInfoAddressStreet' => 'Av. Italia 1234',
'contactInfoContactName' => 'Ana Pérez',
'contactInfoEmails' => [
[
'address' => 'ana@example.com',
'primary' => true,
'type' => 'personal'
]
],
'contactInfoPhoneNumbers' => [
[
'phone' => '+59899123456',
'primary' => true,
'type' => 'mobile'
]
],
'debts' => [
[
'currency' => 'UYU',
'debtType' => 'credit_card',
'description' => 'Factura de agosto',
'dueDate' => '2026-08-30',
'externalId' => 'fac-2026-0001',
'issueDate' => '2026-07-30',
'paidAmount' => 0,
'totalAmount' => 12500.5
],
[
'currency' => 'UYU',
'dueDate' => '2026-09-15',
'externalId' => 'fac-2026-0002',
'totalAmount' => 3200
]
],
'externalId' => 'cli-000123',
'identityDocumentNumber' => '41234567',
'identityDocumentType' => 'ci',
'identityEntityType' => 'individual',
'identityFirstName' => 'Ana',
'identityLastName' => 'Pérez'
],
[
'externalId' => 'cli-000124',
'identityDocumentNumber' => '30123456',
'identityDocumentType' => 'dni',
'identityFirstName' => 'Juan'
]
]
]),
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.v3.mozarth.com/public/v1/portfolios/{id}/debtors"
payload := strings.NewReader("{\n \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\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.v3.mozarth.com/public/v1/portfolios/{id}/debtors")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors")
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 \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"results": [
{
"externalId": "<string>",
"index": 123,
"status": "created",
"debts": [
{
"externalId": "<string>",
"id": "<string>",
"status": "created"
}
],
"id": "<string>",
"reason": {
"code": "invalid_phone",
"message": "<string>",
"path": "<string>"
}
}
],
"summary": {
"created": 123,
"received": 123,
"rejected": 123,
"updated": 123
}
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}Crear o actualizar deudores en lote
Crea o actualiza deudores (y sus deudas) de una cartera propia de la organización, en un solo lote.
Identidad: cada deudor se identifica por su externalId DENTRO de la cartera. Un reintento con el mismo externalId actualiza en vez de duplicar. Cada deuda del ítem se identifica por su propio externalId, también único dentro de la cartera (no sólo dentro del ítem): si ya existe viva bajo OTRO deudor, ese ítem entero sale rechazado (debt_external_id_in_use).
Qué pisa un update y qué no:
identityFirstName,identityDocumentTypeeidentityDocumentNumberson obligatorios y siempre pisan lo guardado.identityLastName,identityEntityType,contactInfoContactName,contactInfoAddress*: si viene, pisa; si no viene, no se toca.contactInfoPhoneNumbers: si viene, la lista que se manda es la autoridad completa sobre qué números existen — un número que no venga en la lista se elimina. Un número ya conocido conserva sus marcas (status,verified). Su dueño (owner) solo cambia si el ítem lo trae. Si no viene o viene vacía, no se toca.contactInfoEmails: si viene, reemplaza la lista entera (se pierden marcas de verificación). Si no viene, no se toca.statusyprioritydel deudor nunca se escriben desde este endpoint.- Las deudas del ítem que no se mencionan no se tocan; no hay reconciliación acá.
Resultado por ítem: la respuesta trae un results[] en el mismo orden y con la misma longitud que debtors[] enviado, con status created / updated / rejected. Un ítem rechazado trae reason.code, uno de: invalid_phone, duplicate_in_batch, invalid_amount, debt_currency_invalid, debt_duplicate_in_item, debt_duplicate_in_batch, debt_external_id_in_use, debt_currency_mismatch, erased_subject, internal. debt_currency_invalid significa que currency no es un código ISO 4217 real (el formato de tres letras mayúsculas solo no alcanza). debt_currency_mismatch significa que la deuda ya existe con otra moneda: la API nunca cambia la moneda de una deuda existente. erased_subject significa que el deudor fue suprimido a pedido del titular de los datos y la API no lo vuelve a crear; los updates de deudores existentes no se ven afectados.
Idempotencia, en dos niveles independientes:
- De negocio, por
externalId(arriba): reintentar con el mismo lote no duplica nada. - De transporte, por la cabecera
Idempotency-Key(opcional, 1 a 255 caracteres): reintentar la MISMA request con la misma clave devuelve la misma respuesta sin reprocesar, con la cabeceraIdempotent-Replayed: true. La misma clave usada contra otra cartera (u otro cuerpo) responde 409idempotency_conflict.
Tope de lote: hasta 500 deudores por request. Más que eso responde 413 payload_too_large; para volúmenes grandes usá la carga de cartera (POST /v1/portfolios/{id}/imports/upload-url + POST /v1/portfolios/{id}/imports), que corre asíncrona y sin ese límite.
Rate limit ponderado: a diferencia del resto de la API, que cobra 1 unidad fija por request, este endpoint cobra 1 unidad cada 50 deudores del lote (mínimo 1 unidad). Un lote de 500 deudores cuesta 10 unidades. X-RateLimit-Remaining en la respuesta ya refleja ese cobro, y un lote que cruza el límite responde 429 rate_limited con Retry-After (ver Paginación, errores y límites).
Requiere el scope write en la API key.
Guía completa: /integracion/deudores.
curl --request POST \
--url https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"debtors": [
{
"contactInfoAddressCity": "Montevideo",
"contactInfoAddressCountry": "UY",
"contactInfoAddressPostalCode": "11300",
"contactInfoAddressState": "Montevideo",
"contactInfoAddressStreet": "Av. Italia 1234",
"contactInfoContactName": "Ana Pérez",
"contactInfoEmails": [
{
"address": "ana@example.com",
"primary": true,
"type": "personal"
}
],
"contactInfoPhoneNumbers": [
{
"phone": "+59899123456",
"primary": true,
"type": "mobile"
}
],
"debts": [
{
"currency": "UYU",
"debtType": "credit_card",
"description": "Factura de agosto",
"dueDate": "2026-08-30",
"externalId": "fac-2026-0001",
"issueDate": "2026-07-30",
"paidAmount": 0,
"totalAmount": 12500.5
},
{
"currency": "UYU",
"dueDate": "2026-09-15",
"externalId": "fac-2026-0002",
"totalAmount": 3200
}
],
"externalId": "cli-000123",
"identityDocumentNumber": "41234567",
"identityDocumentType": "ci",
"identityEntityType": "individual",
"identityFirstName": "Ana",
"identityLastName": "Pérez"
},
{
"externalId": "cli-000124",
"identityDocumentNumber": "30123456",
"identityDocumentType": "dni",
"identityFirstName": "Juan"
}
]
}
'import requests
url = "https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors"
payload = { "debtors": [
{
"contactInfoAddressCity": "Montevideo",
"contactInfoAddressCountry": "UY",
"contactInfoAddressPostalCode": "11300",
"contactInfoAddressState": "Montevideo",
"contactInfoAddressStreet": "Av. Italia 1234",
"contactInfoContactName": "Ana Pérez",
"contactInfoEmails": [
{
"address": "ana@example.com",
"primary": True,
"type": "personal"
}
],
"contactInfoPhoneNumbers": [
{
"phone": "+59899123456",
"primary": True,
"type": "mobile"
}
],
"debts": [
{
"currency": "UYU",
"debtType": "credit_card",
"description": "Factura de agosto",
"dueDate": "2026-08-30",
"externalId": "fac-2026-0001",
"issueDate": "2026-07-30",
"paidAmount": 0,
"totalAmount": 12500.5
},
{
"currency": "UYU",
"dueDate": "2026-09-15",
"externalId": "fac-2026-0002",
"totalAmount": 3200
}
],
"externalId": "cli-000123",
"identityDocumentNumber": "41234567",
"identityDocumentType": "ci",
"identityEntityType": "individual",
"identityFirstName": "Ana",
"identityLastName": "Pérez"
},
{
"externalId": "cli-000124",
"identityDocumentNumber": "30123456",
"identityDocumentType": "dni",
"identityFirstName": "Juan"
}
] }
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({
debtors: [
{
contactInfoAddressCity: 'Montevideo',
contactInfoAddressCountry: 'UY',
contactInfoAddressPostalCode: '11300',
contactInfoAddressState: 'Montevideo',
contactInfoAddressStreet: 'Av. Italia 1234',
contactInfoContactName: 'Ana Pérez',
contactInfoEmails: [{address: 'ana@example.com', primary: true, type: 'personal'}],
contactInfoPhoneNumbers: [{phone: '+59899123456', primary: true, type: 'mobile'}],
debts: [
{
currency: 'UYU',
debtType: 'credit_card',
description: 'Factura de agosto',
dueDate: '2026-08-30',
externalId: 'fac-2026-0001',
issueDate: '2026-07-30',
paidAmount: 0,
totalAmount: 12500.5
},
{
currency: 'UYU',
dueDate: '2026-09-15',
externalId: 'fac-2026-0002',
totalAmount: 3200
}
],
externalId: 'cli-000123',
identityDocumentNumber: '41234567',
identityDocumentType: 'ci',
identityEntityType: 'individual',
identityFirstName: 'Ana',
identityLastName: 'Pérez'
},
{
externalId: 'cli-000124',
identityDocumentNumber: '30123456',
identityDocumentType: 'dni',
identityFirstName: 'Juan'
}
]
})
};
fetch('https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors', 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.v3.mozarth.com/public/v1/portfolios/{id}/debtors",
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([
'debtors' => [
[
'contactInfoAddressCity' => 'Montevideo',
'contactInfoAddressCountry' => 'UY',
'contactInfoAddressPostalCode' => '11300',
'contactInfoAddressState' => 'Montevideo',
'contactInfoAddressStreet' => 'Av. Italia 1234',
'contactInfoContactName' => 'Ana Pérez',
'contactInfoEmails' => [
[
'address' => 'ana@example.com',
'primary' => true,
'type' => 'personal'
]
],
'contactInfoPhoneNumbers' => [
[
'phone' => '+59899123456',
'primary' => true,
'type' => 'mobile'
]
],
'debts' => [
[
'currency' => 'UYU',
'debtType' => 'credit_card',
'description' => 'Factura de agosto',
'dueDate' => '2026-08-30',
'externalId' => 'fac-2026-0001',
'issueDate' => '2026-07-30',
'paidAmount' => 0,
'totalAmount' => 12500.5
],
[
'currency' => 'UYU',
'dueDate' => '2026-09-15',
'externalId' => 'fac-2026-0002',
'totalAmount' => 3200
]
],
'externalId' => 'cli-000123',
'identityDocumentNumber' => '41234567',
'identityDocumentType' => 'ci',
'identityEntityType' => 'individual',
'identityFirstName' => 'Ana',
'identityLastName' => 'Pérez'
],
[
'externalId' => 'cli-000124',
'identityDocumentNumber' => '30123456',
'identityDocumentType' => 'dni',
'identityFirstName' => 'Juan'
]
]
]),
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.v3.mozarth.com/public/v1/portfolios/{id}/debtors"
payload := strings.NewReader("{\n \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\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.v3.mozarth.com/public/v1/portfolios/{id}/debtors")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.v3.mozarth.com/public/v1/portfolios/{id}/debtors")
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 \"debtors\": [\n {\n \"contactInfoAddressCity\": \"Montevideo\",\n \"contactInfoAddressCountry\": \"UY\",\n \"contactInfoAddressPostalCode\": \"11300\",\n \"contactInfoAddressState\": \"Montevideo\",\n \"contactInfoAddressStreet\": \"Av. Italia 1234\",\n \"contactInfoContactName\": \"Ana Pérez\",\n \"contactInfoEmails\": [\n {\n \"address\": \"ana@example.com\",\n \"primary\": true,\n \"type\": \"personal\"\n }\n ],\n \"contactInfoPhoneNumbers\": [\n {\n \"phone\": \"+59899123456\",\n \"primary\": true,\n \"type\": \"mobile\"\n }\n ],\n \"debts\": [\n {\n \"currency\": \"UYU\",\n \"debtType\": \"credit_card\",\n \"description\": \"Factura de agosto\",\n \"dueDate\": \"2026-08-30\",\n \"externalId\": \"fac-2026-0001\",\n \"issueDate\": \"2026-07-30\",\n \"paidAmount\": 0,\n \"totalAmount\": 12500.5\n },\n {\n \"currency\": \"UYU\",\n \"dueDate\": \"2026-09-15\",\n \"externalId\": \"fac-2026-0002\",\n \"totalAmount\": 3200\n }\n ],\n \"externalId\": \"cli-000123\",\n \"identityDocumentNumber\": \"41234567\",\n \"identityDocumentType\": \"ci\",\n \"identityEntityType\": \"individual\",\n \"identityFirstName\": \"Ana\",\n \"identityLastName\": \"Pérez\"\n },\n {\n \"externalId\": \"cli-000124\",\n \"identityDocumentNumber\": \"30123456\",\n \"identityDocumentType\": \"dni\",\n \"identityFirstName\": \"Juan\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"results": [
{
"externalId": "<string>",
"index": 123,
"status": "created",
"debts": [
{
"externalId": "<string>",
"id": "<string>",
"status": "created"
}
],
"id": "<string>",
"reason": {
"code": "invalid_phone",
"message": "<string>",
"path": "<string>"
}
}
],
"summary": {
"created": 123,
"received": 123,
"rejected": 123,
"updated": 123
}
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "unauthorized",
"message": "<string>",
"requestId": "<string>",
"issues": [
{
"message": "<string>",
"path": "<string>"
}
]
}
}Autorizaciones
Clave de API de tu organización en el header Authorization: Bearer <clave>. Las claves empiezan con moz_ y las emite un superadmin desde el Admin.
Encabezados
Clave de idempotencia de transporte, opcional, hasta 255 caracteres. Reintentar la misma request con la misma clave devuelve la misma respuesta 200 sin reprocesar, por 24 h.
255Parámetros de ruta
Cuerpo
Lote de deudores a crear o actualizar. Sin tope de esquema: el router responde 413 por separado si supera el máximo soportado.
1Show child attributes
Show child attributes
Respuesta
Response for status 200
Show child attributes
Show child attributes