Saltar al contenido principal
En esta página

Genera tu clave privada para operar con CoDi a través de STP.

1. Revisa tus credenciales#

En la sección de Administrador, busca STP CoDi en la opción de Conexiones y añade las siguientes credenciales:

  • Nombre: Nombre de la conexión
  • Moneda: Para CoDi, solo MXN está disponible
  • Empresa: Nombre de la empresa registrada con STP
  • Cuenta de beneficiario: Número de cuenta STP
  • Nombre del beneficiario: Nombre del beneficiario registrado con STP
  • Clave Privada: Clave privada que debe ser generada. Puedes encontrar más detalles en la sección "Generar Clave Privada".
  • Tiempo de expiración: Tiempo de expiración en minutos.

2. Genera tu clave privada#

Crea la clave privada en formato JKS ejecutando el siguiente comando: Ejecutar el siguiente comando:

Shell
keytool -genkey -alias NombreDeLaEmpresa -keyalg RSA -keystore llavePrivada.jks -keysize 2048 -deststoretype jks -validity 370

3. Formatea la clave privada#

Utiliza los siguientes comandos si necesitas la clave privada en otros formatos.

JKS a P12

Shell
keytool -importkeystore -srckeystore llavePrivada.jks -destkeystore llavePrivada.p12 -srcstoretype jks -deststoretype pkcs12 -validity 370

​

P12 a PEM

Shell
openssl pkcs12 -in llavePrivada.p12 -out llavePrivada.pem

​### De P12 a PEM (para uso en JavaScript)

Shell
openssl pkcs12 -in llavePrivada.p12 -out llavePrivada.pem -nodes

Clave privada .cer#

Genera la clave privada en cer.

Utiliza los siguientes endpoints de CoDi:

Punto finalMétodoDescripción
/paymentPOSTCrear un pago y generar código QR
/payment/{id}GETObtener el estado del pago
/refundPOSTSolicitar reembolso
/webhookPOSTRecibir notificaciones del estado del pago

Compra V2

Realizar la llamada a la V2 Endpoint de compra para generar y realizar en DEUNA.

  • Punto final: post {{apigw-url}}/v2/merchants/orders/purchase
  • Encabezados:
    • Authorization: Bearer {{user-token}}
    • x-api-key: {{merchant-private-key}}
JSON
{
		"order_token":"{{order-token}}",
    "order_type": "DEUNA_CHECKOUT",
    "payer_info": {
        "email": "email1@email.com"
    },
    "payment_source": {
        "method_type": "bank_transfer",
        "processor": "stp_codi",
        "payment_method": "{{phone_number || empty}}", // Account number associated to STP account or empty to generate QR code
        "method_type_specific_fields": {
	          "description": "Test payment"
        }
    }
}

Respuesta

JSON
{
    "order_type": "DEUNA_NOW",
    "order_token": "4598f493-de86-4fe0-b9fd-c4c6c9847e39",
    "order": {
        "order_id": "DEUNA_NOW_b6a5c0b6-3df9-4b3b-b778-7086c190062b",
        "store_code": "all",
        "currency": "MXN",
        "tax_amount": 10000,
        "display_tax_amount": "",
        "shipping_amount": 10000,
        "display_shipping_amount": "MXN 100,00",
        "items_total_amount": 10000,
        "display_items_total_amount": "MXN 100,00",
        "sub_total": 10000,
        "display_sub_total": "MXN 100,00",
        "total_amount": 10000,
        "display_total_amount": "MXN 100,00",
        "status": "pending",
        "payment": {
            "data": {
                "amount": {
                    "amount": 10000,
                    "currency": "MXN"
                },
                "metadata": {
                    "key1": "value1",
                    "key2": "value2"
                },
                "updated_at": "2024-12-05 18:28:14.726950103 +0000 UTC",
                "method_type": "bank_transfer",
                "merchant": {
                    "store_code": "all",
                    "id": "e25c4fff-ef50-498b-9a3c-5937d96280f7"
                },
                "created_at": "2024-12-05 18:28:14.725709716 +0000 UTC",
                "id": "DEUNA_NOW_b6a5c0b6-3df9-4b3b-b778-7086c190062b",
                "processor": "stp_codi",
                "payment_method_type": "push_notification",
                "customer": {
                    "email": "email@email.com",
                    "id": "ac434d25-1f42-44b5-883f-fa1b2a08eec6",
                    "first_name": "",
                    "last_name": ""
                },
                "status": "pending",
                "next_action": {
                    "action": "authorization_bank_transfer",
                    "authorization_bank_transfer": {
                        "reference": "{{folioCodi}}",
                        "expiration_date": "2025-05-05 14:20:50",
                        "qr": ""
                    }
                },
                "reason": "",
                "external_transaction_id": "{{folioCodi}}",
                "merchant_payment_processor_name": "",
                "authorization_code": "",
                "installment_interest_calculations": null
            }
        },
        ...
    }
}

Estado del pago

Estado de CoDIEstado de DEUNADescripción
pendingpendingPago pendiente de confirmación
completedprocessedPago completado
faileddeniedPago fallido
expiredexpiredCódigo QR expirado sin pago