Para cualquier consulta estamos a un clic

Hacer una pregunta

Descripción general

Puede utilizar nuestro API de vendedor para crear el escenario de pago que necesite. Por ejemplo, puede crear su propia página de pago completamente configurada y conectarla a nuestra pasarela de pago.

Puede descargar la colección de solicitudes API para Postman para probar las funcionalidades básicas del API. Asegúrese de enviar las solicitudes como POST con atributos en el cuerpo de la solicitud.

Descargar colección Postman

Obligatoriedad de parámetros

La obligatoriedad de presencia del parámetro en la solicitud/respuesta puede tomar los siguientes valores:

La obligatoriedad de transmisión del parámetro en la descripción de solicitud/respuesta se indica en la columna del mismo nombre "Obligatoriedad".

Autenticación

Para la autenticación del comerciante en la pasarela de pagos se pueden utilizar dos métodos.

Obligatoriedad Nombre Tipo Descripción
Condición

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condición

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Obligatoriedad Nombre Tipo Descripción
Condición

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.

URL para llamadas API

TEST: https://dev.bpcbt.com/payment/rest/
PROD: https://dev.bpcbt.com/payment/rest/

Errores

Códigos de estado HTTP:

Si la solicitud relacionada con el pago del pedido se procesó exitosamente, esto aún no significa que el pago mismo fue exitoso.

Para determinar si el pago fue exitoso o no, puede referirse a la descripción de la solicitud utilizada. También para determinar el estado del pago siempre se puede usar el algoritmo descrito a continuación

  1. Hacer una llamada getOrderStatusExtended.do;
  2. Verificar el campo orderStatus en la respuesta: el pedido se considera pagado solo si el valor orderStatus es igual a 1 o 2.

Firma de solicitud API

En algunos casos para garantizar el intercambio seguro de datos puede ser necesario implementar una firma asimétrica de solicitud. Generalmente este requisito se aplica solo si está ejecutando solicitudes P2P/AFT/OCT.

Para tener la posibilidad de firmar solicitudes, necesita ejecutar los siguientes pasos:

  1. Cree y cargue un certificado.
  2. Calcule hash y firma, usando su clave privada, y transmita el hash generado (X-Hash) y valor de firma (X-Signature) en el encabezado de la solicitud.

Estos pasos están descritos detalladamente abajo.

Creación y carga de certificado

  1. Cree una clave privada RSA de 2048 bits. El método de generación depende de la política de confidencialidad en su empresa. Por ejemplo, puede hacer esto con ayuda de OpenSSL:

    openssl genrsa -des3 -out private.key 2048

  2. Cree un CSR público (solicitud de firma de certificado), usando la clave privada generada:

    openssl req -key private.key -new -out public.csr

  3. Cree un certificado, usando la clave privada generada y CSR. Ejemplo de formación de certificado por 5 años:

    openssl x509 -signkey private.key -in public.csr -req -days 1825 -out public.cer

  4. Cargue el certificado generado en el Gabinete Personal. Para esto vaya a Certificados de billeteras > Merchant API, presione Agregar certificado y cargue el certificado público generado.
    JCC installments final page

Cálculo de hash y firma

  1. Calcule el hash SHA256 del cuerpo de la solicitud de la siguiente manera:

    1. Use el cuerpo de la solicitud en forma de cadena (en nuestro ejemplo esto es amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api).
    2. Calcule el hash SHA256 de esta cadena en bytes sin procesar.
    3. Convierta los bytes sin procesar a codificación base64.
  2. Genere una firma para el hash SHA256 calculado con ayuda del algoritmo RSA, usando la clave privada.

En nuestro ejemplo usamos la siguiente clave privada con contraseña 12345:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C502560EDE8F82B7
O4+bY1Q1ZcXFLDGVE8s9G2iVISHR/c/IMZKZEjkBED/TbuOCUGVjcav2ZaZO2dO0 lm771N6JNB01uhJbTHScVQ6R0UnGezHFTcsJlAlBa9RQyOwujs4Pk6riOGnLliIs urnTXD0oskBR1wLRA2kp8+V0UPOAMXQaoLxFGE/o8taDGSrkyIcYTBoh9o7ZBxvO SqUWAt2vPbGVyc6XspyuVtgHgEctaJO+E26QTweqdpN5JITF+fDFPNwUrFHoho4N pxpKRWbiCJSpbvbsvhdizkmfgvRw+qYJvTirF3JTfGr14DttudFwjm7sNrr0JILR XPKDUhRyWjkthZM+oDjF2HwISAGkbxcpn4PU7Tywq0uax+5KCQQn2uz4jLM2P6+9 000cvVLwhMnoUdOxuISRXeOcOWVyTO1mPfKiWnHaoO4yS3Y36OCIOe9RHGP8TTmq acb3LUIF30eQyk3KxH/tUB0ScPDKEKMiww13/Kcfr0JkdIe/BWCvV+hSQm38TLQe bTFy+wnD9kHACCwTSVVSOO+rHgJGVIyLgnpClZKWQyyJ4clH7/cORA7mTmp85Ckx IjV5Egu0bPPUMudOB5BnQ4u85RnqXavasgrLRA3JZM4+Jzl8MNy/fsFXnVBQLJJC Wlz/B7S7W8sabRogFuiqkkPmXE/QcpdKQoY3yh748QqMSl8vkA6WgndyYv1EnDDl jA5j7vSf0wKI8BHgdHBEWuEjn3X/s0S/BiPPI6puboYY90tYVJTWSQCR83QrMF3N BIcMu4+RIYu6GWnPx9npZpt0858c670ZII56np24iMse3qgHCOZxsGOenK2x7ta6 163gvaD8bu8xoeQcGVfd6IMbXWVb0+z1hvWR5HWHSalof4lMzZrDsQDKc2UA0ygh hA1+VAl1MAEHVLNCCmyG1SwRwg1PI7FfftW7YARngCZRWkJ1haj1fgy7rtYolrdv lEz/vjFD6diABx67omGgfiJhWdiKIlzsYlX1SW7yaik/Uxf1j8gTFwY34y8ekVd9 6pQTzV2V/4a48ELZl4LvelLWyt1AB3AR+/fM7YG6LYIqlo+qnLtro7Bqu8RNTNRP wcWCd04r/20ulFWMIH8pVa60C98pSdOXriWEI1KDLc0E/fCdhjW2kL+FTPLC7ORe cuzmfI27+06P/BvLZq/FAVBrDAmkioKwe6XYzTjpK1p5jZ3IrNwjAiasY1MNxCRy 5ufhQwkW//d+VUdU5m8Sm30/kXe9UkxMaetXgzPxbB7+5QFFr0bi7D1MjIrJNtTx 5g5E+UfOhqrp8ztBht9csQeFYSYabyyGX4Lh7ymVWrKCVdHlJib3M36nvOjpV/lA zf35sxFz9kaQqNK7xJdQ9Bx6TBUzLjpYhNry37vKk+SIB6Weo+LJ99mALMeX79CB osRqZqX5yrZhaQ8bbpo981nvLy5xFnpRqCuSWVZrVMBq3LQLaOvaCeyGC0V+ZN0C CU6lHlR6XQqd/IjoEN8+8aiVp6Ubw8FuD28TDaEvCltrX3ARL0xFpABsa42LgV1F 09Vi+ju7SSNDvbezN8q0EILq9xp/zNCVhMpyRCIXBq9fzHkyCZ5qMw==
-----END RSA PRIVATE KEY-----

Obtenemos la firma: pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ== 3. Ahora debe pasar el hash generado (X-Hash) y el valor de la firma (X-Signature) en el encabezado de la solicitud. La solicitud se verá así:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --header 'X-Hash: eYkMUF+xaYJhsETTIGsctl6DBNZha1ITN8muCcWQtZk=' \
  --header 'X-Signature: pJ/gM4PR1/mKGuIxMvTl5pYDDjJslb0BcXFnIxijFn5qKdPd7W+2ueoctziU7omnkYp01/BlracukH1GOPWMSO+9zKuTDdFueFm1utsS0zaPFU+dmc1niGDRWE0CbCXcti/rGSTDPsnR58mwqgVkbCWxKyCDtuo5LxiKPK9mzgWTUuJ8LX6f6u42MURi5tRG6a9dc8l/+J94g0YOk911R6Lqv2jcluEvZ9ZeMMt8hyxowb0eDaCHlussu2CAyqpE9V+EUAc81Jkwv96MMSsA6UnFwEaCV/k+kwYd0jHCx94m2yWX734p9cWsBW7Fr5F0zox9Yck4GOjqe9nJMMB9jQ==' \
  --data 'amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api'

La solicitud debe cumplir con los siguientes requisitos:

Ejemplo de código Java

A continuación se muestra un ejemplo de código Java que carga la clave privada, calcula el hash SHA256, lo firma con la clave privada con contraseña 12345, y luego envía la solicitud register.do correcta:

import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.PrivateKey;
import java.security.Signature;
import java.util.Base64;

import static java.net.HttpURLConnection.HTTP_OK;

public class SimpleSignatureExample {

    // Este ejemplo no está listo para producción. Solo muestra cómo usar firmas en API.
    public static void main(String[] args) throws Exception {
        // cargar clave privada desde jks
        KeyStore ks = KeyStore.getInstance("JKS");
        char[] pwd = "123456".toCharArray();
        ks.load(Files.newInputStream(Paths.get("/path/to/certificates.jks")), pwd);
        PrivateKey privateKey = (PrivateKey) ks.getKey("111111", pwd);

        // Firmar
        String httpBody = "amount=10000&password=gcjgcW1&returnUrl=http&userName=signature-api";

        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initSign(privateKey);

        byte[] sha256 = digest.digest(httpBody.getBytes());
        signature.update(sha256);
        byte[] sign = signature.sign();

        // Enviar
        Base64.Encoder encoder = Base64.getEncoder();
        HttpsURLConnection connection = (HttpsURLConnection) new URL("https://<YOUR_DOMAIN>/payment/rest/register.do").openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.addRequestProperty("content-type", "application/x-www-form-urlencoded");
        connection.addRequestProperty("X-Hash", encoder.encodeToString(sha256));
        connection.addRequestProperty("X-Signature", encoder.encodeToString(sign));
        connection.addRequestProperty("Content-Length", String.valueOf(httpBody.getBytes().length));
        try (final DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
            outputStream.write(httpBody.getBytes());
            outputStream.flush();
        }
        connection.connect();

        InputStream inputStream = connection.getResponseCode() == HTTP_OK ? connection.getInputStream() : connection.getErrorStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}

Ejemplo de código Python

A continuación se muestra un ejemplo de código Python que genera la firma:

import OpenSSL
from OpenSSL import crypto
import base64
from hashlib import sha256
key_file = open("./priv.pem", "r")
key = key_file.read()
key_file.close()

if key.startswith('-----BEGIN '):
    pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, key)
else:
    pkey = crypto.load_pkcs12(key, password).get_privatekey()

data = "amount=2000&currency=978&userName=test_user&password=test_user_password&returnUrl=https%3A%2F%2Fmybestmerchantreturnurl.com&description=my_first_order&language=en"

sha256_hash = sha256(data.encode()).digest()
base64_hash = base64.b64encode(sha256_hash)
print(base64_hash)

sign = OpenSSL.crypto.sign(pkey, sha256_hash, "sha256")

signed_base64 = base64.b64encode(sign)
print(signed_base64)

El archivo de clave privada para el ejemplo de Python debe tener el formato:

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDdpOwhY/p9x0WmBd3HaDfCD+KYung3M8Cxrw0ozF+h//GltRdnkJD7ejsBDB6/YeIVXZeU3AyqWvsi/IfeHwnokGxVg2IMw8OPacY6o1x7W0EQtfRoZa2Cn2PMCpZhEHlIVraXZDDeg4HY26YP0FZxRbpNnpXhGbiop+Bq0wHeE3JIk53cRmwYhxdxMmvFpgNd6C3dYhmnQqLv6WSpVNDFbQxBVU+JDNyR9FQwB1dU2MadgYwFJnEssbhUkM+sXAC4Wv3qhcZek6MWeWsbFIIlyTPa1T3yrWSXIb4qFJEro4pRMmwQ72qG02p8EPx1tlveQo22TojV9WbTPtaVwQtxAgMBAAECggEBANheTGkYOYsZwgMdzPAB7BSU/0bLGdoBuoV6dqUyRdVWjqaOTwe519625uzR0R5RRqxGzlfyLKcM5Aa2cUhEEp8mhatA87G0Va8lue66VOjTH4RZq/tR7v0J7hlc6Ipe05brl5nYo+BEjriNS+I6Jnizcfid7IBvZJW4NFr0G+mWTxl2BhUK/Mk895n8hg9QtgSRoMNO4jK2f0vJrH4hBHehTYpjHx+QhbUyIvsp60bEnNOXzl054TuWBVCYAQHcHTTZowWMY0s1Z0kGNxwsqQm4amW/v+1EqCF4fjRDrU6v/kjDKxGFx9GJUktKZAe2T8e2LySjgGpJO5g4AdxIVpUCgYEA8x9te+i2ijxoS3kIUSwXaPq5EdKGWGl5mW8KZHzmt9LB/CqTKvSOiDkMGoAx/76t5QmKOYojP+Vsc2XdfQfhT6d00MGTdiPBd+8//MmQQ07/D1/PV58Jd1O8bQFU4fZCMpQl/8Azp9ix/NEx0sHDv2KigLfFMBVGeJxwSoU2JzMCgYEA6WJC0BDTA9vx+i+p9i/41f7ozpQuYey5sxdZa2emOSYen6ptxUFLAYXMxVDaBJ89PMUa8GzWoXHhgXzbuRJk74IzUhWgPpneS4HTr5KDStJh2TqWWVLwEIgLwxvtuw0i9uSEU64D/Czzm801lrOhVgmZsWwNpFtP8ujz0v84MssCgYEA1P4YhbB3kx2e5VfwgGSXUcIttr5wMi6deF0+hpCh9DNw/QEzkzNTV2ZbAzCCHSKo5/n2nbg2b3kIDQUWCL6JlqYHAghErwBeMztoHIddmoovjAGM/Z93xJGYhwremWOL1RHTRH7XAlomfG2tL43PdvDrmsbkut44sdujyLVxnt8CgYBirK3tBMADKLJVgmOM+FlwORe7iAFYW9tj8iJXe/pWvVxDS66fsOyCl0ytvHKBc8ZTdE7gilPw7JJYyi6oQDO25EjIkuYusaXALQMQf5TNRMgkLVY2LA/eHXdDpgJMjNBUrOeZ7cA3ldXl8MyQjCBRnTuDPVlDPWw/GulEM65SIwKBgQDIEv8XK2YBkZrr+0fZSFTQAeK4R7Ve3z4hbpHhJi41YanCNaEWoeYAuQd6/b/QLwABllvfJBDYCNnF8heUxqISpyWd+FZ8nhZtxBoKj5l80czTcutIz/M+ETcvl8FqnMBsoCdp1wodqaLkOx6DIldgKLze6AqKXl5lHUsU4mvVqg==
-----END PRIVATE KEY-----

Registro de pedido

Registro de pedido

Comience a trabajar con API Sandbox creando una cuenta o iniciando sesión en el sistema.

 

Para el registro de pedido se utiliza la solicitud https://dev.bpcbt.com/payment/rest/register.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Condición

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condición

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Condición

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
No obligatorio

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
No obligatorio

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
No obligatorio

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
No obligatorio

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
No obligatorio

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
No obligatorio

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
No obligatorio

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
No obligatorio

merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.
No obligatorio

cardholderName String [1..150] Nombre del titular de la tarjeta en letras latinas. Al transmitir este parámetro, el nombre del titular de la tarjeta se mostrará en la página de pago.
No obligatorio

jsonParams Object Conjunto de atributos adicionales de forma arbitraria, estructura:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Pueden ser transmitidos al Centro de Procesamiento, para el procesamiento posterior (se requiere configuración adicional - póngase en contacto con el soporte).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade a la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Volver a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Se requiere para crear vinculación de cuotas
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar cuotas
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • paymentWay - método de pago. Para realizar forzosamente un pago MOTO es necesario transmitir el valor CARD_MOTO.
No obligatorio

sessionTimeoutSecs Integer [1..9] Duración de vida del pedido en segundos. En caso de que el parámetro no esté especificado, se utilizará el valor indicado en la configuración del comerciante, o el tiempo por defecto (1200 segundos = 20 minutos). Si en la solicitud está presente el parámetro expirationDate, entonces el valor del parámetro sessionTimeoutSecs no se tiene en cuenta.
No obligatorio

expirationDate String [19] Fecha y hora de vencimiento del pedido. Formato: yyyy-MM-ddTHH:mm:ss.
Si este parámetro no se transmite en la solicitud, entonces para determinar el tiempo de vencimiento del pedido se utiliza el parámetro sessionTimeoutSecs.
No obligatorio

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
No obligatorio

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
No obligatorio

postAddress String [1..255] Dirección de entrega.
No obligatorio

orderBundle Object Objeto que contiene la cesta de productos. La descripción de los elementos anidados se proporciona a continuación.
No obligatorio

feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el comerciante, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
La dirección de correo electrónico no se verifica durante el registro, será verificada más tarde durante el pago.
No obligatorio

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
No obligatorio

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
No obligatorio paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar activada una configuración especial (contacte con el soporte técnico). Ver parámetros anidados.
No obligatorio billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está activada para el vendedor en el lado de la Pasarela de Pagos. Ver parámetros anidados.
No obligatorio shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
No obligatorio preOrderPayerData Object Objeto que contiene datos del pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
No obligatorio orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
No obligatorio

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Descripción de parámetros en el objeto orderBundle:

Obligatoriedad Nombre Tipo Descripción
Opcional

orderCreationDate String [19] Fecha de creación del pedido en formato YYYY-MM-DDTHH:MM:SS.
Opcional

customerDetails Object Bloque que contiene los atributos del cliente. La descripción de los atributos de la etiqueta se proporciona a continuación.
Obligatorio

cartItems Object Objeto que contiene atributos de productos en el carrito. La descripción de elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto customerDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

contact String [0..40] Método de contacto preferido por el cliente.
Opcional fullName String [1..100] Nombres y apellidos del pagador.
Opcional

passport String [1..100] Serie y número del pasaporte del pagador en el siguiente formato: 2222888888
Opcional

deliveryInfo Object Objeto que contiene los atributos de la dirección de entrega. La descripción de los elementos anidados se proporciona a continuación.

Descripción de los parámetros en el objeto deliveryInfo:

Obligatoriedad Nombre Tipo Descripción
Opcional

deliveryType String [1..20] Método de entrega.
Obligatorio

country String [2] Código de país de dos letras para la entrega.
Obligatorio

city String [0..40] Ciudad de destino.
Obligatorio

postAddress String [1..255] Dirección de entrega.

Descripción de parámetros en el objeto cartItems:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto items:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
Obligatorio

name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
No obligatorio

itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
Obligatorio

quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
No obligatorio

itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
No obligatorio

itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
No obligatorio

depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
No obligatorio

itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
Obligatorio

itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

Descripción de los parámetros en el objeto quantity:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
Obligatorio

measure String [1..20] Unidad de medida de la cantidad por posición.

Descripción de parámetros en el objeto itemDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

Descripción de parámetros en el objeto itemDetailsParams:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value String [1..2000] Información adicional sobre la posición de mercancías.
Obligatorio

name String [1..255] Denominación del parámetro de descripción de detalle de la posición de mercancía

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

formUrl String [1..512] URL del formulario de pago al cual será redirigido el comprador. La URL no se devuelve si el registro del pedido no se completó debido a un error especificado en errorCode.
Opcional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

Ejemplos

Ejemplo de solicitud

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=123456 \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderNumber=1234567890ABCDEF \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data failUrl=https://mybestmerchantfailurl.com \
  --data email=test@test.com \
  --data clientId=259753456 \
  --data features=FORCE_SSL \
  --data features=FORCE_TDS \
  --data language=en \
  --data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'

Ejemplo de respuesta - éxito

{
  "orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
  "formUrl": "https://dev.bpcbt.com/payment/payment/merchants/ecom/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
}

Ejemplo de respuesta - error

{
  "errorCode": "1",
  "errorMessage": "Order number is duplicated, order with given order number is processed already"
}

Registro de pedido con preautorización

Para la solicitud de registro de pedido con preautorización se utiliza el método https://dev.bpcbt.com/payment/rest/registerPreAuth.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Condición

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condición

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Condición

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.
Opcional

cardholderName String [1..150] Nombre del titular de la tarjeta en letras latinas. Al transmitir este parámetro, el nombre del titular de la tarjeta se mostrará en la página de pago.
Opcional

jsonParams Object Conjunto de atributos adicionales de forma arbitraria, estructura:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Pueden ser transmitidos al Centro de Procesamiento, para el procesamiento posterior (se requiere configuración adicional - póngase en contacto con el soporte).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade a la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Volver a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Se requiere para crear vinculación de cuotas
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar cuotas
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • paymentWay - método de pago. Para realizar forzosamente un pago MOTO es necesario transmitir el valor CARD_MOTO.
Opcional

sessionTimeoutSecs Integer [1..9] Duración de vida del pedido en segundos. En caso de que el parámetro no esté especificado, se utilizará el valor indicado en la configuración del comerciante, o el tiempo por defecto (1200 segundos = 20 minutos). Si en la solicitud está presente el parámetro expirationDate, entonces el valor del parámetro sessionTimeoutSecs no se tiene en cuenta.
Opcional

expirationDate String [19] Fecha y hora de vencimiento del pedido. Formato: yyyy-MM-ddTHH:mm:ss.
Si este parámetro no se transmite en la solicitud, entonces para determinar el tiempo de vencimiento del pedido se utiliza el parámetro sessionTimeoutSecs.
Opcional

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

postAddress String [1..255] Dirección de entrega.
Opcional

orderBundle Object Objeto que contiene la cesta de productos. La descripción de los elementos anidados se proporciona a continuación.
Opcional

feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el comerciante, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
La dirección de correo electrónico no se verifica durante el registro, será verificada más tarde durante el pago.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pago, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Descripción de parámetros en el objeto orderBundle:

Obligatoriedad Nombre Tipo Descripción
Opcional

orderCreationDate String [19] Fecha de creación del pedido en formato YYYY-MM-DDTHH:MM:SS.
Opcional

customerDetails Object Bloque que contiene los atributos del cliente. La descripción de los atributos de la etiqueta se proporciona a continuación.
Obligatorio

cartItems Object Objeto que contiene atributos de productos en el carrito. La descripción de elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto customerDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

contact String [0..40] Método de contacto preferido por el cliente.
Opcional fullName String [1..100] Nombres y apellidos del pagador.
Opcional

passport String [1..100] Serie y número del pasaporte del pagador en el siguiente formato: 2222888888
Opcional

deliveryInfo Object Objeto que contiene los atributos de la dirección de entrega. La descripción de los elementos anidados se proporciona a continuación.

Descripción de los parámetros en el objeto deliveryInfo:

Obligatoriedad Nombre Tipo Descripción
Opcional

deliveryType String [1..20] Método de entrega.
Obligatorio

country String [2] Código de país de dos letras para la entrega.
Obligatorio

city String [0..40] Ciudad de destino.
Obligatorio

postAddress String [1..255] Dirección de entrega.

Descripción de parámetros en el objeto cartItems:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto items:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
Obligatorio

name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
No obligatorio

itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
Obligatorio

quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
No obligatorio

itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
No obligatorio

itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
No obligatorio

depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
No obligatorio

itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
Obligatorio

itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

Descripción de los parámetros en el objeto quantity:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
Obligatorio

measure String [1..20] Unidad de medida de la cantidad por posición.

Descripción de parámetros en el objeto itemDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

Descripción de parámetros en el objeto itemDetailsParams:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value String [1..2000] Información adicional sobre la posición de mercancías.
Obligatorio

name String [1..255] Denominación del parámetro de descripción de detalle de la posición de mercancía

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

formUrl String [1..512] URL del formulario de pago al cual será redirigido el comprador. La URL no se devuelve si el registro del pedido no se completó debido a un error especificado en errorCode.

Ejemplos

Ejemplo de solicitud

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/registerPreAuth.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data orderNumber=1255555555555 \
  --data clientId=259753456 \
  --data language=en

Ejemplo de respuesta

{
  "orderId": "01492437-d2fb-77fa-8db7-9e2900a7d8c0",
  "formUrl": "https://dev.bpcbt.com/payment/merchants/pay/payment_en.html?mdOrder=01492437-d2fb-77fa-8db7-9e2900a7d8c0"
}

Pagos directos

Pago del pedido

Para el pago de un pedido previamente registrado se utiliza la solicitud https://dev.bpcbt.com/payment/rest/paymentorder.do.
La solicitud se utiliza en modo MPI/3DS Server interno, para esto no se requiere la presencia de permisos adicionales y/o certificaciones.
La solicitud se utiliza en modo MPI/3DS Server externo si tiene un contrato con un sistema de pago internacional o un certificado que permite realizar autenticación 3DS de forma independiente. Esto significa que puede utilizar su propio MPI/3DS Server para la autenticación del cliente utilizando la tecnología 3D Secure. Información adicional sobre el pago con MPI/3DS Server propio está disponible aquí.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

Pago del pedido (MPI/3DS Server interno)

El pago del pedido ocurre con la transmisión de datos de pago de tarjeta, así como con el uso de la tecnología de autenticación 3DS (la aplicación de autenticación se regula por configuraciones reguladas por el servicio de soporte).

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Obligatorio

MDORDER String [1..36] Número de pedido en la pasarela de pago.
Obligatorio

$PAN Integer [1..19] Número de tarjeta de pago. Obligatorio, si no se transmite seToken.
Obligatorio

$CVC String [3] Código CVC/CVV2 en el reverso de la tarjeta. Obligatorio, si no se transmite seToken.
Se permiten solo dígitos.
Obligatorio

YYYY Integer [4] Año de vencimiento de la tarjeta de pago. Si seToken no se transmite, es obligatorio transmitir $EXPIRY, o YYYY y MM.
Obligatorio

MM Integer [2] Mes de vencimiento de la tarjeta de pago. Si seToken no se transmite, es obligatorio transmitir $EXPIRY, o YYYY y MM.
Condición

$EXPIRY Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Redefine los parámetros YYYY y MM. Si seToken no se transmite, es obligatorio transmitir $EXPIRY o YYYY y MM.
Condición

seToken String Datos cifrados de la tarjeta que reemplazan los parámetros $PAN, $CVC y $EXPIRY (o YYYY,MM). Obligatorio si se utiliza en lugar de los datos de la tarjeta.
Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Para más detalles sobre la generación de seToken ver aquí.
Si seToken contiene datos cifrados sobre el enlace (bindingId), para el pago se debe utilizar la solicitud paymentOrderBinding.do.
Obligatorio

TEXT String [1..512] Nombre del portador de la tarjeta.
Obligatorio

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

bindingNotNeeded Boolean Valores permitidos:
  • true- la creación de vinculación después de realizar el pago está deshabilitada (la vinculación es el identificador del cliente transmitido en la solicitud de registro del pedido, que después de la solicitud de pago será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (cumpliendo las condiciones necesarias). Este es el valor por defecto.
Opcional

jsonParams Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Pueden ser transmitidos al Centro de Procesamiento, para procesamiento posterior (se requiere configuración adicional - contacte con soporte).
Si utiliza un MPI/3DS Server externo, la pasarela de pago espera que cada solicitud paymentOrder incluya una serie de parámetros adicionales, tales como eci, xid, cavv y otros. Información más detallada aquí.
Para iniciar la autenticación 3RI, puede ser necesario que transmita una serie de parámetros adicionales (ver autenticación 3RI).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade en la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Regresar a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Requerido para crear un enlace de pagos a plazos
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar pagos a plazos
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a múltiples subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido previo. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Opcional

clientBrowserInfo Object Bloque de datos sobre el navegador del cliente, que se envía al ACS durante la autenticación 3DS. Este bloque se puede transmitir solo si está habilitada una configuración especial (contacte al equipo de soporte). Ver parámetros anidados.
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condición

originalPaymentDate String Fecha de la transacción iniciadora. Valor en formato Unix timestamp en milisegundos. Se transmite si el valor del parámetro tii = R,U o F.
Opcional

acsInIFrame Boolean Bandera que muestra que para la URL final se devolverá la versión iFrame. Valores posibles true or false. Para conectar esta funcionalidad, póngase en contacto con el servicio de soporte.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Valores posibles de tii (Lea más sobre los tipos de datos de pago guardados soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Normal Comprador Ingresado por comprador No Transacción de comercio electrónico sin guardado de datos de pago guardados.
CI Iniciador - Normal (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados.
U Pago no programado (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados. Se usa solo para pagos de una etapa.
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
R Pago recurrente (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación recurrente, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
I Pago a plazos (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación a plazos, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

En la autenticación por protocolo 3DS2 también se transmiten los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

info String En caso de respuesta exitosa. Resultado del intento de pago. A continuación se presentan los posibles valores.
  • Su pago ha sido procesado, se está redirigiendo...
  • Operación rechazada. Verifique los datos ingresados, suficiencia de fondos en la tarjeta y repita la operación. Se está redirigiendo...
  • Lo sentimos, el pago no puede ser realizado. Se está redirigiendo...
  • Operación rechazada. Contacte con la tienda. Se está redirigiendo...
  • Operación rechazada. Contacte con el banco emisor de la tarjeta. Se está redirigiendo...
  • Operación imposible. La autenticación del portador de la tarjeta no ha sido exitosa. Se está redirigiendo...
  • No hay conexión con el banco. Reintente más tarde. Se está redirigiendo...
  • Tiempo de espera para ingreso de datos expirado. Se está redirigiendo...
  • No se recibió respuesta del banco. Reintente más tarde. Se está redirigiendo...
Opcional

redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
Opcional

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Opcional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Opcional

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.

El elemento payerData contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

En la autenticación por protocolo 3DS2 en respuesta a la primera solicitud llegan los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

A continuación se muestran los parámetros que deben estar presentes en la respuesta, después de la solicitud repetida de pago y la necesidad de redirigir al cliente al ACS en la autenticación por protocolo 3DS2:

Obligatoriedad Nombre Tipo Descripción
Condición

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condición

packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.

Ejemplos

Ejemplo de solicitud

Ejemplo de primera solicitud:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
  --data '$PAN=4000001111111118' \
  --data '$CVC=123' \
  --data YYYY=2030 \
  --data MM=12 \
  --data 'TEXT=TEST CARDHOLDER' \
  --data language=en
  --data 'jsonParams={"param_1_name":"param_1_value","param_2_name":"param_2_value"}'

Ejemplo de segunda solicitud:

curl --request POST \
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data MDORDER=64d3b8c2-5d87-7d92-bd20-d8db011b4f5b \
  --data '$PAN=4000001111111118' \
  --data '$CVC=123' \
  --data YYYY=2030 \
  --data MM=12 \
  --data 'TEXT=TEST CARDHOLDER' \
  --data language=en \
  --data threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6

Ejemplos de respuesta

Ejemplo de respuesta a la primera solicitud:

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "5802746e-3393-40c3-929a-dc966ebf08c6",
  "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
  "threeDSMethodURLServer": "example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6",
  "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}

Ejemplo de respuesta a la segunda solicitud:

{
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0,
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjU4MDI3NDZlLTMzOTMtNDBjMy05MjlhLWRjOTY2ZWJmMDhjNiIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiODFmZTU1ODUtZmZhOS00Y2NkLTljMjAtY2QzYWFiZDQwNTllIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

Pago de pedido (en modo MPI/3DS Server externo)

Para usar la solicitud paymenOrder.do en modo MPI/3DS Server externo necesita realizar la autenticación 3DS usando su propio servidor MPI/3DS.
También necesita un permiso adicional, asignado por el servicio de soporte.

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

MDORDER String [1..36] Número de pedido en la pasarela de pago.
Condición

$PAN Integer [1..19] Número de tarjeta de pago. Obligatorio, si no se transmite seToken.
Condición

$CVC String [3] Código CVC/CVV2 en el reverso de la tarjeta. Obligatorio, si no se transmite seToken.
Se permiten solo dígitos.
Condición

YYYY Integer [4] Año de vencimiento de la tarjeta de pago. Si seToken no se transmite, es obligatorio transmitir $EXPIRY, o YYYY y MM.
Condición

MM Integer [2] Mes de vencimiento de la tarjeta de pago. Si seToken no se transmite, es obligatorio transmitir $EXPIRY, o YYYY y MM.
Condición

$EXPIRY Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Redefine los parámetros YYYY y MM. Si seToken no se transmite, es obligatorio transmitir $EXPIRY o YYYY y MM.
Condición

seToken String Datos cifrados de la tarjeta que reemplazan los parámetros $PAN, $CVC y $EXPIRY (o YYYY,MM). Obligatorio si se utiliza en lugar de los datos de la tarjeta.
Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Para más detalles sobre la generación de seToken ver aquí.
Si seToken contiene datos cifrados sobre el enlace (bindingId), para el pago se debe utilizar la solicitud paymentOrderBinding.do.
Obligatorio

TEXT String [1..512] Nombre del portador de la tarjeta.
Obligatorio

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

bindingNotNeeded Boolean Valores permitidos:
  • true- la creación de vinculación después de realizar el pago está deshabilitada (la vinculación es el identificador del cliente transmitido en la solicitud de registro del pedido, que después de la solicitud de pago será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (cumpliendo las condiciones necesarias). Este es el valor por defecto.
Opcional

jsonParams Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Pueden ser transmitidos al Centro de Procesamiento, para procesamiento posterior (se requiere configuración adicional - contacte con soporte).
Si utiliza un MPI/3DS Server externo, la pasarela de pago espera que cada solicitud paymentOrder incluya una serie de parámetros adicionales, tales como eci, xid, cavv y otros. Información más detallada aquí.
Para iniciar la autenticación 3RI, puede ser necesario que transmita una serie de parámetros adicionales (ver autenticación 3RI).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade en la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Regresar a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Requerido para crear un enlace de pagos a plazos
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar pagos a plazos
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pago, es decir, sobre el comerciante que permite a varios submercantes aceptar pagos bajo su cuenta. Para pasar este parámetro debe estar habilitada una configuración especial (contacte con el soporte técnico). Ver parámetros anidados.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos del pedido preliminar. Este parámetro se utiliza para la autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Opcional

clientBrowserInfo Object Bloque de datos sobre el navegador del cliente, que se envía al ACS durante la autenticación 3DS. Este bloque se puede transmitir solo si está habilitada la configuración especial (comuníquese con el equipo de soporte). Ver parámetros anidados.
Opcional

acsInIFrame Boolean Bandera que muestra que para la URL final se devolverá la versión iFrame. Valores posibles true or false. Para conectar esta funcionalidad, póngase en contacto con el servicio de soporte.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Valores posibles de tii (Lea más sobre los tipos de datos de pago guardados soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Normal Comprador Ingresado por comprador No Transacción de comercio electrónico sin guardado de datos de pago guardados.
CI Iniciador - Normal (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados.
U Pago no programado (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados. Se usa solo para pagos de una etapa.
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
R Pago recurrente (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación recurrente, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
I Pago a plazos (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación a plazos, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

info String En caso de respuesta exitosa. Resultado del intento de pago. A continuación se presentan los posibles valores.
  • Su pago ha sido procesado, se está redirigiendo...
  • Operación rechazada. Verifique los datos ingresados, suficiencia de fondos en la tarjeta y repita la operación. Se está redirigiendo...
  • Lo sentimos, el pago no puede ser realizado. Se está redirigiendo...
  • Operación rechazada. Contacte con la tienda. Se está redirigiendo...
  • Operación rechazada. Contacte con el banco emisor de la tarjeta. Se está redirigiendo...
  • Operación imposible. La autenticación del portador de la tarjeta no ha sido exitosa. Se está redirigiendo...
  • No hay conexión con el banco. Reintente más tarde. Se está redirigiendo...
  • Tiempo de espera para ingreso de datos expirado. Se está redirigiendo...
  • No se recibió respuesta del banco. Reintente más tarde. Se está redirigiendo...

Ejemplos

Ejemplo de solicitud

curl --request POST \\
  --url https://dev.bpcbt.com/payment/rest/paymentorder.do \\
  --header 'content-type: application/x-www-form-urlencoded' \\
  --data userName=test_user \\
  --data password=test_user_password \\
  --data MDORDER=0140dda0-71ed-7706-a61f-36bd00a7d8c0 \\
  --data '$PAN=4000001111111118' \\
  --data '$CVC=123' \\
  --data YYYY=2030 \\
  --data MM=12 \\
  --data 'TEXT=TEST CARDHOLDER' \\
  --data language=en \\
  --data 'jsonParams={"eci": "02", "cavv": "AkZO5XQAA0rhBxoaufa+MAABAAA=", "xid": "5010857f-8d3f-74e1-9c5a-54a000cc4110", "threeDSProtocolVersion": "2.2.0", "threeDsType": "5"}'

Ejemplo de respuesta

{
  "redirect": "https://dev.bpcbt.com/payment/merchants/temp/finish.html?orderId=01493844-d4d3-703f-9f7e-a73900a7d8c0",
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0
}

Pago del pedido con características de transacción Industry Practice

Para el pago del pedido con características de transacción Industry Practice se utiliza la solicitud https://dev.bpcbt.com/payment/industryPractice/paymentOrder.do.


Al ejecutar la solicitud es necesario utilizar la cabecera: Content-Type: application/x-www-form-urlencoded

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Condición

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condición

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Condición

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Obligatorio

originalMdOrder String [1..36] Número del pedido original en la Pasarela de Pagos, para el cual se ejecuta el pago Industry Practice.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Condición

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks) del pago original para las operaciones Incremental, Delayed Charges, No show.
El parámetro es obligatorio para las operaciones Incremental, Delayed Charges, No show. El parámetro no debe especificarse para Resubmission y Reauthorization.
No obligatorio

jsonParams Object Etiqueta adicional con atributos para transmitir parámetros adicionales. Ver abajo.
El parámetro antiguo params es un alias de este parámetro, es decir, las consultas con params también funcionan.
Obligatorio

tii String Identificador del iniciador (para) transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante).
No obligatorio

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.

Valores posibles de tii.

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Nota
IPI Industry Practice Incremental (MIT) Subsecuente Vendedor No introducidos, cargados del registro transaccional correspondiente o vinculación de pasarela de pago Transacción de aumento del monto de pago en el marco de pedido ya pagado.
IPS Industry Practice Resubmission (MIT) Subsecuente Vendedor No introducidos, cargados del registro transaccional correspondiente o vinculación de pasarela de pago Transacción de intento de pago repetido, cuando el pago original terminó con error.
IPD Industry Practice Delayed Charges (MIT) Subsecuente Vendedor No introducidos, cargados del registro transaccional correspondiente o vinculación de pasarela de pago Funcionalidad de cargos diferidos.
IPA Industry Practice Reauthorization (MIT) Subsecuente Vendedor No introducidos, cargados del registro transaccional correspondiente o vinculación de pasarela de pago Intento repetido de autorización, si la finalización o ejecución del pedido/servicio original sale del marco del plazo de vigencia de autorización establecido por Visa/MC.
IPN Industry Practice No Show (MIT) Subsecuente Vendedor No introducidos, cargados del registro transaccional correspondiente o vinculación de pasarela de pago Se ejecuta por Comerciantes para facturar al Cliente multas por no presentarse en reservas de hoteles y automóviles Car Sharing.

El bloque jsonParams contiene campos de información adicional para almacenamiento posterior. Para transmitir N parámetros, en la solicitud deben encontrarse N etiquetas jsonParams, donde el atributo name contiene el nombre, y el atributo value contiene el valor (ver tabla a continuación).

Obligatoriedad Nombre Tipo Descripción
Obligatorio

name String [1..255] Nombre del parámetro adicional.
Obligatorio

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
No obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
No obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
No obligatorio

mdOrder String [1..36] Número del pedido en la pasarela de pagos con el pago Industry Practice ejecutado.
No obligatorio

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
No obligatorio

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
No obligatorio

rrn Integer [1..12] Reference Retrieval Number - identificador de transacción asignado por el banco adquirente.

Ejemplos

Ejemplo de solicitud

curl --request POST \\
  --url https://dev.bpcbt.com/payment/industryPractice/paymentOrder.do \\
  --header 'content-type: application/x-www-form-urlencoded' \\
  --data '{
    "originalMdOrder":"f252eee4-5598-728a-a023-af6e09078dd0",
    "orderNumber":"testOrderNumber1",
    "tii":"IPI",
    "amount":"10",
    "username":"test_user",
    "password":"test_user_password"
}'

Ejemplo de respuesta - Pago exitoso del pedido con características de transacción Industry Practice

{
  "errorCode": "0",
  "errorMessage": "Successful",
  "mdOrder": "d88680c4-54e9-7115-80ae-3cc709017350",
  "actionCode": "0",
  "approvalCode": "000000",
  "rrn": "111111111113"
}

Ejemplo de respuesta - Pago no exitoso del pedido con características de transacción Industry Practice (el procesamiento devolvió error)

{
  "errorCode": "5",
  "errorMessage": "Unsuccessful",
  "mdOrder": "d88680c4-54e9-7115-80ae-3cc709017350",
  "actionCode": "116",
  "approvalCode": "000000",
  "rrn": "111111111113"
}

Pago no exitoso del pedido con características de transacción Industry Practice (por ejemplo, error de validación)

{
  "errorCode": "5",
  "errorMessage": "Operation is not allowed for original order"
}

Pago instantáneo

Solicitud utilizada para registrar un pedido y realizar el pago simultáneamente – https://dev.bpcbt.com/payment/rest/instantPayment.do.


Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/x-www-form-urlencoded

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Condición

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condición

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Condición

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

bindingNotNeeded Boolean Valores admitidos:
  • true- la creación de vinculación después de realizar el pago está desactivada (la vinculación es el identificador del cliente pasado en la solicitud de registro del pedido, que después de la solicitud instantPayment.do será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (al cumplir las condiciones necesarias). Este es el valor por defecto.
Condición

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante, debe ser único para cada comerciante registrado en la pasarela de pago. Si el número de pedido se genera en el lado de la pasarela de pago, este parámetro no es obligatorio de transmitir.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

pan String [1..19] Número de tarjeta de pago (obligatorio, si bindinId no se transmite). El valor pan reemplaza el valor bindingId.
Opcional

cvc String [3] La transmisión del parámetro se determina por el tipo de pago:
  • la transmisión de cvc no está prevista para todos los pagos tokenizados;
  • la transmisión de cvc no está prevista para pagos MIT;
  • la transmisión de cvc es obligatoria por defecto para todos los demás tipos de pagos; pero si para el comerciante se elige el permiso Puede realizar pago sin confirmación CVC, entonces en tal caso la transmisión de cvc se vuelve opcional.
    Solo se permiten dígitos.
Opcional

cardHolderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Este parámetro se transmite solo después del pago del pedido.
Opcional

merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.
Opcional

sessionTimeoutSecs Integer [1..9] Duración de vida del pedido en segundos. En caso de que el parámetro no esté especificado, se utilizará el valor indicado en la configuración del comerciante, o el tiempo por defecto (1200 segundos = 20 minutos). Si en la solicitud está presente el parámetro expirationDate, entonces el valor del parámetro sessionTimeoutSecs no se tiene en cuenta.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

expirationDate String [19] Fecha y hora de vencimiento del pedido. Formato: yyyy-MM-ddTHH:mm:ss.
Si este parámetro no se transmite en la solicitud, entonces para determinar el tiempo de vencimiento del pedido se utiliza el parámetro sessionTimeoutSecs.
Condición

seToken String [1..8192] Datos cifrados de la tarjeta que reemplazan los parámetros $PAN, $CVC y $EXPIRY (o YYYY,MM). Obligatorio si se utiliza en lugar de los datos de la tarjeta.
Parámetros obligatorios para la cadena seToken: timestamp, UUID, bindingId(o PAN,EXPDATE). Para más detalles sobre la generación de seToken ver aquí.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

jsonParams Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma: jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}.
Pueden ser transmitidos al Centro de Procesamiento, para procesamiento posterior (se requiere configuración adicional - contacte con soporte).
Si utiliza un MPI/3DS Server externo, la pasarela de pago espera que cada solicitud paymentOrder incluya una serie de parámetros adicionales, tales como eci, xid, cavv y otros. Información más detallada aquí.
Para iniciar la autenticación 3RI, puede ser necesario que transmita una serie de parámetros adicionales (ver autenticación 3RI).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade en la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Regresar a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Requerido para crear un enlace de pagos a plazos
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar pagos a plazos
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Requerido para crear un enlace recurrente, recomendado para crear un enlace de pagos a plazos (si se utiliza 3DS2, el parámetro es obligatorio).
Opcional

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
Opcional

orderBundle Object Objeto que contiene la cesta de productos. La descripción de los elementos anidados se proporciona a continuación.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.
Condición

threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional

expiry Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Obligatorio, si no se han transmitido ni seToken, ni bindingId.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pago, es decir, sobre el comerciante que permite a múltiples subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condición

originalPaymentDate String Fecha de la transacción iniciadora. Valor en formato Unix timestamp en milisegundos. Se transmite si el valor del parámetro tii = R,U o F.
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor del lado de la Pasarela de Pagos. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

Descripción de parámetros en el objeto orderBundle:

Obligatoriedad Nombre Tipo Descripción
Opcional

orderCreationDate String [19] Fecha de creación del pedido en formato YYYY-MM-DDTHH:MM:SS.
Opcional

customerDetails Object Bloque que contiene los atributos del cliente. La descripción de los atributos de la etiqueta se proporciona a continuación.
Obligatorio

cartItems Object Objeto que contiene atributos de productos en el carrito. La descripción de elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto customerDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

contact String [0..40] Método de contacto preferido por el cliente.
Opcional fullName String [1..100] Nombres y apellidos del pagador.
Opcional

passport String [1..100] Serie y número del pasaporte del pagador en el siguiente formato: 2222888888
Opcional

deliveryInfo Object Objeto que contiene los atributos de la dirección de entrega. La descripción de los elementos anidados se proporciona a continuación.

Descripción de los parámetros en el objeto deliveryInfo:

Obligatoriedad Nombre Tipo Descripción
Opcional

deliveryType String [1..20] Método de entrega.
Obligatorio

country String [2] Código de país de dos letras para la entrega.
Obligatorio

city String [0..40] Ciudad de destino.
Obligatorio

postAddress String [1..255] Dirección de entrega.

Descripción de parámetros en el objeto cartItems:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

Descripción de parámetros en el objeto items:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
Obligatorio

name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
No obligatorio

itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
Obligatorio

quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
No obligatorio

itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
No obligatorio

itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
No obligatorio

depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
No obligatorio

itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
Obligatorio

itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

Descripción de parámetros en el objeto itemDetails:

Obligatoriedad Nombre Tipo Descripción
Opcional

itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

Descripción de parámetros en el objeto itemDetailsParams:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value String [1..2000] Información adicional sobre la posición de mercancías.
Obligatorio

name String [1..255] Denominación del parámetro de descripción de detalle de la posición de mercancía

Descripción de los parámetros en el objeto quantity:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
Obligatorio

measure String [1..20] Unidad de medida de la cantidad por posición.

Valores posibles de tii (Lea más sobre los tipos de datos de pago guardados soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Normal Comprador Ingresado por comprador No Transacción de comercio electrónico sin guardado de datos de pago guardados.
CI Iniciador - Normal (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados.
U Pago no programado (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados. Se usa solo para pagos de una etapa.
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
R Pago recurrente (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación recurrente, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
I Pago a plazos (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación a plazos, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento;
  • otro valor numérico positivo - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro error.
Puede estar ausente si el resultado no causó errores.
Opcional

error String [1..512] Mensaje de error (si se devolvió un error en la respuesta) en el idioma transmitido en la solicitud.
Opcional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

info String En caso de respuesta exitosa. Resultado del intento de pago. A continuación se presentan los posibles valores.
  • Su pago ha sido procesado, se está redirigiendo...
  • Operación rechazada. Verifique los datos ingresados, suficiencia de fondos en la tarjeta y repita la operación. Se está redirigiendo...
  • Lo sentimos, el pago no puede ser realizado. Se está redirigiendo...
  • Operación rechazada. Contacte con la tienda. Se está redirigiendo...
  • Operación rechazada. Contacte con el banco emisor de la tarjeta. Se está redirigiendo...
  • Operación imposible. La autenticación del portador de la tarjeta no ha sido exitosa. Se está redirigiendo...
  • No hay conexión con el banco. Reintente más tarde. Se está redirigiendo...
  • Tiempo de espera para ingreso de datos expirado. Se está redirigiendo...
  • No se recibió respuesta del banco. Reintente más tarde. Se está redirigiendo...
Opcional

redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
Opcional

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Opcional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Opcional

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
Condición orderStatus Object Contiene parámetros de estado del pedido y se devuelve solo en el caso de que la pasarela de pagos reconozca todos los parámetros de la solicitud como correctos. Ver descripción abajo.

Cuando es necesaria la autenticación utilizando el protocolo 3DS v2.0, los siguientes parámetros se recibirán en respuesta a la solicitud:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

El elemento payerData contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

El bloque orderStatus contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Opcional

ErrorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro ErrorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

ErrorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de ErrorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se establece en el parámetro language de la solicitud.
Opcional

OrderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

OrderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - Suma preautorizada retenida (para pagos de dos etapas);
  • 2 - realizada autorización completa del monto del pedido;
  • 3 - autorización cancelada;
  • 4 - por la transacción se realizó operación de devolución;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada;
  • 7 - esperando pago del pedido;
  • 8 - finalización intermedia para finalización parcial múltiple.
Opcional

expiration Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta (si está disponible).
Opcional

approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
Opcional

depositAmount Integer [1..12] Suma de débito en unidades mínimas de moneda (por ejemplo, en kopeks).
En caso de autorización parcial esta suma puede ser menor que la suma solicitada durante el registro del pedido.
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
Opcional

authCode Integer [6] Parámetro obsoleto (no se utiliza). Su valor siempre es 2 independientemente del estado del pedido y del código de autorización del sistema de procesamiento.
Opcional

Pan String [1..19] Número de tarjeta enmascarado que se utilizó para el pago. Se indica solo después del pago del pedido. Al pagar con Apple Pay se utiliza DPAN. Este es un número vinculado al dispositivo móvil del comprador y que realiza las funciones del número de tarjeta de pago en el sistema Apple Pay.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

Ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

originalActionCode String [1..15] Código de respuesta recibido del procesamiento. Para habilitar la recepción de este campo, contacte al servicio de soporte técnico.
Opcional

rrn Integer [1..12] Reference Retrieval Number - identificador de transacción asignado por el banco adquirente.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - este es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, una compra). Al ejecutar una operación inversa (devolución, chargeback, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Opcional tokenizationInfo Object Bloque con parámetros para el servicio Tokenizer, que permite realizar tokenización de tarjetas mediante los servicios VTS (Visa Token Service) o MCS (Mastercard Checkout Solutions). Este bloque se devuelve si tuvo lugar un pago tokenizado. Ver parámetros anidados.

A continuación se enumeran los parámetros del bloque tokenizationInfo (datos sobre la tokenización de la tarjeta).

Obligatoriedad Nombre Tipo Descripción
Obligatorio tokenId String Identificador único del token, generado por el servicio Tokenizer.
Obligatorio tokenizationProvider String Proveedor de servicios de tokenización. Valores permitidos: vts,mcs.
Obligatorio panReference String Referencia al PAN original (número de tarjeta).
Obligatorio dpan String PAN digital.
Obligatorio tokenExpiry Integer Fecha de vencimiento del token en formato YYYYMM.

Ejemplo del bloque tokenizationInfo:

"tokenizationInfo": {
      "tokenId": "8d577a01-55f7-45d4-add5-bfe0e8e6c571",
      "tokenizationProvider": "vts",
      "panReference": "f441492a-5b0a-453d-af97-e897e1148dc5",
      "dpan": "5435982500356335",
      "tokenExpiry": "202912"
    }

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url  https://dev.bpcbt.com/payment/rest/instantPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data amount=100 \
--data currency=978 \
--data description=my_first_order \
--data orderNumber=1218637308 \
--data pan=4000001111111118  \
--data cvc=123 \
--data expiry=203012 \
--data cardHolderName="TEST CARDHOLDER" \
--data email="demo@example.com" \
--data phone="+449998887766" \
--data language=en \
--data returnUrl=https://mybestmerchantreturnurl.com \
--data failUrl=https://mybestmerchantreturnurl.com

Ejemplo de respuesta

{
    "errorCode": "0",
    "orderId": "eee72f6e-b980-79c5-92e8-6f4200b1eae0",
    "info": "Your order is proceeded, redirecting...",
    "redirect": "https://www.test.com/payment/merchants/gateway/finish.html?orderId=eee72f6e-b980-79c5-92e8-6f4200b1eae0&lang=en",
    "orderStatus": {
        "expiration": "202412",
        "cardholderName": "TEST CARDHOLDER",
        "depositAmount": 100,
        "currency": "978",
        "approvalCode": "123456",
        "authCode": 2,
        "originalActionCode": "S1",
        "rrn": "311489272111",
        "ErrorCode": "0",
        "ErrorMessage": "Success",
        "OrderStatus": 2,
        "OrderNumber": "2011",
        "Pan": "500000**1115",
        "Amount": 100,
        "Ip": "x.x.x.x"
    }
}

Pago MOTO

Para realizar pagos MOTO se utiliza el método https://dev.bpcbt.com/payment/rest/motoPayment.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Opcional

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Opcional

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Opcional

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

merchantLogin String [1..255] Para realizar un pago MOTO en nombre de otro comerciante, especifique en este parámetro el login de la cuenta API del vendedor.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Opcional

postAddress String [1..255] Dirección de entrega.
Opcional

jsonParams Object Conjunto de atributos adicionales de forma arbitraria, estructura:
jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
Pueden ser transmitidos al Centro de Procesamiento, para el procesamiento posterior (se requiere configuración adicional - póngase en contacto con el soporte).
Algunos atributos predefinidos de jsonParams:
  • backToShopUrl - añade a la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
  • backToShopName - configura la etiqueta de texto del botón Volver a la tienda por defecto, si se utiliza junto con backToShopUrl
  • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Se requiere para crear vinculación de cuotas
  • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar cuotas
  • recurringFrequency - cantidad mínima de días entre autorizaciones. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
  • paymentWay - método de pago. Para realizar forzosamente un pago MOTO es necesario transmitir el valor CARD_MOTO.
Opcional

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido previo. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Obligatorio

pan String [1..19] Número de tarjeta enmascarado que se utilizó para el pago. Este parámetro se especifica solo después del pago del pedido. Al pagar a través de Apple Pay como número de tarjeta se utiliza DPAN - este es el número vinculado al dispositivo móvil del cliente, que funciona como número de tarjeta de pago en el sistema Apple Pay.
Obligatorio

expiry Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Obligatorio, si no se han transmitido ni seToken, ni bindingId.
Obligatorio

cardholder String [1..26] Nombre del titular de la tarjeta en letras latinas. Este parámetro se transmite solo después del pago del pedido.
Opcional

cvc String [3] La transmisión del parámetro se determina por el tipo de pago:
  • la transmisión de cvc no está prevista para todos los pagos tokenizados;
  • la transmisión de cvc no está prevista para pagos MIT;
  • la transmisión de cvc es obligatoria por defecto para todos los demás tipos de pagos; pero si para el comerciante se elige el permiso Puede realizar pago sin confirmación CVC, entonces en tal caso la transmisión de cvc se vuelve opcional.
    Solo se permiten dígitos.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Obligatorio

mdOrder String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

userMessage String [1..512] Mensaje al usuario con descripción del código de resultado.

El elemento payerData contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url https://dev.bpcbt.com/payment/rest/motoPayment.do \
--header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data currency=978 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=https://mybestmerchantreturnurl.com \
  --data description=my_first_order \
  --data pan=4000001111111118 \
  --data expiry=203012 \
  --data cvc=123 \
  --data cardholder="TEST CARDHOLDER" \
  --data language=en

Ejemplo de respuesta - pago exitoso

{
   "errorCode":"0",
   "success":true,
   "mdOrder":"088433e9-e34d-769e-9366-696200a7d8c0",
   "orderNumber":"62001"
}

Redirección a ACS (simplificada)

Si se requiere 3-D Secure, entonces después de recibir la respuesta a la solicitud de pago el cliente debe ser redirigido a ACS. En este caso la respuesta a la solicitud de pago contiene el parámetro acsUrl, que se utilizará para la redirección.

La solicitud https://dev.bpcbt.com/payment/acsRedirect.do?orderId={orderId} permite redirigir al cliente a la página de autenticación ACS de manera simplificada - simplemente usando el parámetro orderId, obtenido después del registro del pedido.

También es posible la redirección del cliente a ACS mediante solicitud POST (redirección normal). La descripción de este método está disponible aquí.

Sin ninguna otra acción requerida del cliente, la pasarela de pagos lo redirige a la página ACS, donde el cliente se autentica.

Luego, dependiendo del resultado de la autenticación, el cliente es redirigido a la siguiente URL:

Para redirigir al cliente a ACS, utilice la siguiente URL:

https://dev.bpcbt.com/payment/acsRedirect.do?orderId={Número de pedido en la pasarela de pagos}

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

Parámetros de respuesta

Ejemplo

Ejemplo de solicitud

curl -X GET https://dev.bpcbt.com/payment/acsRedirect.do?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1

Ejemplo de URL de redirección

https://mybestmerchantreturnurl.com/?orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1

Billeteras

Registro de pedido Apple Pay

Para el registro y pago del pedido se utiliza el método https://dev.bpcbt.com/payment/applepay/payment.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear una vinculación en esta etiqueta pueden transmitirse parámetros que definen el tipo de vinculación que se crea. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Obligatorio

paymentToken String [1..8192] El parámetro paymentToken debe contener el valor descifrado y codificado en Base64 de la propiedad paymentData, obtenido del objeto PKPaymentToken Object del sistema Apple Pay (para más detalles ver documentación Apple Pay). De esta manera, para realizar una solicitud de pago a la pasarela de pagos, el vendedor debe:
  1. obtener PKPaymentToken Object, que contiene paymentData de Apple Pay;
  2. extraer el valor paymentData y codificarlo en Base64;
  3. incluir el valor codificado de la propiedad paymentData como valor del parámetro paymentToken en la solicitud de pago, que el vendedor enviará a la pasarela de pagos.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles.
Condicional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Condicional

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a múltiples subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar activada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Condicional

phone String [7..15] Número de teléfono del titular de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De esta manera, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Condicional data Object Este parámetro se devuelve solo en caso de procesamiento exitoso del pago. Ver descripción abajo.
Condicional error Object Este parámetro se devuelve solo en caso de error de pago. Ver descripción abajo.
Condicional orderStatus Object Contiene parámetros del estado del pedido y se devuelve solo en el caso de que la pasarela de pagos haya reconocido todos los parámetros de la solicitud como correctos. Ver descripción abajo.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

El bloque error contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción

code String [1..3] Código como parámetro informativo que informa sobre el error.

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.

El bloque orderStatus contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - pedido solo autorizado y aún no completado (para pagos de dos etapas);
  • 2 - pedido autorizado y completado;
  • 3 - autorización cancelada;
  • 4 - se realizó una operación de devolución para la transacción;
  • 5 - autorización iniciada a través del ACS del banco emisor;
  • 6 - autorización rechazada;
  • 7 - esperando el pago del pedido;
  • 8 - finalización intermedia para múltiples finalizaciones parciales.
Opcional

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
Opcional

actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

date Integer Fecha de registro del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Condicional merchantOrderParams Object Objeto con atributos en los que se transmiten parámetros adicionales del comerciante. Ver descripción abajo.
Condicional attributes Object Atributos del pedido en el sistema de pagos (número de pedido). Ver descripción abajo.
Condicional cardAuthInfo Object Información sobre la tarjeta de pago del comprador. Ver descripción abajo.
Opcional

authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
Opcional

authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
Condicional paymentAmountInfo Object Parámetro que contiene parámetros anidados con información sobre las sumas de confirmación, cargo y devolución. Ver descripción abajo.
Condicional bankInfo Object Contiene el parámetro anidado bankCountryName. Ver descripción abajo.

El elemento payerData contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

El bloque merchantOrderParams contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

name String [1..255] Nombre del parámetro adicional del comerciante.
Obligatorio

value String [1..1024] Valor del parámetro adicional del vendedor - hasta 1024 caracteres.

El bloque attributes contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

name String [1..255] Nombre del parámetro adicional.
Obligatorio

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

El bloque cardAuthInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

expiration Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
Obligatorio

cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
Obligatorio

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
Obligatorio

pan String [1..19] DPAN enmascarado: número vinculado al dispositivo móvil del comprador y que desempeña las funciones del número de tarjeta de pago en el sistema Apple Pay.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque paymentAmountInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

paymentState String Estado del pedido, el parámetro puede tomar los siguientes valores:
  • CREATED - pedido creado (pero no pagado);
  • APPROVED - pedido aprobado (fondos en la cuenta del comprador bloqueados);
  • DEPOSITED - pedido completado (dinero debitado de la cuenta del comprador);
  • DECLINED - pedido rechazado;
  • REVERSED - pedido rechazado;
  • REFUNDED - devolución de fondos.
Obligatorio

approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
Obligatorio

depositedAmount Integer [1..12] Importe del débito en unidades mínimas de moneda (por ejemplo, en kopeks).
En caso de autorización parcial, este importe puede ser menor que el importe solicitado durante el registro del pedido.
Obligatorio

refundedAmount Integer [1..12] Monto del reembolso en unidades mínimas de moneda.

El bloque bankInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

bankCountryName String [1..160] País del banco emisor.

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url https://dev.bpcbt.com/payment/applepay/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "additionalParameters" : {
    "phone" : "9521235847",
    "order-pain" : "111",
    "email" : "apple@pay.com"
  },
  "language" : "en",
  "clientId" : "259753456",
  "orderNumber" : "281477871",
  "paymentToken" : "eyJkYXRhIjoiYPhK3M1bEtm...YjM2NWMzZWNmYjE5fIkVDX3YxIn0=",
  "preAuth" : false
}'

Respuesta en caso de pago exitoso

{
    "success": true,
    "data": {
        "orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
    },
    "orderStatus": {
        "errorCode": "0",
        "orderNumber": "229",
        "orderStatus": 1,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 960000,
        "currency": "978",
        "date": 1478682458102,
        "ip": "x.x.x.x",
        "merchantOrderParams": [
            {
                "name": "param2",
                "value": "param2"
            },
            {
                "name": "param1",
                "value": "param1"
            }
        ],
        "attributes": [
            {
                "name": "mdOrder",
                "value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
            }
        ],
        "cardAuthInfo": {
            "expiration": "203012",
            "cardholderName": "TEST CARDHOLDER",
            "approvalCode": "123456",
            "pan": "500000**1115"
        },
        "authDateTime": 1478682459082,
        "terminalId": "12345678",
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
            "paymentState": "APPROVED",
            "approvedAmount": 960000,
            "depositedAmount": 0,
            "refundedAmount": 0
        },
        "bankInfo": {
            "bankCountryName": "<UNKNOWN>"
        }
    }
}

Respuesta en caso de pago fallido

{
  "error": {
    "code": 10,
    "description": "Processing Error",
    "message": "Auth is invalid"
  },
  "success": false
}

Apple Pay Direct

Solicitud utilizada para realizar un pago directo a través de Apple Pay - https://dev.bpcbt.com/payment/applepay/paymentDirect.do. Se utiliza para registrar y pagar un pedido.

Esta solicitud se puede utilizar para integraciones que suponen el descifrado de datos de pago en el lado del vendedor.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Opcional

feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
Opcional

additionalParameters Object Parámetros adicionales del pedido que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear la vinculación en esta etiqueta pueden pasarse parámetros que definen el tipo de vinculación a crear. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Obligatorio

paymentToken String [1..8192] Datos de pago obtenidos de Apple Pay y descifrados por el comerciante. Secuencia de acciones:
  1. Obtenga el PKPaymentToken Object de Apple Pay (Payment Token Format Reference) con datos de pago cifrados;
  2. Descifre (ECC/RSA) paymentData para obtener la representación textual del objeto: {"applicationPrimaryAccountNumber":"4111111111111111","deviceManufacturerIdentifier":"050110030273","currencyCode":"840","applicationExpirationDate" :"220430","paymentData":{"onlinePaymentCryptogram":"AM32yL0vuOOmAAGG0iQUAoABFA=="}," paymentDataType":"3DSecure","transactionAmount":1010};
  3. Codifique en BASE64 el texto abierto del objeto paymentData y envíelo como paymentToken.
Opcional

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Opcional

features String En este parámetro se puede transmitir el valor VERIFY. Entonces no se realizará el pago, en su lugar se creará una vinculación (se guardará la tarjeta del cliente).
Si se transmite features, paymentToken.transactionAmount debe ser 0. En caso contrario se devolverá un error.
Condición

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles.
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condición

originalPaymentDate String Fecha de la transacción iniciadora. Valor en formato Unix timestamp en milisegundos. Se transmite si el valor del parámetro tii = R,U o F.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pagos. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos del pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Obligatorio

data Object Devuelto solo en caso de pago exitoso.
Obligatorio

error Object Este parámetro se devuelve solo en caso de error de pago.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - pedido solo autorizado y aún no completado (para pagos de dos etapas);
  • 2 - pedido autorizado y completado;
  • 3 - autorización cancelada;
  • 4 - se realizó una operación de devolución para la transacción;
  • 5 - autorización iniciada a través del ACS del banco emisor;
  • 6 - autorización rechazada;
  • 7 - esperando el pago del pedido;
  • 8 - finalización intermedia para múltiples finalizaciones parciales.

Parámetros en el bloque data:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

Parámetros en el bloque error:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

Parámetros en el bloque orderStatus:

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - Suma preautorizada retenida (para pagos de dos etapas);
  • 2 - realizada autorización completa de la suma del pedido;
  • 3 - autorización cancelada;
  • 4 - se realizó una operación de devolución por la transacción;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada.
Opcional

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
Opcional

actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

date Integer Fecha de registro del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

merchantOrderParams Object Sección con atributos en la que se transmiten parámetros adicionales del comerciante.
Opcional

cardAuthInfo Object Bloque con datos sobre la tarjeta del pagador ver parámetros anidados.
Opcional

authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
Opcional

authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
Opcional

paymentAmountInfo Object Objeto con información sobre los montos de confirmación, débito, devolución. Lista de parámetros anidados ver abajo.
Opcional

bankInfo Object Objeto que contiene el parámetro anidado bankCountryName, en el cual se transmite la denominación del país del banco emisor (si está disponible). El idioma utilizado coincide con el idioma transmitido en el parámetro de solicitud language. Si no se transmite el idioma, se utilizará el idioma del usuario que invoca el método.

El bloque orderStatus también puede incluir el elemento payerData, que contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Parámetros en el bloque cardAuthInfo:

Obligatoriedad Nombre Tipo Descripción
Opcional

expiration Integer Año y mes de vencimiento de la tarjeta.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta (si está disponible).
Opcional

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
Opcional

pan String [1..19] DPAN enmascarado: número vinculado al dispositivo móvil del comprador y que desempeña las funciones del número de tarjeta de pago en el sistema Apple Pay.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

Parámetros en el bloque paymentAmountInfo:

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentState String Estado del pedido, el parámetro puede tomar los siguientes valores:
  • CREATED - pedido creado (pero no pagado);
  • APPROVED - pedido aprobado (fondos en la cuenta del comprador bloqueados);
  • DEPOSITED - pedido completado (dinero debitado de la cuenta del comprador);
  • DECLINED - pedido rechazado;
  • REVERSED - pedido rechazado;
  • REFUNDED - devolución de fondos.
Opcional

approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
Opcional

depositedAmount Integer [1..12] Importe del débito en unidades mínimas de moneda (por ejemplo, en kopeks).
En caso de autorización parcial, este importe puede ser menor que el importe solicitado durante el registro del pedido.
Opcional

refundedAmount Integer [1..12] Monto del reembolso en unidades mínimas de moneda.
Opcional

totalAmount Integer [1..20] Importe del pedido más comisión, si la hubiera.

Ejemplos

Ejemplo de solicitud

curl --location --request POST 'https://dev.bpcbt.com/payment/applepay/paymentDirect.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderNumber": "947664b3-4a42-4cdf-9f8c-2e9679bad9e4",
    "description": "description of the order",
    "language": "en",
    "paymentToken": "eyJhcHBsaWNhPT...0ifX0="
}'

Ejemplos de respuesta - pago exitoso

{
    "success": true,
    "data": {
        "orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
    },
    "orderStatus": {
        "errorCode": "0",
        "orderNumber": "229",
        "orderStatus": 1,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 960000,
        "currency": "978",
        "date": 1478682458102,
        "ip": "x.x.x.x",
        "merchantOrderParams": [
            {
                "name": "param2",
                "value": "param2"
            },
            {
                "name": "param1",
                "value": "param1"
            }
        ],
        "attributes": [
            {
                "name": "mdOrder",
                "value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
            }
        ],
        "cardAuthInfo": {
            "expiration": "203012",
            "cardholderName": "TEST CARDHOLDER",
            "approvalCode": "123456",
            "pan": "500000**1115"
        },
        "authDateTime": 1478682459082,
        "terminalId": "12345678",
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
            "paymentState": "APPROVED",
            "approvedAmount": 960000,
            "depositedAmount": 0,
            "refundedAmount": 0
        },
        "bankInfo": {
            "bankCountryName": "<UNKNOWN>"
        }
    }
}

Ejemplo de respuesta - error de pago

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Insufficient amount on card"
  },
  "success": false
}

Registro de pedido Google Pay

Para el registro y pago del pedido se utiliza la solicitud https://dev.bpcbt.com/payment/google/payment.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel de control del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por comas. A continuación se muestra un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear la vinculación en esta etiqueta pueden pasarse parámetros que determinen el tipo de vinculación que se crea. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Obligatorio

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles.
Obligatorio

paymentToken String [1..8192] Token obtenido de Google Pay y codificado en Base64.
Obligatorio

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currencyCode String [3] Código digital de la divisa del pago ISO 4217.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Condicional

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pago, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor del lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Opcional

clientBrowserInfo Object Bloque de datos sobre el navegador del cliente, que se envía al ACS durante la autenticación 3DS. Este bloque se puede transmitir solo si está habilitada la configuración especial (contacte al equipo de soporte). Ver parámetros anidados.

En la autenticación por protocolo 3DS2 también se transmiten los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condicional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Condicional data Object Este parámetro se devuelve solo en caso de procesamiento exitoso del pago. Ver descripción abajo.
Condicional error Object Este parámetro se devuelve solo en caso de error de pago. Ver descripción abajo.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Opcional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Opcional

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
Opcional

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque data puede incluir además el elemento payerData, que contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Si se utiliza el protocolo 3DS2, la respuesta a la solicitud también incluye los siguientes parámetros en el bloque data:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

El bloque error contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

Use la solicitud getOrderStatusExtended.do, para verificar el estado de la transacción.

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url https://dev.bpcbt.com/payment/google/payment.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "merchant": "OurBestMerchantLogin",
  "orderNumber": "UAF-203974-DE",
  "language": "EN",
  "preAuth": true,
  "description" : "Test description",
  "additionalParameters":
  {
      "firstParamName": "firstParamValue",
      "secondParamName": "secondParamValue"
  },
  "paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=",
  "ip" : "127.0.0.1",
  "amount" : "230000",
  "currencyCode" : 643,
  "failUrl" : "https://mybestmerchantfailurl.com"
  "returnUrl" : "https://mybestmerchantreturnurl.com"
}'

Ejemplo de respuesta

{
"success":true,
"data": {
 "orderId": "12312312123"
 "is3DSVer2": true,
 "threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
 "threeDSMethodURLServer": "https://test.com/3dsserver/gatherClientInfo?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134"
 }
}

Google Pay Direct

La solicitud utilizada para pago directo a través de Google Pay -https://dev.bpcbt.com/payment/google/paymentDirect.do. Se utiliza para registrar y pagar un pedido.

Esta solicitud puede utilizarse para integraciones que requieren descifrado de datos de pago del lado del comerciante.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

additionalParameters Object Parámetros adicionales del pedido que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nueva pareja de nombre de parámetro y su valor debe separarse con una coma. A continuación se muestra un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear una vinculación en esta etiqueta pueden transmitirse parámetros que determinan el tipo de vinculación creada. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

protocolVersion String Versión del protocolo definida por Google para el token de pago: ECv1 (por defecto) o ECv2
Obligatorio

paymentToken String [1..8192] Datos de pago obtenidos de Google Pay y descifrados por el comerciante. Secuencia de acciones:
  1. Obtenga el PKPaymentToken Object de Google Pay (Payment Token Format Reference) con datos de pago cifrados;
  2. Descifre (ECC/RSA) paymentData para obtener la representación textual del objeto: {"paymentMethod": "CARD","paymentMethodDetails": {"pan": "5555555555555599","expirationMonth": 12,"expirationYear": 2024},"gatewayMerchantId": "GPay-decrypted","messageId": "AH2EjtcHYs1Ye9Baqr4FAM735VNThPiP","messageExpiration": "1577862000000"};
  3. Codifique en BASE64 el texto abierto del objeto paymentData y envíelo como paymentToken.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currencyCode String [3] Código digital de la divisa del pago ISO 4217.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Opcional

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
Opcional

tii String Identificador del iniciador de transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a múltiples subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condición

originalPaymentDate String Fecha de la transacción iniciadora. Valor en formato Unix timestamp en milisegundos. Se transmite si el valor del parámetro tii = R,U o F.
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Condición

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor del lado del Gateway de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre entrega al cliente. Este parámetro se utiliza para autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para autenticación 3DS posterior del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Opcional

clientBrowserInfo Object Bloque de datos sobre el navegador del cliente, que se envía al ACS durante la autenticación 3DS. Este bloque solo se puede transmitir si está habilitada la configuración especial (contacte al equipo de soporte). Ver parámetros anidados.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Si se utiliza 3DS2, es necesario también transmitir los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Obligatorio*

data Object Devuelto solo en caso de pago exitoso.
Obligatorio*

error Object Este parámetro se devuelve solo en caso de error de pago.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Solo si se utiliza autenticación adicional en ACS del banco emisor

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Solo si se utiliza autenticación adicional en ACS del banco emisor

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Solo si se utiliza autenticación adicional en ACS del banco emisor

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
El parámetro se devuelve si se utilizan vínculos

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque data también puede incluir el elemento payerData, que contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Si se utiliza el protocolo 3DS2, la respuesta a la solicitud también incluye los siguientes parámetros en el bloque data:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Opcional

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

Parámetros en el bloque error:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url https://dev.bpcbt.com/payment/google/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
  "amount": "1000",
  "orderNumber": "350467565",
  "features": [""],
  "language": "EN",
  "password": "test_user_password",
  "paymentToken": "eyJnYXRldTWVY2hRJ...b25ZZWFyyMD0fX0=",
  "preAuth": true,
  "returnUrl": "https://mybestmerchantreturnurl.com",
  "username": "test_user"
}'

Ejemplo de respuesta

{
  "success": true,
  "data": {
    "orderId": "12312312123"
  }
}

Registro de pedido Samsung Pay

Para el registro y pago de pedidos Samsung Pay se utiliza la solicitud https://dev.bpcbt.com/payment/samsung/payment.do. Ver "Coordenadas de conexión". Esta solicitud se utiliza únicamente al realizar pagos desde la aplicación móvil.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

A continuación se presenta un ejemplo de solicitud de pago a través de Samsung Pay.

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

additionalParameters Object Parámetros adicionales del pedido que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear la vinculación en esta etiqueta pueden pasarse parámetros que determinen el tipo de vinculación creada. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

tii String Identificador del iniciador de transacción. Parámetro que indica qué tipo de operación ejecutará el iniciador (Cliente o Comerciante). Valores posibles.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios submercantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar activada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Obligatorio

paymentToken String [1..8192] Contenido del parámetro 3ds.data de la respuesta obtenida de Samsung Pay.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

currencyCode String [3] Código digital de la divisa del pago ISO 4217.
Opcional

features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
  • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
  • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
  • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
    Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está activada para el vendedor del lado del Gateway de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Condición data Object Este parámetro se devuelve únicamente en caso de procesamiento exitoso del pago. Ver descripción a continuación.
Condición error Object Este parámetro se devuelve únicamente en caso de error de pago. Ver descripción a continuación.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Optional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Optional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque data puede incluir además el elemento payerData, que contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

El bloque error contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

Ejemplos

Ejemplo de solicitud

curl --location --request POST 'https://dev.bpcbt.com/payment/samsung/payment.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "merchant": "sandbox_merchant_test",
    "orderNumber": "1218637308",
    "language": "en",
    "preAuth": true,
    "description": "Test description",
    "additionalParameters": {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
    },
    "paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
    "ip": "x.x.x.x"
}'

Respuesta en caso de pago exitoso

{
"success":true,
"data": {
    "orderId": "12312312123"
  }
}

Respuesta en caso de pago fallido

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Not enough money"
  },
  "success": false
}

Samsung Pay Direct

Solicitud utilizada para realizar un pago directo a través de Samsung Pay - https://dev.bpcbt.com/payment/samsung/paymentDirect.do. Se utiliza para registrar y pagar un pedido.

Esta solicitud puede utilizarse para integraciones que implican el descifrado de datos de pago del lado del comerciante.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
Opcional

additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por coma. A continuación se presenta un ejemplo de uso.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Al crear un enlace en esta etiqueta pueden ser transmitidos parámetros que determinan el tipo de enlace a crear. Ver lista de parámetros.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Obligatorio

paymentToken String [1..8192] Token obtenido de Samsung Pay y codificado en Base64. Example:
{"amount": "100", "currency_code": "USD", "utc": "1490687350988", "eci_indicator": "07", "tokenPAN": "5599014702854883", "tokenPanExpiration": "0420", "cryptogram": "ACF9prZs2wsTAAGysReaAoACFA=="}
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación ejecutará el iniciador (Cliente o Comerciante). Valores posibles.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para pasar este parámetro debe estar habilitada una configuración especial (contacte al soporte técnico). Ver parámetros anidados.
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condición

originalPaymentDate String Fecha de la transacción iniciadora. Valor en formato Unix timestamp en milisegundos. Se transmite si el valor del parámetro tii = R,U o F.
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor del lado de la Pasarela de Pago. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos de entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido previo. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

Valores posibles de tii (Lea más sobre los tipos de enlaces soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Ordinaria Comprador Introducido por comprador No Transacción de comercio electrónico sin guardado de enlace.
CI Iniciador - Ordinaria (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace. Este valor es posible transmitir solo con el permiso "Permitida creación de enlaces vendor pays common".
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Introducido por comprador Transacción de comercio electrónico con guardado de enlace.

Parámetros adicionales que determinan el tipo de enlace creado y se transmiten en additionalParameters:

Obligatoriedad Nombre Tipo Descripción
Condición

installments Integer [3] Número máximo de autorizaciones permitidas para pagos a plazos.
Se especifica en caso de crear una vinculación para realizar pagos a plazos.
Condición

recurringFrequency Integer [2] Cantidad mínima de días entre autorizaciones. Número entero positivo del 1 al 28 inclusive.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.
Condición

recurringExpiry String [8] Fecha después de la cual no se deben realizar más autorizaciones. Formato: YYYYMMDD.
Se especifica en caso de crear un enlace para realizar pagos recurrentes.
Obligatorio para la transmisión en caso de crear un enlace para realizar pagos a plazos con 3DS2 habilitado.

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Obligatorio*

data Object Devuelto solo en caso de pago exitoso.
Obligatorio*

error Object Este parámetro se devuelve solo en caso de error de pago.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
El parámetro se devuelve si se utilizan vinculaciones

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque data puede incluir además el elemento payerData, que contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Parámetros en el bloque error:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url https://dev.bpcbt.com/payment/samsung/paymentDirect.do \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "OurBestMerchantLogin",
"orderNumber": "UAF-203974-DE",
"language": "EN",
"preAuth": true,
"description" : "Test description",
"additionalParameters":
{
"firstParamName": "firstParamValue",
"secondParamName": "secondParamValue"
},
"paymentToken": "ew0KICB7DQoJICA...0KICB9DQp9",
"ip" : "127.0.0.1"
}'

Ejemplos de respuesta - pago exitoso

{
  "success": true,
  "data": {
    "orderId": "12312312123"
  }
}

Ejemplo de respuesta - error de pago

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Insufficint amount on card"
  },
  "success": false
}

Pago tokenizado

Solicitud de pago universal para métodos de pago tokenizados – https://dev.bpcbt.com/payment/token/payment.do.

Esta solicitud solo se puede usar si tienes un permiso especial en la Pasarela de Pagos. Contacta al servicio de soporte técnico para más detalles.


Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

merchant String [1..255] Para registrar y pagar el pedido en nombre de otro comerciante, indique su login (para la cuenta API) en este parámetro.
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Obligatorio

tokenType String Valores posibles:
  • MDES;
  • VTS;
  • APPLE;
  • GOOGLE;
  • SAMSUNG.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Condición

orderId String [1..36] Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos. Se requiere transmitir en la solicitud de pago repetida (después de ejecutar 3DS-method).
Opcional

description String [1..598] Descripción del pedido en cualquier formato.
Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacta al soporte técnico). Ver parámetros anidados.
Opcional

preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
  • true - habilitado el pago de dos etapas;
  • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
Si el parámetro está ausente, se realiza el pago de una etapa.
Condición

cvc String [3] La transmisión del parámetro se determina por el tipo de pago:
  • la transmisión de cvc no está prevista para todos los pagos tokenizados;
  • la transmisión de cvc no está prevista para pagos MIT;
  • la transmisión de cvc es obligatoria por defecto para todos los demás tipos de pagos; pero si para el comerciante se elige el permiso Puede realizar pago sin confirmación CVC, entonces en tal caso la transmisión de cvc se vuelve opcional.
    Solo se permiten dígitos.
Opcional

cardHolderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Este parámetro se transmite solo después del pago del pedido.
Opcional

autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Opcional

autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional jsonParams Object Etiqueta adicional con atributos para transmitir parámetros adicionales. Ver más abajo.
Opcional

features String Funciones del pedido. A continuación se presentan los valores posibles.
  • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el propietario de la tarjeta será verificado, sin embargo no se producirá ningún cargo de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurar que la tarjeta está en manos del propietario, y posteriormente cargar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si el monto del pago se pasa en la solicitud, no será cargado de la cuenta del cliente al pasar el valor VERIFY. Después del registro exitoso, el pedido se transfiere inmediatamente al estado REVERSED (cancelado). Este valor también se puede usar para crear una vinculación — en este caso el parámetro clientId también debe ser pasado. Lea más detalles aquí.
  • FORCE_TDS - Procesamiento forzoso del pago utilizando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
  • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
  • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Opcional

tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
Opcional

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.
Obligatorio

paymentData object Contiene información de pago obtenida del servicio de tokenización. Ver parámetros incluidos
Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pagos. Ver parámetros anidados.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se usa para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido previo. Este parámetro se usa para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se usa para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Opcional

clientBrowserInfo Object Bloque de datos sobre el navegador del cliente, que se envía al ACS durante la autenticación 3DS. Este bloque solo se puede transmitir si está habilitada una configuración especial (póngase en contacto con el equipo de soporte). Ver parámetros anidados.

El bloque jsonParams contiene campos de información adicional para almacenamiento posterior. Para transmitir N parámetros, en la solicitud deben encontrarse N etiquetas jsonParams, donde el atributo name contiene el nombre, y el atributo value contiene el valor (ver tabla a continuación).

Obligatoriedad Nombre Tipo Descripción
Obligatorio

name String [1..255] Nombre del parámetro adicional.
Obligatorio

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

A continuación se enumeran los parámetros del bloque paymentData

Obligatoriedad Nombre Tipo Descripción
Obligatorio dpan String [1..19] Número de token.
Condicional tokenCryptogram String [1..1024] Criptograma obtenido del servicio de tokenización. En algunos casos el parámetro puede estar ausente (por ejemplo, para transacciones MIT VTS).
Obligatorio MM Integer [2] Mes de vencimiento del token.
Obligatorio YYYY Integer [4] Año de vencimiento del token.
Opcional

eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
  • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
  • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
  • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.

Valores posibles de tii (Lea más sobre los tipos de datos de pago guardados soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Normal Comprador Ingresado por comprador No Transacción de comercio electrónico sin guardado de datos de pago guardados.
CI Iniciador - Normal (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados.
U Pago no programado (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados. Se usa solo para pagos de una etapa.
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
R Pago recurrente (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación recurrente, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
I Pago a plazos (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación a plazos, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional

billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
Opcional

billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
Opcional

billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Opcional

payerLastName String [1..64] Apellido del remitente.
Opcional

payerFirstName String [1..35] Nombre del remitente.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Opcional

payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

Obligatoriedad Nombre Tipo Descripción
Opcional userAgent String [1..2048] Agente del navegador.
Opcional OS String Sistema operativo.
Opcional OSVersion String Versión del sistema operativo.
Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
Opcional browserIpAddress String [1..45] Dirección IP del navegador.
Opcional browserLanguage String [1..8] Idioma del navegador.
Opcional browserTimeZone String Zona horaria del navegador.
Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

Ejemplo del bloque clientBrowserInfo:

"clientBrowserInfo":
    {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"it-IT",
        "browserTimeZone":"Europe/Rome",
        "browserTimeZoneOffset":-120,
        "browserAcceptHeader":"gzip",
        "browserIpAddress":"x.x.x.x"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
  • true - solicitud procesada exitosamente;
  • false - solicitud no procesada.

Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
Condición data Object Este parámetro se devuelve solo en caso de procesamiento exitoso del pago. Ver descripción a continuación.
Condición error Object Este parámetro se devuelve solo en caso de error de pago. Ver descripción a continuación.
Condición orderStatus Object Contiene parámetros del estado del pedido y se devuelve solo en caso de que la pasarela de pago reconozca todos los parámetros de la solicitud como correctos. Ver descripción a continuación.

El bloque data contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Opcional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Opcional

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.

Si se utiliza el protocolo 3DS2, la respuesta a la solicitud también incluye los siguientes parámetros en el bloque data:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).
Opcional

packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.
Opcional

threeDSSDKKey String Clave de cifrado de datos del dispositivo.

Parámetro es obligatorio para SDK.

Opcional

threeDSAcsTransactionId String Identificador de transacción 3DS en ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSAcsRefNumber String Número de referencia en ACS.
Opcional

threeDSAcsSignedContent String Contenido firmado para SDK, el contenido incluye la URL de ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSDsTransID String Identificador único de transacción dentro del MPS.

Parámetro es obligatorio para SDK.

El bloque error contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

code String [1..3] Código como parámetro informativo que informa sobre el error.
Obligatorio

message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
Obligatorio

description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.

El bloque orderStatus contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro ErrorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor ErrorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de la descripción se especifica en el parámetro language de la solicitud.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada comerciante.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - Suma preautorizada retenida (para pagos de dos etapas);
  • 2 - realizada autorización completa del importe del pedido;
  • 3 - autorización cancelada;
  • 4 - por la transacción fue realizada operación de devolución;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada.
  • 7 - esperando pago del pedido;
  • 8 - finalización intermedia para finalización parcial múltiple.
Opcional

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
Opcional

actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
Opcional

originalActionCode String [1..15] Código de respuesta recibido del procesamiento. Para habilitar la recepción de este campo, contacte al servicio de soporte técnico.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

date Integer Fecha de registro del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Condición cardAuthInfo Object Información sobre la tarjeta de pago del comprador. Ver descripción a continuación.
Opcional

authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Opcional

terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
Opcional

authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, compra). Al ejecutar la operación inversa (devolución, contracargo, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Este parámetro está presente en la respuesta, solo si se utiliza la consulta getP2PStatus version versión 7 o superior.
Condición paymentAmountInfo Object Parámetro que contiene parámetros anidados con información sobre los montos de confirmación, débito y devolución. Ver descripción a continuación.
Condición bankInfo Object Contiene el parámetro anidado bankCountryName. Ver descripción a continuación.
Condición payerData Object Contiene el parámetro anidado paymentAccountReference. Ver descripción a continuación.

El bloque cardAuthInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

expiration Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
Obligatorio

cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
Obligatorio

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
Obligatorio

authCode Integer [6] Parámetro obsoleto (no se utiliza). Su valor siempre es 2 independientemente del estado del pedido y del código de autorización del sistema de procesamiento.
Obligatorio

pan String [1..19] Número de tarjeta de pago
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

El bloque paymentAmountInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

paymentState String Estado del pedido, el parámetro puede tomar los siguientes valores:
  • CREATED - pedido creado (pero no pagado);
  • APPROVED - pedido aprobado (fondos en la cuenta del comprador bloqueados);
  • DEPOSITED - pedido completado (dinero debitado de la cuenta del comprador);
  • DECLINED - pedido rechazado;
  • REVERSED - pedido rechazado;
  • REFUNDED - devolución de fondos.
Obligatorio

approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
Obligatorio

depositedAmount Integer [1..12] Importe del débito en unidades mínimas de moneda (por ejemplo, en kopeks).
En caso de autorización parcial, este importe puede ser menor que el importe solicitado durante el registro del pedido.
Obligatorio

refundedAmount Integer [1..12] Monto del reembolso en unidades mínimas de moneda.

El bloque bankInfo contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

bankCountryName String [1..160] País del banco emisor.

El bloque payerData contiene los siguientes elementos.

Obligatoriedad Nombre Tipo Descripción
Obligatorio

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

Ejemplos

Ejemplo de solicitud

curl --request POST \
--url  https://dev.bpcbt.com/payment/token/payment.do \
--header 'Content-Type: application/json' \
--data '{
    "username":"test_user",
    "password":"test_user_password",
    "merchant":"test_merch",
    "amount":"1000000",
    "tii":"CI",
    "clientId":"vtsTestClient",
    "tokenType":"VTS",
    "cvc":"123",
    "cardHolderName":"DOS TESTOS",
    "paymentData": {
        "dpan":"4572433771970368",
        "MM":"12",
        "YYYY":"2028",
        "tokenCryptogram":"Aetydhdjjdkfkndnd55gd="
    },
        "orderPayerData":{
            "mobilePhone":"+492115684962"
    },
    "returnUrl":"https://mybestmerchantreturnurl.com",
    "failUrl":"https://mybestmerchantfailurl.com",
    "dynamicCallbackUrl":"https://test.com/callback",
    "externalScaExemptionIndicator":"TRA",
    "jsonParams":{
        "email":"test@gmail.com"
    },
    "clientBrowserInfo": {
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
        "fingerprint":850891523,
        "OS":"Windows",
        "OSVersion":"10",
        "isMobile":false,
        "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
        "colorDepth":24,
        "screenHeight":"864",
        "screenWidth":"1536",
        "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
        "javaEnabled":false,
        "javascriptEnabled":true,
        "browserLanguage":"en-US",
        "browserTimeZone":"Europe/London",
        "browserTimeZoneOffset":-180,
        "browserAcceptHeader":"*/*",
        "browserIpAddress":"10.99.50.37"
    },
}'

Ejemplo de respuesta

{
  "success": true,
  "data": {
    "orderId": "2a2b97e0-7284-746a-998a-752f0a8246f8",
    "is3DSVer2": false
  },
  "orderStatus": {
    "errorCode": "0",
    "orderNumber": "9049",
    "orderStatus": 2,
    "actionCode": 0,
    "actionCodeDescription": "Request is processed successfully",
    "amount": 1000000,
    "currency": "978",
    "date": 1734729964138,
    "ip": "10.99.50.37",
    "cardAuthInfo": {
      "expiration": "202412",
      "cardholderName": "DOS TESTOS",
      "approvalCode": "123456",
      "authCode": 2,
      "pan": "4111111111111111"
    },
    "authDateTime": 1734729964273,
    "terminalId": "12346789",
    "authRefNum": "111111111111",
    "paymentNetRefNum": "54674915300274269950",
    "paymentAmountInfo": {
      "paymentState": "payment_deposited",
      "approvedAmount": 1000000,
      "depositedAmount": 1000000,
      "refundedAmount": 0
    },
    "bankInfo": {
      "bankCountryName": "<UNKNOWN>"
    },
    "payerData": {}
  }
}

Estado del pago

La forma más sencilla de conocer el estado del pago es utilizar una llamada API especial:

  1. Realizar una llamada getOrderStatusExtended.do;
  2. Verificar el campo orderStatus en la respuesta: el pedido se considera pagado solo si el valor orderStatus es igual a 1 o 2.

Otra forma de verificar si el pago fue exitoso o no es revisar la notificación de callback.

Estado del pedido

Para obtener el estado del pedido se utiliza el método https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

Información adicional sobre las causas de rechazo está disponible aquí.

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Condicional

userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
Condicional

password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
Condicional

token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
Condicional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

Condicional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada comerciante.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

merchantLogin String [1..255] Para obtener el estado del pedido de un comerciante específico en lugar del usuario actual, especifique el login del comerciante (para cuenta API).
Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.

Parámetros de respuesta

Existen varios conjuntos de parámetros de respuesta. Qué conjunto de parámetros se devuelve en la respuesta depende de la versión getOrderStatusExtended especificada en la configuración del comerciante en la pasarela de pago.

Descripción de versiones

Versión Parámetros añadidos
1 orderBundle
2
  • authDateTime
  • terminalId
  • authRefNum
3
  • paymentAmountInfo->approvedAmount, depositedAmount, paymentState, refundedAmount
  • bankInfo->bankCountryCode, bankCountryName, bankName
4 Sin cambios
5 refunds
6 chargeback
7 cardAuthInfo->secureAuthInfo->paResStatus, veResStatus, paResCheckStatus
8 cardAuthInfo->paymentSystem, product
9 paymentWay
10 depositedDate
11 Sin cambios
12
  • refundedDate
  • reversedDate
13 payerData->email,phone,postAddress
14 transactionAttributes
15
  • prepaymentMdOrder
  • partpaymentMdOrders
16 feUtrnno
17 cardAuthInfo->productCategory
18 totalAmount
19 avsCode
20 bindingInfo->externalCreated
21 refunds->externalRefundId
22 Sin cambios
23 efectyOrderInfo
24 ofdOrderBundle
25 Sin cambios
26 refunds->approvalCode
27 authRefNum
28 pluginInfo
29 Sin cambios
30 cardAuthInfo->secureAuthInfo->aResTransStatus, rReqTransStatus, threeDsProtocolVersion
31 Sin cambios
32 Sin cambios
33 displayErrorMessage
34 orderBundle->cartItems->items->depostedItemAmount,itemPrice
35 cardAuthInfo->corporateCard
36 Sin cambios
37
  • tii
  • usedPsdIndicatorValue
38 payerData ->paymentAccountReference
39 cardAuthInfo -> detokenizedPanRepresentation, detokenizedPanExpiryDate
40 Sin cambios
41 PartialAuthorization
42 cardAuthInfo->secureAuthInfo->threeDsType
43 No se añadieron nuevos parámetros. Eliminado: cardAuthInfo->secureAuthInfo-> authTypeIndicator
44 Sin cambios
45 tokenizationInfo
46 mcc, mvv,paymentFacilitator
Versión Obligatoriedad Nombre Tipo Descripción
Todas Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Todas Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Todas Condición

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante, debe ser único para cada comerciante registrado en la pasarela de pago. Si el número de pedido se genera en el lado de la pasarela de pago, este parámetro no es obligatorio de transmitir.
Todas Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 1 - pedido solo autorizado y aún no completado (para pagos de dos etapas);
  • 2 - pedido autorizado y completado;
  • 3 - autorización cancelada;
  • 4 - se realizó una operación de devolución para la transacción;
  • 5 - autorización iniciada a través del ACS del banco emisor;
  • 6 - autorización rechazada;
  • 7 - esperando el pago del pedido;
  • 8 - finalización intermedia para múltiples finalizaciones parciales.
Todas Obligatorio

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
Todas Obligatorio

actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
Todas Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Todas Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto.
Todas Obligatorio

date Integer Fecha de registro del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
10+ Opcional

depositedDate Integer Fecha de pago del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
Todas Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Todas Obligatorio

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
27+ Opcional

authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
12+, obligatorio desde 27 Opcional

refundedDate Integer Fecha y hora del reembolso, mostradas como la cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
12+ Opcional

reversedDate Integer Fecha y hora de cancelación del pago, mostradas como la cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
09+ Obligatorio

paymentWay String Método de realización del pago (pago con introducción de datos de tarjeta, pago por vinculación, etc.). Los valores adicionales posibles del parámetro se presentan abajo
19+ Opcional

avsCode String Código de respuesta de verificación AVS (verificación de dirección y código postal del portador de la tarjeta). Valores posibles:
  • A – el código postal y la dirección coinciden.
  • B – la dirección coincide, el código postal no coincide.
  • C - el código postal coincide, la dirección no coincide.
  • D - el código postal y la dirección no coinciden.
  • E - se solicitó verificación de datos, pero el resultado no fue exitoso.
  • F - formato incorrecto de solicitud de verificación AVS/AVV.
06+ Opcional

chargeback Boolean Si los fondos fueron devueltos forzosamente al comprador por el banco. Valores posibles:
  • true - los fondos fueron devueltos;
  • false - los fondos no fueron devueltos.
02+ Opcional

authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
02+ Opcional

terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
01+ Opcional

orderBundle Object Objeto que contiene la cesta de productos. La descripción de los elementos anidados se proporciona a continuación.
03+ Opcional

paymentAmountInfo Object Objeto con información sobre los montos de confirmación, débito, devolución. Lista de parámetros anidados ver abajo.
05+ Opcional

refunds Object Objeto que contiene información sobre el reembolso de fondos. Presente solo cuando hay reembolsos en el pedido. La descripción de los elementos anidados se proporciona a continuación.
Todas Opcional

cardAuthInfo Object Bloque con datos sobre la tarjeta del pagador. La descripción de los elementos anidados se proporciona a continuación.
14+ Opcional

transactionAttributes Object Conjunto de atributos adicionales de la transacción. Véase la lista de parámetros anidados a continuación.
15+ Opcional

prepaymentMdOrder String Número del pedido de prepago anterior en la pasarela de pago.
15+ Opcional

partpaymentMdOrders Array of String Array de pedidos posteriores para pago parcial.
16+ Opcional

feUtrnno Integer [1..18] Número de transacción FE.
Todas Opcional

bindingInfo Object Objeto que contiene información sobre el enlace por el cual se efectúa el pago. Ver tabla con descripción de bindingInfo.
23+ Opcional

efectyOrderInfo Object Bloque de parámetros relacionados con el método de pago EFECTY. La descripción de los elementos anidados se proporciona a continuación.
28+ Opcional

pluginInfo Object Presente en la respuesta si el pago fue realizado a través de un plugin de pago. Ver parámetros anidados a continuación.
33+ Opcional

displayErrorMessage String Mensaje de error mostrado.
37+ Opcional

tii String Identificador del iniciador de transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). La descripción de los elementos anidados se proporciona a continuación.
37+ Opcional

usedPsdIndicatorValue String Tipo de excepción SCA (Strong Customer Authentication). Contiene el valor, transmitido al pagar el pedido en el parámetro externalScaExemptionIndicator.
Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacciones con bajo nivel de riesgo basándose en el importe de la transacción, cantidad de transacciones del cliente al día o importe diario total de los pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que ha pasado exitosamente la verificación antifraude.
41+ Condición

partialAuthorization String [1..255] Indicador del estado de autorización parcial del pedido. Obligatorio si en los detalles del pedido está presente el parámetro partialAuthorization.
Valores permitidos:
  • REQUESTED - El Merchant solicitó autorización parcial, pero la autorización aún no se ha realizado.
  • PARTIAL_AMOUNT - El Merchant solicitó autorización parcial. La autorización parcial se ejecutó exitosamente por insuficiencia de saldo del cliente.
  • FULL_AMOUNT - El Merchant solicitó autorización parcial, pero el saldo del cliente fue suficiente, por lo que no se requirió la ejecución de autorización parcial y se debitó el monto completo.
45+ Opcional tokenizationInfo Object Bloque con parámetros para el servicio Tokenizer, que permite realizar tokenización de tarjetas utilizando servicios VTS (Visa Token Service) o MCS (Mastercard Checkout Solutions). Este bloque se devuelve si tuvo lugar un pago tokenizado. Ver parámetros anidados.
46+ Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
46+ Opcional

mvv String [1..10] Confirmación del comerciante de Mastercard para transacciones tokenizadas. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte con soporte técnico).
46+ Opcional paymentFacilitator Object Bloque con información sobre el facilitador de pagos, es decir, sobre el comerciante que permite a varios subcomerciantes aceptar pagos bajo su cuenta. Para transmitir este parámetro debe estar habilitada una configuración especial (contacte el soporte técnico). Ver parámetros anidados.

A continuación se enumeran los parámetros del bloque tokenizationInfo (datos sobre la tokenización de la tarjeta).

Obligatoriedad Nombre Tipo Descripción
Obligatorio tokenId String Identificador único del token, generado por el servicio Tokenizer.
Obligatorio tokenizationProvider String Proveedor de servicios de tokenización. Valores permitidos: vts,mcs.
Obligatorio panReference String Referencia al PAN original (número de tarjeta).
Obligatorio dpan String PAN digital.
Obligatorio tokenExpiry Integer Fecha de vencimiento del token en formato YYYYMM.

Ejemplo del bloque tokenizationInfo:

"tokenizationInfo": {
      "tokenId": "8d577a01-55f7-45d4-add5-bfe0e8e6c571",
      "tokenizationProvider": "vts",
      "panReference": "f441492a-5b0a-453d-af97-e897e1148dc5",
      "dpan": "5435982500356335",
      "tokenExpiry": "202912"
    }

Descripción de los parámetros del objeto paymentFacilitator:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

pfId String [1..11] Identificador del facilitador de pagos.
Obligatorio name String [1..40] Nombre del facilitador de pago.
Opcional isoId String [1..11] Identificador ISO.
Obligatorio subMerchants Array of objects Matriz de objetos con información adicional sobre los subcomerciantes. Ver parámetros anidados a continuación.

Parámetros del elemento de la matriz subMerchants:

Obligatoriedad Nombre Tipo Descripción
Obligatorio subMerchantId String [1..20] Identificador del subcomerciante.
Obligatorio name String [1..40] Nombre del subcomerciante.
Obligatorio address Object Bloque con información sobre la dirección del subcomerciante. Ver parámetros anidados a continuación.

Parámetros del objeto address:

Obligatoriedad Nombre Tipo Descripción
Obligatorio city String [1..50] Ciudad del subcomerciante.
Obligatorio postalCode String [1..16] Código postal del subcomerciante.
Obligatorio country Integer [2] Código de país del subcomerciante en formato ISO 3166-1.
Opcional street String [1..40] Calle del subcomerciante.

Ejemplo del objeto paymentFacilitator:

"paymentFacilitator" :{
  "pfId": "PF123456",
  "name": "Payment Facilitator Name",
  "isoId": "ISO789",
  "subMerchants": [
    {
      "subMerchantId": "SM001",
      "name": "Sub Merchant 1",
      "address": {
        "city": "City 1",
        "postalCode": "101000",
        "country": "US",
        "street": "Street 1"
      }
    },
    {
      "subMerchantId": "SM002",
      "name": "Sub Merchant 2",
      "address": {
        "city": "City 2",
        "postalCode": "190000",
        "country": "US",
        "street": "Street 2"
      }
    }
  ]
}

Valores del parámetro paymentWay:

Valores posibles de tii (Lea más sobre los tipos de datos de pago guardados soportados por la pasarela de pagos aquí).

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
Vacío Normal Comprador Ingresado por comprador No Transacción de comercio electrónico sin guardado de datos de pago guardados.
CI Iniciador - Normal (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados.
U Pago no programado (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Transacción de comercio electrónico, usando datos de pago guardados normales previamente guardados. Se usa solo para pagos de una etapa.
RI Iniciador - Recurrentes (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
R Pago recurrente (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación recurrente, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.
II Iniciador - Cuotas (CIT) Iniciadora Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de datos de pago guardados.
I Pago a plazos (MIT) Subsecuente Vendedor No hay ingreso manual, vendedor transmite datos No Operación a plazos, usando datos de pago guardados guardados. Se usa solo para pagos de una etapa.

El bloque refunds contiene los siguientes parámetros.

Versión Obligatoriedad Nombre Tipo Descripción
05+ Opcional

date String Fecha de devolución del pedido
21+ Opcional

externalRefundId String [1..32] Identificador de devolución. Al intentar la devolución se verifica externalRefundId: si existe, se devuelve una respuesta exitosa con los datos sobre la devolución, si no — se efectúa la devolución.
26+ para todos los métodos de pago Opcional

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
05+ Opcional

actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
05+ Opcional

referenceNumber String [12] Número de identificación único que se asigna a la operación al completarse.
05+ Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).

El bloque attributes contiene información sobre el número de pedido en la pasarela de pagos. El parámetro name siempre toma el valor mdOrder, y el parámetro value - el número de pedido en el sistema de pagos.

Versión Obligatoriedad Nombre Tipo Descripción
Todas Opcional

name String [1..255] Nombre del parámetro adicional.
Todas Opcional

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

El bloque transactionAttributes contiene un conjunto de atributos adicionales de la transacción. Se utiliza para la versión 14 y superior. A continuación se presenta la lista de parámetros incluidos.

Versión Obligatoriedad Nombre Tipo Descripción
14+ Opcional

name String [1..255] Nombre del parámetro adicional.
14+ Opcional

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.
el bloque merchantOrderParams se transmite en la respuesta, si en el pedido hay parámetros adicionales del comerciante. Cada parámetro adicional se transmite en un elemento separado merchantOrderParams.
Versión Obligatoriedad Nombre Tipo Descripción
Todas Opcional

name String [1..255] Nombre del parámetro adicional.
Todas Opcional

value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

En el elemento cardAuthInfo se encuentra una estructura, compuesta por una lista del elemento secureAuthInfo y los siguientes parámetros.

Versión Obligatoriedad Nombre Tipo Descripción
01+ Opcional

maskedPan String [1..19] Número de tarjeta enmascarado utilizado para el pago. Contiene los primeros 6 y últimos 4 dígitos reales del número de tarjeta en formato XXXXXX**XXXX.
01+ Opcional

expiration Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
01+ Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
01+ Opcional

approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
08+ Obligatorio

paymentSystem String Nombre del sistema de pago. Son posibles los siguientes valores:
  • VISA
  • MASTERCARD
  • AMEX
  • JCB
  • CUP
    08+ Obligatorio

    product String [1..255] Información adicional sobre tarjetas corporativas. Esta información es completada por el servicio de soporte técnico. Si dicha información no está disponible, se devuelve un valor vacío.
    17+ Obligatorio

    productCategory String Información adicional sobre la categoría de tarjetas corporativas. Esta información es completada por el servicio de soporte técnico. Si dicha información no está disponible, se devuelve un valor vacío. Valores posibles: DEBIT, CREDIT, PREPAID, NON_MASTERCARD, CHARGE, DIFFERED_DEBIT.
    35+ Opcional

    corporateCard String [1..5] Indica si esta tarjeta es corporativa. Valores posibles: false - no es una tarjeta corporativa, true - es una tarjeta corporativa. Puede devolver un valor vacío, significa que el valor no fue encontrado.
    39+ Opcional

    detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
    39+ Opcional

    detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.

    El elemento secureAuthInfo está compuesto por los siguientes elementos (los parámetros cavv y xid están incluidos en el elemento threeDSInfo).

    Versión Obligatoriedad Nombre Tipo Descripción
    01+ Opcional

    eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
    • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
    • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
    • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
    01 - 42 Opcional

    authTypeIndicator String Tipo de autenticación 3DS (disponible hasta la versión 42). Este parámetro es obligatorio para el pago a través de su servidor 3DS con 3DS 2. Para pagos SSL este parámetro es opcional y se determina dependiendo del valor ECI. Valores permitidos:
    • 0 - Autenticación SSL
    • 1 - Autenticación 3DS 1
    • 2 - Intento de autenticación 3DS 1
    • 3 - Autenticación fuerte de clientes (SCA) con 3DS 2
    • 4 - Autenticación basada en riesgo (RBA) con 3DS 2
    • 5 - Intento de autenticación 3DS 2
    42+ Opcional

    threeDsType String Tipo de autenticación 3DS. Este parámetro es obligatorio para el pago a través de su servidor 3DS con 3DS 2. Para pagos SSL este parámetro es opcional y se determina dependiendo del valor ECI. Valores permitidos:
    • 0 - Autenticación SSL
    • 3 - Autenticación fuerte del cliente (SCA) con 3DS 2
    • 4 - Autenticación basada en riesgo (RBA) con 3DS 2
    • 5 - Intento de autenticación 3DS 2
    • 7 - Autenticación 3RI con 3DS 2
    • 8 - Intento de autenticación 3RI con 3DS 2
    01+ Opcional

    cavv String [0..200] Valor de verificación de autenticación del titular de la tarjeta. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
    01+ Opcional

    xid String [1..80] Identificador comercial electrónico de la transacción. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
    30+ Opcional

    threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
    Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
    30+ Opcional

    rreqTransStatus String [1] Estado de la transacción de la solicitud de transmisión de resultados de autenticación del usuario desde ACS (RReq). Se transmite al usar 3DS2.
    30+ Opcional

    aresTransStatus String Estado de la transacción de la respuesta ACS a la solicitud de autenticación (ARes). Se transmite al utilizar 3DS2.

    El elemento bindingInfo contiene los siguientes parámetros.

    Versión Obligatorio Nombre Tipo Descripción
    Todas Opcional

    clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
    La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
    Todas Opcional

    bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
    • Este pedido solo se puede pagar usando la vinculación;
    • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
    02+ Opcional

    authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
    02+ Opcional

    authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
    02+ Opcional

    terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
    20+ Opcional

    externalCreated Boolean Indicador que muestra si la vinculación ha sido creada en el servicio externo.

    El elemento paymentAmountInfo contiene los siguientes parámetros.

    Versión Obligatorio Nombre Tipo Descripción
    03+ Opcional

    approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
    En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
    03+ Opcional

    depositedAmount Integer [1..12] Importe del débito en unidades mínimas de moneda (por ejemplo, en kopeks).
    En caso de autorización parcial, este importe puede ser menor que el importe solicitado durante el registro del pedido.
    03+ Opcional

    refundedAmount Integer [1..12] Monto del reembolso en unidades mínimas de moneda.
    03+ Opcional

    paymentState String Estado del pedido, el parámetro puede tomar los siguientes valores:
    • CREATED - pedido creado (pero no pagado);
    • APPROVED - pedido aprobado (fondos en la cuenta del comprador bloqueados);
    • DEPOSITED - pedido completado (dinero debitado de la cuenta del comprador);
    • DECLINED - pedido rechazado;
    • REVERSED - pedido rechazado;
    • REFUNDED - devolución de fondos.
    18+ Opcional

    totalAmount Integer [1..20] Importe del pedido más comisión, si la hubiera.

    El elemento bankInfo contiene los siguientes parámetros.

    Versión Obligatoriedad Nombre Tipo Descripción
    03+ Opcional

    bankName String [1..50] Nombre del banco emisor.
    03+ Opcional

    bankCountryCode String [1..4] Código del país del banco emisor.
    03+ Opcional

    bankCountryName String [1..160] País del banco emisor.

    El elemento payerData contiene los siguientes parámetros.

    Versión Obligatoriedad Nombre Tipo Descripción
    13+ Opcional

    email String [1..40] Correo electrónico del pagador.
    13+ Opcional

    phone String [7..15] Número de teléfono del titular de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De esta manera, son posibles los siguientes valores:
    • +35799988877;
    • 0035799988877;
    • 35799988877.

    Para pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del titular de la tarjeta.
    13+ Opcional

    postAddress String [1..255] Dirección de entrega.
    38+ Opcional

    paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

    El bloque efectyOrderInfo contiene los siguientes parámetros.

    Versión Obligatoriedad Nombre Tipo Descripción
    23+ Opcional referenceNumber Integer Número de referencia Efecty del pedido, generado en el lado de Efecty
    23+ Opcional referenceDate Integer Fecha/hora de creación de la referencia
    23+ Opcional referenceStatus String Estado del pedido Efecty
    23+ Opcional referenceTerm Integer Tiempo de vida del pedido Efecty (en horas)
    23+ Opcional networkID Integer Identificador de la red de recepción de pago en efectivo (para Efecty valor constante - 1)
    23+ Opcional networkName String Nombre de la red de recepción de pago en efectivo (para Efecty valor constante - efecty)

    El elemento pluginInfo (objeto JSON) está presente en la respuesta si el pago fue realizado a través de un plugin de pago. Contiene los siguientes parámetros.

    Versión Obligatoriedad Nombre Tipo Descripción
    28+ Opcional

    name String [1..32] Denominación única del plugin de pago.
    28+ Opcional

    params Object Los parámetros para el método de pago específico deben transmitirse de la siguiente manera {"param":"value","param2":"value2"}.

    Descripción de parámetros en el objeto orderBundle:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    orderCreationDate String [19] Fecha de creación del pedido en formato YYYY-MM-DDTHH:MM:SS.
    Opcional

    customerDetails Object Bloque que contiene los atributos del cliente. La descripción de los atributos de la etiqueta se proporciona a continuación.
    Obligatorio

    cartItems Object Objeto que contiene atributos de productos en el carrito. La descripción de elementos anidados se proporciona a continuación.

    Descripción de parámetros en el objeto loyalties:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    bonusAmountForCredit String [0..18] Suma total de bonos para todos los productos de este positionId para acreditar en la cuenta de bonos del cliente en unidades mínimas de moneda.
    Opcional

    bonusAmountForDebit String [0..18] Cantidad total de bonificaciones para todos los productos de este positionId para el débito de la cuenta de bonificaciones del cliente en unidades mínimas de moneda.
    Obligatorio

    bonusAmountRefunded String [0..18] Suma total de bonos devueltos para el positionId dado en unidades mínimas de moneda.

    Descripción de parámetros en el objeto customerDetails:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    contact String [0..40] Método de contacto preferido por el cliente.
    Opcional fullName String [1..100] Nombres y apellidos del pagador.
    Opcional

    passport String [1..100] Serie y número del pasaporte del pagador en el siguiente formato: 2222888888
    Opcional

    deliveryInfo Object Objeto que contiene los atributos de la dirección de entrega. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de los parámetros en el objeto deliveryInfo:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    deliveryType String [1..20] Método de entrega.
    Obligatorio

    country String [2] Código de país de dos letras para la entrega.
    Obligatorio

    city String [0..40] Ciudad de destino.
    Obligatorio

    postAddress String [1..255] Dirección de entrega.

    Descripción de parámetros en el objeto cartItems:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de parámetros en el objeto items:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
    Obligatorio

    name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
    No obligatorio

    itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
    Obligatorio

    quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
    No obligatorio

    itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
    No obligatorio

    itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
    No obligatorio

    depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
    No obligatorio

    itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
    Obligatorio

    itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

    Descripción de los parámetros en el objeto quantity:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
    Obligatorio

    measure String [1..20] Unidad de medida de la cantidad por posición.

    Descripción de parámetros en el objeto itemDetails:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data language=en

    Ejemplo de respuesta

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderNumber": "7005",
      "orderStatus": 2,
      "actionCode": 0,
      "actionCodeDescription": "",
      "amount": 2000,
      "currency": "978",
      "date": 1617972915659,
      "orderDescription": "",
      "merchantOrderParams": [],
      "transactionAttributes": [],
      "attributes": [
        {
          "name": "mdOrder",
          "value": "01491d0b-c848-7dd6-a20d-e96900a7d8c0"
        }
      ],
      "cardAuthInfo": {
        "maskedPan": "411111**1111",
        "expiration": "203412",
        "cardholderName": "TEST CARDHOLDER",
        "approvalCode": "12345678",
        "pan": "411111**1111"
      },
      "bindingInfo": {
        "clientId": "259753456",
        "bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
      },
      "authDateTime": 1617973059029,
      "terminalId": "123456",
      "authRefNum": "714105591198",
      "paymentAmountInfo": {
        "paymentState": "DEPOSITED",
        "approvedAmount": 2000,
        "depositedAmount": 2000,
        "refundedAmount": 0
      },
      "bankInfo": {
        "bankCountryCode": "UNKNOWN",
        "bankCountryName": "Unknown"
      }
    }

    Gestión de pedidos

    Finalización del pedido

    Para finalizar un pedido preautorizado se utiliza la solicitud https://dev.bpcbt.com/payment/rest/deposit.do.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de la solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Condición

    orderId String [1..36] Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    merchantLogin String [1..255] Para realizar ciertas acciones con el pago del pedido en nombre de otro comerciante, especifique su login (para la cuenta API) en este parámetro.
    Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Obligatorio

    amount String [0..12] Monto de finalización en unidades mínimas de moneda (por ejemplo, en kopecks). El monto de finalización debe corresponder al monto total de todos los productos para los cuales se realiza la finalización. Si en la solicitud se especifica amount=0, se formará una finalización por todo el monto del pedido.
    Opcional

    depositItems Object Objeto que contiene los atributos de los productos en el carrito. A continuación se proporciona la descripción de los atributos incluidos.
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Opcional

    currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
    Opcional

    jsonParams Object Conjunto de atributos adicionales de forma arbitraria, estructura:
    jsonParams={"param_1_name":"param_1_value",...,"param_n_name":"param_n_value"}
    Pueden ser transmitidos al Centro de Procesamiento, para el procesamiento posterior (se requiere configuración adicional - póngase en contacto con el soporte).
    Algunos atributos predefinidos de jsonParams:
    • backToShopUrl - añade a la página de pago un botón que devolverá al portador de la tarjeta a la URL transmitida en este parámetro
    • backToShopName - configura la etiqueta de texto del botón Volver a la tienda por defecto, si se utiliza junto con backToShopUrl
    • installments - cantidad máxima de autorizaciones permitidas para pagos a plazos. Se requiere para crear vinculación de cuotas
    • totalInstallmentAmount - suma total de todos los pagos a plazos. El valor es necesario para guardar los datos de pago para realizar cuotas
    • recurringFrequency - cantidad mínima de días entre autorizaciones. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
    • recurringExpiry - fecha después de la cual no se permiten autorizaciones, en formato AAAAMMDD. Se requiere para crear vinculación recurrente, se recomienda para crear vinculación de cuotas (si se utiliza 3DS2, el parámetro es obligatorio).
    • paymentWay - método de pago. Para realizar forzosamente un pago MOTO es necesario transmitir el valor CARD_MOTO.

    Descripción de los parámetros en el objeto deposititems:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de parámetros en el objeto items:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
    Obligatorio

    name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
    No obligatorio

    itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
    Obligatorio

    quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
    No obligatorio

    itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
    No obligatorio

    itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
    No obligatorio

    depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
    No obligatorio

    itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
    Obligatorio

    itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

    Descripción de parámetros en el objeto itemDetails:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

    Descripción de parámetros en el objeto itemDetailsParams:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    value String [1..2000] Información adicional sobre la posición de mercancías.
    Obligatorio

    name String [1..255] Denominación del parámetro de descripción de detalle de la posición de mercancía

    Descripción de los parámetros en el objeto quantity:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
    Obligatorio

    measure String [1..20] Unidad de medida de la cantidad por posición.

    Parámetros de la respuesta

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/deposit.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data amount=2000 \
      --data orderId=01492437-d2fb-77fa-8db7-9e2900a7d8c0 \
      --data language=en

    Ejemplo de respuesta

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Cancelación de pago

    Para la cancelación de pago se utiliza la solicitud https://dev.bpcbt.com/payment/rest/reverse.do. La cancelación es posible solo durante un período determinado de tiempo después del pago. Póngase en contacto con el Soporte para conocer el período exacto, ya que varía.


    Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/x-www-form-urlencoded

    El pago se puede cancelar solo una vez. Si termina con error, entonces las operaciones posteriores de cancelación de pago no funcionarán.

    La disponibilidad de esta función es posible por acuerdo con el banco. La cancelación puede ejecutarse solo por usuarios a los que se les otorgaron los permisos de sistema correspondientes.

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Condición

    orderId String [1..36] Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    merchantLogin String [1..255] Para cancelar un pedido en nombre de otro comerciante, especifique su login (para cuenta API) en este parámetro.
    Solo se puede usar si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Opcional

    jsonParams String Los campos para almacenar datos adicionales deben pasarse de la siguiente manera: {"param":"value","param2":"value2"}.
    Opcional

    amount String [0..12] Importe de cancelación en unidades mínimas de moneda (por ejemplo, en kopeks). El importe de cancelación debe ser menor o igual al importe autorizado del pedido (para pedidos de dos etapas - el importe total preautorizado del pedido).
    Opcional

    currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/reverse.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data language=en

    Ejemplo de respuesta

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Devolución de fondos

    Utilice https://dev.bpcbt.com/payment/rest/refund.do` para enviar solicitudes de devolución de fondos.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    No se puede realizar la devolución de fondos para pedidos que inicien pagos regulares, ya que en este caso no se produce el débito de fondos.

    Por esta solicitud los fondos del pedido especificado serán devueltos al pagador. La solicitud terminará con error si los fondos de este pedido no fueron debitados. El sistema permite devolver fondos más de una vez, pero en total no más que el monto inicial del débito.

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Condición

    orderId String [1..36] Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Condición

    merchantLogin String [1..255] Para realizar ciertas acciones con el pago del pedido en nombre de otro comerciante, especifique su login (para la cuenta API) en este parámetro.
    Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.

    Es necesario transmitir orderId o orderNumber+merchantLogin.

    Obligatorio

    amount String [0..12] Importe del reembolso en unidades mínimas de moneda (por ejemplo, en kopecs). El importe del reembolso debe ser menor o igual al importe del pedido (para pedidos de dos etapas - el importe total de finalización del pedido). Si en la solicitud se indica amount=0, se devolverá todo el importe del pedido.
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Opcional

    jsonParams String Los campos para almacenar datos adicionales deben pasarse de la siguiente manera: {"param":"value","param2":"value2"}.
    Opcional

    expectedDepositedAmount Integer [1..12] El parámetro sirve para determinar que la solicitud es repetida. Si se pasa el parámetro, su valor se compara con el valor actual de depositedAmount en el pedido. La operación se ejecutará solo en el caso de que los valores coincidan. Si dos devoluciones llegan con el mismo expectedDepositedAmount, se ejecutará solo una devolución. Esta devolución cambiará el valor de depositedAmount, y luego la segunda devolución será rechazada.
    Opcional

    externalRefundId String [1..32] Identificador de devolución. Al intentar la devolución se verifica externalRefundId: si existe, se devuelve una respuesta exitosa con los datos sobre la devolución, si no — se efectúa la devolución.
    Opcional

    currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
    Opcional

    refundItems Object Objeto para transmitir información sobre productos devueltos - número de posición del producto en la solicitud, nombre, detalles, unidad de medida, cantidad, moneda, código del producto, beneficio del agente.

    El parámetro refundItems incluye:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    items Object Elemento del array con atributos de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de parámetros en el objeto items:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    positionId Integer [1..12] Identificador único de la posición del producto en el carrito.
    Obligatorio

    name String [1..255] Denominación o descripción de la partida de mercancía en forma libre.
    No obligatorio

    itemDetails Object Objeto con parámetros de descripción de la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
    Obligatorio

    quantity Object Elemento que describe la cantidad total de posiciones de mercancías de un positionId y sus unidades de medida. La descripción de los elementos anidados se presenta a continuación.
    No obligatorio

    itemAmount Integer [1..12] Suma del costo de todas las posiciones de mercancías de un positionId en unidades mínimas de moneda. itemAmount es obligatorio para la transmisión, solo si no se transmitió el parámetro itemPrice. En caso contrario, la transmisión de itemAmount no es requerida. Si en la solicitud se transmiten ambos parámetros: itemPrice e itemAmount, entonces itemAmount debe ser igual a itemPrice * quantity, en caso contrario la solicitud finalizará con error.
    No obligatorio

    itemPrice Integer [1..18] Suma del costo de la posición de mercancía de un positionId en dinero en unidades mínimas de moneda.
    No obligatorio

    depositedItemAmount String [1..18] Importe del débito para un positionId en unidades mínimas de moneda (por ejemplo, en copecks).
    No obligatorio

    itemCurrency Integer [3] Código de moneda ISO 4217. Si no se especifica, se considera igual a la moneda del pedido.
    Obligatorio

    itemCode String [1..100] Número (identificador) de la posición de mercancía en el sistema de la tienda.

    Descripción de parámetros en el objeto itemAttributes:

    El parámetro itemAttributes debe contener un array attributes, y ya en este array están ubicados los atributos de la posición de mercancía (ver ejemplo y tabla abajo).

    "itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    paymentMethod Integer [1..2] Tipo de pago, valores disponibles:
    • 1 - prepago completo;
    • 2 - prepago parcial;
    • 3 - anticipo;
    • 4 - pago completo;
    • 5 - pago parcial con pago posterior a crédito;
    • 6 - sin pago con pago posterior a crédito;
    • 7 - pago con pago posterior a crédito.
    Obligatorio
    Condición

    nomenclature String [1..95] Código de nomenclatura de mercancías en representación hexadecimal con espacios. Longitud máxima – 32 bytes. Obligatorio, si se transmite markQuantity.
    No obligatorio

    markQuantity Object Cantidad fraccionaria del producto marcado.
    No obligatorio

    userData String [1..64] Valor del requisito del usuario. Solo se puede transmitir después de la coordinación con el TAG_N.
    No obligatorio

    agent_info Object Objeto con datos sobre el agente de pago para la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.
    No obligatorio

    supplier_info Object Objeto con datos sobre el proveedor para la posición de mercancía. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de los parámetros en el objeto agent_info:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    type Integer Tipo de agente, valores disponibles:
    • 1 - agente de pago bancario;
    • 2 - subagente de pago bancario;
    • 3 - agente de pago;
    • 4 - subagente de pago;
    • 5 - apoderado;
    • 6 - comisionista;
    • 7 - otro agente.
    Opcional

    paying Object Objeto con datos sobre el agente de pago. La descripción de los elementos anidados se proporciona a continuación.
    Opcional

    paymentsOperator Object Objeto con información sobre el operador de recepción de pagos. La descripción de los elementos anidados se proporciona a continuación.
    Opcional

    MTOperator Object Objeto con datos sobre el Operador de traducción. La descripción de los elementos anidados se proporciona a continuación.

    Descripción de parámetros en el objeto paying:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    operation String [1..24] Nombre de la transacción del agente de pago.
    Opcional

    phones Array of strings Matriz de números de teléfono del agente de pagos en formato +N.

    Descripción de parámetros en el objeto paymentsOperator:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    phones Array of strings Matriz de números de teléfono del agente de pago en formato +N.

    Descripción de parámetros en el objeto MTOperator:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    phones Array of strings Matriz de números de teléfono del operador de traducción en formato +N.
    Opcional

    name String [1..256] Denominación del operador de transferencia.
    Opcional

    address String [1..256] Dirección del operador de transferencia.
    Opcional

    inn String [10..12] NIF del operador de transferencia.

    Descripción de parámetros en el objeto supplier_info:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    phones Array of strings Matriz de números de teléfono del proveedor en formato +N.
    Opcional

    name String [1..256] Denominación del proveedor.
    Opcional

    inn Integer [10..12] INN del proveedor

    Descripción de los parámetros del objeto markQuantity.

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    numerator Integer [1..12] Numerador de la parte fraccionaria del objeto de pago.
    Obligatorio

    denominator Integer [1..12] Denominador de la parte fraccionaria del objeto de pago.

    Descripción de los parámetros en el objeto quantity:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    value Number [1..18] Cantidad de posiciones de mercancías de dicho positionId. Para indicar números fraccionarios utilice el punto decimal. Se permite un máximo de 3 dígitos después del punto.
    Obligatorio

    measure String [1..20] Unidad de medida de la cantidad por posición.

    Valores posibles del parámetro measure:

    Valor Descripción
    0 Se aplica a posiciones que pueden ser realizadas individualmente o por unidades separadas, así como si el objeto de pago es un artículo sujeto a marcado de identificación obligatorio.
    10 Gramo
    11 Kilogramo
    12 Tonelada
    20 Centímetro
    21 Decímetro
    22 Metro
    30 Centímetro cuadrado
    31 Decímetro cuadrado
    32 Metro cuadrado
    40 Mililitro
    41 Litro
    42 Metro cúbico
    50 Kilovatio hora
    51 Gigacaloría
    70 Día
    71 Hora
    72 Minuto
    73 Segundo
    80 Kilobyte
    81 Megabyte
    82 Gigabyte
    83 Terabyte
    255 Se aplica a otras unidades de medida

    Descripción de parámetros en el objeto itemDetails:

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    itemDetailsParams Object Parámetro que describe información adicional sobre la posición de mercancía. La descripción de los elementos anidados se presenta a continuación.

    Descripción de parámetros en el objeto itemDetailsParams:

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    value String [1..2000] Información adicional sobre la posición de mercancías.
    Obligatorio

    name String [1..255] Denominación del parámetro de descripción de detalle de la posición de mercancía

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/refund.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data currency=978\
      --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data amount=2000 \
      --data language=en

    Ejemplo de respuesta

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Reembolso instantáneo

    Utilice la solicitud https://dev.bpcbt.com/payment/rest/instantRefund.do para reembolsar fondos por un pedido. Con esta solicitud los fondos del pedido serán devueltos al pagador.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Obligatorio

    amount Integer [0..12] Monto del reembolso en unidades mínimas de moneda (por ejemplo, en kopeks).
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Opcional

    currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
    Condición

    orderNumber String [1..36] Número de pedido (ID) en el sistema del vendedor debe ser único para cada vendedor registrado en la Pasarela de Pagos.
    Si el número de pedido se forma del lado del comerciante, este parámetro es opcional.
    Opcional

    bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
    • Este pedido solo se puede pagar usando la vinculación;
    • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
    Condición

    seToken String [1..8192] Datos cifrados de la tarjeta, introducidos por el cliente en el lado del comerciante. Deben ser transmitidos si se utilizan en lugar de los datos de la tarjeta: pan, cvc, expiry y cardHolderName.
    Combinaciones permitidas de seToken:
    • timestamp/uuid/PAN/CVV/EXPDATE
    • timestamp/uuid/PAN//EXPDATE
    • timestamp/uuid//CVV///bindingId
    • timestamp/uuid/////bindingId

    MdOrder no debe estar presente en seToken. Si se especifica bindingId, entonces en lugar de mdOrder se indica un valor vacío //bindingId.
    Para más detalles sobre la generación de seToken ver aquí.
    Condición

    pan String [1..19] Número de tarjeta enmascarado. Obligatorio si no se han pasado ni seToken ni bindingId.
    Condición

    cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta. Es obligatorio si el comerciante no tiene permiso para realizar pagos sin CVC. Obligatorio si no se transmiten ni seToken ni bindingId.
    Se permiten solo dígitos.
    Condición

    expiry Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Obligatorio, si no se han transmitido ni seToken, ni bindingId.
    Condición

    cardHolderName String [1..26] Nombre del portador de la tarjeta en letras latinas. Obligatorio si no se han transmitido ni seToken ni bindingId.
    Opcional

    jsonParams String Los campos para almacenar datos adicionales deben pasarse de la siguiente manera: {"param":"value","param2":"value2"}.

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.
    Opcional

    orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
    Opcional

    orderStatus Object Bloque con información sobre el estado del pedido. Ver parámetros anidados.

    A continuación se presentan los parámetros del bloque orderStatus.

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
    Opcional

    rrn Integer [1..12] Reference Retrieval Number - identificador de transacción asignado por el banco adquirente.
    Opcional

    ErrorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica éxito en el procesamiento;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    ErrorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se establece en el parámetro language de la solicitud.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/instantRefund.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data amount=2000 \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderNumber=1218637308 \
      --data pan=4000001111111118 \
      --data cvc=123 \
      --data expiry=203012 \
      --data cardHolderName=TEST CARDHOLDER \
      --data language=en

    Ejemplo de respuesta - Reembolso instantáneo exitoso y obtención exitosa del estado del pedido

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
      "orderStatus": {
        "ErrorCode": "7",
        "ErrorMessage": "System error",
      }
    }

    Ejemplo de respuesta - Reembolso instantáneo exitoso y obtención NO exitosa del estado del pedido

    {
      "errorCode": "0",
      "errorMessage": "Success",
      "orderId": "04899a8a-3bfd-7ceb-ac10-9e6909017350",
      "orderStatus": {
        "ErrorCode": "7",
        "ErrorMessage": "System error",
      }
    }

    Ejemplo de respuesta - Reembolso instantáneo no exitoso (por ejemplo, error de validación)

    {
      "errorCode": "5",
      "errorMessage": "Access denied"
    }

    Cancelación de pedido

    Para cancelar un pedido aún no pagado, utilice la solicitud https://dev.bpcbt.com/payment/rest/decline.do. Solo se puede rechazar un pedido que no haya sido completado. Después de la ejecución exitosa de esta solicitud, el pedido pasa al estado DECLINED.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Opcional

    merchantLogin String [1..255] Para registrar un pedido a nombre de otro comerciante, especifique su login (para la cuenta API) en este parámetro.
    Se puede utilizar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Obligatorio

    orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
    Obligatorio

    orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Obligatorio

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/decline.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderId=8cf0409e-857e-7f95-8ab1-b6810009d884 \
      --data orderNumber=12345678 \
      --data merchantLogin=merch_test418 \
      --data language=en

    Ejemplo de respuesta

    {
      "errorCode": 0,
      "errorMessage":"Success"
    }

    Datos de pago guardados

    Las siguientes solicitudes de API permiten gestionar transacciones con datos de pago guardados. La transacción con datos de pago guardados se utiliza cuando el portador de la tarjeta autoriza al comerciante a almacenar los datos de pago para futuros pagos. Aprenda más sobre los datos de pago guardados aquí.

    Pago por vinculación

    Para el pago del pedido por vinculación se utiliza la solicitud https://dev.bpcbt.com/payment/rest/paymentOrderBinding.do.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Obligatorio

    mdOrder String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
    Obligatorio

    bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
    • Este pedido solo se puede pagar usando la vinculación;
    • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Opcional

    ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
    Opcional

    cvc String [3] La transmisión del parámetro se determina por el tipo de pago:
    • la transmisión de cvc no está prevista para todos los pagos tokenizados;
    • la transmisión de cvc no está prevista para pagos MIT;
    • la transmisión de cvc es obligatoria por defecto para todos los demás tipos de pagos; pero si para el comerciante se elige el permiso Puede realizar pago sin confirmación CVC, entonces en tal caso la transmisión de cvc se vuelve opcional.
      Solo se permiten dígitos.
    Opcional

    threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
    Obligatorio

    tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comerciante). Valores posibles: F, U. Ver descripción de valores.
    Condición

    email String [1..40] Correo electrónico para mostrar en la página de pago. Si las notificaciones del cliente están configuradas para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
    Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
    Opcional

    mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
    Opcional

    threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
    Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).
    Opcional

    externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Si se especifica este parámetro, la transacción será procesada dependiendo de sus configuraciones en la pasarela de pago: ya sea se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
    • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente en el día o la suma diaria total de pagos del cliente.
    • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

    Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pago.
    Condición

    seToken String [1..8192] Datos cifrados de la tarjeta. Obligatorio, si se utiliza en lugar de los datos de la tarjeta.
    Parámetros obligatorios para la cadena seToken: timestamp, UUID, bindingId, MDORDER. Más detalles sobre la generación de seToken ver aquí.

    Es necesario pasar uno de los siguientes conjuntos de parámetros: pan+expirationYear+expirationMonth o seToken.
    |

    Valores posibles de tii (Para más detalles sobre los tipos de datos de pago guardados soportados por la pasarela de pagos, lea aquí).

    Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Guardado de datos de tarjeta después de transacción Nota
    F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de entrada manual No Transacción de comercio electrónico que utiliza datos de pago guardados regulares previamente guardados.
    U Pago no programado (MIT) Subsecuente Vendedor Sin entrada manual, vendedor transmite datos No Transacción de comercio electrónico que utiliza datos de pago guardados regulares previamente guardados. Se utiliza solo para pagos de una etapa.

    A continuación se presentan los parámetros del bloque clientBrowserInfo (datos sobre el navegador del cliente).

    Obligatoriedad Nombre Tipo Descripción
    Opcional userAgent String [1..2048] Agente del navegador.
    Opcional OS String Sistema operativo.
    Opcional OSVersion String Versión del sistema operativo.
    Opcional browserAcceptHeader String [1..2048] Cabecera Accept, que informa al servidor qué formatos (o tipos MIME) soporta el navegador.
    Opcional browserIpAddress String [1..45] Dirección IP del navegador.
    Opcional browserLanguage String [1..8] Idioma del navegador.
    Opcional browserTimeZone String Zona horaria del navegador.
    Opcional browserTimeZoneOffset String [1..5] Desplazamiento de zona horaria en minutos entre la hora local del usuario y UTC.
    Opcional colorDepth String [1..2] Profundidad de color de la pantalla, en bits.
    Opcional fingerprint String Huella digital del navegador - identificador digital único del navegador.
    Opcional isMobile Boolean Valores posibles: true o false. Bandera que indica que se utiliza un dispositivo móvil.
    Opcional javaEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para java está habilitado en el navegador.
    Opcional javascriptEnabled Boolean Valores posibles: true o false. Bandera que indica que el soporte para javascript está habilitado en el navegador.
    Opcional plugins String Lista de plugins utilizados en el navegador, separados por comas.
    Opcional screenHeight Integer [1..6] Altura de la pantalla en píxeles.
    Opcional screenWidth Integer [1..6] Ancho de la pantalla en píxeles.
    Opcional screenPrint String Datos sobre los parámetros de impresión del navegador, incluyendo resolución, profundidad de color, densidad de píxeles.

    Ejemplo del bloque clientBrowserInfo:

    "clientBrowserInfo":
        {
            "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.41",
            "fingerprint":850891523,
            "OS":"Windows",
            "OSVersion":"10",
            "isMobile":false,
            "screenPrint":"Current Resolution: 1536x864, Available Resolution: 1536x824, Color Depth: 24, Device XDPI: undefined, Device YDPI: undefined",
            "colorDepth":24,
            "screenHeight":"864",
            "screenWidth":"1536",
            "plugins":"PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer, WebKit built-in PDF",
            "javaEnabled":false,
            "javascriptEnabled":true,
            "browserLanguage":"it-IT",
            "browserTimeZone":"Europe/Rome",
            "browserTimeZoneOffset":-120,
            "browserAcceptHeader":"gzip",
            "browserIpAddress":"x.x.x.x"
        }

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.
    Opcional

    redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
    Opcional

    info String En caso de respuesta exitosa. Resultado del intento de pago. A continuación se presentan los posibles valores.
    • Su pago ha sido procesado, se está redirigiendo...
    • Operación rechazada. Verifique los datos ingresados, suficiencia de fondos en la tarjeta y repita la operación. Se está redirigiendo...
    • Lo sentimos, el pago no puede ser realizado. Se está redirigiendo...
    • Operación rechazada. Contacte con la tienda. Se está redirigiendo...
    • Operación rechazada. Contacte con el banco emisor de la tarjeta. Se está redirigiendo...
    • Operación imposible. La autenticación del portador de la tarjeta no ha sido exitosa. Se está redirigiendo...
    • No hay conexión con el banco. Reintente más tarde. Se está redirigiendo...
    • Tiempo de espera para ingreso de datos expirado. Se está redirigiendo...
    • No se recibió respuesta del banco. Reintente más tarde. Se está redirigiendo...
    Opcional

    error String [1..512] Mensaje de error (si se devolvió un error en la respuesta) en el idioma transmitido en la solicitud.
    Opcional

    processingErrorType String Tipo de error de procesamiento. Se transmite si el error surge del lado del procesamiento, no en la pasarela de pagos, mientras que el número de intentos de pago no se ha excedido y aún no ha habido redirección a la página final.
    Opcional

    displayErrorMessage String Mensaje de error mostrado.
    Opcional*

    errorTypeName String Parámetro necesario para la página frontend para determinar el tipo de error. Obligatorio para pagos fallidos.
    Opcional

    acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
    Opcional

    paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
    Opcional

    termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
    Opcional

    bindingId String [1..255] Identificador del enlace creado al pagar el pedido o utilizado para el pago. Presente solo si el comerciante tiene permiso para trabajar con enlaces.

    El elemento payerData contiene los siguientes parámetros.

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

    Ejemplos

    Ejemplo de solicitud

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/paymentOrderBinding.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data userName=test_user \
      --data password=test_user_password \
      --data mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data bindingId=01491394-63a6-7d45-a88f-7bce00a7d8c0 \
      --data cvc=123 \
      --data tii=F \
      --data language=en

    Ejemplo de respuesta exitosa para pago SSL (sin 3-D Secure)

    {
      "redirect": "https://dev.bpcbt.com/payment/merchants/temp/finish.html?orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0&lang=en",
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0
    }

    Ejemplo de respuesta exitosa para pago 3D-Secure

    {
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0,
      "acsUrl": "https://theacsserver.com/acs/auth/start.do",
      "paReq": "eJxVUu9vgjAQ/...4BaHYvAI=",
      "termUrl": "https://dev.bpcbt.com/payment/rest/finish3ds.do?lang=en"
    }

    Ejemplo de respuesta con error

    {
      "error": "[clientId] is empty",
      "errorCode": 5,
      "is3DSVer2": false,
      "errorMessage": "[clientId] is empty"
    }

    Obtención de vinculaciones

    Para obtener la lista de vinculaciones de cliente se utiliza la solicitud https://dev.bpcbt.com/payment/rest/getBindings.do.


    Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de solicitud

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
    La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
    Opcional

    language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
    Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
    Obligatorio

    userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
    Opcional

    bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
    • Este pedido solo se puede pagar usando la vinculación;
    • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
    Opcional

    bindingType String Tipo de vinculación que se espera en la respuesta (si no se especifica, se devuelven todos los tipos). Valores posibles:
    • C – vinculación normal.
    • R – vinculación recurrente.
    • I - vinculación para pagos a plazos.
    Opcional

    showExpired Boolean Parámetro true/false que determina si mostrar las vinculaciones con tarjetas vencidas. Valor por defecto: false.
    Opcional

    merchantLogin String [1..255] Para obtener la lista de credenciales guardadas por el cliente de otro comerciante, especifique en este parámetro el login del comerciante (para la cuenta API).
    Se puede usar solo si tiene permiso para ver las transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario. Tanto usted como el vendedor especificado deben tener permiso para trabajar con credenciales guardadas (enlaces).

    Parámetros de respuesta

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
    • valor 0 - indica el éxito del procesamiento de la solicitud;
    • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
    Puede estar ausente si el resultado no causó errores.
    Opcional

    errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
    El idioma de descripción se especifica en el parámetro language de la solicitud.
    Opcional

    bindings Object Elemento con bloques que contienen parámetros de enlaces. Ver descripción a continuación.

    El elemento bindings contiene los siguientes parámetros.

    Obligatoriedad Nombre Tipo Descripción
    Opcional

    maskedPan String [1..19] Número de tarjeta enmascarado utilizado para el pago. Contiene los primeros 6 y últimos 4 dígitos reales del número de tarjeta en formato XXXXXX**XXXX.
    Opcional

    paymentWay String Método de realización del pago (pago con introducción de datos de tarjeta, pago por vinculación, etc.). Los valores adicionales posibles del parámetro se presentan abajo
    Obligatorio

    bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
    • Este pedido solo se puede pagar usando la vinculación;
    • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
    Obligatorio

    expiryDate String [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
    Opcional

    bindingCategory String Propósito de la vinculación esperada en la respuesta. Valores posibles: COMMON, INSTALLMENT, RECURRENT.
    Opcional

    clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
    La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
    Opcional

    displayLabel String [1..16] Los últimos 4 dígitos del PAN original antes de la tokenización.
    Opcional

    paymentSystem String Nombre del sistema de pago. Son posibles los siguientes valores:
    • VISA
    • MASTERCARD
    • AMEX
    • JCB
    • CUP

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
        --url https://dev.bpcbt.com/payment/rest/getBindings.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data clientId=dos-clientos \
        --data bindingType=C

      Ejemplo de respuesta exitosa

      {
      "errorCode":"0",
      "errorMessage":"Success",
      "bindings": [
          {
                  "bindingId": "44779116-41a5-7798-b072-c0a30760e2b0",
                  "maskedPan": "411111**1111",
                  "expiryDate": "203412",
                  "paymentWay": "TOKEN_PAY",
                  "paymentSystem": "CARD",
                  "displayLabel": "XXXXXXXXXXXX1111",
                  "bindingCategory": "COMMON"
              }
          ]
       }

      Obtención de vinculaciones por número de tarjeta

      Para obtener la lista de todas las vinculaciones de tarjeta bancaria se utiliza la solicitud https://dev.bpcbt.com/payment/rest/getBindingsByCardOrId.do.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

      Parámetros de solicitud

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
      Obligatorio

      password String [1..30] Contraseña de la cuenta API del vendedor.
      Condición

      pan String [1..19] Número de tarjeta de pago (obligatorio, si bindinId no se transmite). El valor pan reemplaza el valor bindingId.
      Condición

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
      Opcional

      showExpired Boolean Parámetro true/false que determina si mostrar las vinculaciones con tarjetas vencidas. Valor por defecto: false.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Opcional

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.
      Opcional

      bindings Object Elemento con bloques que contienen parámetros de vínculos: bindingId, maskedPan, expiryDate, clientId
      Opcional

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
      Opcional

      maskedPan String [1..19] Número de tarjeta enmascarado utilizado para el pago. Contiene los primeros 6 y últimos 4 dígitos reales del número de tarjeta en formato XXXXXX**XXXX.
      Opcional

      expiryDate String [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
      Opcional

      clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
      La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
        --url https://dev.bpcbt.com/payment/rest/getBindingsByCardOrId.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data pan=4000001111111118

      Ejemplo de solicitud exitosa

      {
      "errorCode":"0",
      "errorMessage":"Success",
      "bindings": [
          {
              "bindingId":"69d6a793-afb5-79be-8ce7-63ff00a8656a",
              "maskedPan":"400000**1118",
              "expiryDate":"203012",
              "clientId":"12"
              }
          {
              "bindingId":"6a8c0738-cc88-4200-acf6-afc264d66cb0",
              "maskedPan":"400000**1118",
              "expiryDate":"203012",
              "clientId":"13"
              }
          ]
       }

      Desactivación de vinculación

      Para desactivar una vinculación existente se utiliza la solicitud https://dev.bpcbt.com/payment/rest/unBindCard.do.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

      Parámetros de solicitud

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
      Obligatorio

      password String [1..30] Contraseña de la cuenta API del vendedor.
      Obligatorio

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Opcional

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
        --url https://dev.bpcbt.com/payment/rest/unBindCard.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

      Ejemplo de respuesta (error)

      {
      "errorCode":"2",
      "errorMessage":"Vinculación no activa",
      }

      Activación de vinculación

      La solicitud utilizada para activar una vinculación existente que fue desactivada se llama https://dev.bpcbt.com/payment/rest/bindCard.do.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

      Parámetros de solicitud

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
      Obligatorio

      password String [1..30] Contraseña de la cuenta API del vendedor.
      Obligatorio

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Opcional

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
        --url https://dev.bpcbt.com/payment/rest/bindCard.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

      Ejemplo de respuesta (error)

      {
        "errorCode":"2",
        "errorMessage":"Binging is active",
      }

      Extensión del período de validez de la vinculación

      La solicitud utilizada para extender el período de validez de una vinculación existente se llama https://dev.bpcbt.com/payment/rest/extendBinding.do.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

      Parámetros de solicitud

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
      Obligatorio

      password String [1..30] Contraseña de la cuenta API del vendedor.
      Obligatorio

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
      Obligatorio

      newExpiry Integer [6] Nueva fecha (año y mes) de vencimiento en formato YYYYMM.
      Obligatorio

      language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
      Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Opcional

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
        --url https://dev.bpcbt.com/payment/rest/extendBinding.do \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data userName=test_user \
        --data password=test_user_password \
        --data bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc
        --data newExpiry=202212
        --data language=en

      Ejemplo de respuesta

      {
      "errorCode":"0",
      "errorMessage":"Success",
      }

      Pago recurrente

      Para realizar un pago recurrente se utiliza la solicitud https://dev.bpcbt.com/payment/recurrentPayment.do. La solicitud se utiliza para registrar y procesar el pago del pedido.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

      Parámetros de la solicitud

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
      Obligatorio

      password String [1..30] Contraseña de la cuenta API del vendedor.
      Obligatorio

      orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
      Opcional

      language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
      Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
      Opcional

      feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
      Obligatorio

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
      Obligatorio

      amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
      Opcional

      currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
      Opcional

      description String [1..598] Descripción del pedido en cualquier formato.
      Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
      En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
      Opcional

      preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
      • true - habilitado el pago de dos etapas;
      • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
      Si el parámetro está ausente, se realiza el pago de una etapa.
      Opcional

      autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
      Opcional

      autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
      Opcional

      features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
      • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
      • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
      • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
      • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
      • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
      • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
      • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
        Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
      Opcional

      additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
      { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
      Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de pagos. Ver parámetros anidados.
      Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional preOrderPayerData Object Objeto que contiene datos del pedido previo. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional

      billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
      Valores posibles:
      • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
      • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

      A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
      Opcional

      billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
      Opcional

      billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
      Opcional

      billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
      Opcional

      billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
      Opcional

      billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
      Opcional

      billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
      Obligatorio

      payerAccount String [1..32] Número de cuenta del remitente.
      Opcional

      payerLastName String [1..64] Apellido del remitente.
      Opcional

      payerFirstName String [1..35] Nombre del remitente.
      Opcional

      payerMiddleName String [1..35] Patronímico del remitente.
      Opcional

      payerCombinedName String [1..99] Nombre completo del remitente.
      Opcional

      payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
      Valores posibles:
      • IDTP1 - Pasaporte
      • IDTP2 - Licencia de conducir
      • IDTP3 - Tarjeta social
      • IDTP4 - Tarjeta de identidad de ciudadano
      • IDTP5 - Certificado de conducción de negocios
      • IDTP6 - Certificado de refugiado
      • IDTP7 - Permiso de residencia
      • IDTP8 - Pasaporte extranjero
      • IDTP9 - Pasaporte oficial
      • IDTP10 - Pasaporte temporal
      • IDTP11 - Pasaporte de marino
      Opcional

      payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
      Opcional

      payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

      Descripción de los parámetros del objeto shippingPayerData:

      Obligatoriedad Nombre Tipo Descripción
      Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
      Opcional shippingCountry String [1..50] País del cliente
      Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
      Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
      Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
      Valores posibles:
      • 01 - entrega a la dirección de pago del titular de la tarjeta.
      • 02 - entrega a otra dirección verificada por el Comerciante.
      • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
      • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
      • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
      • 06 - billetes de viaje y eventos que no se pueden entregar.
      • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
      Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
      Valores posibles:
      • 01 - distribución digital
      • 02 - entrega el mismo día
      • 03 - entrega al día siguiente
      • 04 - entrega dentro de 2 días después del pago y más tarde.
      Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

      Descripción de los parámetros del objeto preOrderPayerData:

      Obligatoriedad Nombre Tipo Descripción
      Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
      Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
      Valores posibles:
      • 01 - entrega posible;
      • 02 - entrega futura
      Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
      Valores posibles:
      • 01 - pedido colocado por primera vez;
      • 02 - pedido repetido

      Descripción de los parámetros del objeto orderPayerData.

      Obligatoriedad Nombre Tipo Descripción
      Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.

      Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      success Boolean Parámetro principal que indica que la solicitud se procesó exitosamente. Están disponibles los siguientes valores:
      • true - solicitud procesada exitosamente;
      • false - solicitud no procesada.

      Tenga en cuenta que el valor true significa que la solicitud fue procesada, no que el pedido fue pagado.
      Información más detallada sobre cómo saber si el pago fue exitoso o no, está disponible aquí.
      Condicional data N/A Este parámetro se devuelve solo en caso de procesamiento exitoso del pago. Ver descripción a continuación.
      Condicional error N/A Este parámetro se devuelve solo en caso de error del pago. Ver descripción a continuación.

      El elemento payerData contiene los siguientes parámetros.

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

      El bloque data contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

      El bloque error contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      code String [1..3] Código como parámetro informativo que informa sobre el error.
      Obligatorio

      description String [1..598] Explicación técnica detallada del error - el contenido de este parámetro no está destinado a ser mostrado al usuario.
      Obligatorio

      message String [1..512] Parámetro informativo que es la descripción del error para mostrar al usuario. El parámetro puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.

      Ejemplos

      Ejemplo de solicitud

      curl --request POST \
      --url https://dev.bpcbt.com/payment/recurrentPayment.do \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "userName" : "test_user",
        "password" : "test_user_password",
        "orderNumber" : "UAF-203974-DE-12",
        "language" : "EN",
        "bindingId": "bindingId",
        "amount" : 1200,
        "currency" : "978",
        "description" : "Test description",
        "additionalParameters" : {
          "firstParamName" : "firstParamValue",
          "secondParamName" : "secondParamValue"
          "email" : "email@email.com"
        }
      }'

      Ejemplo de respuesta - Exitoso

      {
          "success": true,
          "data": {
              "orderId": "f7beebe4-7c9a-43cf-8e26-67ab741f9b9e"
          },
          "orderStatus": {
              "errorCode": "0",
              "orderNumber": "UAF-203974-DE-12",
              "orderStatus": 2,
              "actionCode": 0,
              "actionCodeDescription": "",
              "amount": 12300,
              "currency": "978",
              "date": 1491333938243,
              "orderDescription": "Test description",
              "merchantOrderParams": [
                  {
                      "name": "firstParamName",
                      "value": "firstParamValue"
                  },
                  {
                      "name": "secondParamName",
                      "value": "secondParamValue"
                  }
              ],
              "attributes": [],
              "cardAuthInfo": {
                  "expiration": "203012",
                  "cardholderName": "TEST CARDHOLDER",
                  "approvalCode": "12345678",
                  "paymentSystem": "VISA",
                  "pan": "6777770000**0006"
              },
              "authDateTime": 1491333939454,
              "terminalId": "11111",
              "authRefNum": "111111111111",
              "paymentAmountInfo": {
                  "paymentState": "DEPOSITED",
                  "approvedAmount": 12300,
                  "depositedAmount": 12300,
                  "refundedAmount": 0
              },
              "bankInfo": {
                  "bankCountryName": "<unknown>"
              },
              "chargeback": false,
              "operations": [
                  {
                      "amount": 12300,
                      "cardHolder": "TEST CARDHOLDER",
                      "authCode": "123456"
                  }
              ]
          }
      }

      Error

      {
        "error": {
          "code": "10",
          "description": "Order with this number is already registered in the system.",
          "message": "Order with this number is already registered in the system."
        },
        "success": false
      }

      Pago a plazos

      Para realizar un pago a plazos se utiliza la solicitud https://dev.bpcbt.com/payment/installmentPayment.do.


      Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

      Parámetros de la solicitud

      Obligatoriedad Nombre Tipo Descripción
      Condición

      userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
      Condición

      password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
      Obligatorio

      orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
      Opcional

      language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
      Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
      Obligatorio

      bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
      • Este pedido solo se puede pagar usando la vinculación;
      • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
      Obligatorio

      amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
      Opcional

      currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
      Opcional

      description String [1..598] Descripción del pedido en cualquier formato.
      Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
      En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
      Opcional

      additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
      { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
      Obligatorio

      preAuth Boolean Parámetro que determina la necesidad de autorización previa (bloqueo de fondos en la cuenta del cliente antes de su débito). Están disponibles los siguientes valores:
      • true - habilitado el pago de dos etapas;
      • false - habilitado el pago de una etapa (el dinero se debita inmediatamente).
      Si el parámetro está ausente, se realiza el pago de una etapa.
      Opcional

      autocompletionDate String [19] Fecha y hora de finalización automática del pago de dos etapas en el siguiente formato: 2025-12-29T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
      Opcional

      autoReverseDate String [19] Fecha y hora de cancelación automática del pago de dos etapas en el siguiente formato: 2025-06-23T13:02:51. Zona horaria utilizada: UTC+0. Para habilitar el envío de este campo al sistema de procesamiento, contacte al servicio de soporte técnico.
      Opcional

      features String Funciones del pedido. Para especificar varias funciones, use este parámetro varias veces en una sola solicitud. A continuación se muestran los valores posibles.
      • VERIFY - si se pasa este valor en la solicitud de procesamiento del pedido, el titular de la tarjeta será verificado, sin embargo, no se producirá ningún débito de fondos, por lo que en este caso el parámetro amount puede tener el valor 0. La verificación permite asegurarse de que la tarjeta está en manos del titular, y posteriormente debitar fondos de esta tarjeta, sin recurrir a la verificación de datos de autenticación (CVC, 3D-Secure) al realizar pagos posteriores. Incluso si la cantidad del pago se pasa en la solicitud, no será debitada de la cuenta del cliente al pasar el valor VERIFY. Este valor también se puede usar para crear una vinculación — en este caso, el parámetro clientId también debe ser pasado. Lea más detalles aquí.
      • FORCE_TDS - Procesamiento forzoso del pago usando 3-D Secure. Si la tarjeta no soporta 3-D Secure, la transacción no pasará.
      • FORCE_SSL - Procesamiento forzoso del pago a través de SSL (sin usar 3-D Secure).
      • FORCE_FULL_TDS - Después de realizar la autenticación mediante 3-D Secure, el estado PaRes debe ser solo Y, lo que garantiza la autenticación exitosa del usuario. De lo contrario, la transacción no pasará.
      • FORCE_CREATE_BINDING - pasar este valor en la solicitud de procesamiento del pedido crea forzosamente una vinculación. Esta funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Este valor no puede pasarse en una solicitud con un bindingId existente o con bindingNotNeeded = true (causará un error de verificación). Cuando se pasa esta función, el parámetro clientId también debe ser pasado. Si en el bloque features se pasan ambos valores FORCE_CREATE_BINDING y VERIFY, entonces el pedido será creado SOLO para crear la vinculación (sin pago).
      • PARTIAL_AUTHORIZATION - para el pedido está disponible autorización parcial. Ver más detalles aquí.
      • FORCE_PAYMENT_WAY - procesamiento forzoso del pago mediante el método de pago especificado en jsonParams en el parámetro paymentWay. Para procesar tales pagos, el comerciante debe tener los permisos correspondientes.
        Por el momento se usa para el procesamiento forzoso de pagos MOTO. Para esto es necesario también pasar en jsonParams el parámetro paymentWay con el valor CARD_MOTO.
      Condición

      token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
      Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor del lado de la Pasarela de Pagos. Ver parámetros anidados.
      Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
      Opcional

      billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
      Valores posibles:
      • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
      • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

      A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
      Opcional

      billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
      Opcional

      billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
      Opcional

      billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
      Opcional

      billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
      Opcional

      billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
      Opcional

      billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
      Obligatorio

      payerAccount String [1..32] Número de cuenta del remitente.
      Opcional

      payerLastName String [1..64] Apellido del remitente.
      Opcional

      payerFirstName String [1..35] Nombre del remitente.
      Opcional

      payerMiddleName String [1..35] Patronímico del remitente.
      Opcional

      payerCombinedName String [1..99] Nombre completo del remitente.
      Opcional

      payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
      Valores posibles:
      • IDTP1 - Pasaporte
      • IDTP2 - Licencia de conducir
      • IDTP3 - Tarjeta social
      • IDTP4 - Tarjeta de identidad de ciudadano
      • IDTP5 - Certificado de conducción de negocios
      • IDTP6 - Certificado de refugiado
      • IDTP7 - Permiso de residencia
      • IDTP8 - Pasaporte extranjero
      • IDTP9 - Pasaporte oficial
      • IDTP10 - Pasaporte temporal
      • IDTP11 - Pasaporte de marino
      Opcional

      payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
      Opcional

      payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

      Descripción de los parámetros del objeto shippingPayerData:

      Obligatoriedad Nombre Tipo Descripción
      Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
      Opcional shippingCountry String [1..50] País del cliente
      Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
      Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
      Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
      Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
      Valores posibles:
      • 01 - entrega a la dirección de pago del titular de la tarjeta.
      • 02 - entrega a otra dirección verificada por el Comerciante.
      • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
      • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
      • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
      • 06 - billetes de viaje y eventos que no se pueden entregar.
      • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
      Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
      Valores posibles:
      • 01 - distribución digital
      • 02 - entrega el mismo día
      • 03 - entrega al día siguiente
      • 04 - entrega dentro de 2 días después del pago y más tarde.
      Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

      Descripción de los parámetros del objeto preOrderPayerData:

      Obligatoriedad Nombre Tipo Descripción
      Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
      Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
      Valores posibles:
      • 01 - entrega posible;
      • 02 - entrega futura
      Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
      Valores posibles:
      • 01 - pedido colocado por primera vez;
      • 02 - pedido repetido

      Descripción de los parámetros del objeto orderPayerData.

      Obligatoriedad Nombre Tipo Descripción
      Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.
      Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
      • +35799988877;
      • 0035799988877;
      • 35799988877.

      Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

      Parámetros de respuesta

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
      Obligatorio

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Obligatorio

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.
      Condición orderStatus Object Contiene parámetros del estado del pedido y se devuelve solo en el caso de que la pasarela de pagos haya reconocido todos los parámetros de la solicitud como correctos. Ver descripción a continuación.

      El bloque orderStatus contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
      • valor 0 - indica el éxito del procesamiento de la solicitud;
      • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
      Puede estar ausente si el resultado no causó errores.
      Opcional

      errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
      El idioma de descripción se especifica en el parámetro language de la solicitud.
      Opcional

      orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
      Opcional

      orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
      • 0 - pedido registrado, pero no pagado;
      • 1 - pedido solo autorizado y aún no completado (para pagos de dos etapas);
      • 2 - pedido autorizado y completado;
      • 3 - autorización cancelada;
      • 4 - se realizó una operación de devolución para la transacción;
      • 5 - autorización iniciada a través del ACS del banco emisor;
      • 6 - autorización rechazada;
      • 7 - esperando el pago del pedido;
      • 8 - finalización intermedia para múltiples finalizaciones parciales.
      Opcional

      actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
      Opcional

      actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
      Opcional

      amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
      Opcional

      currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
      Opcional

      date Integer Fecha de registro del pedido como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
      Opcional

      ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
      Opcional

      chargeback Boolean Si los fondos fueron devueltos forzosamente al comprador por el banco. Valores posibles: true, false.
      Opcional merchantOrderParams N/A Sección con atributos en la que se transmiten parámetros adicionales del comerciante. Ver descripción a continuación.
      Opcional attributes Object Atributos del pedido en el sistema de pago (número de pedido). Ver descripción a continuación.
      Opcional cardAuthInfo Object Información sobre la tarjeta de pago del comprador. Ver descripción a continuación.
      Opcional

      authDateTime Integer Fecha y hora de autorización, mostradas como el número de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
      Opcional

      terminalId String [1..10] Identificador del terminal en el sistema que procesa el pago.
      Opcional

      authRefNum String [1..24] Número de autorización del pago, asignado durante el registro del pago.
      Opcional paymentAmountInfo Object Parámetro que contiene parámetros anidados con información sobre las cantidades de confirmación, débito y devolución. Ver descripción a continuación.
      Opcional bankInfo Object Contiene el parámetro anidado bankCountryName. Ver descripción a continuación.
      Opcional bindingInfo Object Objeto que contiene información sobre la vinculación por la cual se realiza el pago. Ver descripción a continuación.
      Opcional operations Object Objeto que contiene información sobre las operaciones. Ver descripción abajo.

      El elemento payerData contiene los siguientes parámetros.

      Obligatoriedad Nombre Tipo Descripción
      Opcional

      paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

      El bloque merchantOrderParams contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      name String [1..255] Nombre del parámetro adicional del comerciante.
      Obligatorio

      value String [1..1024] Valor del parámetro adicional del vendedor - hasta 1024 caracteres.

      El bloque attributes contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      name String [1..255] Nombre del parámetro adicional.
      Obligatorio

      value String [1..1024] Valor del parámetro adicional - hasta 1024 caracteres.

      El bloque cardAuthInfo contiene los siguientes elementos.

      Obligatoriedad Nombre Tipo Descripción
      Obligatorio

      expiration Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
      Obligatorio

      cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
      Obligatorio

      approvalCode String [6] Código de autorización del sistema de pagos internacionales. Este campo tiene una longitud fija (seis caracteres) y puede contener dígitos y letras latinas.
      Obligatorio

      pan String [1..19] DPAN enmascarado: número vinculado al dispositivo móvil del comprador y que desempeña las funciones del número de tarjeta de pago en el sistema Apple Pay.
      Obligatorio

      maskedPan String [1..19] Número de tarjeta enmascarado utilizado para el pago. Contiene los primeros 6 y últimos 4 dígitos reales del número de tarjeta en formato XXXXXX**XXXX.
      Obligatorio

      paymentSystem String Nombre del sistema de pago. Son posibles los siguientes valores:
      • VISA
      • MASTERCARD
      • AMEX
      • JCB
      • CUP

        El bloque paymentAmountInfo contiene los siguientes elementos.

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        paymentState String Estado del pedido, el parámetro puede tomar los siguientes valores:
        • CREATED - pedido creado (pero no pagado);
        • APPROVED - pedido aprobado (fondos en la cuenta del comprador bloqueados);
        • DEPOSITED - pedido completado (dinero debitado de la cuenta del comprador);
        • DECLINED - pedido rechazado;
        • REVERSED - pedido rechazado;
        • REFUNDED - devolución de fondos.
        Obligatorio

        approvedAmount Integer [0..12] Suma en unidades mínimas de moneda (por ejemplo, en centavos), que fue bloqueada en la cuenta del comprador. Se utiliza solo en pagos de dos etapas.
        En caso de autorización parcial esta suma puede ser menor que la suma, solicitada durante el registro del pedido.
        Obligatorio

        depositedAmount Integer [1..12] Importe del débito en unidades mínimas de moneda (por ejemplo, en kopeks).
        En caso de autorización parcial, este importe puede ser menor que el importe solicitado durante el registro del pedido.
        Obligatorio

        refundedAmount Integer [1..12] Monto del reembolso en unidades mínimas de moneda.
        Obligatorio

        totalAmount Integer [1..20] Importe del pedido más comisión, si la hubiera.

        El bloque bankInfo contiene los siguientes elementos.

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        bankCountryName String [1..160] País del banco emisor.

        El elemento bindingInfo contiene los siguientes parámetros.

        Nombre Tipo Obligatorio Descripción
        Opcional

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
        La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
        Opcional

        bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
        • Este pedido solo se puede pagar usando la vinculación;
        • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.

        El elemento operations contiene los siguientes parámetros.

        Nombre Tipo Obligatorio Descripción
        Opcional

        amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
        Opcional

        cardHolder String [1..26] Nombre del titular de la tarjeta en letras latinas. Este parámetro se transmite solo después del pago del pedido.
        Opcional

        authCode Integer [6] Parámetro obsoleto (no se utiliza). Su valor siempre es 2 independientemente del estado del pedido y del código de autorización del sistema de procesamiento.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
          --url https://dev.bpcbt.com/payment/installmentPayment.do \
          --header 'Content-Type: application/json' \
          --data '{
          "userName": "test_user",
          "password": "test_user_password",
          "orderNumber": "UAF-203974-DE-12",
          "language": "EN",
          "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820",
          "amount": 12300,
          "currency": "978",
          "description" : "Test description",
          "additionalParameters": {
            "firstParamName": "firstParamValue",
            "secondParamName": "secondParamValue"
          }
         }'

        Ejemplos de respuesta

        {
          "errorCode": 0,
          "errorMessage": "Success",
          "orderId": "0e441115-f3bc-711c-8827-2fdc00b4f820",
          "orderStatus": {
            "errorCode": "0",
            "orderNumber": "7033",
            "orderStatus": 2,
            "actionCode": 0,
            "actionCodeDescription": "",
            "amount": 12300,
            "currency": "978",
            "date": 1618340470944,
            "orderDescription": "Test description",
            "merchantOrderParams": [
              {
                "name": "firstParamName",
                "value": "firstParamValue"
              },
              {
                "name": "secondParamName",
                "value": "secondParamValue"
              }
            ],
            "transactionAttributes": [],
            "attributes": [
              {
                "name": "mdOrder",
                "value": "0e441115-f3bc-711c-8827-2fdc00b4f820"
              }
            ],
            "cardAuthInfo": {
              "maskedPan": "400000**1118",
              "expiration": "203012",
              "cardholderName": "TEST CARDHOLDER",
              "approvalCode": "123456",
              "paymentSystem": "VISA",
              "product": "visa-product",
              "secureAuthInfo": {
                "eci": 7
              },
              "pan": "400000**1118"
            },
            "bindingInfo": {
              "clientId": "TEST CARDHOLDER",
              "bindingId": "8aa4fa8b-4d8a-76ca-b314-7bcc00b4f820"
            },
            "authDateTime": 1618340471076,
            "authRefNum": "111111111111",
            "paymentAmountInfo": {
              "paymentState": "DEPOSITED",
              "approvedAmount": 12300,
              "depositedAmount": 12300,
              "refundedAmount": 0,
              "totalAmount": 12300
            },
            "bankInfo": {
              "bankName": "ES TEST BANK",
              "bankCountryCode": "ES",
              "bankCountryName": "Spain"
            },
            "chargeback": false,
            "operations": [
              {
                "amount": 12300,
                "cardHolder": "TEST CARDHOLDER",
                "authCode": "123456"
              }
            ]
          },
          "error": false
        }

        Creación de datos de pago guardados sin pago

        Para crear datos de pago guardados sin realizar un pago se utiliza la solicitud https://dev.bpcbt.com/payment/rest/createBindingNoPayment.do.


        Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/x-www-form-urlencoded

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante. Se utiliza para implementar la funcionalidad de vínculos.
        Obligatorio

        cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
        Obligatorio

        expiryDate String [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
        Obligatorio

        pan String [1..19] Número de tarjeta de pago
        Opcional

        additionalParameters Object Parámetros adicionales del pedido, que se almacenan en el panel personal del vendedor para su posterior visualización. Cada nuevo par de nombre de parámetro y su valor debe estar separado por una coma. A continuación se muestra un ejemplo de uso.
        { "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
        Opcional

        merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
        Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
        • valor 0 - indica el éxito del procesamiento de la solicitud;
        • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
        Puede estar ausente si el resultado no causó errores.
        Opcional

        errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
        El idioma de descripción se especifica en el parámetro language de la solicitud.
        Opcional

        error Boolean Bandera que muestra que se devolvió un error en la respuesta. Valores permitidos: true o false. Toma el valor true si errorCode contiene un valor diferente de 0.
        Opcional

        bindingId String [1..255] Identificador del enlace creado al pagar el pedido o utilizado para el pago. Presente solo si el comerciante tiene permiso para trabajar con enlaces.
        Opcional

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
        La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
        Opcional

        cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
        Opcional

        expiryDate String [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
        Opcional

        maskedPan String [1..19] Número de tarjeta enmascarado utilizado para el pago. Contiene los primeros 6 y últimos 4 dígitos reales del número de tarjeta en formato XXXXXX**XXXX.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/createBindingNoPayment.do \
          --header 'Content-Type: application/x-www-form-urlencoded' \
          --data userName=test_user \
          --data password=test_user_password \
          --data clientId=159753456
          --data pan=5555555555555599
          --data expiryDate=203412
          --data pan=5555555555555599
          --data cardholderName=TEST CARDHOLDER

        Ejemplo de respuesta

        {
          "maskedPan": "555555**5599",
          "expiryDate": "203412",
          "cardholderName": "TEST CARDHOLDER",
          "clientId": "159753456",
          "bindingId": "47dbe208-e531-4997-9c36-25a5707d3cb9",
          "errorCode": 0,
          "error": false
        }

        3DS

        Finalización del pago 3DS2 a través de API

        Para finalizar el pedido 3DS2 a través de API se utiliza el método https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio

        threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
        Opcional

        threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
        Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
        Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
        • valor 0 - indica el éxito del procesamiento de la solicitud;
        • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
        Puede estar ausente si el resultado no causó errores.
        Obligatorio

        errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
        El idioma de descripción se especifica en el parámetro language de la solicitud.
        Opcional

        redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
        Opcional

        is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
          --data userName=test_user \
          --data password=test_user_password \

        Ejemplo de respuesta

        {
            "redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Ejemplo de solicitud con parámetro threeDSVer2MdOrder

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/finish3dsVer2Payment.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data threeDSServerTransId=33b17cb5-b4a5-48ac-a3b8-bc8d6d979a46 \
          --data threeDSVer2MdOrder=fbcb596f-25ba-70e7-a6cf-4fb100c305c8 \
          --data userName=test_user \
          --data password=test_user_password \

        Ejemplo de respuesta con parámetro threeDSVer2MdOrder

        {
            "redirect": "http://test.com?orderId=f61e2a41-34b9-7a2d-b4d6-83ac00c305c8&lang=en",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Continuación del pago para 3DS2

        Para continuar el pago con autorización 3DS2 se utiliza la solicitud https://dev.bpcbt.com/payment/rest/3ds/continue.do.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

        Parámetros de la solicitud

        Obligatoriedad Nombre Tipo Descripción
        Condición

        userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
        Condición

        password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
        Condición

        token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
        Obligatorio

        mdOrder String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.

        Parámetros de la respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
        • valor 0 - indica el éxito del procesamiento de la solicitud;
        • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
        Puede estar ausente si el resultado no causó errores.
        Opcional

        errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
        El idioma de descripción se especifica en el parámetro language de la solicitud.
        Opcional

        info String En caso de respuesta exitosa. Resultado del intento de pago. A continuación se presentan los posibles valores.
        • Su pago ha sido procesado, se está redirigiendo...
        • Operación rechazada. Verifique los datos ingresados, suficiencia de fondos en la tarjeta y repita la operación. Se está redirigiendo...
        • Lo sentimos, el pago no puede ser realizado. Se está redirigiendo...
        • Operación rechazada. Contacte con la tienda. Se está redirigiendo...
        • Operación rechazada. Contacte con el banco emisor de la tarjeta. Se está redirigiendo...
        • Operación imposible. La autenticación del portador de la tarjeta no ha sido exitosa. Se está redirigiendo...
        • No hay conexión con el banco. Reintente más tarde. Se está redirigiendo...
        • Tiempo de espera para ingreso de datos expirado. Se está redirigiendo...
        • No se recibió respuesta del banco. Reintente más tarde. Se está redirigiendo...
        Opcional

        redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
        Condición

        acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
        Condición

        packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/3ds/continue.do \
          --header 'Content-Type: application/x-www-form-urlencoded' \
          --data mdOrder=eb708f0a-2683-7437-b458-f80400b40dc0 \
          --data userName=test-user \
          --data password=test-password

        Ejemplo de respuesta (3DS2 completo, solicitud exitosa)

        {
            "info": "Your order is proceeded, redirecting...",
            "errorCode": 0,
            "acsUrl": "https://bestbank.com/acs2/acs/creq",
            "is3DSVer2": true,
            "packedCReq": "eyJ0aHJlZURTU...6IjA1In0"
        }

        Ejemplo de respuesta (frictionless 3DS2, solicitud exitosa)

        {
            "redirect": "https://merchant.com/returnUrl?orderId=9666296c-e4f1-7285-a57c-20eb00b40dc1&lang=en",
            "info": "Your order is proceeded, redirecting...",
            "errorCode": 0,
            "is3DSVer2": true
        }

        Ejemplo de respuesta (error - estado desconocido en ARes)

        {
            "redirect": "https://merchant.com/failUrl?orderId=b69ac21f-6cd3-7e06-931d-d90100b40dc1&lang=en",
            "error": "Error 3-D Secure authorization.",
            "errorCode": 0,
            "is3DSVer2": true,
            "errorTypeName": "TDS_UNKNOWN_ARES_STATUS",
            "processingErrorType": "MANDATORY_3DSECURE",
            "errorMessage": "Error 3-D Secure authorization."
        }

        Ejemplo de respuesta (error de autorización)

        {
            "redirect": "https://merchant.com/failUrl?orderId=de056d10-f91d-7c91-a3de-559800b40dc1&lang=en",
            "error": "Operation declined. Please check the data and available balance of the account.",
            "errorCode": 0,
            "is3DSVer2": true,
            "errorTypeName": "DATA_INPUT_ERROR",
            "processingErrorType": "CLIENT_ERROR",
            "errorMessage": "Operation declined. Please check the data and available balance of the account."
        }

        Varios

        Verificación de tarjeta

        El método https://dev.bpcbt.com/payment/rest/verifyCard.do se utiliza para verificar la tarjeta. No se realiza el pago, y el pedido pasa inmediatamente al estado REVERSED.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional

        userName String [1..30] Login de la cuenta API del vendedor. Si se utiliza un token público (parámetro token) para la autenticación durante el registro en lugar del login y la contraseña, no es necesario transmitir la contraseña.
        Opcional

        password String [1..30] Contraseña de la cuenta API del vendedor. Si para la autenticación durante el registro se utiliza un token público (parámetro token) en lugar de login y contraseña, no es necesario transmitir la contraseña.
        Opcional

        token String [1..256] Valor utilizado para la autenticación del vendedor al enviar solicitudes al gateway de pago. Si transmites este parámetro, no transmitas userName y password.
        Obligatorio

        amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
        Opcional

        currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
        Opcional

        pan String [1..19] Número de tarjeta de pago
        Opcional

        cvc String [3] La transmisión del parámetro se determina por el tipo de pago:
        • la transmisión de cvc no está prevista para todos los pagos tokenizados;
        • la transmisión de cvc no está prevista para pagos MIT;
        • la transmisión de cvc es obligatoria por defecto para todos los demás tipos de pagos; pero si para el comerciante se elige el permiso Puede realizar pago sin confirmación CVC, entonces en tal caso la transmisión de cvc se vuelve opcional.
          Solo se permiten dígitos.
        Opcional

        expiry Integer [6] Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM. Obligatorio, si no se han transmitido ni seToken, ni bindingId.
        Opcional

        cardholderName String [1..26] Nombre del titular de la tarjeta en letras latinas. Símbolos permitidos: letras latinas, punto, espacio.
        Opcional

        backUrl String [1..512] URL al que será redirigido el usuario en caso de pago exitoso.
        Utilice la ruta completa especificando el protocolo, por ejemplo https://test.com (y no test.com)).
        De lo contrario, el usuario será redirigido a un URL del siguiente tipo: http://paymentGatewayURL/merchantURL
        Opcional

        failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
        Opcional

        description String [1..598] Descripción del pedido en cualquier formato.
        Para activar el envío de este campo al sistema de procesamiento, contacte con el servicio de soporte técnico.
        En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
        Opcional

        language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
        Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
        Opcional

        returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
        Opcional

        threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
        Opcional

        threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
        Condicional

        threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
        Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
        Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.
        Opcional

        threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
        Opcional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio, si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
        Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
        Opcional preOrderPayerData Object Objeto que contiene datos del pedido previo. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
        Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
        Opcional

        billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
        Valores posibles:
        • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
        • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.

        A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional

        billingCity String [0..50] Ciudad registrada en la tarjeta específica en el Banco Emisor.
        Opcional

        billingCountry String [0..50] País registrado para la tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país.
        Opcional

        billingAddressLine1 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio para la verificación AVS.
        Opcional

        billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
        Opcional

        billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
        Opcional

        billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
        Opcional

        billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
        Obligatorio

        payerAccount String [1..32] Número de cuenta del remitente.
        Opcional

        payerLastName String [1..64] Apellido del remitente.
        Opcional

        payerFirstName String [1..35] Nombre del remitente.
        Opcional

        payerMiddleName String [1..35] Patronímico del remitente.
        Opcional

        payerCombinedName String [1..99] Nombre completo del remitente.
        Opcional

        payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
        Valores posibles:
        • IDTP1 - Pasaporte
        • IDTP2 - Licencia de conducir
        • IDTP3 - Tarjeta social
        • IDTP4 - Tarjeta de identidad de ciudadano
        • IDTP5 - Certificado de conducción de negocios
        • IDTP6 - Certificado de refugiado
        • IDTP7 - Permiso de residencia
        • IDTP8 - Pasaporte extranjero
        • IDTP9 - Pasaporte oficial
        • IDTP10 - Pasaporte temporal
        • IDTP11 - Pasaporte de marino
        Opcional

        payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
        Opcional

        payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD.

        Descripción de los parámetros del objeto shippingPayerData:

        Obligatoriedad Nombre Tipo Descripción
        Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
        Opcional shippingCountry String [1..50] País del cliente
        Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
        Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
        Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
        Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
        Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
        Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
        Valores posibles:
        • 01 - entrega a la dirección de pago del titular de la tarjeta.
        • 02 - entrega a otra dirección verificada por el Comerciante.
        • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
        • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
        • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
        • 06 - billetes de viaje y eventos que no se pueden entregar.
        • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
        Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
        Valores posibles:
        • 01 - distribución digital
        • 02 - entrega el mismo día
        • 03 - entrega al día siguiente
        • 04 - entrega dentro de 2 días después del pago y más tarde.
        Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

        Descripción de los parámetros del objeto preOrderPayerData:

        Obligatoriedad Nombre Tipo Descripción
        Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
        Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
        Valores posibles:
        • 01 - entrega posible;
        • 02 - entrega futura
        Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
        Valores posibles:
        • 01 - pedido colocado por primera vez;
        • 02 - pedido repetido

        Descripción de los parámetros del objeto orderPayerData.

        Obligatoriedad Nombre Tipo Descripción
        Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
        • +35799988877;
        • 0035799988877;
        • 35799988877.
        Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
        • +35799988877;
        • 0035799988877;
        • 35799988877.
        Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
        • +35799988877;
        • 0035799988877;
        • 35799988877.

        Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Opcional

        errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
        • valor 0 - indica el éxito del procesamiento de la solicitud;
        • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
        Puede estar ausente si el resultado no causó errores.
        Opcional

        errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
        El idioma de descripción se especifica en el parámetro language de la solicitud.
        Opcional

        orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
        Opcional

        orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
        Opcional

        authCode Integer [6] Parámetro obsoleto (no se utiliza). Su valor siempre es 2 independientemente del estado del pedido y del código de autorización del sistema de procesamiento.
        Opcional

        actionCode String Código de respuesta del procesamiento del banco. Contiene un valor numérico. Ver la lista de códigos de respuesta aquí.
        Opcional

        actionCodeDescription String [1..512] Descripción de actionCode, devuelta por el procesamiento del banco.
        Opcional

        time Integer Tiempo de realización de la transacción como cantidad de milisegundos transcurridos desde las 00:00 GMT del 1 de enero de 1970 (tiempo Unix). Ejemplo: 1740392720718 (corresponde al tiempo 24 de febrero de 2025, 10:25:20 (UTC)).
        Opcional

        eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
        • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
        • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
        • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
        Opcional

        amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
        Opcional

        currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
        Opcional

        rrn Integer [1..12] Reference Retrieval Number - identificador de transacción asignado por el banco adquirente.
        Opcional

        acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
        Opcional

        termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
        Opcional

        paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/verifyCard.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data userName=test_user \
          --data password=test_user_password \
          --data pan=4000001111111118 \
          --data cvc=123 \
          --data expiry=203012

        Ejemplo de respuesta

        {
          "errorCode": "0",
          "errorMessage": "Success",
          "orderId": "cfc238ca-68f9-745c-ba7e-eb9100af79e0",
          "orderNumber": "12017",
          "rrn": "111111111115",
          "authCode": "123456",
          "actionCode": 0,
          "actionCodeDescription": "",
          "time": 1595284781180,
          "eci": "07",
          "amount": 0,
          "currency": "978"
        }

        API de cargos recurrentes

        Las siguientes solicitudes de API permiten configurar tareas para cargos recurrentes. En adelante, los cargos se ejecutan automáticamente según el horario establecido.

        Creación de tarea

        Para la creación de tarea recurrente se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/task/create.


        Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma por ISO 639-1. Si el idioma no está especificado, se usa el idioma por defecto especificado en la configuración de la tienda.
        Opcional merchantLogin String [1..30] Para crear tarea en nombre de otro comerciante, especifique su login (para cuenta API) en este parámetro.
        Se puede usar solo si tiene permiso para ver transacciones de otros vendedores o si el vendedor especificado es su vendedor subsidiario.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio task Object Información sobre la tarea recurrente que se está creando. Ver parámetros anidados.

        A continuación se listan los parámetros del bloque task (datos sobre la tarea recurrente a crear).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio

        amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
        Opcional bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Se puede usar solo si el comerciante tiene permiso para trabajar con vinculaciones.
        Opcional cardHolder String [1..26] Nombre del titular de la tarjeta en letras latinas.
        Opcional

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
        La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
        Obligatorio

        currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
        Opcional expiry Integer Fecha de vencimiento de la tarjeta en el siguiente formato: YYYYMM.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Opcional pan String [1..19] Número enmascarado de la tarjeta que se utilizó para el pago.
        Opcional attributes Object Conjunto de atributos de la tarea, estructura:
        {name1:value1,…,nameN:valueN}. El conjunto exacto de atributos debe ser acordado con el Banco.
        Opcional params Object Conjunto de parámetros adicionales de forma arbitraria, estructura:
        {name1:value1,…,nameN:valueN}
        Obligatorio scheduleData Object Conjunto de datos sobre el cronograma de la tarea. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque scheduleData (datos sobre el horario de pagos).

        Obligatoriedad Nombre Tipo Descripción
        Mandatory scheduledSince String [26] Fecha y hora en que la tarea debe comenzar a ejecutarse. Formato: yyyy-MM-dd'T'HH:mm:ss.SSSZ
        Mandatory scheduledTill String [26] Fecha y hora para la cual la tarea debe completarse. Formato: yyyy-MM-dd'T'HH:mm:ss.SSSZ
        Mandatory timeUnit String Unidad de tiempo. Valores permitidos: Nanos, Micros, Millis, Seconds, Minutes, Hours, HalfDays, Days, Weeks, Months, Years, Decades, Centuries, Millennia, Eras, Forever
        Mandatory value integer Valor de frecuencia

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente creada. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea recurrente creada).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio created String Fecha y hora de creación de la tarea.
        Obligatorio merchantLogin String Login del comerciante.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Obligatorio nextPaymentDate String Fecha del siguiente pago.
        Obligatorio state String Estado de la tarea. Valores admitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - superado el número de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - terminada por el cliente o por el comerciante
        • EXPIRED - el plazo de validez de la tarjeta ha expirado
        Obligatorio taskUuid String Identificador único en el servicio de débitos recurrentes.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/create \
        --header 'Content-Type: application/json' \
        --data '{
            "username":"test_user",
            "password":"test_user_password",
            "locale":"en",
            "task":{
                "merchantTaskUuid":"c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
                "clientId":"TestClient",
                "bindingId": "5eb094e1-4a96-7b33-af5f-a29407a73a93",
                "scheduleData": {
                    "value":"1",
                    "timeUnit":"DAYS",
                    "scheduledSince":"2024-01-24T00:00:00.000+0300",
                    "scheduledTill":"2024-02-24T00:00:00.000+0300"
                },
                "amount":100,
                "currency":643,
                "params":{
                    "description":"desc",
                    "phone":"576015555556"
                }
            }
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "created": "2024-01-24T10:23:35.434591+03:00",
            "merchantLogin": "testMerch",
            "taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
            "nextPaymentDate": "2024-01-24T00:00:00+03:00",
            "state": "CREATED",
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
          }
        }

        Modificación de tarea

        Para modificar una tarea recurrente existente se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/task/modify.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma por defecto especificado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio task Object Información sobre la tarea recurrente a modificar. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea recurrente modificable).

        Obligatoriedad Nombre Tipo Descripción
        Opcional bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones.
        Opcional

        cardholder String Nombre del titular de la tarjeta en letras latinas.
        Opcional

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
        La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
        Opcional expiry String [6] Fecha de vencimiento de la tarjeta en formato: YYYYMM.
        Opcional pan String [1..19] Número enmascarado de la tarjeta utilizada para el pago.
        Opcional attributes Object Conjunto de atributos de la tarea, estructura:
        {name1:value1,…,nameN:valueN}. El conjunto exacto de atributos debe ser acordado con el Banco.
        Opcional params Object Conjunto de parámetros adicionales de forma arbitraria, estructura:
        {name1:value1,…,nameN:valueN}
        Obligatorio taskIdentifier Object Identificador único o conjunto de identificadores de la tarea. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente modificada. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea recurrente modificada).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio updated String Fecha y hora de la última actualización de la tarea.
        Obligatorio merchantLogin String Login del comerciante.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Obligatorio taskUuid String Identificador único en el servicio de cargos recurrentes.

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/modify \
        --header 'Content-Type: application/json' \
        --data '{
            "username":"test_user",
            "password":"test_user_password",
            "task":{
                "taskIdentifier": {
                   "taskUuid":"9ae9f36d-0ba3-4686-87c4-a5ec77c562a4"
               },
                "bindingId":"5eb094e1-4a96-7b33-af5f-a29407a73a93",
                "clientId":"TestClient",
                "params":{
                    "description":"new description",
                    "phone":"+576015555558"
                }
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "updated": "2024-01-23T14:10:03.730644+03:00",
            "merchantLogin": "testMerch",
            "taskUuid": "9ae9f36d-0ba3-4686-87c4-a5ec77c562a4",
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c80"
          }
        }

        Obtener información sobre la tarea

        Para obtener información sobre la tarea recurrente se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/task/get.


        Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma por ISO 639-1. Si el idioma no está especificado, se utiliza el idioma por defecto especificado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio taskIdentifier Object Identificador único o conjunto de identificadores de la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Mandatory

        amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
        Optional attemptsHistory Array of objects Todos los intentos de pago en orden cronológico. Cada intento de pago se representa por un objeto attemptsHistory. Ver parámetros anidados.
        Optional bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones.
        Optional cardHolder String [1..26] Nombre del titular de la tarjeta en letras latinas.
        Optional

        clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
        La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
        Mandatory created String Fecha y hora de creación de la tarea.
        Mandatory

        currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
        Optional expiry Integer [6] Fecha de vencimiento de la tarjeta en formato: YYYYMM.
        Mandatory lastPaymentDate String Fecha del último pago.
        Optional maskedPan String Número enmascarado de la tarjeta.
        Mandatory merchantLogin String [1..30] Login del comerciante.
        Mandatory merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Mandatory nextPaymentDate String Fecha del siguiente pago.
        Optional params Object Conjunto de parámetros adicionales de forma arbitraria, estructura:
        {name1:value1,…,nameN:valueN}
        Mandatory scheduleData Object Conjunto de datos sobre el cronograma de la tarea. Ver parámetros anidados.
        Mandatory state String Estado de la tarea. Valores permitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - superado el número de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - interrumpida por el cliente o por el comerciante
        • EXPIRED - fecha de vencimiento de la tarjeta expirada
        Mandatory taskUuid String Identificador único en el servicio de cobros recurrentes.
        Mandatory updated String Fecha y hora de la última actualización de la tarea.

        A continuación se enumeran los parámetros del bloque scheduleData (datos sobre el horario de pagos).

        Obligatoriedad Nombre Tipo Descripción
        Mandatory scheduledSince String [26] Fecha y hora en que la tarea debe comenzar a ejecutarse. Formato: yyyy-MM-dd'T'HH:mm:ss.SSSZ
        Mandatory scheduledTill String [26] Fecha y hora para la cual la tarea debe completarse. Formato: yyyy-MM-dd'T'HH:mm:ss.SSSZ
        Mandatory timeUnit String Unidad de tiempo. Valores permitidos: Nanos, Micros, Millis, Seconds, Minutes, Hours, HalfDays, Days, Weeks, Months, Years, Decades, Centuries, Millennia, Eras, Forever
        Mandatory value integer Valor de frecuencia

        A continuación se enumeran los parámetros del bloque attemptsHistory (datos sobre la frecuencia de ejecución de la tarea).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio executed String Fecha y hora del intento de pago. Formato: yyyy-MM-dd'T'HH:mm:ss.SSSZ
        Opcional orderId String Identificador único de la transacción en la pasarela de pagos
        Opcional orderNumber String Número de pedido en la pasarela de pagos
        Obligatorio paymentAttemptUuid String Identificador único del intento de pago
        Obligatorio paymentUuid String Identificador único del pago
        Obligatorio state String Estado de la tarea. Valores permitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - superado el número de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - interrumpida ya sea por el cliente o por el comerciante
        • EXPIRED - el plazo de vigencia de la tarjeta ha expirado
        Obligatorio technicalAttempt Boolean Bandera que indica si el intento fue técnico

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/get \
        --header 'Content-Type: application/json' \
        --data '{
            "username":"test_user",
            "password":"test_user_password",
            "taskIdentifier": {
                   "taskUuid":"8a6a5350-1be3-456e-8e81-e5c7eafbd699"
             }
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
            "state": "ACTIVE",
            "merchantLogin": "testMerch",
            "bindingId": "5eb094e1-4a96-7b33-af5f-a29407a73a93",
            "clientId": "TestClient",
            "created": "2024-01-24T10:23:35.434591+03:00",
            "updated": "2024-01-24T10:23:35.434591+03:00",
            "lastPaymentDate": "2024-01-24T00:00:00+03:00",
            "nextPaymentDate": "2024-01-25T00:00:00+03:00",
            "scheduleData": {
              "scheduledSince": "2024-01-24T00:00:00.000+0300",
              "scheduledTill": "2024-02-24T00:00:00.000+0300",
              "value": 1,
              "timeUnit": "DAYS"
            },
            "amount": 100,
            "currency": 643,
            "params": {
              "phone": "576015555556",
              "description": "description"
            },
            "attemptsHistory": [
              {
                "paymentAttemptUuid": "6873d7dc-4366-45c5-9de6-bc6e0aa05b3d",
                "paymentUuid": "1a450005-ad46-4474-8940-eb154822296c",
                "state": "SUCCEEDED",
                "executed": "2024-01-24T10:23:41.788436+03:00",
                "technicalAttempt": false,
                "orderId": "d2d56b04-124b-77ab-9034-9f2307a73a93",
                "orderNumber": "E5DFEDE990694FCFB5246AEC2612A355"
              }
            ],
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
          }
        }

        Terminar ejecución de tarea

        Para terminar la ejecución de una tarea recurrente se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/task/terminate.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma por ISO 639-1. Si el idioma no está especificado, se utiliza el idioma por defecto especificado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio taskIdentifier Object Identificador único o conjunto de identificadores de la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea terminada).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio updated String Fecha y hora de la última actualización de la tarea.
        Obligatorio merchantLogin String Login del comerciante.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Obligatorio taskUuid String Identificador único en el servicio de cobros recurrentes.
        Obligatorio state String Estado de la tarea. Valores permitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - excedida la cantidad de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - terminada ya sea por el cliente o por el comerciante
        • EXPIRED - plazo de validez de la tarjeta expirado

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/terminate \
        --header 'Content-Type: application/json' \
        --data '{
            "username":"test_user",
            "password":"test_user_password",
            "taskIdentifier": {
                "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
                "merchantLogin": "testMerch"
            }
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "updated": "2024-01-24T10:23:35.434591+03:00",
            "merchantLogin": "testMerch",
            "taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
            "state": "TERMINATED",
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
          }

        Activación de tarea

        Para la activación de tarea recurrente se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/task/activate.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma según ISO 639-1. Si el idioma no está especificado, se utiliza el idioma por defecto indicado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio taskIdentifier Object Identificador único o conjunto de identificadores de tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea activada).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio updated String Fecha y hora de la última actualización de la tarea.
        Obligatorio merchantLogin String Login del comerciante.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Obligatorio nextPaymentDate String Fecha del siguiente pago.
        Obligatorio taskUuid String Identificador único en el servicio de débitos recurrentes.
        Obligatorio state String Estado de la tarea. Valores permitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - excedida la cantidad de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - terminada por el cliente o por el comerciante
        • EXPIRED - la vigencia de la tarjeta ha expirado

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/activate \
        --header 'Content-Type: application/json' \
        --data '{
            "username":"test_user",
            "password":"test_user_password",
            "taskIdentifier": {
                "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82",
                "merchantLogin": "testMerch"
            }
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "updated": "2024-01-24T10:23:35.434591+03:00",
            "merchantLogin": "testMerch",
            "taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
            "state": "ACTIVE",
            "nextPaymentDate": "2024-01-25T00:00:00+03:00",
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
          }
        }

        Terminación de la ejecución de tareas

        Para terminar la ejecución de varias tareas recurrentes se utiliza la petición https://dev.bpcbt.com/recurrent/v1/task/batchTerminate.


        Al ejecutar la petición es necesario utilizar el encabezado: Content-Type: application/json

        Parámetros de la petición

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma según ISO 639-1. Si el idioma no está especificado, se usa el idioma por defecto indicado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio taskIdentifiers Array of Objects Identificadores de las tareas a terminar. Cada identificador se representa por un objeto taskIdentifier. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de la respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.

        Ejemplos

        Ejemplo de petición

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/task/batchTerminate \
        --header 'Content-Type: application/json' \
        --data '{
            "locale":"EN",
            "username":"testUser",
            "password":"testPwd",
            "tasksIdentifiers":[
                {
                    "taskUuid":"0ba73819-65f8-43c4-9dc4-3870cb10416b"
                },
                {
                    "taskUuid":"0ba73820-65f8-43c4-9dc4-3870cb10416b"            
                }
            ]
        }'

        Ejemplo de respuesta

        {   
          "status": "SUCCESS" 
        }

        Omisión de pago

        Para omitir un pago específico de una tarea recurrente, se utiliza la solicitud https://dev.bpcbt.com/recurrent/v1/payment/skip.


        Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

        Parámetros de solicitud

        Obligatoriedad Nombre Tipo Descripción
        Opcional locale String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma por defecto especificado en la configuración de la tienda.
        Obligatorio

        userName String [1..100] Nombre de usuario de la cuenta API del vendedor.
        Obligatorio

        password String [1..30] Contraseña de la cuenta API del vendedor.
        Obligatorio taskIdentifier Object Identificador único o conjunto de identificadores de la tarea recurrente. Ver parámetros anidados.
        Obligatorio paymentNumber Integer Número del pago recurrente que debe ser omitido.

        A continuación se enumeran los parámetros del bloque taskIdentifier (conjunto de identificadores de tarea recurrente).

        Obligatoriedad Nombre Tipo Descripción
        Opcional merchantLogin String Login del comerciante. Debe establecerse al buscar por merchantTaskUuid.
        Opcional merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante. Obligatorio si taskUuid no está establecido.
        Opcional taskUuid String Identificador único en el servicio de cobros recurrentes. Obligatorio si merchantTaskUuid no está establecido.

        Parámetros de respuesta

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio status String Estado de la respuesta. Valores permitidos: SUCCESS, FAIL.
        Obligatorio task Object Información sobre la tarea recurrente. Ver parámetros anidados.

        A continuación se enumeran los parámetros del bloque task (datos sobre la tarea activada).

        Obligatoriedad Nombre Tipo Descripción
        Obligatorio updated String Fecha y hora de la última actualización de la tarea.
        Obligatorio merchantLogin String Login del comerciante.
        Obligatorio merchantTaskUuid String Identificador único de la tarea en el sistema del comerciante.
        Obligatorio nextPaymentDate String Fecha del siguiente pago.
        Obligatorio taskUuid String Identificador único en el servicio de débitos recurrentes.
        Obligatorio state String Estado de la tarea. Valores permitidos:
        • CREATED - creada, pero no hubo pagos
        • ACTIVE - creada, ejecutado al menos un pago
        • FAILED - excedida la cantidad de intentos, tarea desactivada
        • COMPLETED - alcanzada la fecha EOL, todos los pagos completados
        • TERMINATED - terminada por el cliente o por el comerciante
        • EXPIRED - la vigencia de la tarjeta ha expirado

        Ejemplos

        Ejemplo de solicitud

        curl --request POST \
        --url https://dev.bpcbt.com/recurrent/v1/payment/skip \
        --header 'Content-Type: application/json' \
        --data '{
            "locale":"EN",
            "username":"test_user",
            "password":"test_user_password",
            "taskIdentifier": {
                   "taskUuid":"7ae881fb-aee0-4446-883c-8087512bd26a"
             },
            "paymentNumber": 2
        }'

        Ejemplo de respuesta

        {
          "status": "SUCCESS",
          "task": {
            "updated": "2024-01-24T10:23:35.434591+03:00",
            "merchantLogin": "testMerch",
            "taskUuid": "8a6a5350-1be3-456e-8e81-e5c7eafbd699",
            "state": "ACTIVE",
            "nextPaymentDate": "2024-01-25T00:00:00+03:00",
            "merchantTaskUuid": "c0fdc30e-0ba9-4d14-ac0b-44fe9d4d7c82"
          }
        }

        Notificaciones de callback

        La API de la pasarela de pago permite recibir notificaciones de callback (notificaciones callback) sobre cambios en los estados de los pagos.

        Información general

        Eventos sobre los que pueden llegar notificaciones

        Puede recibir notificaciones sobre cambios en el estado del pago del pedido y sobre otros eventos en la pasarela de pago.

        Las notificaciones más comunes describen cambios en el estado del pedido, por ejemplo:

        Integraciones más complejas pueden implicar triggers adicionales de callback, tales como:

        El tipo de trigger se transmite en el parámetro operation de la notificación de callback (ver detalles abajo). Para comodidad, las notificaciones para triggers adicionales pueden dirigirse a otra URL usando el parámetro dynamicCallbackUrl en las solicitudes de registro de pedido.

        Integración a través de notificaciones de callback

        En lugar del último paso de integración a través de redirección puede elegir uno de los siguientes enfoques.

        Usar returnUrl

        Cuando el código de su sitio, ubicado en la dirección returnUrl (por ejemplo, https://mybestmerchantreturnurl.com/?back&amp;orderId=61c33664-85a0-7d6b-af26-09ee009c4000&amp;lang=en), identifica al portador de tarjeta redirigido desde el gateway después del intento de pago, puede verificar el estado del pedido mediante la solicitud API getOrderStatusExtended.
        Esta opción es la más simple, pero no es completamente confiable, ya que la redirección del portador de tarjeta puede terminar con error (por ejemplo, como resultado de la pérdida de conexión o cierre del navegador por el portador de tarjeta), y returnUrl puede no recibir el trigger para llamar getOrderStatusExtended.

        getOrderStatusExtended.do

        curl --request POST \
          --url https://dev.bpcbt.com/payment/rest/getOrderStatusExtended.do \
          --header 'content-type: application/x-www-form-urlencoded' \
          --data userName=test_user \
          --data password=test_user_password \
          --data orderId=016b6f47-4628-7ea2-80f5-6c6e00a7d8c0 \
          --data language=en
        {
          "errorCode": "0",
          "errorMessage": "Success",
          "orderNumber": "11008",
          "orderStatus": 2,
          "actionCode": 0,
          "actionCodeDescription": "",
          "amount": 2000,
          "currency": "978",
          "date": 1618577250840,
          "orderDescription": "my_first_order",
          "merchantOrderParams": [
            {
              "name": "browser_language_param",
              "value": "en"
            },
            {
              "name": "browser_os_param",
              "value": "UNKNOWN"
            },
            {
              "name": "user_agent",
              "value": "curl/7.75.0"
            },
            {
              "name": "browser_name_param",
              "value": "DOWNLOAD"
            }
          ],
          "transactionAttributes": [],
          "attributes": [
            {
              "name": "mdOrder",
              "value": "016b7747-c4ed-70b3-bc36-fdd400a7d8c0"
            }
          ],
          "cardAuthInfo": {
            "maskedPan": "555555**5599",
            "expiration": "202412",
            "cardholderName": "TEST CARDHOLDER",
            "approvalCode": "123456",
            "pan": "555555**5599"
          },
          "authDateTime": 1618577288377,
          "terminalId": "123456",
          "authRefNum": "931793605827",
          "paymentAmountInfo": {
            "paymentState": "DEPOSITED",
            "approvedAmount": 2000,
            "depositedAmount": 2000,
            "refundedAmount": 0
          },
          "bankInfo": {
            "bankCountryCode": "UNKNOWN",
            "bankCountryName": "&ltUnknown&gt"
          }
        }

        Usar callback firmado del gateway

        Si sabe cómo trabajar con certificados digitales y firmas, puede usar callback con firma digital y suma de verificación (el gateway permite configurar el envío de tales notificaciones). La suma de verificación se utiliza para verificación y seguridad. Después de que la firma de la notificación ha sido verificada, ya no hay necesidad de enviar getOrderStatusExtended, porque la notificación contiene información sobre el estado del pedido.

        https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=1

        Tipos de notificaciones

        Notificaciones sin suma de control

        Estas notificaciones contienen solo información sobre el pedido, por lo que potencialmente el vendedor corre el riesgo de tomar una notificación enviada por un atacante como auténtica.

        Notificaciones con suma de control

        Tales notificaciones además de la información sobre el pedido contienen un código de autenticación. El código de autenticación representa una suma de control de la información sobre el pedido. Esta suma de control permite asegurarse de que la notificación callback realmente fue enviada por la pasarela de pago.
        Existen dos formas de implementar notificaciones callback con suma de control:


        La clave pública se puede descargar del panel personal de la pasarela de pago si se tienen los permisos correspondientes. Para mayor seguridad se recomienda usar criptografía asimétrica.
        Para activar notificaciones con sumas de control, así como obtener la clave criptográfica correspondiente, contacte con nuestro servicio de soporte técnico.

        Requisitos para certificados SSL en el sitio del vendedor

        Si la notificación sobre el estado del pedido llega a través de conexión HTTPS, es necesario verificar la autenticidad del sitio mediante certificado SSL emitido y firmado por una autoridad certificadora confiable (ver tabla abajo). No se permite el uso de certificados autofirmados.

        Requisito Descripción
        Algoritmo de firma. No inferior a SHA-256.
        Autoridades certificadoras soportadas. Abajo se presentan ejemplos de organizaciones que registran certificados digitales:

        Formato de URL de notificaciones

        Se admiten solicitudes POST y GET.

        A continuación se muestra un ejemplo de solicitud GET predeterminada, sin parámetros adicionales. Los parámetros se obtienen en la solicitud.

        Notificación sin suma de verificación (GET)

        https://mybestmerchantreturnurl.com/callback/?mdOrder=
        1234567890-098776-234-522&orderNumber=0987&operation=deposited&
        callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

        Notificación con suma de verificación (GET)

        https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&
        orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&
        operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

        Para callbacks POST recibirás los mismos parámetros en el cuerpo HTTP (en lugar de parámetros de solicitud).

        Notificación sin suma de verificación (POST)

        https://mybestmerchantreturnurl.com/callback/
        mdOrder=
        1234567890-098776-234-522&orderNumber=0987&operation=deposited&
        callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

        Notificación con suma de verificación (POST)

        https://mybestmerchantreturnurl.com/callback/
        mdOrder=1234567890-098776-234-522&
        orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&callbackCreationDate=Mon Jan 31 21:46:52 UTC 2022&status=0

        Los parámetros transmitidos se presentan en la tabla a continuación.

        En la tabla se indican solo los parámetros principales. También puedes usar parámetros adicionales, si están configurados en la pasarela de pagos.

        Parámetro Descripción
        mdOrder Número único de pedido almacenado en la pasarela de pagos.
        orderNumber Número único de pedido (identificador) en el sistema del comerciante.
        checksum Código de autenticación o suma de verificación obtenida del conjunto de parámetros.
        operation Tipo de evento que provocó la notificación:
        • approved - bloqueo (retención) de fondos en la cuenta del comprador;
        • deposited - operación de finalización;
        • reversed - el pago fue cancelado;
        • refunded - el dinero del pedido fue devuelto;
        • bindingCreated - la tarjeta del pagador fue guardada (vinculación creada);
        • bindingActivityChanged - una vinculación existente fue desactivada/activada.
        • declinedByTimeout - el pago fue rechazado por expiración del tiempo de espera;
        • declinedCardPresent - transacción rechazada con presentación de tarjeta (pago con tarjeta física).
        status Indicador de éxito de la operación especificada en el parámetro operation:
        • 1 - éxito;
        • 0 - error.

        Encabezados personalizados de notificaciones callback

        Los encabezados personalizados de notificaciones callback se pueden configurar contactando al servicio de soporte técnico. Por ejemplo:

        'http://mybestmerchantreturnurl.com/callback.php', headers={Authorization=token, Content-type=plain
        /text}, params={orderNumber=349002, mdOrder=5ffb1899-cd1e-7c1e-8750-e98500093c43, operation=deposited, status=1}

        donde {Authorization=token, Content-type=plain/text} – es el encabezado configurable.

        Ejemplos

        Ejemplo de URL de notificación sin suma de verificación

        https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=0

        Ejemplo de URL de notificación con suma de verificación

        https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=0

        Algoritmo de procesamiento de notificaciones sobre el estado de pedidos

        En las secciones siguientes se presenta el algoritmo de procesamiento de notificaciones sobre el estado de pedidos dependiendo del tipo de tales notificaciones.

        Notificación sin suma de verificación

        1. La pasarela de pagos envía la siguiente solicitud al servidor del vendedor.
          https://mybestmerchantreturnurl.com/callback/?mdOrder=1234567890-098776-234-522&amp;orderNumber=0987&amp;operation=deposited&amp;status=0
        2. El servidor del vendedor devuelve el mensaje HTTP 200 OK a la pasarela de pagos.

        Notificación con suma de verificación

        1. La pasarela de pagos envía una solicitud HTTPS del siguiente tipo al servidor del comerciante, donde:

          • al utilizar criptografía simétrica, la suma de control se forma mediante una clave común para la pasarela de pago y el vendedor;
          • al utilizar criptografía asimétrica, la suma de control se forma mediante una clave privada conocida solo por la pasarela de pago.
            https://mybestmerchantreturnurl.com/path?amount=123456&amp;orderNumber=10747&amp;checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&amp;mdOrder=3ff6962a-7dcc-4283-ab50-a6d7dd3386fe&amp;operation=deposited&amp;status=1
            El orden de los parámetros en la notificación puede ser arbitrario.
        2. En el lado del vendedor, de la cadena de parámetros de notificación se eliminan los parámetros checksum y sign_alias, y el valor del parámetro checksum (suma de control) se guarda para verificar la autenticidad de la notificación;

        3. Los parámetros restantes y sus valores se utilizan para crear la siguiente cadena.
          nombre_parámetro1;valor_parámetro1;nombre_parámetro2;valor_parámetro2;…;nombre_parámetroN;valor_parámetroN;
          En este caso, los pares nombre_parámetro;valor_parámetro deben estar ordenados en orden alfabético directo (ascendente) por nombres de parámetros.
          Ejemplo de cadena de parámetros generada:
          amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;

        4. La suma de control se calcula en el lado del comerciante, el método de cálculo depende del método de su formación:

          • al utilizar criptografía simétrica - mediante el algoritmo HMAC-SHA256 y una clave privada común con la pasarela de pago;
          • al utilizar criptografía asimétrica - mediante el algoritmo de hash, que depende del método de creación del par de claves, y la clave pública, que está vinculada con la clave privada ubicada en el lado de la pasarela de pago.
        5. En la cadena resultante de suma de control, todas las letras minúsculas se reemplazan por letras mayúsculas.

        6. Se produce la comparación del valor obtenido con la suma de control extraída anteriormente del parámetro checksum.

        7. Si las sumas de control coinciden, el servidor envía a la pasarela de pago el código HTTP 200 OK.

        Si las sumas de control coinciden, esta notificación es auténtica y fue enviada por la pasarela de pago. En caso contrario, es probable que un atacante esté intentando hacer pasar su notificación por una notificación de la pasarela de pago.

        Notificación sobre el estado del pago

        Para determinar si el pago se realizó con éxito o no, usted necesita:

        1. Verificar la firma (parámetro checksum en la notificación);
        2. Verificar dos parámetros de notificación de callback: operation y status.

        Si el valor del parámetro operation es diferente de approved o deposited, entonces la notificación de callback se refiere al estado del pago.

        Notificaciones fallidas

        Si a la pasarela de pago se devuelve una respuesta diferente del código HTTP 200 OK, el envío de notificación se considera fallido. En este caso, la pasarela de pago repite la notificación con un intervalo de 30 segundos hasta que se cumpla una de las siguientes condiciones:

        Al alcanzar una de las condiciones indicadas anteriormente, se detienen los intentos de envío de notificaciones callback sobre la operación.

        Parámetros adicionales de notificaciones de callback

        En las notificaciones de callback puedes usar los siguientes parámetros adicionales, si están configurados en la pasarela de pagos. Si quieres usarlos, contacta con nuestro servicio de soporte.

        Parámetro Descripción Tipo de evento
        bindingId UUIID de las credenciales guardadas creadas/actualizadas (vínculos). BINDING_CREATED, BINDING_ACTIVITY_CHANGED
        email Correo electrónico del cliente. BINDING_CREATED
        phone Teléfono del cliente. BINDING_CREATED
        panMasked PAN enmascarado de la tarjeta del cliente. BINDING_CREATED
        panCountryCode Código de país del cliente. BINDING_CREATED
        enabled Si el vínculo está activo (true/false). BINDING_ACTIVITY_CHANGED
        currentReverseAmountFormatted Importe formateado de la operación de cancelación. REVERSED
        currentRefundAmountFormatted Importe formateado de la operación de devolución. REFUNDED
        operationRefundedAmountFormatted Importe formateado de la operación de devolución. REFUNDED
        operationRefundedAmount Importe de devolución en unidades monetarias mínimas (por ejemplo, en centavos). REFUNDED
        externalRefundId Identificador externo de la operación de devolución. REFUNDED
        callbackCreationDate Fecha de creación de la notificación de callback. Requiere configuración especial del comerciante. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED, DECLINED_CARDPRESENT
        status Estado de la operación: 1 - éxito, 0 - fallo DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        operation Tipo de callback Possible values: deposited, approved, reversed, refunded, bindingCreated, bindingActivityChanged, declinedByTimeout, declinedCardpresent DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
        finishCheckUrl URL para generar el recibo DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        sign_alias Nombre de la clave utilizada para la firma. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
        checksum Suma de verificación de la notificación de devolución de llamada (se utiliza para notificaciones de devolución de llamada con suma de verificación). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT, BINDING_CREATED, BINDING_ACTIVITY_CHANGED
        cardholderName Nombre del titular de la tarjeta. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        amount Importe del pedido registrado en unidades monetarias mínimas. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentAmount Importe del pedido registrado en unidades monetarias mínimas. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        amountFormatted Importe formateado del pedido registrado. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        feeAmount Importe de la comisión en unidades mínimas de moneda. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        approvedAmount Importe preautorizado en unidades monetarias mínimas. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        depositedAmount Importe de finalización en unidades monetarias mínimas. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        refundedAmount Importe de reembolso en unidades mínimas de moneda. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        approvedAmountFormatted Importe preautorizado formateado. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        depositedAmountFormatted Importe formateado de depósito. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        refundedAmountFormatted Importe formateado de devolución. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        totalAmountFormatted Importe total formateado del pedido (importe registrado + comisión). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        depositedTotalAmountFormatted Monto total formateado de finalización (todos los montos de finalización + todos los montos de reembolso + comisión). DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        approvalCode Código de autorización del pago, obtenido del procesamiento. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        authCode Código de autorización DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        bankName Nombre del banco que emitió la tarjeta del cliente. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        currency Moneda del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        depositFlag Bandera que indica el tipo de operación.
        • 1 - compra
        • 2 - preautorización
        DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        eci Indicador de comercio electrónico. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        ip Dirección IP del pagador. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        ipCountryCode Código de país del banco emisor. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        maskedPan Número de tarjeta enmascarado del cliente. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        mdOrder Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        mdorder Número de pedido en la pasarela de pagos. Único dentro de la pasarela de pagos. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        merchantFullName Nombre completo del vendedor. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        merchantLogin Login del vendedor. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        orderDescription Descripción del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        orderNumber Número de pedido (ID) en el sistema del comerciante. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        threeDSType Tipo de transacción (3DS). Valores posibles: SSL, THREE_DS1_FULL, THREE_DS1_ATTEMPT, THREE_DS2_FULL, THREE_DS2_FRICTIONLESS, THREE_DS2_ATTEMPT, THREE_DS2_EXEMPTION_GRANTED, THREE_DS2_3RI, THREE_DS2_3RI_ATTEMPT DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        date Fecha de creación del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        clientId Número de cliente (ID) en el sistema del comerciante. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT,BINDING_CREATED, BINDING_ACTIVITY_CHANGED
        actionCode Código del resultado de ejecución de la operación. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        actionCodeDescription Descripción del código del resultado de ejecución de la operación. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentRefNum Reference Retrieval Number - identificador de transacción asignado por el banco adquirente. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentState Estado del pedido. Possible values: started, payment_approved, payment_declined, payment_void, payment_deposited, refunded, pending, partly_deposited DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentWay Método de pago del pedido. Valores posibles adicionales del parámetro se muestran aquí. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        processingId Identificador del cliente en el procesamiento. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        refNum Reference Retrieval Number - identificador de transacción asignado por el banco adquirente. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        refnum Reference Retrieval Number - identificador de transacción asignado por el banco adquirente. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        terminalId Identificador del terminal en el sistema que procesa el pago. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentSystem Nombre del sistema de pago. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        currencyName Código ISO de tres letras de la moneda. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        transactionAttributes Atributos del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        paymentDate Fecha de pago del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED
        depositedDate Fecha de la operación de finalización del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED
        refundedDate Fecha de la operación de devolución del pedido. REFUNDED
        reversedDate Fecha de la operación de cancelación del pedido. DEPOSITED, REVERSED, REFUNDED
        declineDate Fecha de cancelación del pedido. DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        xid Indicador de comercio electrónico de la transacción, definido por el vendedor. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        cavv Valor de verificación de autenticación del titular de la tarjeta. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        authValue Valor de verificación de autenticación del titular de la tarjeta. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        sessionExpiredDate Fecha y hora de expiración del pedido. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        tokenizeCryptogram Criptograma tokenizado. DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT
        creditBankName Nombre del banco que emitió la tarjeta para el depósito (en P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        creditPanCountryCode Código de país de la tarjeta del destinatario (en P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        isInternationalP2P Si la transacción P2P es internacional. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        recipientData Información sobre el destinatario P2P. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        transactionTypeIndicator

        Información sobre el destinatario P2P. Valores posibles:
        • A - Transferencia de tarjeta a tarjeta de un mismo propietario (de cuenta a cuenta)
        • B - Transferencia con el propósito de adquirir criptomoneda
        • C - Transferencia para fines de compra de criptomoneda
        • D - Desembolso de fondos
        • E - Transferencia de dinero sin cambio de propietario del dinero
        • F - Transferencia para apuestas de juegos de azar
        • G - Pago en juegos de azar en línea
        • L - Transferencia para fines de liquidación de cuentas de tarjeta de crédito
        • O - Transferencia para fines de pago de deuda
        • P - Transferencia de tarjeta a tarjeta de diferentes propietarios
        • W - Transferencia a cuenta propia de cartera digital por etapas para pago
        DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        operationType Tipo de operación P2P: AFT/OCT. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        debitBankName Nombre del banco que emitió la tarjeta para el débito (en P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        debitPanCountryCode Código de país de la tarjeta para débito (en P2P). DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        p2pDebitRrn RRN (Reference Retrieval Number) de la operación de débito P2P. DEPOSITED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT
        avsCode Código de respuesta de verificación AVS (verificación de dirección y código postal del portador de la tarjeta). Valores posibles:
        • -1 – código postal y dirección coinciden.
        • 1 – dirección coincide, código postal no coincide.
        • 2 - código postal coincide, dirección no coincide.
        • 3 - código postal y dirección no coinciden.
        • 50 - se solicitó verificación de datos, pero el resultado no fue exitoso.
        • 51 - formato incorrecto de solicitud de verificación AVS/AVV.
        DEPOSITED, APPROVED, REVERSED, REFUNDED, DECLINED_BY_TIMEOUT, DECLINED_CARDPRESENT

        Ejemplos de código

        Criptografía simétrica

        Java
        package net.payrdr.test;
        
        import javax.crypto.Mac;
        import javax.crypto.spec.SecretKeySpec;
        import java.nio.charset.StandardCharsets;
        import java.util.Comparator;
        import java.util.Map;
        import java.util.stream.Collector;
        
        public class SymmetricCryptographyExample {
        
            private static final String secretToken = "ooc7slpvc61k7sf7ma7p4hrefr";
            private static final Map<String, String> callbackParams = Map.of(
                    "checksum", "EAF2FB72CAB99FD5067F4BA493DD84F4D79C1589FDE8ED29622F0F07215AA972",
                    "mdOrder", "06cf5599-3f17-7c86-bdbc-bd7d00a8b38b",
                    "operation", "approved",
                    "orderNumber", "2003",
                    "status", "1"
            );
        
            public static void main(String[] args) throws Exception {
                String signedString = callbackParams.entrySet().stream()
                        .filter(entry -> !entry.getKey().equals("checksum"))
                        .sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
                        .collect(Collector.of(
                                StringBuilder::new,
                                (accumulator, element) -> accumulator
                                        .append(element.getKey()).append(";")
                                        .append(element.getValue()).append(";"),
                                StringBuilder::append,
                                StringBuilder::toString
                        ));
        
                byte[] mac = generateHMacSHA256(secretToken.getBytes(), signedString.getBytes());
                String signature = callbackParams.get("checksum");
        
                boolean verified = verifyMac(signature, mac);
                System.out.println("resultado de verificación de firma: " + verified);
            }
        
            private static boolean verifyMac(String signature, byte[] mac) {
                return signature.equals(bytesToHex(mac));
            }
        
            public static byte[] generateHMacSHA256(byte[] hmacKeyBytes, byte[] dataBytes) throws Exception {
                SecretKeySpec secretKey = new SecretKeySpec(hmacKeyBytes, "HmacSHA256");
        
                Mac hMacSHA256 = Mac.getInstance("HmacSHA256");
                hMacSHA256.init(secretKey);
        
                return hMacSHA256.doFinal(dataBytes);
            }
        
            private static String bytesToHex(byte[] bytes) {
                final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
                byte[] hexChars = new byte[bytes.length * 2];
                for (int j = 0; j < bytes.length; j++) {
                    int v = bytes[j] & 0xFF;
                    hexChars[j * 2] = HEX_ARRAY[v >>> 4];
                    hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
                }
                return new String(hexChars, StandardCharsets.UTF_8);
            }
        }

        Criptografía asimétrica

        Java
        package net.payrdr.test;
        
        import java.io.ByteArrayInputStream;
        import java.io.InputStream;
        import java.security.Signature;
        import java.security.cert.CertificateFactory;
        import java.security.cert.X509Certificate;
        import java.util.Base64;
        import java.util.Comparator;
        import java.util.Map;
        import java.util.stream.Collector;
        
        public class AsymmetricCryptographyExample {
        
            private static final Map<String, String> callbackParams = Map.of(
                    "amount", "35000099",
                    "sign_alias", "SHA-256 with RSA",
                    "checksum", "163BD9FAE437B5DCDAAC4EB5ECEE5E533DAC7BD2C8947B0719F7A8BD17C101EBDBEACDB295C10BF041E903AF3FF1E6101FF7DB9BD024C6272912D86382090D5A7614E174DC034EBBB541435C80869CEED1F1E1710B71D6EE7F52AE354505A83A1E279FBA02572DC4661C1D75ABF5A7130B70306CAFA69DABC2F6200A698198F8",
                    "mdOrder", "12b59da8-f68f-7c8d-12b5-9da8000826ea",
                    "operation", "deposited",
                    "status", "1");
        
            private static final String certificate =
                    "MIICcTCCAdqgAwIBAgIGAWAnZt3aMA0GCSqGSIb3DQEBCwUAMHwxIDAeBgkqhkiG9w0BCQEWEWt6" +
                            "bnRlc3RAeWFuZGV4LnJ1MQswCQYDVQQGEwJSVTESMBAGA1UECBMJVGF0YXJzdGFuMQ4wDAYDVQQH" +
                            "EwVLYXphbjEMMAoGA1UEChMDUkJTMQswCQYDVQQLEwJRQTEMMAoGA1UEAxMDUkJTMB4XDTE3MTIw" +
                            "NTE2MDEyMFoXDTE4MTIwNTE2MDExOVowfDEgMB4GCSqGSIb3DQEJARYRa3pudGVzdEB5YW5kZXgu" +
                            "cnUxCzAJBgNVBAYTAlJVMRIwEAYDVQQIEwlUYXRhcnN0YW4xDjAMBgNVBAcTBUthemFuMQwwCgYD" +
                            "VQQKEwNSQlMxCzAJBgNVBAsTAlFBMQwwCgYDVQQDEwNSQlMwgZ8wDQYJKoZIhvcNAQEBBQADgY0A" +
                            "MIGJAoGBAJNgxgtWRFe8zhF6FE1C8s1t/dnnC8qzNN+uuUOQ3hBx1CHKQTEtZFTiCbNLMNkgWtJ/" +
                            "CRBBiFXQbyza0/Ks7FRgSD52qFYUV05zRjLLoEyzG6LAfihJwTEPddNxBNvCxqdBeVdDThG81zC0" +
                            "DiAhMeSwvcPCtejaDDSEYcQBLLhDAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAfRP54xwuGLW/Cg08" +
                            "ar6YqhdFNGq5TgXMBvQGQfRvL7W6oH67PcvzgvzN8XCL56dcpB7S8ek6NGYfPQ4K2zhgxhxpFEDH" +
                            "PcgU4vswnhhWbGVMoVgmTA0hEkwq86CA5ZXJkJm6f3E/J6lYoPQaKatKF24706T6iH2htG4Bkjre" +
                            "gUA=";
        
            public static void main(String[] args) throws Exception {
        
                String signedString = callbackParams.entrySet().stream()
                        .filter(entry -> !entry.getKey().equals("checksum") && !entry.getKey().equals("sign_alias"))
                        .sorted(Map.Entry.comparingByKey(Comparator.naturalOrder()))
                        .collect(Collector.of(
                                StringBuilder::new,
                                (accumulator, element) -> accumulator
                                        .append(element.getKey()).append(";")
                                        .append(element.getValue()).append(";"),
                                StringBuilder::append,
                                StringBuilder::toString
                        ));
        
                InputStream publicCertificate = new ByteArrayInputStream(Base64.getDecoder().decode(certificate));
                String signature = callbackParams.get("checksum");
        
                boolean verified = checkSignature(signedString.getBytes(), signature.getBytes(), publicCertificate);
                System.out.println("resultado de verificación de firma: " + verified);
            }
        
            private static boolean checkSignature(byte[] signedString, byte[] signature, InputStream publicCertificate) throws Exception {
                CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
                X509Certificate x509Cert = (X509Certificate) certFactory.generateCertificate(publicCertificate);
        
                Signature signatureAlgorithm = Signature.getInstance("SHA512withRSA");
                signatureAlgorithm.initVerify(x509Cert.getPublicKey());
                signatureAlgorithm.update(signedString);
        
                return signatureAlgorithm.verify(decodeHex(new String(signature)));
            }
        
            private static byte[] decodeHex(String hex) {
                int l = hex.length();
                byte[] data = new byte[l / 2];
                for (int i = 0; i < l; i += 2) {
                    data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
                            + Character.digit(hex.charAt(i + 1), 16));
                }
                return data;
            }
        }

        Criptografía simétrica

        PHP
        <?php
        
        $data = 'amount;123456;mdOrder;3ff6962a-7dcc-4283-ab50-a6d7dd3386fe;operation;deposited;orderNumber;10747;status;1;';
        $key = 'yourSecretToken';
        $hmac = hash_hmac ( 'sha256' , $data , $key);
        
        echo "[$hmac]
        ";
        ?>
        1. Asigne el valor de cadena a la variable data.
        2. Asigne el valor de la clave privada a la variable key.
        3. La función hash_hmac ( 'sha256', $data, $key) calcula la suma de verificación de la cadena pasada, utilizando la clave privada según el algoritmo SHA-256.
        4. Guarde el resultado del trabajo de la función en la variable hmac.
        5. Muestre el resultado del trabajo de la función con el comando echo.
        6. Compare este valor con el que se pasa en la notificación sobre el estado del pedido.

        Criptografía asimétrica

        PHP
        <?php
        // data from response
        $data = 'amount;35000099;mdOrder;12b59da8-f68f-7c8d-12b5-9da8000826ea;operation;deposited;status;1;';
        $checksum = '9524FD765FB1BABFB1F42E4BC6EF5A4B07BAA3F9C809098ACBB462618A9327539F975FEDB4CF6EC1556FF88BA74774342AF4F5B51BA63903BE9647C670EBD962467282955BD1D57B16935C956864526810870CD32967845EBABE1C6565C03F94FF66907CEDB54669A1C74AC1AD6E39B67FA7EF6D305A007A474F03B80FD6C965656BEAA74E09BB1189F4B32E622C903DC52843C454B7ACF76D6F76324C27767DE2FF6E7217716C19C530CA7551DB58268CC815638C30F3BCA3270E1FD44F63C14974B108E65C20638ECE2F2D752F32742FFC5077415102706FA5235D310D4948A780B08D1B75C8983F22F211DFCBF14435F262ADDA6A97BFEB6D332C3D51010B';
        
        // your public key (e.g. SHA-512 with RSA)
        // if you have a CERT, please see openssl_get_publickey()
        $publicKey = <<<EOD
        -----BEGIN PUBLIC KEY-----
        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwtuGKbQ4WmfdV1gjWWys
        5jyHKTWXnxX3zVa5/Cx5aKwJpOsjrXnHh6l8bOPQ6Sgj3iSeKJ9plZ3i7rPjkfmw
        qUOJ1eLU5NvGkVjOgyi11aUKgEKwS5Iq5HZvXmPLzu+U22EUCTQwjBqnE/Wf0hnI
        wYABDgc0fJeJJAHYHMBcJXTuxF8DmDf4DpbLrQ2bpGaCPKcX+04POS4zVLVCHF6N
        6gYtM7U2QXYcTMTGsAvmIqSj1vddGwvNGeeUVoPbo6enMBbvZgjN5p6j3ItTziMb
        Vba3m/u7bU1dOG2/79UpGAGR10qEFHiOqS6WpO7CuIR2tL9EznXRc7D9JZKwGfoY
        /QIDAQAB
        -----END PUBLIC KEY-----
        EOD;
        
        $binarySignature = hex2bin(strtolower($checksum));
        $isVerify = openssl_verify($data, $binarySignature, $publicKey, OPENSSL_ALGO_SHA512);
        if ($isVerify == 1) {
            echo "signature ok
        ";
        } elseif ($isVerify == 0) {
            echo "bad (there's something wrong)
        ";
        } else {
            echo "error checking signature
        ";
        }
        ?>
        Categorías:
        eCommerce API V1
        Categorías
        Resultados de búsqueda