Recent Changes - Search:

APIS

Api /

Registrar

POST /api.stamping.io/stamp

Permite crear una marca de tiempo para un SHA-256 (resumen hexadecimal hash) que sirve como evidencia digital de la existencia de un documento o una secuencia de datos.

Tenga en cuenta que las solicitudes POST deben incluir el campo "Content-Type: application/json" en el encabezado.

$ curl -X POST -u client_id:secret -H 'Content-Type:application/json' -d '{"evidence": "fa814e37ad092518b0b22ed1f21c8bac4daed663433abba01e369399522279e6"}'

  https://api.stamping.io/stamp

La respuesta es un objeto codificado JSON que contiene el ID de la transacción (TxtID).

Datos POST

Los datos que pueden enviarse son:

  • evidence: (Obligatorio) Huella criptográfica que utiliza el algoritmo de hash de tipo SHA256, este valor se envía a anclar en el blockchain de Bitcoin, Ethereum y stamping.io.
  • to (opcional) ID del usuario propietario de la transacción, en caso de ser NULL se usa el user ID del propietario del TOKEN o puede usar su email.
  • subject (opcional) Detalle de la transacción, permite identificar el contenido que se ha registrado.
  • transactionType Texto libre que le permite identificar al sistema que genera la transacción.
  • data (opcional) Datos relacionados a la transacción, puede usar texto libre, texto en formato JSON o XML
  • reference (opcional) Código de la llave natural que identifica el evento, transacción o documento.
  • timestamp (opcional) Fecha y hora en que se realiza la transacción, esta fecha es enviada por el usuario desde el dispositivo cliente, con la finalidad de indicar la fecha en que se generó la transacción.
  • hash2 (opcional) Huella criptográfica que utiliza el algoritmo de hash de tipo SHA256, este valor se envía solo como referencia y no se ancla en ningún blockchain, solo es almacenada en la base de datos de stamping.io.
  • hash3 (opcional) Huella criptográfica que utiliza el algoritmo de hash de tipo SHA256, este valor se envía solo como referencia y no se ancla en ningún blockchain, solo es almacenada en la base de datos de stamping.io.

Calcular el valor de la evidencia para un documento

Para estampar la existencia de un documento en la Blockchain se debe calcular el hash de tipo SHA256 del documento que se desea estampar, tal como se muestra en la siguiente formula:

   evidencia = SHA256(Base64("http://stamping.io/docs/doctest.pdf"))  

Ese valor es el que deberá enviarse como evidencia a stamping.io, recuerde que únicamente ese documento es quien genera ese valor HASH, por lo que cualquier cambio por mínimo que sea en el documento original, daría como resultado un valor de evidencia completamente distinto al original.

Ejemplo en PHP usando API REST

<?php header('Access-Control-Allow-Origin: *');

        $ch = curl_init();
        $evidence="cab514ec63e84beb86c89162dd0cd5c622867a30eb965d8341d2602598ca5a53";
        $data = array('evidence' => $evidence); //Puede agregar más atributos descritos en la tabla superior (Datos POST).

        curl_setopt($ch, CURLOPT_URL, "https://api.stamping.io/stamp/?evidence=".$evidence);
        curl_setopt($ch, CURLOPT_POST, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);

        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          "Content-Type: application/json",
          "Authorization: Basic MTUzNzc2MDg2Nzk1NjpRaEJCdEZUb2NnYVMwZXNpMWZRNlo4ZTJzTkU=" //Aquí va tu token (Ver autenticación para aprender a generar su token de acceso)
        ));

        $response = curl_exec($ch);
        curl_close($ch);
        echo ($response);

?>

Ejemplo usando URL - GET

 http://api.stamping.io/set/?evidence=<VALOR-HASH-TIPO_SHA256>&token=MTUzNzc2MDg2Nzk1NjpRaEJCdEZUb2NnYVMwZXNpMWZRNlo4ZTJzTkU=

Si la evidencia es correcta obtendrá una respuesta en formato JSON similar a:

{

 'code':'200',
 'message':'ok', 
 'trxid':'76b185b940a1efb6a93c54be17383700e3ac15d2', 
 'url':'http://www.stamping.io/i/?76b185b940a1efb6a93c54be17383700e3ac15d2&lang=en'

}

Tenga en cuenta que si envía una evidencia que ya se encuentra registrada le retorna el error 409 CONFLICT.

Los datos que puede enviar como parámetros del URL son:

  • evidence: (Obligatorio) Hash de tipo SHA 256 de la evidencia digital que desea estampar en la Blockchain.
  • token: (Obligatorio) Token de acceso para uso de APIS que se genera desde su DATA WALLET de http://www.stamping.io/login.
  • to: (opcional) Dirección del datawallet del usuario destinatario, tambien puede ingresar un email, en caso que el usuario no este registrado en stamping.io, le enviaremos un email para que pueda crear su cuenta.
  • subject: (opcional) Asunto de la evidencia, una breve descripción.
  • data: (opcional) Datos libres con cualquier contenido que desee formar puede ser xml, json o su propio protocolo.
  • reference: (opcional) Algún código de sus sistemas que desee asociar a este registro
  • transactionType: (opcional) Tipo de evidencia que desea registrar.
  • hash2: (opcional) Si necesita un hash asociado a la evidencia.
  • hash3: (opcional) Si necesita otro hash asociada a la evidencia

Ejemplo usando PHP LIB

Para empezar a trabajar con stamping.io usando nuestras librerías php, debe seguir los siguientes pasos:

Código de ejemplo:

<?php

    include 'stampclass.php';

    $data = new stampData;
    $data->evidence="281b6657c64072aa811cf79d80ab05ba26d7c6f930e62235b60f77f450e54893";
    $data->reference="CodeReference";
    $data->subject="A test transaction From GitLab";
    $data->transactionType="Stamping.io|FromGitLab";

    $stamp = new stamp; 
    $stamp->token="MTUzNzc2MDg2Nzk1NjpRaEJCdEZUb2NnYVMwZXNpMWZRNlo4ZTJzTkU="; // Enter your token, you can generate a token from http://www.stamping.io/login
    $result = $stamp->setStamp($data); // is a object of stampResult

?>

Resultado

Cuando se ejecuta el método setStamp(), el retorno es un objeto de la clase stampResult, el cual contiene los siguientes atributos:

  • result->code Contiene el código de error (200, 201 ó 202, Indican que la evidencia ha sido endosada satisfactoriamente en la Blockchain).
  • $result->message Contiene el mensaje de error.

Si la transacción es satisfactoria, ademas retorna estos valores:

  • $result->trxid Identificador de la transacción de estampado en la Blockchain.
  • $result->url URL Pública para validar el estado del estampado en la Blockchain.

Errores comunes

CODE: 409

Message: Process: set-A02 Error: 409 id: 22 - The requested URL returned error: 409 CONFLICT Significado: La evidencia ya se encuentra registrada y esta haciendo conflicto en la Blockchain.

Programando con PHP - Usando API REST

Si desea hacer sin nuestras librerías sino usando nuestra API REST puede hacerlo de la siguiente forma:

<?php

        $ch = curl_init();
        $evidence="cab514ec63e84beb86c89162dd0cd5c622867a30eb965d8341d2602598ca5a53";
        $data = array('evidence' => $evidence);

        curl_setopt($ch, CURLOPT_URL, "https://api.stamping.io/stamp/?evidence=".$evidence);
        curl_setopt($ch, CURLOPT_POST, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);

        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          "Content-Type: application/json",
          "Authorization: Basic MTUzNzc2MDg2Nzk1NjpRaEJCdEZUb2NnYVMwZXNpMWZRNlo4ZTJzTkU="
        ));

        $response = curl_exec($ch);
        curl_close($ch);
        echo ($response);

?>

Resultado

Devuelve un string en formato JSON contiene los siguientes datos

{

 "code":"<código de error>", 
 "message":"<Mensaje de error>", 
 "trxid":"<Dirección de ubicación en la Blockchain (Buscar en http://www.stamping.io/q/?<trxid>&lang=en)>",
 "timestamp":Fecha y Hora en formato UNIX

}

Ejemplo: {"code":"200", "message":"ok", "trxid":"ea5cc0e144326b2ec92877fd6ffa089ddc317208","timestamp":1542261154000}

Edit - History - Print - Recent Changes - Search
Page last modified on November 15, 2018, at 05:04 PM