# Listar Formas de Pago

Permite obtener las formas de pago configuradas de la inmobiliaria. Solo devuelve las formas de pago que tengan una cuenta contable (PUC) relacionada.

**Endpoint:** https://<span style="color: rgb(241, 196, 15);">***{{instancia}}***</span>.arrendasoft.co/service/v2/public/invoices/payment-methods

**<span style="color: rgb(241, 196, 15);">{{instancia}}</span>:** Hace referencia a la instancia de cada inmobiliaria.

#### **Petición**

<div class="markdown-body" dir="auto" id="bkmrk-m%C3%A9todo-get-content-t"><table border="1" id="bkmrk-m%C3%A9todo-get-content-t-1" style="width: 100%;"><colgroup><col style="width: 39.4436%;"></col><col style="width: 60.5167%;"></col></colgroup><tbody><tr><td>**Método**</td><td>GET</td></tr><tr><td>**Content-Type**</td><td>application/json</td></tr><tr><td>**Authorization**</td><td>**Bearer token**, Token obtenido al consumir el servicio [Login](https://docs.nuby.ai/books/api-nuby-v2/page/login)</td></tr></tbody></table>

<table border="1" id="bkmrk-par%C3%A1metro-tipo-oblig" style="width: 100%; height: 168.208px;"><colgroup><col style="width: 12.1525%;"></col><col style="width: 7.38681%;"></col><col style="width: 11.4376%;"></col><col style="width: 16.6751%;"></col><col style="width: 52.3082%;"></col></colgroup><tbody><tr style="height: 29.4583px;"><td class="align-center" colspan="5" style="height: 29.4583px;">**Parámetros**</td></tr><tr style="height: 46.25px;"><td class="align-center" style="height: 46.25px;">**Parámetro**</td><td class="align-center" style="height: 46.25px;">**Tipo**</td><td class="align-center" style="height: 46.25px;">**Obligatorio**</td><td class="align-center" style="height: 46.25px;">**Valor por defecto**</td><td class="align-center" style="height: 46.25px;">**Descripción**</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">codigo\_dian</td><td style="height: 46.25px;">string</td><td class="align-center" style="height: 46.25px;">No</td><td class="align-center" style="height: 46.25px;">-</td><td style="height: 46.25px;">Filtra formas de pago por el código DIAN del medio de pago (ej: 42 para Consignación bancaria).</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">cuenta\_puc</td><td style="height: 46.25px;">string</td><td class="align-center" style="height: 46.25px;">No</td><td class="align-center" style="height: 46.25px;">-</td><td style="height: 46.25px;">Filtra formas de pago por código de cuenta PUC. La búsqueda es por prefijo (ej: 1110 retorna todas las cuentas que inicien con ese código).</td></tr></tbody></table>

</div>**Ejemplos de peticiones**

```
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods
```

```
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods?codigo_dian=42
```

```
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods?cuenta_puc=1110
```

```
https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods?codigo_dian=42&cuenta_puc=1110
```

#### **Respuesta**

Lista de formas de pago configuradas con información del medio de pago DIAN y cuenta contable asociada.

```json
{
    "success": true,
    "status": 200,
    "message": null,
    "body": [
        {
            "formaPagoId": 1,
            "nombre": "Consignación Bancolombia",
            "cuentaPuc": "11100501",
            "codigoDian": "42",
            "medioPago": "Consignación bancaria"
        },
        {
            "formaPagoId": 2,
            "nombre": "Transferencia Davivienda",
            "cuentaPuc": "11100502",
            "codigoDian": "31",
            "medioPago": "Transferencia débito bancaria"
        },
        {
            "formaPagoId": 3,
            "nombre": "Pago con tarjeta de crédito",
            "cuentaPuc": "11100503",
            "codigoDian": "48",
            "medioPago": "Tarjeta de crédito"
        }
    ],
    "filters_applied": null
}
```

##### Claves y Descripciones del JSON de Respuesta

Esta tabla enumera las claves presentes en el JSON principal de la respuesta y proporciona una breve descripción de cada una.

<div class="markdown-body" dir="auto" id="bkmrk-clave-tipo-descripci"><table id="bkmrk-clave-descripci%C3%B3n-co" style="width: 100%;"><thead><tr><th style="width: 16.4416%;">**Clave**</th><th style="width: 10.8398%;">**Tipo**</th><th style="width: 72.6789%;">**Descripción**</th></tr></thead><tbody><tr><td style="width: 16.4416%;">`success`</td><td style="width: 10.8398%;">Booleano</td><td style="width: 72.6789%;">Indica si la operación fue exitosa (true) o fallida (false).</td></tr><tr><td style="width: 16.4416%;">`status`</td><td style="width: 10.8398%;">Entero</td><td style="width: 72.6789%;">Código HTTP de la respuesta: 200 para exitoso, 500 para error interno.</td></tr><tr><td style="width: 16.4416%;">`message`</td><td style="width: 10.8398%;">Texto</td><td style="width: 72.6789%;">Mensaje descriptivo. Es nulo cuando hay resultados, o contiene un mensaje informativo cuando no se encontraron formas de pago.</td></tr><tr><td style="width: 16.4416%;">`body`</td><td style="width: 10.8398%;">Array</td><td style="width: 72.6789%;">Contiene el listado de formas de pago. Es un array vacío si no hay resultados.</td></tr><tr><td style="width: 16.4416%;">`filters_applied`</td><td style="width: 10.8398%;">Objeto</td><td style="width: 72.6789%;">Contiene los filtros que fueron aplicados en la consulta. Es nulo si no se aplicaron filtros.</td></tr></tbody></table>

</div>##### Cuerpo

Cada elemento dentro de la lista `body` tiene las siguientes claves:

<div class="markdown-body" dir="auto" id="bkmrk-clave-tipo-descripci-1"><table id="bkmrk-clave-descripci%C3%B3n-id" style="width: 100%; height: 193.542px;"><thead><tr style="height: 29.4583px;"><th style="width: 15.3693%; height: 29.4583px;">**Clave**</th><th style="width: 8.93122%; height: 29.4583px;">**Tipo**</th><th style="width: 75.6597%; height: 29.4583px;">**Descripción**</th></tr></thead><tbody><tr style="height: 46.25px;"><td style="width: 15.3693%; height: 46.25px;">`formaPagoId`</td><td style="width: 8.93122%; height: 46.25px;">Entero</td><td style="width: 75.6597%; height: 46.25px;">Identificador único de la forma de pago. Use este valor para el parámetro `forma\_pago\_id` al registrar un pago.</td></tr><tr style="height: 29.4583px;"><td style="width: 15.3693%; height: 29.4583px;">`nombre`</td><td style="width: 8.93122%; height: 29.4583px;">Texto</td><td style="width: 75.6597%; height: 29.4583px;">Nombre descriptivo de la forma de pago configurada por la inmobiliaria.</td></tr><tr style="height: 29.4583px;"><td style="width: 15.3693%; height: 29.4583px;">`cuentaPuc`</td><td style="width: 8.93122%; height: 29.4583px;">Texto</td><td style="width: 75.6597%; height: 29.4583px;">Código de la cuenta contable (PUC) asociada a la forma de pago.</td></tr><tr style="height: 29.4583px;"><td style="width: 15.3693%; height: 29.4583px;">`codigoDian`</td><td style="width: 8.93122%; height: 29.4583px;">Texto</td><td style="width: 75.6597%; height: 29.4583px;">Código del medio de pago según la clasificación DIAN.</td></tr><tr style="height: 29.4583px;"><td style="width: 15.3693%; height: 29.4583px;">`medioPago`</td><td style="width: 8.93122%; height: 29.4583px;">Texto</td><td style="width: 75.6597%; height: 29.4583px;">Nombre del medio de pago según la clasificación DIAN.</td></tr></tbody></table>

</div>##### Filtros Aplicados

El objeto `filters_applied` contiene los filtros que fueron utilizados en la consulta. Solo se incluye en la respuesta cuando se aplican filtros. Las posibles claves son:

<div class="markdown-body" dir="auto" id="bkmrk-clave-tipo-descripci-2"><table id="bkmrk-clave-tipo-descripci-3"><thead><tr><th>**Clave**</th><th>**Tipo**</th><th>**Descripción**</th></tr></thead><tbody><tr><td>`codigo_dian`</td><td>Texto</td><td>Código DIAN del medio de pago utilizado como filtro.</td></tr><tr><td>`cuenta_puc`</td><td>Texto</td><td>Código de cuenta PUC utilizado como filtro (búsqueda por prefijo).</td></tr></tbody></table>

</div>#### **Respuesta con Filtros Aplicados**

```json
{
    "success": true,
    "status": 200,
    "message": null,
    "body": [
        {
            "formaPagoId": 1,
            "nombre": "Consignación Bancolombia",
            "cuentaPuc": "11100501",
            "codigoDian": "42",
            "medioPago": "Consignación bancaria"
        }
    ],
    "filters_applied": {
        "codigo_dian": "42"
    }
}
```

#### **Respuesta Sin Resultados**

```json
{
    "success": true,
    "status": 200,
    "message": "No se encontraron formas de pago con los criterios especificados.",
    "body": [],
    "filters_applied": {
        "codigo_dian": "99"
    }
}
```

#### **Respuesta de Error**

##### Error Interno (500)

Se retorna cuando ocurre un error inesperado en el servidor.

```json
{
    "success": false,
    "status": 500,
    "message": "Error interno del servidor al obtener las formas de pago.",
    "body": null,
    "filters_applied": null
}
```

#### **Códigos de Respuesta HTTP**

<div class="markdown-body" dir="auto" id="bkmrk-c%C3%B3digo-descripci%C3%B3n-2"><table id="bkmrk-c%C3%B3digo-descripci%C3%B3n-2-1" style="width: 100%;"><thead><tr><th style="width: 10.363%;">**Código**</th><th style="width: 89.7164%;">**Descripción**</th></tr></thead><tbody><tr><td style="width: 10.363%;">200</td><td style="width: 89.7164%;">Consulta exitosa. El cuerpo de la respuesta contiene las formas de pago (puede ser un array vacío si no hay resultados).</td></tr><tr><td style="width: 10.363%;">500</td><td style="width: 89.7164%;">Error interno del servidor.</td></tr></tbody></table>

</div>#### **Códigos DIAN de Medios de Pago**

Referencia de códigos DIAN comunes para medios de pago:

<table id="bkmrk-c%C3%B3digo-medio-de-pag"><thead><tr><th>Código</th><th>Medio de Pago</th></tr></thead><tbody><tr><td>10</td><td>Efectivo</td></tr><tr><td>31</td><td>Transferencia Débito</td></tr><tr><td>42</td><td>Consignación bancaria</td></tr><tr><td>47</td><td>Transferencia Débito Bancaria</td></tr><tr><td>48</td><td>Tarjeta Crédito</td></tr><tr><td>49</td><td>Tarjeta Débito</td></tr></tbody></table>

Para consultar el listado completo de códigos de medios de pago, visite la [Documentación Técnica de Factura Electrónica - DIAN](https://www.dian.gov.co/impuestos/factura-electronica/documentacion/Paginas/documentacion-tecnica.aspx).

#### **Notas Importantes**

<div class="markdown-body" dir="auto" id="bkmrk-solo-formas-de-pago-">1. **Solo formas de pago configuradas:** Este endpoint solo retorna las formas de pago que tengan una cuenta contable (PUC) asociada. Las formas de pago sin cuenta contable no aparecerán en los resultados.
2. **Uso con registro de pagos:** El `formaPagoId` retornado puede usarse como valor del parámetro `forma_pago_id` en el endpoint [Registrar Pago de Factura](https://docs.nuby.ai/books/api-nuby-v2/page/registrar-pago-de-factura "Registrar Pago de Factura").
3. **Búsqueda por cuenta PUC:** El filtro `cuenta_puc` realiza una búsqueda por prefijo, lo que permite filtrar por grupos de cuentas (ej: `1110` retorna todas las cuentas PUC que inicien con ese código).

</div>#### **Ejemplos**

<div class="markdown-body" dir="auto" id="bkmrk-curl-curl--x-get-%22ht"><details id="bkmrk-curl-curl--x-get-%22h"><summary>Curl</summary>

```bash
curl -X GET "https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_AUTHENTICATION_TOKEN"
```

**Con filtros:**

```bash
curl -X GET "https://{{instancia}}.arrendasoft.co/service/v2/public/invoices/payment-methods?codigo_dian=42" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_AUTHENTICATION_TOKEN"
```

</details><details id="bkmrk-php-curl-%3C%3Fphp-%24inst"><summary>PHP Curl</summary>

```php
<?php

$instance = 'your_instance'; // Reemplace con su instancia actual
$token = 'YOUR_AUTHENTICATION_TOKEN'; // Reemplace con el token obtenido desde el servicio de login

// Parámetros de filtro opcionales
$codigoDian = '42'; // Opcional: filtrar por código DIAN
$cuentaPuc = null;  // Opcional: filtrar por cuenta PUC

$url = "https://{$instance}.arrendasoft.co/service/v2/public/invoices/payment-methods";

// Agregar parámetros de filtro si existen
$queryParams = [];
if (!empty($codigoDian)) {
    $queryParams['codigo_dian'] = $codigoDian;
}
if (!empty($cuentaPuc)) {
    $queryParams['cuenta_puc'] = $cuentaPuc;
}
if (!empty($queryParams)) {
    $url .= '?' . http_build_query($queryParams);
}

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token
]);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
} else {
    echo "HTTP Status Code: " . $http_code . "\n";
    echo "Response: " . $response . "\n";
    
    // Procesar la respuesta
    $result = json_decode($response, true);
    
    if ($result['success'] && !empty($result['body'])) {
        echo "Se encontraron " . count($result['body']) . " formas de pago.\n\n";
        
        foreach ($result['body'] as $formaPago) {
            echo "ID: " . $formaPago['formaPagoId'] . "\n";
            echo "Nombre: " . $formaPago['nombre'] . "\n";
            echo "Cuenta PUC: " . $formaPago['cuentaPuc'] . "\n";
            echo "Código DIAN: " . $formaPago['codigoDian'] . "\n";
            echo "Medio de Pago: " . $formaPago['medioPago'] . "\n";
            echo "---\n";
        }
    } else {
        echo $result['message'] ?? "No se encontraron formas de pago.\n";
    }
}
curl_close($ch);

?>
```

</details><details id="bkmrk-javascript-fetch"><summary>JavaScript Fetch</summary>

```javascript
const instance = 'your_instance'; // Reemplace con su instancia actual
const token = 'YOUR_AUTHENTICATION_TOKEN'; // Reemplace con el token obtenido

// Parámetros de filtro opcionales
const params = new URLSearchParams();
// params.append('codigo_dian', '42'); // Opcional: descomentar para filtrar
// params.append('cuenta_puc', '1110'); // Opcional: descomentar para filtrar

const url = `https://${instance}.arrendasoft.co/service/v2/public/invoices/payment-methods${params.toString() ? '?' + params.toString() : ''}`;

fetch(url, {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
    }
})
.then(response => response.json())
.then(data => {
    if (data.success && data.body.length > 0) {
        console.log(`Se encontraron ${data.body.length} formas de pago:`);
        data.body.forEach(formaPago => {
            console.log(`- ${formaPago.nombre} (ID: ${formaPago.formaPagoId})`);
            console.log(`  Cuenta PUC: ${formaPago.cuentaPuc}`);
            console.log(`  Medio DIAN: ${formaPago.medioPago} (${formaPago.codigoDian})`);
        });
    } else {
        console.log(data.message || 'No se encontraron formas de pago.');
    }
})
.catch(error => console.error('Error de conexión:', error));
```

</details><div class="code-line" data-line="277">  
</div></div>