> ## Documentation Index
> Fetch the complete documentation index at: https://transfiya.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo leer un QR

### Especificaciones para lectura de QR

Las Entidades Participantes pueden habilitar la lectura de código  QR a través de Transfiya, por lo cual deberán implementar las siguientes especificaciones:

```json theme={null}
Dominio: https://bank.apihub.crt.achcolombia.com.co
```

```json theme={null}
POST /ach/bk/v1/money-movement/qr 
```

### Campos de Entrada

| **Campo**              | **Tipo**   | **Descripción**                                                         | **Formato**                          | **Obligatorio** |
| ---------------------- | ---------- | ----------------------------------------------------------------------- | ------------------------------------ | --------------- |
| **meta**               | **object** |                                                                         |                                      | **SI**          |
| requestId              | uuid       | Código generado por la entidad participante para identificar el paquete | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | SI              |
| timestamp              | datetime   | Fecha y hora de la solictud de generación del código QR                 | 2025-12-23T18:16:35.099Z             | SI              |
| version                | string     | Versión del esquema, enviar el valor "1.0"                              | 1.0                                  | SI              |
| **data**               | **object** |                                                                         |                                      | **SI**          |
| movementType           | enum       | Tipo de operación realizada. \[QR, QRVALIDATE, QRPARSER]                | QRPARSER                             | SI              |
| **useCaseInformation** | **object** |                                                                         |                                      | **SI**          |
| qrCode                 | string     | Cadena de texto que contiene el código QR generado en formato EMVCO     | Cadena TLV                           | SI              |
|                        |            |                                                                         |                                      |                 |

<CodeGroup>
  ```json Request  theme={null}
  {
    "meta": {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "timestamp": "2026-01-15T00:07:31.512Z",
      "version": "1.0"
    },
    "data": {
      "movementType": "QRPARSER",
      "useCaseInformation": {
        "qrCode": "00020101021126580014br.gov.bcb.pix0136d2905f4-4f6e-4e2e-8c7a-5a7c6c3e8f9f520400005303986540615.005802BR5925Fulano de Tal6037Sao Paulo61080540900062070503***63041D3D"
      }
    }
  }
  ```
</CodeGroup>

### Campos de Salida:

El sistema Transfiya retornará un JSON con los campos contenidos en la cadena TLV. Esta información es necesaria para que la Entidad Participante Origen ejecute el proceso de resolución de llave y la creación de la transacción.

### Campos de Respuesta

| **Campo**     | **Tipo**   | **Descripción**                                                         | **Formato**                          |
| ------------- | ---------- | ----------------------------------------------------------------------- | ------------------------------------ |
| **meta**      | **object** |                                                                         |                                      |
| requestId     | uuid       | Código generado por la entidad participante para identificar el paquete | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
| timestamp     | datetime   | Fecha y hora de la respuesta a la solicitud de generación del código QR | 2025-12-23T18:16:35.099Z             |
| status        | enum       | Estado de la respuesta. SUCCESS, ERROR                                  | SUCCESS                              |
| statusCode    | string     | Código HTTP de la respuesta                                             | 200                                  |
| statusDesc    | string     | Descripción del código HTTP                                             | OK                                   |
| **data**      | **object** |                                                                         |                                      |
| movementType  | enum       | Tipo de operación a realizar. \[QR, QRVALIDATE, QRPARSER]               | QRPARSER                             |
| Tag number    | object     | Número del tag EMVCO                                                    | 26                                   |
| id            | string     | Número del tag EMVCO                                                    | 26                                   |
| name          | string     | Nombre del campo                                                        | Merchant Account Information         |
| len           | string     | Tamaño del campo                                                        | 32                                   |
| data          | object     | Contenido del tag                                                       | -                                    |
| SubTag Number | object     | Número del subTag EMVCO                                                 | 26                                   |
| id            | string     | Número del subTag EMVCO                                                 | 01                                   |
| name          | string     | Nombre del campo                                                        | Global Unique Identifier             |
| len           | string     | Tamaño del campo                                                        | 14                                   |
| data          | string     | Contenido del tag                                                       | CO.COM.ACH.LLA                       |
| rawdata       | string     | Fragmento del TLV para este TAG                                         | CO.COM.ACH.LLA                       |
| rawdata       | string     | Fragmento del TLV para este TAG                                         | 0014CO.COM.ACH.LLA02103152466845     |
| **error**     | **object** |                                                                         |                                      |
| code          | integer    | Código de error generado (cero si no hay errores)                       | 1005                                 |
| message       | string     | Mensaje de error (vacío si no hay errores)                              | Fallas técnicas                      |

<CodeGroup>
  ```json Response Exitoso theme={null}

  {
    "meta": {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "timestamp": "2026-01-15T00:03:39.558Z",
      "status": "SUCCESS",
      "statusCode": "200",
      "statusDesc": "OK"
    },
    "data": {
      "movementType": "QRPARSER",
      "26": {
        "id": "26",
        "name": "Merchant Account Information",
        "len": 32,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 14,
            "data": "CO.COM.ACH.LLA",
            "rawData": "CO.COM.ACH.LLA"
          },
          "02": {
            "id": "02",
            "name": "Celular",
            "len": 10,
            "data": "3152466845",
            "rawData": "3152466845"
          }
        },
        "rawData": "0014CO.COM.ACH.LLA02103152466845"
      },
      "49": {
        "id": "49",
        "name": "Merchant Account Information",
        "len": 25,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 14,
            "data": "CO.COM.ACH.RED",
            "rawData": "CO.COM.ACH.RED"
          },
          "01": {
            "id": "01",
            "name": "Merchat PAN",
            "len": 3,
            "data": "ACH",
            "rawData": "ACH"
          }
        },
        "rawData": "0014CO.COM.ACH.RED0103ACH"
      },
      "53": {
        "id": "53",
        "name": "Transaction Currency",
        "len": 3,
        "data": "170",
        "rawData": "170"
      },
      "54": {
        "id": "54",
        "name": "Transaction Amount",
        "len": 4,
        "data": "8900",
        "rawData": "8900"
      },
      "58": {
        "id": "58",
        "name": "Country Code",
        "len": 2,
        "data": "CO (Colombia)",
        "rawData": "CO"
      },
      "59": {
        "id": "59",
        "name": "Merchant Name",
        "len": 13,
        "data": "Julián Suarez",
        "rawData": "Julián Suarez"
      },
      "60": {
        "id": "60",
        "name": "Merchant City",
        "len": 6,
        "data": "Bogota",
        "rawData": "Bogota"
      },
      "61": {
        "id": "61",
        "name": "Postal Code",
        "len": 6,
        "data": "114056",
        "rawData": "114056"
      },
      "62": {
        "id": "62",
        "name": "Additional Data Field Template",
        "len": 11,
        "data": "07010080200",
        "rawData": "07010080200"
      },
      "63": {
        "id": "63",
        "name": "CRC",
        "len": 4,
        "data": "2F1E",
        "rawData": "2F1E"
      },
      "80": {
        "id": "80",
        "name": "Unreserved Templates",
        "len": 27,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 16,
            "data": "CO.COM.ACH.CANAL",
            "rawData": "CO.COM.ACH.CANAL"
          },
          "01": {
            "id": "01",
            "len": 3,
            "data": "POS",
            "rawData": "POS"
          }
        },
        "rawData": "0016CO.COM.ACH.CANAL0103POS"
      },
      "81": {
        "id": "81",
        "name": "Unreserved Templates",
        "len": 25,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 15,
            "data": "CO.COM.ACH.CIVA",
            "rawData": "CO.COM.ACH.CIVA"
          },
          "01": {
            "id": "01",
            "len": 2,
            "data": "03",
            "rawData": "03"
          }
        },
        "rawData": "0015CO.COM.ACH.CIVA010203"
      },
      "82": {
        "id": "82",
        "name": "Unreserved Templates",
        "len": 23,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 14,
            "data": "CO.COM.ACH.IVA",
            "rawData": "CO.COM.ACH.IVA"
          },
          "01": {
            "id": "01",
            "len": 1,
            "data": "0",
            "rawData": "0"
          }
        },
        "rawData": "0014CO.COM.ACH.IVA01010"
      },
      "83": {
        "id": "83",
        "name": "Unreserved Templates",
        "len": 24,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 15,
            "data": "CO.COM.ACH.BASE",
            "rawData": "CO.COM.ACH.BASE"
          },
          "01": {
            "id": "01",
            "len": 1,
            "data": "0",
            "rawData": "0"
          }
        },
        "rawData": "0015CO.COM.ACH.BASE01010"
      },
      "84": {
        "id": "84",
        "name": "Unreserved Templates",
        "len": 25,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 15,
            "data": "CO.COM.ACH.CINC",
            "rawData": "CO.COM.ACH.CINC"
          },
          "01": {
            "id": "01",
            "len": 2,
            "data": "03",
            "rawData": "03"
          }
        },
        "rawData": "0015CO.COM.ACH.CINC010203"
      },
      "85": {
        "id": "85",
        "name": "Unreserved Templates",
        "len": 23,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 14,
            "data": "CO.COM.ACH.INC",
            "rawData": "CO.COM.ACH.INC"
          },
          "01": {
            "id": "01",
            "len": 1,
            "data": "0",
            "rawData": "0"
          }
        },
        "rawData": "0014CO.COM.ACH.INC01010"
      },
      "90": {
        "id": "90",
        "name": "Unreserved Templates",
        "len": 43,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 16,
            "data": "CO.COM.ACH.TRXID",
            "rawData": "CO.COM.ACH.TRXID"
          },
          "01": {
            "id": "01",
            "len": 19,
            "data": "62FB70176DC0B870F58",
            "rawData": "62FB70176DC0B870F58"
          }
        },
        "rawData": "0016CO.COM.ACH.TRXID011962FB70176DC0B870F58"
      },
      "91": {
        "id": "91",
        "name": "Unreserved Templates",
        "len": 86,
        "data": {
          "00": {
            "id": "00",
            "name": "Global Unique Identifier",
            "len": 14,
            "data": "CO.COM.ACH.SEC",
            "rawData": "CO.COM.ACH.SEC"
          },
          "01": {
            "id": "01",
            "len": 64,
            "data": "ac77cb8cc46f1e0aee1b8e3212bc9f27bcb8ec16aaf38d2ce42194a92bfc4d12",
            "rawData": "ac77cb8cc46f1e0aee1b8e3212bc9f27bcb8ec16aaf38d2ce42194a92bfc4d12"
          }
        },
        "rawData": "0014CO.COM.ACH.SEC0164ac77cb8cc46f1e0aee1b8e3212bc9f27bcb8ec16aaf38d2ce42194a92bfc4d12"
      },
      "00": {
        "id": "00",
        "name": "Payload Format Indicator",
        "len": 2,
        "data": "01",
        "rawData": "01"
      },
      "01": {
        "id": "01",
        "name": "Point of Initiation Method",
        "len": 2,
        "data": "11",
        "rawData": "11"
      }
    }
  }
  ```

  ```json Response Error 400 theme={null}
  {
    "meta": {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "timestamp": "2026-01-15T00:03:39.558Z",
      "status": "ERROR",
      "statusCode": "400",
      "statusDesc": "Bad Request"
    },
    "error": {
      "code": "1013",
      "message": "El contenido enviado no es válido o está mal cifrado"
    }
  }
  ```

  ```json Response Error 500 theme={null}
  {
    "meta": {
      "requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "timestamp": "2026-01-15T00:03:39.558Z",
      "status": "ERROR",
      "statusCode": "500",
      "statusDesc": "Internal Server Error"
    },
    "error": {
      "code": "1005",
      "message": "Fallas Técnicas"
    }
  }
  ```
</CodeGroup>
