Cuando el operador del banco originador crea un Claim, se genera una acción con tipo CLAIM a través del API. Esta acción contendrá los detalles del motivo por el cual fue creada dentro del objeto labels.reason.

Por ejemplo, si la transferencia tuvo un crédito doble o un valor incorrecto, el motivo específico será incluido en esa propiedad del label, lo que permite a los bancos destino validar y responder adecuadamente a la solicitud de devolución.

{
  "action_id": "0bac12c0-53a4-4dd8-b284-41af1a8311ed",
  "amount": "150000.00",
  "source": "<target-bank-signer>",
  "target": "<source-bank-signer>",
  "symbol": "$tin",
  "tx_ref": "<transferId>",
  "labels": {
    "type": "CLAIM",
    "reason": {
      "code": "<claim-code>",
      "description": "<claim-description>"
    **}**,
    "rejectDescription": "<reject-claim-reason>",
    ****"status": "<reject-claim-status>",
    "domain": "tin",
    "hash": "<hash>",
    "created": "<created-date>",
    "updated": "<updated-date>"
  },
  "snapshot": {
    "source": {
      "wallet": { ... },
      "signer": { ... }
    },
    "target": {
      "wallet": { ... },
      "signer": { ... }
    },
    "symbol": {
      "wallet": { ... },
      "signer": { ... }
    }
  },
  "error": {
    "code": <error code>,
    "message": "<error message>"
  }
}

Aceptación y rechazo de Claims

Aceptación

Una vez que el operador del banco destinatario acepta la acción de tipo CLAIM, el Dashboard invoca el endpoint:

POST /v1/action//accept

La API enviará la acción de tipo CLAIM al endpoint /transfer del banco destinatario para ser firmada. Según la respuesta del banco, pueden ocurrir dos casos:

Proceso exitoso de firma:

  • El estado de la transferencia cambiará de COMPLETED a REJECTED.
  • El estado de la acción cambiará a COMPLETED.
  • El objeto labels.reason de la acción se guardará dentro del objeto de error de la transferencia.
  • Se invocarán los endpoints /status tanto del banco originador como del banco destinatario.

Proceso fallido de firma:

  • El error se guardará dentro del objeto de error de la acción CLAIM.
  • El estado de la transferencia se mantendrá en COMPLETED.
  • El estado de la acción cambiará a ERROR.

Rechazo

Si el operador del banco destinatario rechaza la acción CLAIM, la entidad financiera debe especificar el motivo del rechazo. Este será guardado en labels.rejectDescription.

En este caso:

  • El estado de la transferencia permanece en COMPLETED.
  • La acción CLAIM cambia su estado a REJECTED.
  • El endpoint /status no es invocado.
  • El objeto de error tendrá la siguiente estructura:
{
  "error": {
    "code": 0,
    "message": "Success"
  }
}

Finalmente, el Dashboard llamará al endpoint: POST /v1/action/ para actualizar los campos labels.status y labels.rejectDescription.