• ¿Qué es una API?

    Una API es para desarrolladores o empresas que desean crear aplicaciones para conectarse con Paxful.


    Las interfaces de programación de aplicaciones (API) son una forma de conectarse con Paxful aún más. Para obtener más información, haz clic aquí.

  • Configurar webhooks

    Los webhooks te permiten recibir notificaciones HTTPS en tiempo real de eventos en el mercado Paxful. Por ejemplo, podemos enviarte una notificación cuando comienza una transacción o cuando tu socio comercial te envía un mensaje en un chat de transacción. Esto evita que tengas que consultar la API por cambios en los objetos que pueden o no haber sucedido y te ayuda a evitar llegar al límite de tu tasa. Esta guía describirá cómo puedes exactamente configurar los webhooks con Paxful.

    Admitimos webhooks para los siguientes eventos:

    • Nueva transacción entrante en Paxful
    • Mensaje recibido en el chat de transacción
    • Archivo adjunto recibido en el chat de transacción
    • Alguien ha visto tu perfil de Paxful
    • Alguien ha visto tu oferta
    • El socio comercial ha pagado por el bitcoin
    • La transacción fue cancelada o ha caducado
    • Bitcoin vendido con éxito
    • Bitcoin comprado
    • Depósito de bitcoin confirmado
    • El depósito de bitcoin entrante está pendiente
    • Comentario recibido de un socio comercial
    • Nuevo comentario de respuesta recibido

    Configurar webhooks

    Nota: Asegúrate de que tu servicio está listo para recibir webhooks. Durante el proceso de guardado de la URL, tu servicio puede adquirir la solicitud de cabecera "X-Paxful-Request-Challenge" y ponerle en la respuesta como tal.

    Así es como debería aparecer nuestra solicitud de cabecera en tu carga (este es un ejemplo de servicio Webhooks en Node.js):

    RequestHeader.png

    1. Inicia sesión en tu cuenta de Paxul, coloca el cursor por encima de tu nombre de usuario en la parte superior derecha de la página y haz clic en Configuración del menú de contexto que aparece.
    ClickSettings.png

    Aparecerá la página de Configuración.

    2. En el menú en el lado izquierdo de la página, haz clic en "Desarrollador.
    Click_Developer.png

    Aparecerá la página del Desarrollador.

    3. En el caso de que no tengas ninguna clave API, escribe el código de autenticación de dos factores y haz clic en Añadir nueva clave API. Si ya tienes una clave API, puedes saltarte este paso.
    AddAPIKey.png

    Tu nueva clave API aparecerá en la página Desarrollador junto con secciones adicionales.

    4. Copia la URL de tu aplicación.
    Ve a la sección Webhooks en la página del Desarrollador de Paxful. Pega el enlace en el campo Solicitar URL y haz clic en Guardar.

    Advertencia: Nuestros Webhooks admiten solo tipos de direcciones HTTPS. Las direccionesHTTP no funcionarán para este propósito.


    ClickSave.png

    Se ha enviado una solicitud de cabecera a tu aplicación.

    Nota: Tenemos un tiempo de espera de 10 segundos. En caso de que no recibamos una respuesta de tu aplicación, la URL no se guardará y no se creará un Webhook.

    5. Si tiene éxito, aparecerá más abajo una lista de eventos disponibles para suscribirte. Marca una casilla para seleccionar un evento de la lista Suscribirte a eventos.
    Events.png

    Nota:

    • Una vez seleccionados, los eventos se guardan de forma automática.
    • En caso de tres intentos fallidos para enviar información de los eventos a tu aplicación, el webhook (URL) se inhabilita.
    • Para insertar un nuevo enlace, sustituye la URL actual por la nueva y haz clic en Cambiar
    • Para desactivar tus webhooks completamente, haz clic en Eliminar.
    • Para reactivar una URL deshabilitada, haz clic en Reintentar.
      ClickRetry.png
       

    En caso de que la URL de la solicitud se guarde con éxito, así es como nuestros eventos aparecerán en tu aplicación:

    WebhookexampleEvent.png

    Solicitudes de verificación en Paxful

    Paxful crea una cadena única para tu aplicación y la comparte contigo. Verifica las solicitudes de Paxful con confianza verificando las firmas usando tu clave privada de firma.

    En cada solicitud HTTPS enviada, añadimos una "X-firma Paxful" HTTPS de cabecera. La firma se crea combinando la clave privada de la firma con el cuerpo de la solicitud que estamos enviando usando un hash clave estándar HMAC-SHA256.

    Nota: La firma resultante es única para cada solicitud y no contiene directamente ninguna información secreta. Eso mantiene tu aplicación segura, evitando que los estafadores causen daño.

    Ejemplo en JavaScript

    
    const crypto = se requiere('crypto');
    const express = se requiere('express');
    const app = express();
    const port = 3000;
    const bodyParser = se requiere('body-parser');

    Tu clave privada API de la página https://paxful.com/account/developer:

    
    const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p';
    
    app.use(bodyParser.json());

    Cuando recibas una solicitud de verificación de dirección de servicio, debes tomar el encabezado "X-Paxful-Request-Challenge" de la solicitud y luego ponerlo en la respuesta.

    
    app.use((req, res, next) => {
    

    La solicitud de verificación de dirección no contiene la carga útil y la firma de la solicitud.

    
      if (!Object.keys(req.body).length && !req.get('X-Paxful-Signature')) {
            console.log('Solicitud de verificación de dirección recibida.');
            const challengeHeader = 'X-Paxful-Request-Challenge';
            res.set(challengeHeader, req.get(challengeHeader));
            res.end();
        } else {
            next();
        }
    });

    Cuando recibas notificaciones de evento, debes verificar el encabezamiento "X-Paxful-Signature". Si la solicitud contiene una firma errónea, no la proceses.

    
      app.use((req, res, next) => {
        const providedSignature = req.get('X-Paxful-Signature');
        const calculatedSignature = crypto.createHmac('sha256', apiSecret).update(JSON.stringify(req.body)).digest('hex');
        if (providedSignature !== Firma calculada) {
            console.log('Error de solicitud de verificación de firma.');
            res.status(403).end();
        } else {
            next();
        }
    });

    Ahora puedes procesar un evento.

    
      app.post('*', async (req, res) => {
        console.log('Nuevo evento recibido:');
        console.log(req.body);
        res.end();
    });
    
    app.listen(port, () => console.log(`Ejemplo app escuchando http://localhost:${port}`));

    Comunícate con nuestro Soporte en caso de tener más preguntas. También puedes saber más sobre nuestros servicios API en nuestra documentación del desarrollador.