Desarrolladores
Liquidaciones de conectores de ingresos (Paddle).
GET /connectors/paddle/payouts Listar liquidaciones de PaddlePOST /connectors/paddle/payouts Registrar una liquidación de PaddlePOST /connectors/paddle/payouts/{id}/post Contabilizar una liquidación de Paddle/connectors/paddle/payoutsListar liquidaciones de Paddle
Liquidaciones del conector de ingresos con su desglose (en bruto, como Merchant of Record). Usa `aggregate=month` para obtener totales mensuales.
Permiso exigido:
connectors:payouts.read (Conectores › Liquidaciones de pasarelas › Leer)
Paginación: Sin paginación: devuelve el conjunto completo.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
from | query | string (date) | |
to | query | string (date) | |
aggregate | query | string | Devuelve totales mensuales en lugar de cada liquidación. Valores: month |
200 Lista de liquidaciones · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
payouts | object[] | |
payouts[].id | string | |
payouts[].companyId | string | |
payouts[].payoutDate | string (date) | |
payouts[].currency | string | |
payouts[].gross | string | Cadena decimal |
payouts[].fees | string | Cadena decimal |
payouts[].net | string | Cadena decimal |
payouts[].components | object[] | |
payouts[].components[].type | string | |
payouts[].components[].amount | string | Cadena decimal |
401 Falta el token Bearer o no es válido. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
403 El token no tiene el permiso exigido o el recurso queda fuera de su alcance. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
429 Se ha alcanzado un límite de uso. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
curl -X GET "https://app.bm.consulting/api/v1/connectors/paddle/payouts" \
-H "Authorization: Bearer $BMC_TOKEN" const res = await fetch("https://app.bm.consulting/api/v1/connectors/paddle/payouts", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.BMC_TOKEN}`,
},
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); import os
import requests
res = requests.get(
"https://app.bm.consulting/api/v1/connectors/paddle/payouts",
headers={"Authorization": f"Bearer {os.environ['BMC_TOKEN']}"},
timeout=30,
)
res.raise_for_status()
data = res.json() /connectors/paddle/payoutsRegistrar una liquidación de Paddle
Idempotente por `paddlePayoutId`: reenviar la misma liquidación devuelve la existente. `companyId` sale del token.
Permiso exigido:
connectors:payouts.create (Conectores › Liquidaciones de pasarelas › Crear)
Paginación: Sin paginación: devuelve el conjunto completo.
application/json| Nombre | Tipo | Descripción |
|---|---|---|
paddlePayoutIdobligatorio | string | |
payoutDateobligatorio | string (date) | |
currencyobligatorio | string | |
componentsobligatorio | object[] | |
components[].type | string | |
components[].amount | string | Cadena decimal |
200 Reenvío de una liquidación ya registrada: devuelve la existente
201 Liquidación registrada · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
id | string | |
companyId | string | |
payoutDate | string (date) | |
currency | string | |
gross | string | Cadena decimal |
fees | string | Cadena decimal |
net | string | Cadena decimal |
components | object[] | |
components[].type | string | |
components[].amount | string | Cadena decimal |
401 Falta el token Bearer o no es válido. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
403 El token no tiene el permiso exigido o el recurso queda fuera de su alcance. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
429 Se ha alcanzado un límite de uso. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
curl -X POST "https://app.bm.consulting/api/v1/connectors/paddle/payouts" \
-H "Authorization: Bearer $BMC_TOKEN" \
-H "Content-Type: application/json" \
-d '{"paddlePayoutId":"string","payoutDate":"2026-01-31","currency":"EUR","components":[{"type":"sale","amount":"string"}]}' const res = await fetch("https://app.bm.consulting/api/v1/connectors/paddle/payouts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BMC_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"paddlePayoutId": "string",
"payoutDate": "2026-01-31",
"currency": "EUR",
"components": [
{
"type": "sale",
"amount": "string"
}
]
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); import os
import requests
res = requests.post(
"https://app.bm.consulting/api/v1/connectors/paddle/payouts",
headers={"Authorization": f"Bearer {os.environ['BMC_TOKEN']}"},
json={
"paddlePayoutId": "string",
"payoutDate": "2026-01-31",
"currency": "EUR",
"components": [{
"type": "sale",
"amount": "string",
}],
},
timeout=30,
)
res.raise_for_status()
data = res.json() /connectors/paddle/payouts/{id}/postContabilizar una liquidación de Paddle
Contabiliza la liquidación registrada como asiento (tratamiento en bruto de Merchant of Record). Idempotente.
Permiso exigido:
connectors:payouts.post (Conectores › Liquidaciones de pasarelas › Contabilizar)
Paginación: Sin paginación: devuelve el conjunto completo.
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
idobligatorio | ruta | string |
200 Liquidación contabilizada (asiento creado)
401 Falta el token Bearer o no es válido. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
403 El token no tiene el permiso exigido o el recurso queda fuera de su alcance. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
404 El recurso no existe o queda fuera del alcance del token. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
429 Se ha alcanzado un límite de uso. · application/json
| Nombre | Tipo | Descripción |
|---|---|---|
error | string | Mensaje de error legible |
required_permission | string | Solo en el 403: el permiso que falta (área:recurso.acción) |
curl -X POST "https://app.bm.consulting/api/v1/connectors/paddle/payouts/<id>/post" \
-H "Authorization: Bearer $BMC_TOKEN" const res = await fetch("https://app.bm.consulting/api/v1/connectors/paddle/payouts/<id>/post", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BMC_TOKEN}`,
},
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); import os
import requests
res = requests.post(
"https://app.bm.consulting/api/v1/connectors/paddle/payouts/<id>/post",
headers={"Authorization": f"Bearer {os.environ['BMC_TOKEN']}"},
timeout=30,
)
res.raise_for_status()
data = res.json()