Códigos de error

Códigos de error de la API RESTful de CCBill

Código de estado HTTPTipo de estado HTTPCódigo de errorMensaje de error
400Solicitud incorrecta100100Cuenta de cliente no válida.
400Solicitud incorrecta100102Token de pago caducado.
400Solicitud incorrecta100105Tipo de pago no válido.
400Solicitud incorrecta100106Tipo de privacidad no válido.
400Solicitud incorrecta100107Categoría de programa no válida.
400Solicitud incorrecta100108Tipo de pago no válido.
400Solicitud incorrecta100109Participación en el programa no válida.
400Solicitud incorrecta200000Problema con el tamaño del atributo.
400Solicitud incorrecta200000Atributo requerido.
400Solicitud incorrecta200000Problema con los valores de los atributos.
400Solicitud incorrecta200000Número de tarjeta de crédito no válido.
400Solicitud incorrecta200000Invalid email address.
400Solicitud incorrecta200000Cuenta de cliente no válida.
400Solicitud incorrecta200000Subcuenta de cliente no válida
400Solicitud incorrecta200000ID de suscripción no válido.
400Solicitud incorrecta200000Número de cuenta del cliente de destino no válido.
400Solicitud incorrecta200000Subcuenta de cliente de destino no válida.
400Solicitud incorrecta200000ID de participación en el programa no válido.
400Solicitud incorrecta200000Se han encontrado demasiados programas entre comerciantes.
400Solicitud incorrecta200000Programa no existe entre comerciantes.
400Solicitud incorrecta200000El programa está inactivo.
400Solicitud incorrecta200000Simbolo no valido.
400Solicitud incorrecta200000Se requiere información del cliente y de pago para la identificación de suscripción cero.
400Solicitud incorrecta200000Capacidad 3DS no válida.
400Solicitud incorrecta200000Algoritmo 3DS Cavv no válido.
400Solicitud incorrecta200000ID de 3DS no válido.
400Solicitud incorrecta200000ID trans. de 3DS Ds no válido.
400Solicitud incorrecta200000ID de transacción de 3DS Acs no válido.
400Solicitud incorrecta200000Los parámetros de solicitud de Threeds deben contener parámetros de verificación de 3DS o parámetros de error para que sean válidos.
400Solicitud incorrecta200000Problema con el formato de dígito de atributo.
400Solicitud incorrecta200000Problema con el tipo de datos.
400Solicitud incorrecta200000ID de programa no válido.
400Solicitud incorrecta200000Intervalo de fechas no válido.
401No autorizadoN/Asimbolo no valido
403Prohibido100020Prohibido
404Extraviado100101Ficha de pago no válida.
404Extraviado100104Objeto de búsqueda no encontrado.
500Error interno del servidor100103Error de transacción.
500Error interno del servidor100105No se pudo completar la transacción requerida para crear un token de pago.
500Error interno del servidor100106Hubo un error interno, o un error de la base de datos y la acción solicitada no se pudo completar, o el enlace de datos está inactivo para el usuario.
500Error interno del servidor100107La dirección IP en la que el cliente intentaba autenticarse no estaba en el rango válido.
500Error interno del servidor100108La cuenta del cliente ha sido desactivada para su uso en el sistema Datalink o el cliente no puede realizar la acción solicitada.
500Error interno del servidor100109El cliente ha iniciado sesión sin éxito en el sistema 3 o más veces en la última hora. El cliente debe esperar una hora antes de intentar iniciar sesión nuevamente y se le recomienda que revise la información de inicio de sesión.
500Error interno del servidor100110Limitado, el número de transacciones ha alcanzado el límite.
500Error interno del servidor100111Limitado, la cantidad total de dinero ha alcanzado el límite.
500Error interno del servidor100112No se puede determinar si se requiere 3DS.
500Error interno del servidor100113No se puede recuperar la cantidad autorizada.

Códigos de error de autenticación de 3DS

Código de estado HTTPTipo de estado HTTPCódigo de errorMensaje de error
500Error interno del servidor200000Autorización fallida debido a un problema desconocido.
500Error interno del servidor200001La autorización falló debido a una respuesta inesperada de un SCA externo.
500Error interno del servidor200400La autorización falló debido a una solicitud incorrecta a un SCA de terceros.
500Error interno del servidor200401La autorización falló debido a una solicitud no autorizada a un SCA de terceros.
500Error interno del servidor200500No se pudo autenticar la transacción.
500Error interno del servidor200501La API no pudo analizar JSON.
400Solicitud incorrecta200502El token de pago no existe.
400Solicitud incorrecta200503No hay tarjeta asociada con el token de pago.
500Error interno del servidor200600No se pudo recuperar el estado.
500Error interno del servidor200601La API no pudo analizar JSON.
404Solicitud incorrecta200602ID de transacción no encontrado.
400Solicitud incorrecta200603Error de validación ID de transacción UUID no válido.
400Solicitud incorrecta200604El ID de correlación del error de validación no es un UUID válido.
400Solicitud incorrecta200605Error de validación El formato actualizado de la transacción no es YYYY-MM-DD HH:mm:ss zzz.

API de transacciones RESTful de CCBill

Descripción

La función principal de la API RESTful de CCBill es permitir a los comerciantes crear fichas de pago y utilícelos para cobrar a los clientes.

La API RESTful de CCBill le permite aprovechar al máximo la plataforma de pago de CCBill sin utilizar CCBill formularios de pago alojados.

Con la API, solo necesita solicitar a los clientes la información de pago una vez. Para cualquier transacción posterior, puede usar sus datos tokenizados.

Puede desarrollar aplicaciones back-end y orientadas al cliente para acceder a los recursos de la API RESTful mediante programación e integrar sin problemas las soluciones de procesamiento de pagos de CCBill en los flujos de pago.

Utilice la API RESTful para ofrecer una experiencia de pago atractiva y sin fricciones, independientemente del dispositivo o la plataforma que utilice el cliente.

Cómo Empezar

Los comerciantes necesitan crear aplicaciones que capturen los datos de pago de los clientes y envíen información estructurada. Llamadas API a CCBill RESTful Puntos finales API. Las solicitudes de API deben estructurarse de acuerdo con la documentación de la API RESTful de CCBill.

Antes de proceder con el Integración de API, los comerciantes deben abrir una cuenta de procesamiento de pagos y registrar sus aplicaciones en CCBill.

1. Abra una cuenta comercial de CCBill

Si no tiene una cuenta CCBill Merchant, comuníquese con Ventas CCBill en IRS.gov o use la REGISTRATE botón en nuestro sitio web.

CCBill emplea un equipo dedicado de profesionales para ayudar a los comerciantes y garantizar que el proceso de incorporación se complete con la mínima fricción.

El Servicio de Atención al Comerciante está disponible las 24 horas del día, los 7 días de la semana y ofrece soporte técnico y administrativo completo con respecto a los servicios de CCBill.

2. Registre la aplicación con CCBill

La API de transacción RESTful de CCBill utiliza tokens de portador para autenticar y autorizar solicitudes de API. Antes de acceder a la API, debe registrar su aplicación con Servicios de soporte de CCBill.

Al registrarse, a su aplicación se le asignará un ID de aplicación de comerciante y llave secreta.

El flujo de pago

1. Generar token de portador CCBill OAuth

Utilice el ID de la aplicación del comerciante y la clave secreta para generar un token de portador al proporcionarlos al servidor de autorización.

Una vez que haya generado un Token de acceso (que no debe confundirse con un token de pago), inclúyalo en el encabezado de Autorización de cada solicitud de API.

Tenga en cuenta que este paso no se puede realizar desde el navegador y debe realizar la llamada desde su backend.

El token de acceso adquirido es una cadena de datos aleatorios que no contiene datos confidenciales ni tiene valor.

Funciona solo como una herramienta de autenticación y autorización y otorga a su aplicación acceso a la API RESTful.

Solicitud de ejemplo

curl - POST 'https://api.ccbill.com/ccbill-auth/oauth/token' \

--header 'Content-Type: application/x-www-form-urlencoded' \

--header 'Authorization: Basic Merchant_ApplicationID:Secret_Key ' \

--data-urlencode 'grant_type=client_credentials'

2. Capture la información de pago del cliente

Los comerciantes pueden diseñar formularios de pago personalizados y aplicaciones para capturar la información de la tarjeta de crédito del cliente.

La información de pago del cliente (como el número de tarjeta de crédito, la fecha de caducidad, el nombre en la tarjeta, etc.) debe enviarse como una solicitud de API al punto final de API correcto.

La API RESTful de CCBill utiliza los datos capturados para crear un token de pago único.

Punto final de API para crear tokens de pago

https://api.ccbill.com/payment-tokens/merchant-only

3. Crear un token de pago

El Widget avanzado de CCBill permite a los comerciantes automatizar las solicitudes de token de pago. Los comerciantes pueden diseñar su propia interfaz para llamar al widget y generar tokens de pago.

El widget de JavaScript está alojado en una ubicación accesible para los comerciantes, lo que les permite consultar e importar el widget en sus sitios web.

Para mantener el cumplimiento de PCI en todo momento, use el widget avanzado de CCBill y asegúrese de que los detalles de pago se envíen directamente a CCBill sin que se envíen a través de su servidor. Cargue siempre las bibliotecas de JavaScript de CCBill a través de https://js.ccbill.com para seguir cumpliendo. No agrupe ni aloje los scripts usted mismo.

El widget avanzado también permite a los comerciantes incorporar autenticación de cliente fuerte.

El token se puede pasar al sistema en una solicitud de transacción, lo que le permite cobrar a un cliente.

Enlace de precarga del widget avanzado de CCBill

<link rel="preload" href="https://js.ccbill.com/v1.2.2/ccbill-advanced-widget.js" as="script"/>
<script type="text/javascript" src="https://js.ccbill.com/v1.2.2/ccbill-advanced-widget.js"></script>

4. Cobrar token de pago

Después de haber generado un ficha al portador y identificador de token de pago, puede usar estos dos tokens para cargar la tarjeta de crédito del consumidor.

Envío de una solicitud de API al /actas endpoint le permite cargar un token de pago o recuperar datos en un cargo.

Una vez que se ha cargado el token de pago, un Notificación HTTP POST de webhooks se activará para que pueda capturar la información de la transacción. Este evento de webhooks será un “UpSaleÉxito.

Punto final de API para cargar tokens de pago

https://api.ccbill.com/transactions/payment-tokens/{payment_token_id}

Documentación técnica

Esquemas de la API RESTful de CCBill

Resumen de la API

Los objetos de la API de transacción de CCBill están formateados para seguir el formato de archivo de estándar abierto JSON (JavaScript Object Notation) y utilizan el application/json tipo de contenido.

Tipos de medios admitidos
  • aplicación / json
Valores disponibles
  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json

Recursos de la API

/ fichas de pago

  • / fichas-de-pago / solo-comerciante
  • / fichas-de-pago / solo-comerciante-verificar
  • / fichas-de-pago / {paymentTokenId}
  • /pago-fichas/{pagoTokenId}/tres-requeridos
  • /pago-tokens/programa-especificado
  • /tokens-de-pago/cliente-objetivo
  • /tokens-de-pago/tres-requeridos

/actas

  • / transaction / payment-tokens / {payment_token_id}
  • / transaction / payment-tokens / {payment_token_id}
  • /transacciones/fichas-de-pago/tres/{pago_token_id}

Esquemas de API

Utilice esta lista completa de objetos de la API RESTful de CCBill para determinar qué parámetros se requieren para las solicitudes de punto final y qué parámetros se devuelven como respuestas.

Error de validacion

Elementos de la opcional errores formación. solo devuelto el 400 Bad Request errores por errores de validación.

PARÁMETROTIPODESCRIPCIÓN
campocadena
(requerido)
El campo en error.
mensajecadena
(requerido)
Mensaje fácil de usar.

Ejemplo de error de validación

{
  "field": "string",
  "message": "string"
}

Error

Respuesta si la acción falló o no se pudo completar.

El servicio CCBill Transaction API utiliza códigos de respuesta HTTP convencionales para indicar errores. Generalmente, los códigos en el rango de 4xx indicar un error debido a la información proporcionada en la solicitud. Códigos en el rango de 5xx indica un error debido a un problema inesperado.

CÓDIGO DE ERRORDESCRIPCIÓN
400La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.
401La respuesta no pudo completarse debido a un problema de autorización.
403No se pudo completar la respuesta porque el acceso al recurso está prohibido.
404La respuesta no se pudo completar debido a un recurso no válido.
405La respuesta no se pudo completar debido a un método de solicitud no válido.
406La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.
415La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.
500La respuesta no se completó de alguna manera.
Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
idcadena
(requerido)
GUID generado aleatoriamente.
Patrón de validación: ^[a-zA-Z0-9-]*$
urlcadena
(requerido)
La URL relativa que ha causado este error.
erroresmatriz
(opcional)
Opcional, solo se devuelve en 400 errores de solicitud incorrecta para errores de validación.
errores. campocadena
(requerido)
El campo en error.
errores. mensajecadena
(requerido)
Mensaje fácil de usar.
mensaje generalcadena
(requerido)
Algo legible por humanos.
código de errorCreditCardPaymentInfostring
(requerido)
Código de error definido por el producto.
Patrón de validación: ^[0-9]*$
fecha y horaFecha y hora
(requerido)
Marca de tiempo de la llamada.

Ejemplo de error

{
	"id": "62432dd8-97d9-400a-8da8-4a5c1951f935",
	"url": "/songs/0",
	"errors": [],
	"generalMessage": "An error occurred, please try again later.",
	"errorCode": "100019",
	"timestamp": "2022-12-27T10:36:38.067Z"
}

Información de pago con tarjeta de crédito

Elementos del información de pago formación.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
número de tarjetacadena
(requerido)
Número de tarjeta.
expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato
nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.

Ejemplo de información de pago de tarjeta de crédito

{
  "cardNum": "4473707989493598",
  "expMonth": "04",
  "expYear": "2026",
  "nameOnCard": "Tyler Thomas"
}

CreditCardWithCvvPaymentInfo

Elementos del información de pago matriz con autenticación CVV2.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
número de tarjetacadena
(requerido)
Número de tarjeta.
expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
cvv2cadena
(requerido)
Código CVV2 en la tarjeta.

Ejemplo de CreditCardWithCvvPaymentInfo

{
  "cardNum": "4473707989493598",
  "expMonth": "04",
  "expYear": "2026",
  "nameOnCard": "Tyler Thomas"
  "cvv2": "144"
}

Información del cliente

Elementos del Información del cliente formación.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
ciudadcadena
(requerido)
Ciudad del cliente.
navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
estadocadena (requerido)Estado del cliente.
código postalcadena
(requerido)
Código postal del cliente.
clienteFnamecadena
(requerido)
Nombre del cliente.
address1cadena
(requerido)
Dirección del cliente.
address2cadena
(opcional)
Dirección del cliente (información adicional).
browserHttpAcceptEncodingcadena (opcional)Lista de codificaciones aceptables.
nombre del clientecadena
(requerido)
Apellido del cliente.
dirección IPcadena
(requerido)
Dirección IP del cliente.
número de teléfonocadena
(opcional)
Número de teléfono del cliente.
paíscadena
(requerido)
País del cliente.

Ejemplo de información de cliente

{
  "email": "tthomas@xyz.com",
  "browserHttpAcceptLanguage": "en-US,en;q=0.5",
  "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
  "city": "Tempe",
  "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "state": "AZ",
  "zipcode": "85281",
  "customerFname": "Tyler",
  "address1": "Woodland Drive",
  "address2": "Apt 21",
  "browserHttpAcceptEncoding": "gzip, deflate, br",
  "customerLname": "Thomas",
  "ipAddress": "10.70.60.14",
  "phoneNumber": "5555555555",
  "country": "US"
}

Pasar a través de información

Elementos del passThroughInfo La matriz representa información emparejada personalizada que se pasa al servicio de transacciones.

Recursos
Parámetros
PARÁMETROTIPODESCRIPCIÓN
nombre cadena
(requerido)
Valor de traspaso personalizado.
propuesta decadena
(requerido)
Valor de traspaso personalizado.

Ejemplo de PassThroughInfo

{
  "name": "value1",
  "value": "value2"
}

Información de pago

Información de pago en la tarjeta de pago del cliente. elementos de la información de pago de la tarjeta de crédito formación.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
información de pago de la tarjeta de créditoobjeto
(formación)
Información de pago con tarjeta de crédito.
información de pago con tarjeta de crédito. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago con tarjeta de crédito. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago con tarjeta de crédito. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago con tarjeta de crédito. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.

Ejemplo de información de pago

{
  "creditCardPaymentInfo": {
    "cardNum": "4473707989493598",
    "expMonth": "04",
    "expYear": "2026",
    "nameOnCard": "Tyler Thomas"
  }
}

InformaciónDePagoConCVV

Elementos del información de pago de la tarjeta de crédito matriz con autenticación CVV2.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
información de pago de la tarjeta de créditoobjeto
(formación)
Información de pago con tarjeta de crédito.
información de pago con tarjeta de crédito. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago con tarjeta de crédito. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago con tarjeta de crédito. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago con tarjeta de crédito. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
información de pago con tarjeta de crédito. cvv2cadena
(requerido)
Código CVV2 en la tarjeta.

Ejemplo de información de pago con CVV

{
  "creditCardPaymentInfo": {
    "cardNum": "4473707989493598",
    "expMonth": "04",
    "expYear": "2026",
    "nameOnCard": "Tyler Thomas",
    "cvv2": "144"
  }
}

token de pago

Estos parámetros de respuesta se reciben cuando se crea correctamente un token de pago.

  • application/vnd.mcn.transaction-service.api.v.1+json
Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
Fecha y hora de creaciónSolo fecha y hora
(requerido)
Fecha y Hora de creación del Token de Pago.
tiempo para vivirentero
(requerido)
Tiempo para que exista el token.
originalPagoTokenIdcadena
(opcional)
Referencia a una identificación de token anterior.
NúmeroVálidoDeUsoentero
(requerido)
El número total de veces que se puede usar el token de pago para compras.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
ID de participación del programaentero
(requerido)
El programa conectado al token de pago.
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
PaymentInfoIdcadena
(opcional)
Información asociada al pago.
ID de suscripciónentero
(requerido)
Identificación de la suscripción asociada a la transacción.

Ejemplo de token de pago

{
	"paymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"programParticipationId": 1,
	"originalPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"createdDatetime": "2022-01-01T01:00:00",
	"timeToLive": 30,
	"validNumberOfUse": 20,
	"subscriptionId": 900000000000000001,
	"paymentInfoId": "53104f5a54d3d43254def41c29aedba8"
}

PagoTokenV2

Estos parámetros de respuesta se reciben cuando se crea correctamente un token de pago.

  • application/vnd.mcn.transaction-service.api.v.2+json
Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
Fecha y hora de creaciónSolo fecha y hora
(requerido)
Fecha y Hora de creación del Token de Pago.
tiempo para vivirentero
(requerido)
Tiempo para que exista el token.
originalPagoTokenIdcadena
(opcional)
Referencia a una identificación de token anterior.
NúmeroVálidoDeUsoentero
(requerido)
El número total de veces que se puede usar el token de pago para compras.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
ID de participación del programaentero
(requerido)
El programa conectado al token de pago.
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
PaymentInfoIdcadena
(opcional)
Información asociada al pago.
ID de suscripcióncadena
(requerido)
Identificación de la suscripción asociada a la transacción.

Ejemplo de PaymentTokenV2

{
	"paymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"programParticipationId": 1,
	"originalPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"createdDatetime": "2022-01-01T01:00:00",
	"timeToLive": 30,
	"validNumberOfUse": 20,
	"subscriptionId": "900000000000000001",
	"paymentInfoId": "53104f5a54d3d43254def41c29aedba8"
}

PagoTokenVerificar

Estos parámetros de respuesta se reciben cuando se crea correctamente un token de pago. Incluyendo resultados de autenticación CVV2 y AVS.

  • application/vnd.mcn.transaction-service.api.v.1+json
Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
Fecha y hora de creaciónSolo fecha y hora
(requerido)
Fecha y Hora de creación del Token de Pago.
tiempo para vivirentero
(requerido)
Tiempo para que exista el token.
originalPagoTokenIdcadena
(opcional)
Referencia a una identificación de token anterior.
NúmeroVálidoDeUsoentero
(requerido)
El número total de veces que se puede usar el token de pago para compras.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
ID de participación del programaentero
(requerido)
El programa conectado al token de pago.
avsRespuestacadena
(requerido)
El resultado de la verificación AVS.
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
PaymentInfoIdcadena
(opcional)
Información asociada al pago.
cvv2Respuestacadena
(requerido)
El resultado de la verificación CVV2.
ID de suscripciónentero
(requerido)
Identificación de la suscripción asociada a la transacción.

Ejemplo de verificación de token de pago

{
	"paymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"programParticipationId": 1,
	"originalPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"createdDatetime": "2022-01-01T01:00:00",
	"timeToLive": 30,
	"validNumberOfUse": 20,
	"subscriptionId": "900000000000000001",
	"paymentInfoId": "53104f5a54d3d43254def41c29aedba8",
	"cvv2Response": "M",
	"avsResponse": "Y"
}

PagoTokenVerifyV2

Estos parámetros de respuesta se reciben cuando se crea correctamente un token de pago. Incluyendo resultados de autenticación CVV2 y AVS.

  • application/vnd.mcn.transaction-service.api.v.2+json
Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
Fecha y hora de creaciónSolo fecha y hora
(requerido)
Fecha y Hora de creación del Token de Pago.
tiempo para vivirentero
(requerido)
Tiempo para que exista el token.
originalPagoTokenIdcadena
(opcional)
Referencia a una identificación de token anterior.
NúmeroVálidoDeUsoentero
(requerido)
El número total de veces que se puede usar el token de pago para compras.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
ID de participación del programaentero
(requerido)
El programa conectado al token de pago.
avsRespuestacadena
(requerido)
El resultado de la verificación AVS.
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
PaymentInfoIdcadena
(opcional)
Información asociada al pago.
cvv2Respuestacadena
(requerido)
El resultado de la verificación CVV2.
ID de suscripcióncadena
(requerido)
Identificación de la suscripción asociada a la transacción.

Ejemplo de PaymentTokenVerifyV2

{
	"paymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"programParticipationId": 1,
	"originalPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"createdDatetime": "2022-01-01T01:00:00",
	"timeToLive": 30,
	"validNumberOfUse": 20,
	"subscriptionId": "900000000000000001",
	"paymentInfoId": "53104f5a54d3d43254def41c29aedba8",
	"cvv2Response": "M",
	"avsResponse": "Y"
}

PagoTokenTransacción

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta CCBill del comerciante.
clienteSubaccentero
(requerido)
Número de subcuenta CCBill del comerciante.
ID de suscripcióncadena
(requerido)
Un número de ID de suscripción existente.

Ejemplo de transacción de token de pago

{
        "clientAccnum": 900112,
        "clientSubacc": 0002,
        "subscriptionId": "918166501000000981"
}

PaymentTokenMerchantOnlyParams

Parámetros para crear un token de pago sin autenticación CVV2 y AVS.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena (requerido)Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

Ejemplo de PaymentTokenMerchantOnlyParams

{
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"customerInfo": {
		"customerFname": "Tyler",
		"customerLname": "Thomas",
		"address1": "Woodland Drive",
		"address2": "Apt 21",
		"city": "Tempe",
		"state": "AZ",
		"zipcode": "85281",
		"country": "US",
		"phoneNumber": "5555555555",
		"email": "tthomas@xyz.com",
		"ipAddress": "10.70.60.14",
		"browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
		"browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
		"browserHttpAcceptLanguage": "en-US,en;q=0.5",
		"browserHttpAcceptEncoding": "gzip, deflate, br"
	},
	"paymentInfo": {
		"creditCardPaymentInfo": {
			"cardNum": "4473707989493598",
			"nameOnCard": "Tyler Thomas",
			"expMonth": "04",
			"expYear": "2026"
		}
	},
	"subscriptionId":900000000000000001,
	"timeToLive": 30,
	"validNumberOfUse": 3
}

PaymentTokenMerchantOnlyVerifyParams

Parámetros para crear un token de pago que incluya autenticación CVV2 y AVS.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
información de pago. cvv2cadena
(requerido)
Código CVV2 en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

Ejemplo de PaymentTokenMerchantOnlyVerifyParams

{
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"customerInfo": {
		"customerFname": "Tyler",
		"customerLname": "Thomas",
		"address1": "Woodland Drive",
		"address2": "Apt 21",
		"city": "Tempe",
		"state": "AZ",
		"zipcode": "85281",
		"country": "US",
		"phoneNumber": "5555555555",
		"email": "tthomas@xyz.com",
		"ipAddress": "10.70.60.14",
		"browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
		"browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
		"browserHttpAcceptLanguage": "en-US,en;q=0.5",
		"browserHttpAcceptEncoding": "gzip, deflate, br"
	},
	"paymentInfo": {
		"creditCardPaymentInfo": {
			"cardNum": "4473707989493598",
			"nameOnCard": "Tyler Thomas",
			"expMonth": "04",
			"expYear": "2026",
			"cvv2": "123"
		}
	},
	"subscriptionId":900000000000000001,
	"timeToLive": 30,
	"validNumberOfUse": 3
}

PaymentTokenProgramSpecifiedParams

Parámetros para generar tokens de pago para oportunidades de venta cruzada con otros participantes específicos del programa (comerciantes).

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
ID de participación del programaentero
(requerido)
El identificador representa el programa asociado con la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

Ejemplo de PaymentTokenProgramSpecifiedParams

{
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"customerInfo": {
		"customerFname": "Tyler",
		"customerLname": "Thomas",
		"address1": "Woodland Drive",
		"address2": "Apt 21",
		"city": "Tempe",
		"state": "AZ",
		"zipcode": "85281",
		"country": "US",
		"phoneNumber": "5555555555",
		"email": "tthomas@xyz.com",
		"ipAddress": "10.70.60.14",
		"browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
		"browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
		"browserHttpAcceptLanguage": "en-US,en;q=0.5",
		"browserHttpAcceptEncoding": "gzip, deflate, br"
	},
	"paymentInfo": {
		"creditCardPaymentInfo": {
			"cardNum": "4473707989493598",
			"nameOnCard": "Tyler Thomas",
			"expMonth": "04",
			"expYear": "2026"
		}
	},
	"subscriptionId": 900000000000000001,
	"programParticipationId": 1,
	"timeToLive": 30,
	"validNumberOfUse": 3
}

PaymentTokenTargetClientParams

Parámetros para generar un token de pago para el comerciante/cliente especificado. Requiere una participación activa en el programa y permite a los comerciantes crear tokens de pago para oportunidades de venta cruzada con otros comerciantes.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
targetClientAccnumentero
(requerido)
Número de cuenta de comerciante de destino.
targetClientSubaccentero
(requerido)
Número de subcuenta de comerciante de destino.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

Ejemplo de PaymentTokenTargetClientParams

{
	"clientAccnum": 900000,
	"clientSubacc": 0000,
	"customerInfo": {
		"customerFname": "Tyler",
		"customerLname": "Thomas",
		"address1": "Woodland Drive",
		"address2": "Apt 21",
		"city": "Tempe",
		"state": "AZ",
		"zipcode": "85281",
		"country": "US",
		"phoneNumber": "5555555555",
		"email": "tthomas@xyz.com",
		"ipAddress": "10.70.60.14",
		"browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
		"browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
		"browserHttpAcceptLanguage": "en-US,en;q=0.5",
		"browserHttpAcceptEncoding": "gzip, deflate, br"
	},
	"paymentInfo": {
		"creditCardPaymentInfo": {
			"cardNum": "4473707989493598",
			"nameOnCard": "Tyler Thomas",
			"expMonth": "04",
			"expYear": "2026"
		}
	},
	"subscriptionId": 900000000000000001,
	"targetClientAccnum": 900000,
	"targetClientSubacc": 0001,
	"timeToLive": 30,
	"validNumberOfUse": 3
}

Información de transacción

Los parámetros de respuesta confirman que se cobró correctamente a un cliente mediante un token de pago.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
código de errorentero
(requerido)
Valor de condición de error de la transacción.
aprobadobooleano
(requerido)
Estado de aprobación de la transacción.
pagoUniqueIdcadena
(requerido)
Clave única conectada a la cuenta de pago.
ID de sesióncadena
(requerido)
Valor de ID de sesión único para la transacción.
ID de suscripciónentero
(requerido)
ID de suscripción al que pertenece la transacción.
newPaymentTokenIdcadena
(requerido)
Nuevo token de pago para transacciones posteriores.

Ejemplo de información de transacción

{
	"errorCode": 200,
	"approved": true,
	"paymentUniqueId": "53104f5a54d3d43254def41c29aedba8",
	"sessionId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"subscriptionId": 900000000000000001,
	"newPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
}

Solicitud de transacción

Parámetros de solicitud para iniciar una solicitud de transacción para un cliente.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
crear nuevo token de pagobooleano
(verdadero Falso)
Devuelva un nuevo token de pago para transacciones posteriores o no.
precio inicialnúmero
(requerido)
Precio de la transacción inicial.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
LifeTimeSubscriptionbooleano
(opcional)
La suscripción es válida durante la vigencia del sitio web.
periodo inicialentero
(requerido)
El período de tiempo de la transacción inicial.
período recurrenteentero
(opcional)
El período de tiempo de las transacciones recurrentes.
código de monedaentero
(opcional)
Representación numérica de la moneda utilizada en la transacción.
refacturacionesentero
(opcional)
El número de veces que pueden ocurrir transacciones recurrentes.
Precio recurrentenúmero
(opcional)
Precio de transacciones recurrentes.
passThroughInfo matriz
(opcional)
Información emparejada pasada al Servicio de transacciones.

Ejemplo de solicitud de transacción

{
    "clientAccnum":900123,
    "clientSubacc":0010,
    "initialPrice": 9.99,
	"initialPeriod": 10,
	"recurringPrice": 15.00,
	"recurringPeriod": 30,
	"rebills": 99,
	"currencyCode": 840,
	"lifeTimeSubscription": false,
    "createNewPaymentToken": false,
	"passThroughInfo": [
		{
			"name": "val1",
			"value": "val2"
		}
	]
}

Solicitud de transacción de Threeds

Parámetros para iniciar un cargo con autenticación 3DS.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
crear nuevo token de pagobooleano
(verdadero Falso)
Devuelva un nuevo token de pago para transacciones posteriores o no.
precio inicialnúmero
(requerido)
Precio de la transacción inicial.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
LifeTimeSubscriptionbooleano
(opcional)
La suscripción es válida durante la vigencia del sitio web.
periodo inicialentero
(requerido)
El período de tiempo de la transacción inicial.
período recurrenteentero
(opcional)
El período de tiempo de las transacciones recurrentes.
código de monedaentero
(opcional)
Representación numérica de la moneda utilizada en la transacción.
refacturacionesentero
(opcional)
El número de veces que pueden ocurrir transacciones recurrentes.
Precio recurrentenúmero
(opcional)
Precio de transacciones recurrentes.
passThroughInfo matriz
(opcional)
Información emparejada pasada al Servicio de transacciones.
tresedsXidcadena
(opcional)
XID para la solicitud de threeds.
versión de threedscadena
(opcional)
El número de versión para la solicitud de threeds.
tresdséxitobooleano
(opcional)
Éxito para la solicitud de threeds.
tresdsCantidadentero
(opcional)
Importe de la solicitud de threeds.
tresdsEcicadena
(requerido)
Solicitud de ECI para threeds.
tresdscavvcadena
(requerido)
CAVV para solicitud de tresds.
algoritmo threedsCavvcadena
(opcional)
Algoritmo CAVV para solicitud de threeds.
tresdsidcadena
(opcional)
Id para la solicitud de threeds.
estado de tresdscadena
(opcional)
Estado de la solicitud de threeds.
ID de transacción de threedscadena
(opcional)
ID de transacción para la solicitud de threeds.
tresdsErrorcadena
(opcional)
Error para la solicitud de threeds.

Ejemplo de ThreedsTransactionRequest

{
    "clientAccnum":900123,
    "clientSubacc":0010,
    "initialPrice": 9.99,
	"initialPeriod": 10,
	"recurringPrice": 15.00,
	"recurringPeriod": 30,
	"rebills": 99,
	"currencyCode": 840,
	"lifeTimeSubscription": false,
    "createNewPaymentToken": false,
	"passThroughInfo": [
		{
			"name": "val1",
			"value": "val2"
		}
	],
	"threedsCavv": "cGFzc3dvcmQxMjM0NTZwYXNzd28=",
	"threedsCavvAlgorithm": "3",
	"threedsEci": "05",
	"threedsError": "",
	"threedsTransactionId": "id-7kzs4vel57n",
	"threedsId": "id-7kzs4vel57n",
	"threedsStatus": "Y",
	"threedsSuccess": true,
	"threedsVersion": "1.0.2",
	"threedsXid": "123",
	"threedsAmount": "999"
}

ThreeDSRequerido

Requerir autenticación 3DS para pago con tarjeta.

Recursos
parámetros
PARÁMETROTIPODESCRIPCIÓN
Requisitosbooleano
(verdadero Falso)
Se requiere 3DS para pago con tarjeta.
cantidadnúmeroImporte del cargo autorizado.

Ejemplo de ThreeDSRequired

{
  "required": "true",
  "amount": "1.0"
}

Respuestas de verificación de CVV2

VALORDESCRIPCIÓN
MCoincidencia CVV2 / CVC2 / CID
NCVV2 / CVC2 / CID Sin coincidencia
PNo procesado
SEl CVV2 / CVC2 / CID debe estar en la tarjeta, pero el comerciante indica que no lo está.
UEl Emisor no está certificado o no ha proporcionado a Visa claves de cifrado.

Respuestas AVS

VALORDESCRIPCIÓN
ALas direcciones de las calles coinciden pero el código postal/ZIP no lo hace, o la solicitud no incluye el código postal/ZIP.
BCoincidencia de direcciones de calles. El código postal no se verifica debido a formatos incompatibles (se enviaron tanto la dirección como el código postal).
CLa dirección postal y el código postal no se verificaron debido a formatos incompatibles. (tanto la dirección como el código postal fueron enviados)
DLas direcciones y los códigos postales coinciden
FLa dirección y el código postal coinciden. (Tarjetas emitidas en el Reino Unido)
GEl emisor no es un participante de AVS, o los datos de AVS estaban presentes en la solicitud, pero el emisor no devolvió un resultado de AVS, o Visa realiza AVS en nombre del emisor y no había un registro de dirección en el archivo de esta cuenta.
OLa información de la dirección no está verificada.
MLa dirección y el código postal coinciden.
NNo coincide. La transacción contenía solo código postal / postal, o solo dirección de calle, o código postal y dirección de calle. También se usa cuando la transacción solicita AVS pero no envía datos AVS.
PLos códigos postales coinciden. Se enviaron el código postal y la dirección postal, pero la dirección postal no se verificó debido a formatos incompatibles.
RRever; El sistema no está disponible o se agotó el tiempo de espera.
SAVS actualmente no es compatible
UNo hay datos de la plataforma de Emisor / Autorización
VCoincidencias de código postal de nueve caracteres; la dirección no coincide
XCoincidencia de código postal y dirección de nueve caracteres
YCoincidencia de dirección y código postal
ZPostal / ZIP coincide, la dirección postal no coincide o la dirección postal no se incluye en la solicitud.
1El nombre del titular de la tarjeta y el código postal coinciden
2El nombre, la dirección y el código postal del titular de la tarjeta coinciden
3El nombre y la dirección del titular de la tarjeta coinciden
4Coincidencias con el nombre del titular de la tarjeta
5El nombre del titular de la tarjeta es incorrecto, el código postal coincide
6Nombre del titular de la tarjeta incorrecto; coincidencia de dirección y código postal
7El nombre del titular de la tarjeta es incorrecto, la dirección coincide
8El nombre, la dirección y el código postal del titular de la tarjeta no coinciden

Ejemplo de verificación de token de pago

{
	"paymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"programParticipationId": 1,
	"originalPaymentTokenId": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
	"clientAccnum": 900000,
	"clientSubacc": 0,
	"createdDatetime": "2018-01-01T01:00:00",
	"timeToLive": 30,
	"validNumberOfUse": 20,
	"subscriptionId": "900000000000000001",
	"paymentInfoId": "53104f5a54d3d43254def41c29aedba8",
	"cvv2Response": "M",
	"avsResponse": "Y"
}

Recursos de la API RESTful de CCBill

Este documento describe los recursos y puntos finales del servicio API RESTful de CCBill Transaction. Está destinado a programadores, técnicos y otras personas con conocimientos avanzados de codificación.

La API de transacción RESTful de CCBill permite a los comerciantes crear tokens de pago y usarlos para cobrar a los clientes.

Recursos de la API

La URL base de la API es https://api.ccbill.com y proporciona los puntos finales enumerados a continuación.

Los objetos de la API de transacción de CCBill están formateados para seguir el formato de archivo de estándar abierto JSON (JavaScript Object Notation) y utilizan el aplicación / json tipo de contenido.

NOMBRE DEL ENCABEZADOTIPO DE CONTENIDO
Content-Typeaplicación / json

Con cada solicitud POST, proporcione el tipo de medio del cuerpo de la solicitud como un encabezamiento.

Los posibles valores de versión de la API incluyen:

application/vnd.mcn.transaction-service.api.v.1+json

y

application/vnd.mcn.transaction-service.api.v.2+json

Preste especial atención a la versión en la ruta URI, ya que el número de versión afecta los tipos de datos del esquema.

/ fichas de pago

Use el / fichas de pago recurso para crear un token que identifique a un usuario en el sistema. El token se puede pasar al sistema en una solicitud de transacción, lo que le permite facturar a un cliente.

SUB-RECURSOMÉTODODESCRIPCIÓN
/solo para comerciantesPUBLICARGenera un token de pago para un comerciante/cliente específico.
/comerciante-solo-verificarPUBLICARGenera un token de pago para un comerciante/cliente específico. Se requiere CVV2 para transacciones con tarjeta.
/{pagoTokenId} Recupera los detalles del token de pago especificado (timeToLive, fecha de creación, etc.).
/tres-requerido Recupera si se requiere o no 3DS/SCA para una determinada tarjeta de crédito.
/{pagoTokenId}/tres-requerido Recupera si se requiere o no 3DS/SCA para un token de pago.
/programa-especificadoPUBLICARGenera un token de pago para el participante del programa especificado.
/cliente-objetivoPUBLICARGenera un token de pago para el comerciante/cliente especificado. Requiere participación activa en el programa.

/ fichas-de-pago / solo-comerciante

Punto final utilizado para crear un token de pago.

URL de solicitud HTTP
Solicitar esquema
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Posibles valores de versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json

Valor de ejemplo:

  • aplicación/vnd.mcn.transaction.service.api.v1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

cURL

curl -X POST \
  https://api.ccbill.com/payment-tokens/merchant-only \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'\''", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }'

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900000,
  "clientSubacc": 0,
  "customerInfo": {
    "customerFname": "Tyler",
    "customerLname": "Thomas",
    "address1": "Woodland Drive",
    "address2": "Apt 21",
    "city": "Tempe",
    "state": "AZ",
    "zipcode": "85281",
    "country": "US",
    "phoneNumber": "5555555555",
    "email": "tthomas@xyz.com",
    "ipAddress": "10.70.60.14'",
    "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
    "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserHttpAcceptLanguage": "en-US,en;q=0.5",
    "browserHttpAcceptEncoding": "gzip, deflate, br"
  },
  "paymentInfo": {
    "creditCardPaymentInfo": {
      "cardNum": "4473707989493598",
      "nameOnCard": "Tyler Thomas",
      "expMonth": "04",
      "expYear": "2026"
    }
  },
  "subscriptionId": 900000000000000000,
  "timeToLive": 30,
  "validNumberOfUse": 3
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/payment-tokens/merchant-only");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

La solicitud se ha realizado correctamente. Extrae el ID de token de pago cadena para crear un cargo para el cliente.

Nota: en PaymentTokenVerifyV2 ID de suscripción se devuelve como una cadena. En el ejemplo v1 a continuación, ID de suscripción se vuelve a sintonizar como un número / entero.

Tipo PaymentToken
{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "paymentTokenId": "string", "paymentInfoId": "string", "subscriptionId": "integer" }

Parámetro Tipo Descripción
Fecha y hora de creación solo fecha y hora (obligatorio) La fecha y hora en que se creó el token de pago.
tiempo para vivir entero (requerido) Define cuánto tiempo va a existir el token de pago.
originalPagoTokenId cadena (opcional) Referencia a una identificación de token anterior.
NúmeroVálidoDeUso entero (requerido) Número total de veces que se puede usar el token de pago para compras.
clienteAccnum entero (requerido) Número de cuenta mercantil.
clienteSubacc entero (requerido) Número de subcuenta de comerciante.
ID de participación del programa entero (requerido) Programa conectado al token de pago.
Id. de token de pago cadena (requerido) Representación compleja del Id. del token de pago.
PaymentInfoId cadena (opcional) Información asociada al pago.
ID de suscripción entero (requerido) Identificación de la suscripción asociada a la transacción.

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/ fichas-de-pago / solo-comerciante-verificar

El recurso se utiliza para mejorar la autenticación durante la creación del token de pago. Este punto final incluye cvvRespuesta y avsRespuesta parámetros en la respuesta. Estos parámetros ayudan a reducir las tasas de devolución de cargo para los comerciantes.

Solicitud HTTP Enlance
Solicitar esquema
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valores de ejemplo:

  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjeto
(formación)
Información del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
información de pago. cvv2cadena
(requerido)
Código CVV2 en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

cURL

curl -X POST \
  https://api.ccbill.com/payment-tokens/merchant-only-verify \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'\''", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026", "cvv2": "123" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }'

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900000,
  "clientSubacc": 0,
  "customerInfo": {
    "customerFname": "Tyler",
    "customerLname": "Thomas",
    "address1": "Woodland Drive",
    "address2": "Apt 21",
    "city": "Tempe",
    "state": "AZ",
    "zipcode": "85281",
    "country": "US",
    "phoneNumber": "5555555555",
    "email": "tthomas@xyz.com",
    "ipAddress": "10.70.60.14'",
    "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
    "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserHttpAcceptLanguage": "en-US,en;q=0.5",
    "browserHttpAcceptEncoding": "gzip, deflate, br"
  },
  "paymentInfo": {
    "creditCardPaymentInfo": {
      "cardNum": "4473707989493598",
      "nameOnCard": "Tyler Thomas",
      "expMonth": "04",
      "expYear": "2026",
      "cvv2": "123"
    }
  },
  "subscriptionId": 900000000000000000,
  "timeToLive": 30,
  "validNumberOfUse": 3
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/payment-tokens/merchant-only-verify");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only-verify');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026", "cvv2": "123" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

La solicitud se ha realizado correctamente. Extrae el ID de token de pago cadena para crear un cargo para el cliente.

Tipo PaymentTokenVerify
{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "avsResponse": "string", "paymentTokenId": "string", "paymentInfoId": "string", "cvv2Response": "string", "subscriptionId": "integer" }

Parámetro Tipo Descripción
createdDatetime (obligatorio) solo fecha y hora Fecha y hora de creación del Token de pago.
timeToLive (obligatorio) entero Tiempo para que exista el token (horas)
originalPagoTokenId cadena Referencia a un ID de token anterior
validNumberOfUse (obligatorio) entero Número total de veces que se puede usar el token de pago para compras
clientAccnum (obligatorio) entero Número de cuenta comercial
clientSubacc (requerido) entero Número de subcuenta del comerciante
programParticipationId (obligatorio) entero El programa conectado al token de pago
avsResponse (obligatorio) cadena El resultado de la verificación AVS
paymentTokenId (obligatorio) cadena Representación compleja del ID del token de pago
PaymentInfoId cadena Información asociada al pago
cvv2Response (obligatorio) cadena El resultado de la verificación CVV2
subscriptionId (requerido) entero Identificación de la suscripción asociada a la transacción

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/ fichas-de-pago / {paymentTokenId}

Utilice esta solicitud para recuperar los detalles de un token de pago según su ID.

Solicitud HTTP Enlance
Parámetro URI
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja del ID del token de pago.
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valores posibles:

  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json

Valor de ejemplo:

  • application/vnd.mcn.transaction-service.api.v.1+json

cURL

curl -X GET \
  https://api.ccbill.com/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84 \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw' \
  -H 'Cache-Control: no-cache'

JavaScript

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.ccbill.com/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

La solicitud se ha realizado correctamente. Extrae el ID de token de pago cadena para crear un cargo para el cliente.

Tipo PaymentToken
{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "paymentTokenId": "string", "paymentInfoId": "string", "subscriptionId": "integer" }

Parámetro Tipo Descripción
createdDatetime (obligatorio) solo fecha y hora Fecha y hora de creación del Token de pago.
timeToLive (obligatorio) entero Tiempo para que exista el token expresado en horas
originalPagoTokenId cadena Referencia a un ID de token anterior
validNumberOfUse (obligatorio) entero Número total de veces que se puede usar el token de pago para compras
clientAccnum (obligatorio) entero Número de cuenta comercial
clientSubacc (requerido) entero Número de subcuenta del comerciante
programParticipationId (obligatorio) entero El programa conectado al token de pago
paymentTokenId (obligatorio) cadena Representación compleja del ID del token de pago
PaymentInfoId cadena Información asociada al pago
subscriptionId (requerido) entero Identificación de la suscripción asociada a la transacción

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/tokens-de-pago/tres-requeridos

Utilice esta solicitud para determinar si una tarjeta de pago debe someterse a la verificación 3DS.

URL de solicitud HTTP
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valor de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
papeleraentero
(requerido)
El número de identificación bancaria (generalmente los primeros 4-6 dígitos del número de tarjeta).
last4cadena
(requerido)
Los últimos 4 dígitos del número de tarjeta de crédito.
clienteAccnumentero
(requerido)
Número de cuenta del comerciante.
clienteSubaccentero
(opcional)
Número de subcuenta del comerciante.

cURL

curl -X GET \
  'https://api.ccbill.com/payment-tokens/threeds-required?bin=411111&last4=1111&clientAccnum=900684&clientSubacc=0000' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTY5NDM1NjY5LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMWFkODY1MWMtZGEwMS00YzNjLTkyY2EtOGQ0YjM3OWJjOGFiIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.Qxtk0x-MxcYHIXDrgtJh3bBLigSh9WALVHSyw0UKpfYpgj_0IVNk8p83njYrukMNXuMt-GnM0J3-ghCpQ3hKHYQnOgdWjA8c_Sr3BfxlRQfTGJUu5wRIxfTpCM3A4XkGKkccMIV3kTexPvUDlEH4Mj1HJNSmXSNzjk3HTbLQ6bTAclWkhYyC4ps81_NG-GaOKpB_hjZES0bcx7RqNhDGkotyAmMsRSIODE0ta6p0Y3X3uCGoGhHxWIj57lmCCdu3m3lNe3aYysSxstES3dsIiVNmJNFR44wviKp01UYRH-oqUqEqyaIUdX3q2ILIkMikb8gCbrZxeHMBFqIWO5z1oQ' \
  -H 'Cache-Control: no-cache'

JavaScript

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.ccbill.com/payment-tokens/threeds-required?bin=411111&last4=1111&clientAccnum=900684&clientSubacc=0000");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTY5NDM1NjY5LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMWFkODY1MWMtZGEwMS00YzNjLTkyY2EtOGQ0YjM3OWJjOGFiIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.Qxtk0x-MxcYHIXDrgtJh3bBLigSh9WALVHSyw0UKpfYpgj_0IVNk8p83njYrukMNXuMt-GnM0J3-ghCpQ3hKHYQnOgdWjA8c_Sr3BfxlRQfTGJUu5wRIxfTpCM3A4XkGKkccMIV3kTexPvUDlEH4Mj1HJNSmXSNzjk3HTbLQ6bTAclWkhYyC4ps81_NG-GaOKpB_hjZES0bcx7RqNhDGkotyAmMsRSIODE0ta6p0Y3X3uCGoGhHxWIj57lmCCdu3m3lNe3aYysSxstES3dsIiVNmJNFR44wviKp01UYRH-oqUqEqyaIUdX3q2ILIkMikb8gCbrZxeHMBFqIWO5z1oQ");
xhr.setRequestHeader("Accept", "*/*");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<!--?php

$request = new HttpRequest();
$request--->setUrl('https://api.ccbill.com/payment-tokens/threeds-required');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'bin' => '411111',
  'last4' => '1111',
  'clientAccnum' => '900684',
  'clientSubacc' => '0000'
));

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'Accept' => '*/*',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTY5NDM1NjY5LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMWFkODY1MWMtZGEwMS00YzNjLTkyY2EtOGQ0YjM3OWJjOGFiIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.Qxtk0x-MxcYHIXDrgtJh3bBLigSh9WALVHSyw0UKpfYpgj_0IVNk8p83njYrukMNXuMt-GnM0J3-ghCpQ3hKHYQnOgdWjA8c_Sr3BfxlRQfTGJUu5wRIxfTpCM3A4XkGKkccMIV3kTexPvUDlEH4Mj1HJNSmXSNzjk3HTbLQ6bTAclWkhYyC4ps81_NG-GaOKpB_hjZES0bcx7RqNhDGkotyAmMsRSIODE0ta6p0Y3X3uCGoGhHxWIj57lmCCdu3m3lNe3aYysSxstES3dsIiVNmJNFR44wviKp01UYRH-oqUqEqyaIUdX3q2ILIkMikb8gCbrZxeHMBFqIWO5z1oQ'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
?>
Esquemas de respuesta
Respuesta

Respuesta exitosa

Tipo TresDSRequerido
{ "required": "boolean", "amount": "number" }

Parámetro Tipo Descripción
Requisitos booleano Se requiere 3DS para pago con tarjeta.
cantidad número Importe del cargo autorizado.

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/pago-fichas/{pagoTokenId}/tres-requeridos

Utilice este punto final para determinar si una transacción debe someterse a la verificación de 3DS en función del ID del token de pago.

URL de solicitud HTTP
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valor de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
Parámetro URI
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.

cURL

curl -X GET \
  https://api.ccbill.com/payment-tokens/01f1142953204411a7e399e0f100fc4d/threeds-required \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTcwMTQxMTYzLCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMTc4ODM4NGUtYWQ5Zi00NjRmLWI3YTEtN2M2NGNiMGQ1ODgxIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.WqSzOQ6gRpZdUp7f-uINqJDXMh17jCLTPzZthPXaiL1N0-3aghhXEZTR7BX04upCtWxxzQQC5tP8IRAtWdtsQSfGHV86GjhILCDxLI5Z9OnMm26JCjtDsKqau5T_y8O-4FT7y-aPiVCB0wQZjRZ96U1cIL7V6zJiCS0Y-mE3ixmAkuUGhYM6Nor2AnvyNtrlfA8SGd8GEF7jJuLGgNCdVVXrDCjzuUdWnHp85Bp5daLai_IprPHapZpZ9UqeOJ9gaw04Kth--ftOx-Y4d3GyACJ0ymCyCGYocjLzerjfHW3HuoWFnRKTX5VVEUkIQ52jLEB1dtmm_hrwAZ1o8UMfQA' \
  -H 'Cache-Control: no-cache'

JavaScript

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.ccbill.com/payment-tokens/01f1142953204411a7e399e0f100fc4d/threeds-required");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTcwMTQxMTYzLCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMTc4ODM4NGUtYWQ5Zi00NjRmLWI3YTEtN2M2NGNiMGQ1ODgxIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.WqSzOQ6gRpZdUp7f-uINqJDXMh17jCLTPzZthPXaiL1N0-3aghhXEZTR7BX04upCtWxxzQQC5tP8IRAtWdtsQSfGHV86GjhILCDxLI5Z9OnMm26JCjtDsKqau5T_y8O-4FT7y-aPiVCB0wQZjRZ96U1cIL7V6zJiCS0Y-mE3ixmAkuUGhYM6Nor2AnvyNtrlfA8SGd8GEF7jJuLGgNCdVVXrDCjzuUdWnHp85Bp5daLai_IprPHapZpZ9UqeOJ9gaw04Kth--ftOx-Y4d3GyACJ0ymCyCGYocjLzerjfHW3HuoWFnRKTX5VVEUkIQ52jLEB1dtmm_hrwAZ1o8UMfQA");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php

$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/01f1142953204411a7e399e0f100fc4d/threeds-required');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJtb2RpZnlfcHJvZ3JhbSIsImNyZWF0ZV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTcwMTQxMTYzLCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQUdFUiIsIk1DTl9BUElfVE9LRU5fQ1JFQVRPUiIsIk1DTl9BUElfQURNSU4iXSwianRpIjoiMTc4ODM4NGUtYWQ5Zi00NjRmLWI3YTEtN2M2NGNiMGQ1ODgxIiwiY2xpZW50X2lkIjoiYjhkOTJkOWFjZTYwMTFlOGFhNmIwMDUwNTY5ZDE1ODUifQ.WqSzOQ6gRpZdUp7f-uINqJDXMh17jCLTPzZthPXaiL1N0-3aghhXEZTR7BX04upCtWxxzQQC5tP8IRAtWdtsQSfGHV86GjhILCDxLI5Z9OnMm26JCjtDsKqau5T_y8O-4FT7y-aPiVCB0wQZjRZ96U1cIL7V6zJiCS0Y-mE3ixmAkuUGhYM6Nor2AnvyNtrlfA8SGd8GEF7jJuLGgNCdVVXrDCjzuUdWnHp85Bp5daLai_IprPHapZpZ9UqeOJ9gaw04Kth--ftOx-Y4d3GyACJ0ymCyCGYocjLzerjfHW3HuoWFnRKTX5VVEUkIQ52jLEB1dtmm_hrwAZ1o8UMfQA'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

Respuesta exitosa

Tipo TresDSRequerido
{ "required": "boolean", "amount": "number" }

Parámetro Tipo Descripción
Requisitos booleano Se requiere 3DS para pago con tarjeta.
cantidad número Importe del cargo autorizado.

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/tokens-de-pago/cliente-objetivo

Este punto final genera un token de pago para el comerciante/cliente especificado.

Requiere una participación activa en el programa y permite a los comerciantes crear tokens de pago para oportunidades de venta cruzada con otros comerciantes.

URL de solicitud HTTP
Solicitar esquema
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valores de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json

Valor de ejemplo:

  • aplicación/vnd.mcn.transaction.service.api.v1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjeto
(formación)
Información al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena (requerido)Estado del cliente.
Información del cliente. código postalcadena (requerido)Código postal del cliente.
Información del cliente. clienteFnamecadena (requerido)Nombre del cliente.
Información del cliente. address1cadena (requerido)Dirección del cliente.
Información del cliente. address2cadena (opcional)Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena (opcional)Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena (requerido)Apellido del cliente.
Información del cliente. dirección IPcadena (requerido)Dirección IP del cliente.
Información del cliente. número de teléfonocadena (opcional)Número de teléfono del cliente.
Información del cliente. paíscadena (requerido)País del cliente.
información de pagoobjetoInformación del pago.
información de pago. número de tarjetacadena (requerido)Número de tarjeta.
información de pago. expMescadena (requerido)Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena (requerido)Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena (requerido)Nombre como aparece en la tarjeta.
ID de suscripciónentero (requerido)Número de identificación de la suscripción de la transacción.
targetClientAccnumentero (requerido)Número de cuenta de comerciante de destino.
targetClientSubaccentero (requerido)Número de subcuenta de comerciante de destino.
tiempo para vivirentero (opcional)Tiempo para que exista el token.
NúmeroVálidoDeUsoentero (opcional)El número total de veces que se puede usar el token de pago para compras.

cURL

curl -X POST \
  https://api.ccbill.com/payment-tokens/target-client \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'\''", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId": 900000000000000001, "targetClientAccnum": 900000, "targetClientSubacc": 1, "timeToLive": 30, "validNumberOfUse": 3 }'

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900000,
  "clientSubacc": 0,
  "customerInfo": {
    "customerFname": "Tyler",
    "customerLname": "Thomas",
    "address1": "Woodland Drive",
    "address2": "Apt 21",
    "city": "Tempe",
    "state": "AZ",
    "zipcode": "85281",
    "country": "US",
    "phoneNumber": "5555555555",
    "email": "tthomas@xyz.com",
    "ipAddress": "10.70.60.14'",
    "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
    "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserHttpAcceptLanguage": "en-US,en;q=0.5",
    "browserHttpAcceptEncoding": "gzip, deflate, br"
  },
  "paymentInfo": {
    "creditCardPaymentInfo": {
      "cardNum": "4473707989493598",
      "nameOnCard": "Tyler Thomas",
      "expMonth": "04",
      "expYear": "2026"
    }
  },
  "subscriptionId": 900000000000000000,
  "targetClientAccnum": 900000,
  "targetClientSubacc": 1,
  "timeToLive": 30,
  "validNumberOfUse": 3
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/payment-tokens/target-client");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/target-client');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId": 900000000000000001, "targetClientAccnum": 900000, "targetClientSubacc": 1, "timeToLive": 30, "validNumberOfUse": 3 }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

La solicitud se ha realizado correctamente. Extrae el ID de token de pago cadena para crear un cargo para el cliente.

Nota: en PaymentTokenVerifyV2 ID de suscripción se devuelve como una cadena. En el ejemplo v1 a continuación, ID de suscripción se vuelve a sintonizar como un número / entero.

Tipo PaymentToken
{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "paymentTokenId": "string", "paymentInfoId": "string", "subscriptionId": "integer" }

Parámetro Tipo Descripción
Fecha y hora de creación solo fecha y hora (obligatorio) La fecha y hora en que se creó el token de pago.
tiempo para vivir entero (requerido) Define cuánto tiempo va a existir el token de pago.
originalPagoTokenId cadena (opcional) Referencia a una identificación de token anterior.
NúmeroVálidoDeUso entero (requerido) Número total de veces que se puede usar el token de pago para compras.
clienteAccnum entero (requerido) Número de cuenta mercantil.
clienteSubacc entero (requerido) Número de subcuenta de comerciante.
ID de participación del programa entero (requerido) Programa conectado al token de pago.
Id. de token de pago cadena (requerido) Representación compleja del Id. del token de pago.
PaymentInfoId cadena (opcional) Información asociada al pago.
ID de suscripción entero (requerido) Identificación de la suscripción asociada a la transacción.

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/pago-tokens/programa-especificado

Este punto final permite a los comerciantes generar tokens de pago para oportunidades de venta cruzada con otros participantes específicos del programa (comerciantes).

URL de solicitud HTTP
  • https://api.ccbill.com/payment-tokens/program-specified
Solicitar esquema
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valores de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
  • application/vnd.mcn.transaction-service.api.v.2+json

Valor de ejemplo:

  • aplicación/vnd.mcn.transaction.service.api.v1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Información del clienteobjetoInformación al cliente.
Información del cliente. correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
Información del cliente. navegadorHttpAceptarIdiomacadena
(opcional)
Lista de lenguajes humanos aceptables para la respuesta.
Información del cliente. navegadorHttpUserAgentcadena
(opcional)
La cadena de agente de usuario del agente de usuario.
Información del cliente. ciudadcadena
(requerido)
Ciudad del cliente.
Información del cliente. navegadorHttpAceptarcadena
(opcional)
Tipos de medios que son aceptables para la respuesta.
Información del cliente. estadocadena
(requerido)
Estado del cliente.
Información del cliente. código postalcadena
(requerido)
Código postal del cliente.
Información del cliente. clienteFnamecadena
(requerido)
Nombre del cliente.
Información del cliente. address1cadena
(requerido)
Dirección del cliente.
Información del cliente. address2cadena
(opcional)
Dirección del cliente (información adicional).
Información del cliente. browserHttpAcceptEncodingcadena
(opcional)
Lista de codificaciones aceptables.
Información del cliente. nombre del clientecadena
(requerido)
Apellido del cliente.
Información del cliente. dirección IPcadena
(requerido)
Dirección IP del cliente.
Información del cliente. número de teléfonocadena
(opcional)
Número de teléfono del cliente.
Información del cliente. paíscadena
(requerido)
País del cliente.
información de pagoobjetoInformación del pago.
información de pago. número de tarjetacadena
(requerido)
Número de tarjeta.
información de pago. expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato.
información de pago. expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato.
información de pago. nombre en la tarjetacadena
(requerido)
Nombre como aparece en la tarjeta.
ID de suscripciónentero
(requerido)
Número de identificación de la suscripción de la transacción.
ID de participación del programaentero
(requerido)
El identificador representa el programa asociado con la transacción.
tiempo para vivirentero
(opcional)
Tiempo para que exista el token.
NúmeroVálidoDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras.

cURL

curl -X POST \
  https://api.ccbill.com/payment-tokens/program-specified \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'\''", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId": 900000000000000001, "programParticipationId": 1, "timeToLive": 30, "validNumberOfUse": 3 }'
  

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900000,
  "clientSubacc": 0,
  "customerInfo": {
    "customerFname": "Tyler",
    "customerLname": "Thomas",
    "address1": "Woodland Drive",
    "address2": "Apt 21",
    "city": "Tempe",
    "state": "AZ",
    "zipcode": "85281",
    "country": "US",
    "phoneNumber": "5555555555",
    "email": "tthomas@xyz.com",
    "ipAddress": "10.70.60.14'",
    "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
    "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserHttpAcceptLanguage": "en-US,en;q=0.5",
    "browserHttpAcceptEncoding": "gzip, deflate, br"
  },
  "paymentInfo": {
    "creditCardPaymentInfo": {
      "cardNum": "4473707989493598",
      "nameOnCard": "Tyler Thomas",
      "expMonth": "04",
      "expYear": "2026"
    }
  },
  "subscriptionId": 900000000000000000,
  "programParticipationId": 1,
  "timeToLive": 30,
  "validNumberOfUse": 3
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/payment-tokens/program-specified");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/program-specified');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId": 900000000000000001, "programParticipationId": 1, "timeToLive": 30, "validNumberOfUse": 3 }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

La solicitud se ha realizado correctamente. Extrae el ID de token de pago cadena para crear un cargo para el cliente.

Nota: en PaymentTokenVerifyV2 ID de suscripción se devuelve como una cadena. En el ejemplo v1 a continuación, ID de suscripción se vuelve a sintonizar como un número / entero.

Tipo PaymentToken
{ "createdDatetime": "datetime-only", "timeToLive": "integer", "originalPaymentTokenId": "string", "validNumberOfUse": "integer", "clientAccnum": "integer", "clientSubacc": "integer", "programParticipationId": "integer", "paymentTokenId": "string", "paymentInfoId": "string", "subscriptionId": "integer" }

Parámetro Tipo Descripción
Fecha y hora de creación solo fecha y hora (obligatorio) La fecha y hora en que se creó el token de pago.
tiempo para vivir entero (requerido) Define cuánto tiempo va a existir el token de pago.
originalPagoTokenId cadena (opcional) Referencia a una identificación de token anterior.
NúmeroVálidoDeUso entero (requerido) Número total de veces que se puede usar el token de pago para compras.
clienteAccnum entero (requerido) Número de cuenta mercantil.
clienteSubacc entero (requerido) Número de subcuenta de comerciante.
ID de participación del programa entero (requerido) Programa conectado al token de pago.
Id. de token de pago cadena (requerido) Representación compleja del Id. del token de pago.
PaymentInfoId cadena (opcional) Información asociada al pago.
ID de suscripción entero (requerido) Identificación de la suscripción asociada a la transacción.

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/actas

Utilice el extremo Transacciones para crear un cargo para un cliente existente o nuevo, o para recuperar datos sobre un cargo.

Un cargo puede representar una transacción en los detalles de facturación de un cliente por parte de un patrocinador, en función de un token obtenido de un afiliado que identifica a uno de sus clientes.

SUB-RECURSOSFORMAS DE PAGODESCRIPCIÓN
/ transaction / payment-tokens / {payment_token_id}PUBLICARSubrecurso utilizado para facturar a un cliente o recuperar detalles sobre un cargo.
/ transaction / payment-tokens / {payment_token_id} Subrecurso utilizado para facturar a un cliente o recuperar detalles sobre un cargo.
/transacciones/pago-tokens/{pago_token_id}/tresPUBLICARSubrecurso utilizado para facturar a un cliente o recuperar detalles sobre un cargo con verificación 3DS.

El OBTENER / transacciones / fichas-de-pago / {payment_token_id} La llamada API permite a los comerciantes recuperar detalles sobre un cargo que se realizó en el sistema.

Use el POST / transacciones / tokens-de-pago / {payment_token_id} Llamada API para facturar a un cliente.

/ transaction / payment-tokens / {payment_token_id}

El POST / transacciones / tokens-de-pago / {payment_token_id} La llamada API creará una solicitud de transacción para un cliente.

El cliente se identifica mediante un token que se obtiene de un afiliado. Si el token es de corta duración y esta es la primera facturación para este cliente, se devuelve un token de mayor duración.

Proporcione el ID del token de pago como Parámetro URI.

URL de solicitud HTTP
Solicitar esquema
Parámetro URI
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valor de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
crear nuevo token de pagobooleanoDevuelva un nuevo token de pago para transacciones posteriores o no.
precio inicialnúmero
(requerido)
Precio de la transacción inicial.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
LifeTimeSubscriptionbooleano
(opcional)
La suscripción es válida durante la vigencia del sitio web.
periodo inicialentero
(requerido)
El período de tiempo de la transacción inicial.
período recurrenteentero
(opcional)
El período de tiempo de las transacciones recurrentes.
código de monedaentero
(opcional)
Representación numérica de la moneda utilizada en la transacción.
refacturacionesentero
(opcional)
El número de veces que pueden ocurrir transacciones recurrentes.
Precio recurrentenúmero
(opcional)
Precio de transacciones recurrentes.
passThroughInfo matriz
(opcional)
Información emparejada pasada al Servicio de transacciones.

cURL

curl -X POST \
  https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84 \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum":900123, "clientSubacc":10, "initialPrice": 9.99, "initialPeriod": 10, "recurringPrice": 15.00, "recurringPeriod": 30, "rebills": 99, "currencyCode": 840, "lifeTimeSubscription": false, "createNewPaymentToken": false, "passThroughInfo": [ { "name": "val1", "value": "val2" } ] }'
  

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900123,
  "clientSubacc": 10,
  "initialPrice": 9.99,
  "initialPeriod": 10,
  "recurringPrice": 15,
  "recurringPeriod": 30,
  "rebills": 99,
  "currencyCode": 840,
  "lifeTimeSubscription": false,
  "createNewPaymentToken": false,
  "passThroughInfo": [
    {
      "name": "val1",
      "value": "val2"
    }
  ]
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum":900123, "clientSubacc":10, "initialPrice": 9.99, "initialPeriod": 10, "recurringPrice": 15.00, "recurringPeriod": 30, "rebills": 99, "currencyCode": 840, "lifeTimeSubscription": false, "createNewPaymentToken": false, "passThroughInfo": [ { "name": "val1", "value": "val2" } ] }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

Un valor de retorno de 200 indica que la solicitud se realizó correctamente. Recibirás la siguiente información:

Escriba TransactionInfo
[ { "errorCode": "integer", "approved": "boolean", "paymentUniqueId": "string", "sessionId": "string", "subscriptionId": "integer", "newPaymentTokenId": "string" } ]

Parámetro Tipo Descripción
item.errorCode (obligatorio) entero Valor de condición de error de la transacción
artículo. aprobado (requerido) booleano Estado de aprobación de la transacción
artículo. paymentUniqueId (requerido) cadena Llave única conectada a la cuenta de pago
artículo. sessionId (requerido) cadena Valor de ID de sesión único para la transacción
item.subscriptionId (obligatorio) entero ID de suscripción al que pertenece la transacción
item.newPaymentTokenId (obligatorio) cadena Nuevo token de pago para transacciones posteriores

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/ transaction / payment-tokens / {payment_token_id}

Utilice este punto final para obtener datos sobre un cargo realizado anteriormente. Deberá identificar el cargo por el ID.

Proporcione el ID del token de pago como Parámetro URI.

URL de solicitud HTTP
Parámetro URI
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valor de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json

cURL

curl -X GET \
  https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84 \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw' \
  -H 'Cache-Control: no-cache'
  

JavaScript

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/transactions/payment-tokens/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW1fcGFydGljaXBhdGlvbiIsIm1vZGlmeV9wcm9ncmFtX3BhcnRpY2lwYXRpb24iXSwiZXhwIjoxNTM2MjcwMTE2LCJhdXRob3JpdGllcyI6WyJNQ05fQVBJX1RPS0VOX0NIQVJHRVIiLCJNQ05fQVBJX1RPS0VOX0NSRUFUT1IiLCJNQ05fQVBJX0FETUlOIl0sImp0aSI6IjlkZjQ5M2NjLTNmNDAtNDdmYS04ZjIwLWFiYWM5NTljOWFjYyIsImNsaWVudF9pZCI6IjUyMTc2OGFhNzU4ZDExZThhYTZiMDA1MDU2OWQxNTg1In0.e6pUqftnUlJcaz1rsxsoCBcitPvnAwAwp1ZiBl77ht0dsVRBUg3vOvruGzxELjVPKWFnu8NFXEJKEhoQXkZuqn2AiiM1u9mOJUtyQ9c1KgEMq6yTCQ_QIxGsrYcwkkr_B2yw5p_q6KHCcaAAAq4HGkKdHbo8C1GHvApD0Q7DVWRmie265Da6ln4Y1_wFHADKYTktCtLhBr4rv-5bmWHy25GKPZgIHViMrJmwSKqG2kC60JEYDrOsZsajhicbKPytXDw9X0Z6PcYPyRCkpz5I1FjsXJmIJnSKLwG8fPC2AOYPqF4p30BHLaCxvtS29jSbpfZj1W0pt708ipZSOlwHAw'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

Un valor de retorno de 200 indica que la solicitud se realizó correctamente. Recibirás la siguiente información:

Escriba TransactionInfo
[ { "errorCode": "integer", "approved": "boolean", "paymentUniqueId": "string", "sessionId": "string", "subscriptionId": "integer", "newPaymentTokenId": "string" } ]

Parámetro Tipo Descripción
item.errorCode (obligatorio) entero Valor de condición de error de la transacción
artículo. aprobado (requerido) booleano Estado de aprobación de la transacción
artículo. paymentUniqueId (requerido) cadena Llave única conectada a la cuenta de pago
artículo. sessionId (requerido) cadena Valor de ID de sesión único para la transacción
item.subscriptionId (obligatorio) entero ID de suscripción al que pertenece la transacción
item.newPaymentTokenId (obligatorio) cadena Nuevo token de pago para transacciones posteriores

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

/transacciones/fichas-de-pago/tres/{pago_token_id}

Utilice esta llamada API para obtener datos sobre un cargo realizado previamente con autenticación 3DS. Deberá identificar el cargo por el ID.

Proporcione el ID del token de pago como Parámetro URI.

Solicitud HTTP Enlance
Parámetro URI
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja del Id. del token de pago.
Encabezamiento
PARÁMETROTIPODESCRIPCIÓN
Aceptarcadena
(enumeración)
Versión API

Valor de la versión de la API:

  • application/vnd.mcn.transaction-service.api.v.1+json
Solicitar esquema
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
crear nuevo token de pagobooleanoDevuelva un nuevo token de pago para transacciones posteriores o no.
precio inicialnúmero
(requerido)
Precio de la transacción inicial.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
LifeTimeSubscriptionbooleano
(opcional)
La suscripción es válida durante la vigencia del sitio web.
periodo inicialentero
(requerido)
El período de tiempo de la transacción inicial.
período recurrenteentero
(opcional)
El período de tiempo de las transacciones recurrentes.
código de monedaentero
(opcional)
Representación numérica de la moneda utilizada en la transacción.
refacturacionesentero
(opcional)
El número de veces que pueden ocurrir transacciones recurrentes.
Precio recurrentenúmero
(opcional)
Precio de transacciones recurrentes.
passThroughInfo matriz
(opcional)
Información emparejada pasada al Servicio de transacciones.
tresedsXidcadena
(opcional)
XID para la solicitud de threeds.
versión de threedscadena
(opcional)
El número de versión para la solicitud de threeds.
tresdséxitobooleano
(opcional)
Éxito para la solicitud de threeds.
tresdsCantidadentero
(opcional)
El monto de la solicitud de tres.
tresdsEcicadena
(requerido)
Solicitud de ECI para threeds.
tresdscavvcadena
(requerido)
CAVV para solicitud de tresds.
algoritmo threedsCavvcadena
(opcional)
Algoritmo CAVV para solicitud de threeds.
tresdsidcadena
(opcional)
Id para la solicitud de threeds.
estado de tresdscadena
(opcional)
Estado de la solicitud de threeds.
ID de transacción de threedscadena
(opcional)
ID de transacción para la solicitud de threeds.
tresdsErrorcadena
(opcional)
Error para la solicitud de threeds.

cURL

curl -X POST \
  https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84 \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{"clientAccnum":"901505","clientSubacc":"0","initialPrice":"10.00","initialPeriod":"30","threedsEci":"05","threedsError":"","threedsStatus":"Y","threedsSuccess":"true","threedsVersion":"1.0.2","threedsXid":"aWQteHc4ajJnNGIxZW8gICAgICA=","threedsCavv":"cGFzc3dvcmQxMjM0NTZwYXNzd28=","threedsCavvAlgorithm":"SHA-256","threedsAmount":"10","threedsClientTransactionId":"id-wl9r6duc5zj","threedsCurrency":"USD","threedsSdkTransId":"","threedsAcsTransId":"","threedsDsTransId":"","threedsAuthenticationType":"","threedsCardToken":"4111111111111111","threedsErrorDetail":"","threedsErrorCode":"","threedsResponse":""}'
  

JavaScript

var data = JSON.stringify({
    "clientAccnum": "901505",
    "clientSubacc": "0",
    "initialPrice": "10.00",
    "initialPeriod": "30",
    "threedsEci": "05",
    "threedsError": "",
    "threedsStatus": "Y",
    "threedsSuccess": "true",
    "threedsVersion": "1.0.2",
    "threedsXid": "aWQteHc4ajJnNGIxZW8gICAgICA=",
    "threedsCavv": "cGFzc3dvcmQxMjM0NTZwYXNzd28=",
    "threedsCavvAlgorithm": "SHA-256",
    "threedsAmount": "10",
    "threedsClientTransactionId": "id-wl9r6duc5zj",
    "threedsCurrency": "USD",
    "threedsSdkTransId": "",
    "threedsAcsTransId": "",
    "threedsDsTransId": "",
    "threedsAuthenticationType": "",
    "threedsCardToken": "4111111111111111",
    "threedsErrorDetail": "",
    "threedsErrorCode": "",
    "threedsResponse": ""
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{"clientAccnum":"901505","clientSubacc":"0","initialPrice":"10.00","initialPeriod":"30","threedsEci":"05","threedsError":"","threedsStatus":"Y","threedsSuccess":"true","threedsVersion":"1.0.2","threedsXid":"aWQteHc4ajJnNGIxZW8gICAgICA=","threedsCavv":"cGFzc3dvcmQxMjM0NTZwYXNzd28=","threedsCavvAlgorithm":"SHA-256","threedsAmount":"10","threedsClientTransactionId":"id-wl9r6duc5zj","threedsCurrency":"USD","threedsSdkTransId":"","threedsAcsTransId":"","threedsDsTransId":"","threedsAuthenticationType":"","threedsCardToken":"4111111111111111","threedsErrorDetail":"","threedsErrorCode":"","threedsResponse":""}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Esquemas de respuesta
Respuesta

Un valor de retorno de 200 indica que la solicitud se realizó correctamente. Recibirás la siguiente información:

Escriba TransactionInfo
[ { "errorCode": "integer", "approved": "boolean", "paymentUniqueId": "string", "sessionId": "string", "subscriptionId": "integer", "newPaymentTokenId": "string" } ]

Parámetro Tipo Descripción
item.errorCode (obligatorio) entero Valor de condición de error de la transacción
artículo. aprobado (requerido) booleano Estado de aprobación de la transacción
artículo. paymentUniqueId (requerido) cadena Llave única conectada a la cuenta de pago
artículo. sessionId (requerido) cadena Valor de ID de sesión único para la transacción
item.subscriptionId (obligatorio) entero ID de suscripción al que pertenece la transacción
item.newPaymentTokenId (obligatorio) cadena Nuevo token de pago para transacciones posteriores

La respuesta no se pudo completar debido a un encabezado / parámetro no válido en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó debido a un problema de autorización.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

No se pudo completar la respuesta porque el acceso al recurso está prohibido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un recurso no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un método de solicitud no válido.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio inaceptable en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se pudo completar debido a un tipo de medio no compatible en la solicitud.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

La respuesta no se completó de alguna manera.

Error de tipo
{ "id": "string", "url": "string", "errors": [ { "field": "string", "message": "string" } ], "generalMessage": "string", "errorCode": "string", "timestamp": "datetime" }

Parámetro Tipo Descripción
id (requerido) cadena GUID generado aleatoriamente.
Patrón de validación: ^ [a-zA-Z0-9 -] * $
Example: "62432dd8-97d9-400a-8da8-4a5c1951f935"
url (obligatorio) cadena La URL RELATIVA que ha causado este error. Ejemplo: "/ programas / 123"
errores ValidationError [objeto] Opcional, solo se devuelve en 400 errores de solicitud incorrecta por errores de validación
errores. Campo requerido) cadena Campo en error
errores. mensaje requerido) cadena Mensaje descriptivo
generalMessage (obligatorio) cadena Un mensaje legible por humanos
errorCode (obligatorio) cadena Código de error definido por el producto.
Patrón de validación: ^ [0-9 -] * $
marca de tiempo (obligatorio) datetime Marca de tiempo de la llamada

Guía Técnica para Crear y Cobrar Tokens de Pago

Esta guía técnica describe los pasos para crear y cargar fichas de pago utilizando el servicio API RESTful de transacciones de CCBill.

Está destinado a programadores, técnicos y otras personas con conocimientos avanzados de codificación.

Requisitos

  • El usuario tiene un Cuenta CCBill.
  • El usuario ha recibido Credenciales de la API.
  • El usuario ha incluido su dominio en la lista blanca con la ayuda de Soporte CCBill.
  • El usuario tiene experiencia con RESTful Web Services.
  • El usuario tiene experiencia con formatos JSON.
  • La API de transacciones RESTful solo admite TLS 1.2.

Importante: Para mantener el cumplimiento de PCI en todo momento, use el widget avanzado de CCBill y asegúrese de que los detalles de pago se envíen directamente a CCBill sin que se envíen a través de su servidor. Cargue siempre las bibliotecas de JavaScript de CCBill a través de https://js.ccbill.com para seguir cumpliendo. No agrupe ni aloje los scripts usted mismo.

Terminología

  • Cuenta comercial: Cada comerciante de CCBill recibe un número de cuenta con fines de seguimiento. El formato estándar es 9xxxxx-xxxx, donde 9xxxxx es la cuenta principal. La cuenta principal es un número de seis (6) dígitos. Por ejemplo: "999999".
  • Subcuenta comercial: Los comerciantes de CCBill pueden abrir una o más subcuentas. La subcuenta es un número de cuatro (4) dígitos. El formato estándar es: xxxx. Por ejemplo: "1234". La subcuenta es parte de la cuenta principal.
  • Ficha de pago: Un token de pago identifica una entidad facturable dentro del sistema.
  • Identificación de suscripción: Número de identificación de la suscripción a la transacción
  • Identificación de la aplicación del comerciante: Esta es la ID de cliente que el comerciante recibió al registrarse para usar la API RESTful de CCBill.
  • Secreto del comerciante: Esta es la contraseña que se configuró para la autenticación con la API RESTful de CCBill.
  • Autenticación fuerte del cliente (SCA): leyes europeas (PSD2) requieren el uso de SCA, como el 3DS protocolo, para el procesamiento de pagos en línea. La SCA se inicia cuando un titular de tarjeta con sede en la UE realiza un pago en línea. Los comerciantes pueden usar el Widget avanzado de CCBill y sus funciones para facilitar una fuerte autenticación del cliente.

El flujo de pago

A continuación se detallan los 3 pasos esenciales para cobrar al consumidor mediante un token de pago:

1. Genere el token de portador CCBill OAuth

La solicitud para generar el token CCBill OAuth debe enviarse desde sus servicios back-end directamente a la API de CCBill y no puede solicitarse desde el navegador.

2. Crear el token de pago

3. Cobrar el token de pago

El siguiente diagrama de secuencia describe el flujo para crear y cobrar tokens de pago sin verificación 3DS. Haga clic en la imagen para verla en tamaño completo.

Creación de un token de pago de carga sin verificación 3DS.

Si bien todos los pasos anteriores se pueden completar realizando solicitudes desde su backend a nuestros puntos finales de API, también puede usar el Widget avanzado de CCBill (biblioteca JS) a:

  • crear los tokens de pago
  • comprobar si se requiere la verificación 3DS o no, y
  • realizar una autenticación fuerte del cliente (SCA) desde el navegador

El siguiente diagrama de secuencia describe el flujo para crear y cargar tokens de pago con verificación 3DS. Haga clic en la imagen para verla en tamaño completo.

El diagrama de secuencia para crear y cargar tokens de pago con verificación 3DS.

Creación de la CCBill OAuth token y tokens de pago de carga no son compatibles con el Widget avanzado de CCBill y debe realizarse haciendo llamadas a la API desde sus servicios de back-end.

1. Generar token de portador CCBill OAuth

La API de transacción RESTful de CCBill utiliza OAuth autenticación y autorización basadas. Antes de acceder a la API, debe registrar su aplicación con CCBill para recibir un ID de aplicación de comerciante y llave secreta.

Utilice estas credenciales para generar un token al proporcionarlas al servidor de autorización.

Tenga en cuenta que este paso no se puede realizar desde el navegador y debe realizar la llamada desde su backend.

Una vez que haya generado un token de acceso (que no debe confundirse con un token de pago), proporciónelo en el encabezado de Autorización de cada solicitud de API. Tendrá acceso hasta que el token de acceso caduque o sea revocado.

URL de punto final

https://api.ccbill.com/ccbill-auth/oauth/token?grant_type=client_credentials

Encabezamiento

Content-Type: application/x-www-form-urlencoded

Authorization: Basic MerchantApplicationID:SecretKey

Solicitud de ejemplo

curl -X POST \

https://api.ccbill.com/ccbill-auth/oauth/token \

--header 'Content-Type: application/x-www-form-urlencoded' \

--header 'Authorization: Basic Merchant_ApplicationID:Merchant_Secret ' \

--data-urlencode 'grant_type=client_credentials'

El token adquirido es una cadena de datos aleatorios que no contiene información o valor confidencial. Es una herramienta de autenticación y autorización que otorga a sus aplicaciones acceso a los recursos de la API RESTful de CCBill.

Ejemplo de token de portador en el encabezado de la solicitud

  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \

2. Crear token de pago (Widget avanzado de CCBill)

El Widget avanzado de CCBill facilita la creación de tokens de pago al encapsular las llamadas API que deben realizarse en una función de JavaScript que se puede usar desde su página web.

La biblioteca está alojada en la red de distribución de contenido (CDN) de CCBill, lo que hace que la importación a los sitios web de los comerciantes sea rápida y sencilla desde cualquier lugar del mundo.

Las siguientes instrucciones describen cómo configurar y utilizar el Widget avanzado de CCBill biblioteca.

Paso 1. Agregar enlace precargado y elementos HTML

Agregue un enlace precargado y elementos HTML de secuencia de comandos a la página HTML del cliente que se conectará al widget avanzado de CCBill.

<link rel="preload" href="https://js.ccbill.com/v1.2.2/ccbill-advanced-widget.js" as="script"/>
<script type="text/javascript" src="https://js.ccbill.com/v1.2.2/ccbill-advanced-widget.js"></script>

La versión de API en este ejemplo de URI es v1.2.2. Preste especial atención a la versión en la ruta URI ya que el número de versión puede estar sujeto a cambios.

Paso 2. Definir ID de campo

El widget avanzado puede extraer los campos de formulario relevantes basándose en los atributos de ID predeterminados o utilizando el atributo de elemento HTML personalizado data-ccbill. El data-ccbill Se recomienda el atributo ya que es menos intrusivo y proporciona más flexibilidad.

Cuando se usa el atributo personalizado, el formato correcto es:

Formato

<input type="text" data-ccbill="[corresponding field name]" />

Cuando se utilizan los ID predeterminados, el formato correcto es:

<input type="text" id="_ccbillId_[corresponding field name]" />

La tabla muestra los valores que se deben establecer para el data-ccbill atributo o, alternativamente, en los campos de atributos de ID predeterminados.

data-ccbillID predeterminados
nombre en la tarjeta_ccbillId_nameOnCard
número de tarjeta_ccbillId_cardNumber
expMes_ccbillId_expMonth
expaño_ccbillId_expYear
nombre de pila_ccbillId_nombre
apellido_ccbillId_apellido
address1 (opcional)_ccbillId_dirección1 (opcional)
address2 (opcional)_ccbillId_dirección2 (opcional)
ciudad (opcional)_ccbillId_ciudad (opcional)
país_ccbillId_país
estado (opcional) _ccbillId_estado (opcional)
código postal_ccbillId_postalCode
número de teléfono (opcional)_ccbillId_phoneNumber (opcional)
correo electrónico,_ccbillId_email
código de moneda (Un código de moneda de tres dígitos para la moneda utilizada en la transacción. Obligatorio para SCA)._ccbillId_currencyCode (Un código de moneda de tres dígitos para la moneda utilizada en la transacción. Obligatorio para SCA).
dirección IP (opcional, campo oculto recomendado autocompletado por JavaScript)_ccbillId_ipAddress (opcional, campo oculto recomendado autocompletado por JavaScript)
navegadorHttpAceptar (opcional, campo oculto recomendado autocompletado por JavaScript)_ccbillId_browserHttpAceptar (opcional, campo oculto recomendado autocompletado por JavaScript)
browserHttpAcceptEncoding (opcional, campo oculto recomendado autocompletado por javascript)_ccbillId_browserHttpAcceptEncoding (opcional, campo oculto recomendado autocompletado por javascript)
navegadorHttpAceptarIdioma (opcional, campo oculto recomendado autocompletado por javascript)_ccbillId_browserHttpAceptarIdioma (opcional, campo oculto recomendado autocompletado por javascript)

Paso 3. Crear método JavaScript

Cree un método de JavaScript que llamará al widget avanzado de CCBill crearPagoToken() función. El ejemplo proporcionado se puede modificar según sea necesario.

Esta es la función principal que los comerciantes deben incorporar en sus llamadas de JavaScript para crear Tokens de pago.

Para generar un token, se deben pasar varios parámetros mediante la función:

PARÁMETROTIPODESCRIPCIÓN
token de autorización
cadena
(requerido)
Entrada requerida que utiliza un token de Oauth para realizar la creación del token de pago. Debe ser un token de Oauth válido para la cuenta de cliente proporcionada.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
clearPaymentInfobooleano
(opcional)
Un indicador opcional que, si se establece en verdadero, dará como resultado la eliminación de los campos de información del cliente cuando el crear el token de pago se llama a la función. Si nulo se proporciona, por defecto será falso y los campos de información de pago no se borrarán.

Nota: Aunque este parámetro es opcional, este campo debe establecerse en 'nulo' si no se usa.
clearCustomerInfobooleano
(opcional)
Un indicador opcional que, si se establece en verdadero, dará como resultado la eliminación de los campos de información del cliente cuando el crear el token de pago se llama a la función. Si nulo se proporciona, por defecto será falso y los campos de información del cliente no se borrarán.

Nota: Aunque este parámetro es opcional, este campo debe establecerse en 'nulo' si no se usa.
tiempo para vivirentero
(opcional)
El intervalo de tiempo que define cuánto tiempo debe ser válido el token (horas).
numeroDeUsoentero
(opcional)
Número total de veces que se puede usar el token de pago para compras.

Nota: Aunque este parámetro es opcional, este campo debe establecerse en 'nulo' si no se usa.

crearPagoToken() Ejemplo

const widget = new ccbill.CCBillAdvancedWidget(applicationId);
try {
       const result = widget.createPaymentToken(oauthToken, clientAccnum, clientSubacc, clearPaymentInfo, clearCustomerInfo, timeToLive, numberOfUse);
       result.then(
           (data) => {
               console.log("SUCCESS");
               return data.json();
           },
           (error) => {
               console.log("ERROR");
               return error.json();
           }).then(json => {                
               console.log("RESULT :[" + JSON.stringify(json) + "]");
           }).catch((error) => {
           console.error("ERROR2 [" + error + "]");
       });
       console.log(`FINISHED`);
   } catch (error) {
       const errors = [];
       error.forEach(function(item) {
         const msg = item.message.split(".");
         errors.push(msg[1]);
       });
       console.error(`ERROR ` + JSON.stringify(errors));
       alert("ERROR: Unable to generate Payment Token: " + JSON.stringify(errors));
   }

Usando solo los parámetros requeridos

const result = widget.createPaymentToken(oauthToken, clientAccnum, clientSubacc);

Uso de indicadores de limpieza de campo

const result = widget.createPaymentToken(oauthToken, clientAccnum, clientSubacc, clearPaymentInfo, clearCustomerInfo);

Usando numberOfUse y timeToLive pero sin banderas

const result = widget.createPaymentToken(oauthToken, clientAccnum, clientSubacc, null, null, timeToLive, numberOfUse);

Uso de todos los parámetros

const result = widget.createPaymentToken(oauthToken, clientAccnum, clientSubacc, clearPaymentInfo, clearCustomer, timeToLive, numberOfUse);

Paso 4. Token de pago generado

El resultado contendrá el token de pago recién creado, que se puede convertir en JSON.

En caso de cualquier entrada no válida, la respuesta incluirá errores de validación que se encontraron durante la validación de la entrada.

También puede incluir cualquier error que haya ocurrido durante el proceso de generación del token de pago.

Validación de datos de campo

El crear el token de pago La función validará los valores de los campos. Si alguno de los valores no pasa la validación, no se creará ningún token. Si ese es el caso, el sistema generar una matriz de violaciones indicando qué campos no son válidos.

PARÁMETROTIPOREQUISITO
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
Un rango entre 90000 y 999999 y debe ser un número.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante. Un rango de 0-9999 y debe ser un número.
tiempo para vivirentero
(opcional)
Tiene un rango de 0-2147483647 y debe ser un número. Si se desea el valor máximo, omita esto (o pase nulo).
numeroDeUsoentero
(opcional)
El número total de veces que se puede usar el token de pago para compras. Tiene un rango de 0-2147483647 y debe ser un número. Si se desea el valor máximo, omita esto (o pase nulo).
número de tarjetacadena
(requerido)
Debe ser un número de tarjeta de crédito válido.
expMescadena
(requerido)
Mes de caducidad de la tarjeta en mm formato. Se requiere un rango de 1-12, y debe ser un número.
expañocadena
(requerido)
Año de caducidad de la tarjeta en aaaa formato. Se requiere un rango de 2018-2100, y debe ser un número.
nombre de pilacadena
(requerido)
Nombre del cliente.
apellidocadena
(requerido)
Apellido del cliente.
address1cadena
(opcional)
Dirección del cliente.
ciudadcadena
(opcional)
Ciudad del cliente.
paíscadena
(requerido)
País del cliente. Debe estar representado como un código de país de dos letras como se define en ISO-3166 1.
estadocadena
(opcional)
Estado del cliente. Si se proporciona, debe ser un código de estado de dos letras como se define en ISO-3166 2.
código postalcadena
(requerido)
Código postal del cliente. Es un código postal válido para el país proporcionado.
número de teléfonocadena
(opcional)
Número de teléfono del cliente. Si se proporciona, debe ser un número de teléfono válido.
correo electrónico,cadena
(requerido)
Dirección de correo electrónico del cliente.
dirección IPcadena
(opcional)
Dirección IP del cliente.

La matriz de violaciones es un objeto del siguiente objeto:

{
  target: Object,
  message: string,
  propertyName: string
}

En este momento, la página del cliente deberá resolver cualquier error, mostrar el mensaje correcto en el que los campos no eran válidos o usar el nuevo token de pago provisto.

Autenticación fuerte del cliente

CCBill Advanced Widget también permite a los comerciantes integrarse con el proveedor 3DS de CCBill e incorporar una fuerte autenticación de clientes en sus transacciones.

Como alternativa, los comerciantes pueden enviar los resultados de SCA (3DS) obtenidos de un proveedor de 3DS de su elección. Para iniciar cargos con un token de pago, los parámetros SCA deben enviarse junto con otros parámetros obligatorios.

isScaFunción requerida

El isScaRequerido determina si se necesita una fuerte autenticación del cliente. El sistema verifica el número de tarjeta de crédito, el número de cuenta del comerciante, el número de subcuenta y el código de moneda proporcionados.

Una entrada válida da como resultado una Promesa, que eventualmente se resolverá en una respuesta con parámetros SCA o se convertirá en un rechazo, debido a un error.

Ejemplo

const result = widget.isScaRequired(authToken, clientAccnum, clientSubacc);
PARÁMETROTIPODESCRIPCIÓN
token de autorizacióncadena
(requerido)
Debe ser un token de Oauth válido para la cuenta de comerciante proporcionada.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.

El formulario de pago del comerciante debe contener un campo de entrada de texto (oculto si es necesario) o un elemento de selección (oculto si es necesario) para el código de moneda valor. El valor representa un código de moneda de tres dígitos (norma ISO 4217) para la moneda utilizada en la transacción.

El widget avanzado recopilará automáticamente la código de moneda valor si sigue las convenciones de nomenclatura estándar. Los comerciantes pueden:

  • Utilice el atributo de ID predeterminado.
  • Especifique el ID del código de moneda utilizando la biblioteca.
  • Utilice la data-ccbill atributo para especificar el campo de código de moneda.

data-ccbill ejemplo de atributo (entrada)

<input data-ccbill="currencyCode" type="text" />

data-ccbill ejemplo de atributo (seleccionar)

<select data-ccbill="currencyCode" />

<option>…</option>
<option>…</option>
…

</select>

Predeterminado _ccbillId_currencyCode ejemplo de atributo (entrada)

<input id="_ccbillId_currencyCode" type="text" />

Predeterminado _ccbillId_currencyCode ejemplo de atributo (seleccionar)

<select id="_ccbillId_currencyCode" />

<option>…</option>
<option>…</option>
…

</select>

Validación de datos de campo

PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Tiene un rango de 900000-999999 y debe ser un número.
clienteSubaccentero
(requerido)
Tiene un rango de 0-9999 y debe ser un número.
código de monedaentero
(requerido)
Tiene que coincidir con la expresión regular ^ \\ d {3} $
Número de tarjeta de crédito (entrada de formulario)entero
(requerido)
Debe ser un número de tarjeta de crédito válido.

El objeto de violaciones es una matriz del siguiente objeto:

{
  target: Object,
  message: string,
  propertyName: string
}
Función isScaRequiredForPaymentToken

El isScaRequiredForPaymentToken La función determina si se requiere una autenticación fuerte del cliente. basado en la ID del token de pago proporcionado y el código de moneda.

Una entrada válida da como resultado una Promesa, que eventualmente se resolverá en una respuesta con parámetros SCA o se convertirá en un rechazo, debido a un error.

PARÁMETROTIPODESCRIPCIÓN
token de autorizacióncadena
(requerido)
Debe ser un token de Oauth válido para la cuenta de comerciante proporcionada.
Id. de token de pagocadena
(requerido)
El identificador del token de pago. Una cadena única que identifica el token de pago, debe coincidir con la expresión regular <strong><em>[a-zA-Z0-9]+$</em></strong>

Ejemplo

const result = widget.isScaRequiredForPaymentToken(authToken, paymentTokenId);

El formulario de pago del comerciante debe contener un campo de entrada de texto o un elemento de selección para el código de moneda valor. El valor representa un código de moneda de tres dígitos (norma ISO 4217) para la moneda utilizada en la transacción.

El widget avanzado recopilará automáticamente la código de moneda valor si sigue las convenciones de nomenclatura estándar. Los comerciantes pueden:

  • Utilice el atributo de ID predeterminado.
  • Especifique el ID del código de moneda utilizando la biblioteca.
  • Utilice la data-ccbill atributo para especificar el campo de código de moneda.

data-ccbill ejemplo de atributo (entrada)

<input data-ccbill=”currencyCode” type=”text” />

data-ccbill ejemplo de atributo (seleccionar)

<select data-ccbill=”currencyCode” />

<option>…</option>
<option>…</option>
…

</select>

Predeterminado _ccbillId_currencyCode ejemplo de atributo (entrada)

<input id=“_ccbillId_currencyCode” type=”text” />

Predeterminado _ccbillId_currencyCode ejemplo de atributo (seleccionar)

<select id=“_ccbillId_currencyCode” />

<option>…</option>
<option>…</option>
…

</select>

Validación de datos de campo

PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Debe coincidir con la expresión regular ^ [a-zA-Z0-9] + $
código de monedaentero
(requerido)
Tiene que coincidir con la expresión regular ^ \\ d {3} $

El objeto de violaciones es una matriz del siguiente objeto:

{
  target: Object,
  message: string,
  propertyName: string
}
función autenticarcliente

El autenticarCliente La función permite a los comerciantes obtener el resultado de la autenticación del cliente antes de iniciar una transacción 3DS y llamar al extremo de la API Merchant Connect (RESTful) de CCBill. Si la llamada falla, devolverá un error.

Se deben pasar varios parámetros para facilitar una autenticación sólida del cliente.

PARÁMETROTIPODESCRIPCIÓN
token de autorizacióncadena
(requerido)
Debe ser un token de Oauth válido para la cuenta de comerciante proporcionada.
formulariocadena
(opcional)
Una referencia de formulario debe ser un selector válido o un elemento de formulario HTML que exista en la página web del comerciante. Tenga en cuenta que si el no se proporciona formId, el widget encontrará el primer elemento HTML del formulario en la página y supondrá que ese es el formulario de pago.
iframeIdcadena
(opcional)
El proceso de autenticación 3DS presenta un iframe en la página web para realizar su funcionalidad. El script Advanced Widget genera un iframe y lo inyecta en la página web del comerciante si el parámetro no está definido. Si el valor proporcionado es nulo o una cadena vacía, se regenera para ajustarse a los requisitos técnicos mínimos.
Id. de token de pagocadena
(opcional)
Utilice este campo opcional en lugar del número de tarjeta, el mes de vencimiento de la tarjeta y el año de vencimiento de la tarjeta. La información de la tarjeta debe estar presente en el formulario HTML asociado si no se proporciona la identificación del token.

Ejemplo usando solo los parámetros requeridos

const result = widget.authenticateCustomer(authToken);

Ejemplo usando formulario

const result = widget.authenticateCustomer(authToken, form);

Ejemplo usando iframeId y formulario

const result = widget.authenticateCustomer(authToken, form, iframeId);

Ejemplo usando todos los parámetros

const result = widget.authenticateCustomer(authToken, form, iframeId, paymentTokenId);

Validación de datos de campo

PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Debe coincidir con la expresión regular ^ [a-zA-Z0-9] + $
formulariocadena
(opcional)
Una referencia de formulario debe ser un selector válido o un elemento de formulario HTML que exista en la página web del comerciante. Si es no siempre, el sistema intentará recopilar las entradas SCA requeridas del primer formulario HTML que encuentre en la página.
iframeIdcadena
(opcional)
El proceso de autenticación 3DS presenta un iframe en la página web para realizar su funcionalidad. El script Advanced Widget genera un iframe y lo inyecta en la página web del comerciante si el parámetro no está definido. Si el valor proporcionado es nulo o una cadena vacía, se regenera para ajustarse a los requisitos técnicos mínimos.

Visite el Códigos de error de autenticación de 3DS página para obtener una lista completa de códigos de error.

3. Cobrar token de pago

Después de generar un nuevo token de OAuth y después de generar un token de pago, puede usar esos dos tokens nuevos para cargar la tarjeta de crédito del consumidor.

Cobrar token de pago (sin autenticación 3DS)

URL de solicitud HTTP
Encabezamiento
Accept: application/vnd.mcn.transaction-service.api.v.1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
precio inicialflotar
(requerido)
Precio de transacción inicial.
periodo inicialentero
(requerido)
La duración (en días) del período de facturación inicial.
Precio recurrenteflotar
(opcional)
El monto que se le cobrará al consumidor por cada factura recurrente.
período recurrenteentero
(opcional)
El tiempo entre refacturaciones.
refacturacionesentero
(opcional)
El número total de veces que se volverá a facturar la suscripción.
código de monedaentero
(opcional)
Código de moneda de tres dígitos (norma ISO 4217) para la moneda utilizada en la transacción.
LifeTimeSubscriptionbooleano
(opcional)
La presencia de esta variable con un valor de 1 indica que la transacción es una suscripción de por vida.
crear nuevo token de pagobooleano
(opcional)
Devuelva un nuevo token de pago para transacciones posteriores o no.
passThroughInfoMatriz [cualquiera]
(opcional)
Pares clave/valor que se pueden pasar al servicio de transacciones y recibir en la respuesta del webhook.

cURL

curl -X POST \
  https://api.ccbill.com/payment-tokens/merchant-only \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'\''", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }'

JavaScript

var data = JSON.stringify({
  "clientAccnum": 900000,
  "clientSubacc": 0,
  "customerInfo": {
    "customerFname": "Tyler",
    "customerLname": "Thomas",
    "address1": "Woodland Drive",
    "address2": "Apt 21",
    "city": "Tempe",
    "state": "AZ",
    "zipcode": "85281",
    "country": "US",
    "phoneNumber": "5555555555",
    "email": "tthomas@xyz.com",
    "ipAddress": "10.70.60.14'",
    "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
    "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "browserHttpAcceptLanguage": "en-US,en;q=0.5",
    "browserHttpAcceptEncoding": "gzip, deflate, br"
  },
  "paymentInfo": {
    "creditCardPaymentInfo": {
      "cardNum": "4473707989493598",
      "nameOnCard": "Tyler Thomas",
      "expMonth": "04",
      "expYear": "2026"
    }
  },
  "subscriptionId": 900000000000000000,
  "timeToLive": 30,
  "validNumberOfUse": 3
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/payment-tokens/merchant-only");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/payment-tokens/merchant-only');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{ "clientAccnum": 900000, "clientSubacc": 0, "customerInfo": { "customerFname": "Tyler", "customerLname": "Thomas", "address1": "Woodland Drive", "address2": "Apt 21", "city": "Tempe", "state": "AZ", "zipcode": "85281", "country": "US", "phoneNumber": "5555555555", "email": "tthomas@xyz.com", "ipAddress": "10.70.60.14'", "browserHttpUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "browserHttpAccept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "browserHttpAcceptLanguage": "en-US,en;q=0.5", "browserHttpAcceptEncoding": "gzip, deflate, br" }, "paymentInfo": { "creditCardPaymentInfo": { "cardNum": "4473707989493598", "nameOnCard": "Tyler Thomas", "expMonth": "04", "expYear": "2026" } }, "subscriptionId":900000000000000001, "timeToLive": 30, "validNumberOfUse": 3 }');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Parámetros de respuesta de rechazo
ParámetroTipoDescripción
decliveCodecadenaEl código de error se refiere al error que ha causado la falla de la transacción.
declinarTextobooleanoDescripción de la decadencia.
ID de rechazocadenaGUID generado aleatoriamente.
aprobadobooleanoEstado de aprobación de la transacción.
pagoUniqueIdcadenaClave única conectada a la cuenta de pago.
ID de sesióncadenaValor de ID de sesión único para la transacción.
ID de suscripciónenteroID de suscripción al que pertenece la transacción.
newPaymentTokenIdcadenaNuevo token de pago para transacciones posteriores.

Respuesta de ejemplo

{"declineCode":null,"declineText":null,"denialId":null,"approved":true,"paymentUniqueId":"dG4P1t8dL58pA3rNxE+Phw","sessionId":null,"subscriptionId":121095101000018190,"newPaymentTokenId":null}

Token de pago de cargo (con autenticación 3DS)

URL de punto final
Encabezados
Accept: application/vnd.mcn.transaction-service.api.v.1+json
Parámetros de solicitud
PARÁMETROTIPODESCRIPCIÓN
crear nuevo token de pagobooleano
(opcional)
Devuelva un nuevo token de pago para transacciones posteriores o no.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
precio inicialflotar
(requerido)
Precio de transacción inicial.
periodo inicialentero
(requerido)
La duración (en días) del período de facturación inicial.
Precio recurrenteflotar
(opcional)
El monto que se le cobrará al consumidor por cada factura recurrente.
período recurrenteentero
(opcional)
El tiempo entre refacturaciones.
refacturacionesentero
(opcional)
El número total de veces que se volverá a facturar la suscripción.
código de monedaentero
(opcional)
Código de moneda de tres dígitos (norma ISO 4217) para la moneda utilizada en la transacción.
LifeTimeSubscriptionbooleano
(opcional)
La presencia de esta variable con un valor de 1 indica que la transacción es una suscripción de por vida.
crear nuevo token de pagobooleano
(opcional)
Devuelva un nuevo token de pago para transacciones posteriores o no.
passThroughInfoMatriz [cualquiera]
(opcional)
Información emparejada que se pasa al servicio de transacciones.
tresdsCardTokenentero
(requerido)
El número de tarjeta de pago (PAN).
tresdsEcicadena
(requerido)
Un Indicador de Comercio Electrónico (ECI).
Valores: '0','1','2','5','6', o'7'.
estado de tresdscadena
(requerido)
El estado de la verificación 3DS ('Y','N','A', etc.)
versión de threedscadena
(requerido)
La versión del protocolo 3DS que se seguirá para esta tarjeta y transacción específicas.
Las versiones disponibles son 1.0.2 y 2.1.0
tresdsXidcadena
(opcional/requerido)
El identificador de la transacción (XID) es un número de seguimiento único establecido por el comerciante para 3DS. Es un parámetro requerido para threedsVersion 1.0.2
tresdscavvcadena
(opcional/requerido)
Una firma digital que prueba que la transacción ha sido verificada en 3DS. La firma se obtiene a través de un flujo de verificación 3DS y es un parámetro requerido para threedsVersion 1.0.2
algoritmo threedsCavvcadena
(opcional/requerido)
Algoritmo CAVV para solicitud de threeds. Se requiere el parámetro threedsCavvAlgorithm para threedsVersion 1.0.2
tresdsDsTransIdcadena
(opcional/requerido)
ID de transacción del servidor de directorio. El parámetro threedsDsTransId es necesario para threedsVersion 2.1.0
tresdsAcsTransIdcadena
(opcional/requerido)
ID de transacción del servidor de control de acceso. Se requiere el parámetro threedsAcsTransId para threedsVersion 2.1.0
tresdsSdkTransIdcadena
(opcional)
El ID de transacción del proveedor de 3DS.
tipo de autenticación de threedscadena
(opcional)
Una firma digital que prueba que la transacción ha sido verificada en 3DS. La firma se obtiene a través de un flujo de verificación 3DS (v2.1.0).
valor de autenticación de threedscadena
(opcional)
Una firma digital que prueba que la transacción ha sido verificada en 3DS. La firma se obtiene a través de un flujo de verificación 3DS (v2.1.0).
threedsClientTransactionIdcadena
(requerido)
El widget avanzado genera automáticamente el parámetro. Su propósito es identificar el origen de la transacción de autenticación 3DS.
tresdséxitobooleano
(opcional)
Verificación del éxito o fracaso de la autenticación 3DS.
tresdsCantidadentero
(opcional)
La cantidad a cobrar (igual que precio inicial).
tresdsmonedaentero
(opcional)
El código de moneda de 3 dígitos para la moneda que se utilizará en esta transacción.
Valor de ejemplo: 840
tresdsErrorcadena
(opcional/requerido)
Error recibido del proveedor de 3DS durante el proceso de autenticación sólida del cliente. El parámetro es obligatorio si no se proporciona threedsVersion.
tresdsErrorDetallecadena
(opcional)
Detalles del error relacionados con el tresdsError.
tresdsErrorCodecadena
(opcional)
Código de error.
respuesta de tresdscadena
(opcional)
La respuesta completa en caso de error.

cURL

curl -X POST \
  https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84 \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{"clientAccnum":"901505","clientSubacc":"0","initialPrice":"10.00","initialPeriod":"30","threedsEci":"05","threedsError":"","threedsStatus":"Y","threedsSuccess":"true","threedsVersion":"1.0.2","threedsXid":"aWQteHc4ajJnNGIxZW8gICAgICA=","threedsCavv":"cGFzc3dvcmQxMjM0NTZwYXNzd28=","threedsCavvAlgorithm":"SHA-256","threedsAmount":"10","threedsClientTransactionId":"id-wl9r6duc5zj","threedsCurrency":"USD","threedsSdkTransId":"","threedsAcsTransId":"","threedsDsTransId":"","threedsAuthenticationType":"","threedsCardToken":"4111111111111111","threedsErrorDetail":"","threedsErrorCode":"","threedsResponse":""}'

JavaScript

var data = JSON.stringify({
    "clientAccnum": "901505",
    "clientSubacc": "0",
    "initialPrice": "10.00",
    "initialPeriod": "30",
    "threedsEci": "05",
    "threedsError": "",
    "threedsStatus": "Y",
    "threedsSuccess": "true",
    "threedsVersion": "1.0.2",
    "threedsXid": "aWQteHc4ajJnNGIxZW8gICAgICA=",
    "threedsCavv": "cGFzc3dvcmQxMjM0NTZwYXNzd28=",
    "threedsCavvAlgorithm": "SHA-256",
    "threedsAmount": "10",
    "threedsClientTransactionId": "id-wl9r6duc5zj",
    "threedsCurrency": "USD",
    "threedsSdkTransId": "",
    "threedsAcsTransId": "",
    "threedsDsTransId": "",
    "threedsAuthenticationType": "",
    "threedsCardToken": "4111111111111111",
    "threedsErrorDetail": "",
    "threedsErrorCode": "",
    "threedsResponse": ""
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ");
xhr.setRequestHeader("Cache-Control", "no-cache");

xhr.send(data);

PHP

<?php
$request = new HttpRequest();
$request->setUrl('https://api.ccbill.com/transactions/payment-tokens/threeds/01047ed6f3b440c7a2ccc6abc1ad0a84');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Cache-Control' => 'no-cache',
  'Authorization' => 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsibWNuLXRyYW5zYWN0aW9uLXNlcnZpY2UiLCJtY24tYWRtaW4tc2VydmljZSJdLCJzY29wZSI6WyJjcmVhdGVfdG9rZW4iLCJyZWFkX3Rva2VuIiwiY2hhcmdlX3Rva2VuIiwiY3JlYXRlX3Byb2dyYW0iLCJyZWFkX3Byb2dyYW0iLCJjcmVhdGVfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIiwicmVhZF9wcm9ncmFtX3BhcnRpY2lwYXRpb24iLCJtb2RpZnlfcHJvZ3JhbV9wYXJ0aWNpcGF0aW9uIl0sImV4cCI6MTUzNzM4MDczNiwiYXV0aG9yaXRpZXMiOlsiTUNOX0FQSV9UT0tFTl9DSEFSR0VSIiwiTUNOX0FQSV9UT0tFTl9DUkVBVE9SIiwiTUNOX0FQSV9BRE1JTiJdLCJqdGkiOiI4YzI2Njg1MC00NjMzLTQzZDMtYjZjOC1lNzIyY2ExNjQ1YTUiLCJjbGllbnRfaWQiOiI1MjE3NjhhYTc1OGQxMWU4YWE2YjAwNTA1NjlkMTU4NSJ9.HRYXZFATkIcI2_LJ1W_xo67IfBnbN9atyYNzyHqseLxYUxzgwBsAV5rNqCixKemOrDIeQLBN4jrwRsBIHDpEvshwBC8XmTodDJzpGmMaU9s1r20RV68X0_d1yTgSDke_Of7VCrVmJRbSuDl7AgsfTqQ1J7nWyu9vcIaER93ms-vadser_Ot9Z68_HAmCJL3DCLpdIFq3PYtBMKKKqXbvhfhSZQZD3b6-aewAnBo0VzpvK6tREqw1rv9_73oAvYcW2aHAj79ILr8viWMM40LyDKMMYOYkneg3hJUQsUVeh9WzztYUJKzERYNXje9fYIGN-eofoLvX7OZJ3eXmIfkrfQ',
  'Content-Type' => 'application/json'
));

$request->setBody('{"clientAccnum":"901505","clientSubacc":"0","initialPrice":"10.00","initialPeriod":"30","threedsEci":"05","threedsError":"","threedsStatus":"Y","threedsSuccess":"true","threedsVersion":"1.0.2","threedsXid":"aWQteHc4ajJnNGIxZW8gICAgICA=","threedsCavv":"cGFzc3dvcmQxMjM0NTZwYXNzd28=","threedsCavvAlgorithm":"SHA-256","threedsAmount":"10","threedsClientTransactionId":"id-wl9r6duc5zj","threedsCurrency":"USD","threedsSdkTransId":"","threedsAcsTransId":"","threedsDsTransId":"","threedsAuthenticationType":"","threedsCardToken":"4111111111111111","threedsErrorDetail":"","threedsErrorCode":"","threedsResponse":""}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
Parámetros de respuesta de rechazo
ParámetroTipoDescripción
código de errorenteroValor de condición de error de la transacción.
aprobadobooleanoEstado de aprobación de la transacción.
pagoUniqueIdcadenaClave única conectada a la cuenta de pago.
ID de sesióncadenaValor de ID de sesión único para la transacción.
ID de suscripciónenteroID de suscripción al que pertenece la transacción.
newPaymentTokenIdcadenaNuevo token de pago para transacciones posteriores.

Respuesta de ejemplo

{
  "errorCode": "integer",
  "approved": "boolean",
  "paymentUniqueId": "string",
  "sessionId": "string",
  "subscriptionId": "integer",
  "newPaymentTokenId": "string"
}

Una vez que se ha cargado el token de pago, un Notificación HTTP POST de webhooks se activará para que pueda capturar la información de la transacción. Este evento de webhooks será un “UpSaleÉxito.

Leer ID de token de pago

Utilice esta llamada a la API para obtener datos sobre un cargo realizado anteriormente. Deberá identificar el cargo por la ID del token de pago e incluir la ID como un elemento URI.

Solicitud de ejemplo

GET 'https://api.ccbill.com/payment-tokens/{{PAYMENT_TOKEN_ID}}' \

--header 'Authorization: Bearer {{BACKEND_ACCESS_TOKEN}}' \

--header 'Accept: application/vnd.mcn.transaction-service.api.v.2+json'
URL de solicitud HTTP
Encabezamiento
Accept: application/vnd.mcn.transaction-service.api.v.2+json
Parámetros de respuesta
PARÁMETROTIPODESCRIPCIÓN
Id. de token de pagocadena
(requerido)
Representación compleja de ID de token de pago.
ID de participación del programaentero
(requerido)
El Programa conectado al Token de Pago.
originalPagoTokenIdcadena
(opcional)
Referencia a un ID de token anterior.
clienteAccnumentero
(requerido)
Número de cuenta mercantil.
clienteSubaccentero
(requerido)
Número de subcuenta de comerciante.
Fecha y hora de creaciónsolo fecha y hora
(requerido)
Fecha y hora de creación del token de pago.
tiempo para vivirentero
(requerido)
Tiempo de existencia del token (horas).
NúmeroVálidoDeUsoentero
(requerido)
Número total de veces que se puede usar el token de pago para compras.
PaymentInfoIdcadena
(opcional)
Información asociada al pago.
ID de suscripciónentero
(requerido)
Identificación de la suscripción asociada a la transacción.

Respuesta de ejemplo

{"paymentTokenId":"01390f2aae864749a6437e007936529b","programParticipationId":null,"originalPaymentTokenId":null,"clientAccnum":999999,"clientSubacc":0,"createdDatetime":"2021-04-02T23:09:02","timeToLive":30,"validNumberOfUse":3,"paymentInfoId":null,"errors":null,"subscriptionId":"121092501000146223"}

Visite la siguiente página para obtener una lista completa de Códigos de error de la API RESTful de CCBill.

Conexión comercial

Conexión comercial es un mercado diseñado para reunir a los comerciantes en una ubicación centralizada. CCBill está mejorando una vez más la experiencia de compra en línea de los consumidores al proporcionar una nueva forma de realizar nuevas compras de diferentes comerciantes sin volver a ingresar la información de pago.

Diseñado para simplificar y asegurar el proceso de compra mientras aumenta los ingresos, Merchant Connect permite a su empresa llegar a nuevos mercados y consumidores con la flexibilidad y la innovación que ofrece CCBill.

Con Merchant Connect, hemos creado una experiencia de usuario simple que permite a los comerciantes conectarse rápida y fácilmente entre sí, asociándose para aumentar el tráfico y los ingresos para ambas partes. Puede enumerar su programa y presentarlo en la red de comerciantes de CCBill, o encontrar rápidamente un programa de socios con el que compartir su tráfico.

Caracteristicas

Cómo funciona Merchant Connect

Básicamente, CCBill juega como casamentero entre los comerciantes patrocinadores y los comerciantes afiliados. La plataforma permite transacciones con un solo clic entre todos los comerciantes, por lo que su audiencia puede realizar compras instantáneas de otros comerciantes. Un comerciante afiliado envía un miembro o comprador a un número seleccionado de comerciantes patrocinados por CCBill y ofrece su producto que se puede comprar con un solo clic del botón del mouse. CCBill rastrea estas transacciones con un solo clic, y realizamos un seguimiento y pago de la participación en los ingresos, todo dentro de la plataforma Merchant Connect.

¿Qué me convierte en patrocinador o comerciante afiliado?

¿Qué lo convierte en un comerciante patrocinador?¿Qué lo convierte en un comerciante afiliado?
Le gustaría ofrecer su producto o servicio a otros propietarios de sitios web de CCBill.Tiene consumidores existentes o anteriores que han comprado a través de CCBill.
Le gustaría aumentar su tráfico entrante y automatizar su reparto de ingresos.Le gustaría aumentar sus ingresos ofreciendo otro producto o servicio a sus consumidores.
Le gustaría hacer crecer su propia base de clientes con nuevas ventas cruzadas de socios.Le gustaría automatizar su flujo de ventas y simplificar el proceso de venta superior en su sitio.

Si se ve a sí mismo en alguno de los roles mencionados anteriormente, entonces no hay nada que se interponga en su camino para recibir o enviar tráfico a través de Merchant Connect.

Requisitos

Merchant Connect se considera una función avanzada. Como tal, este documento asume lo siguiente:

Terminología

Cuenta de API de enlace de datos

La implementación de Merchant Connect requiere que tanto el comerciante patrocinador como los comerciantes afiliados usen CCBill Sistema de extracción de enlace de datos. Data Link se habilitará para su cuenta cuando configure un programa, o puede comunicarse con nuestro Departamento de asistencia comercial al merchandisingupport@ccbill.com para tener esto habilitado si desea familiarizarse con el sistema antes de crear programas.

API CCBill

La implementación de Merchant Connect requiere que tanto el comerciante patrocinador como el comerciante afiliado utilicen el API CCBill. Este es un componente de Data Link que facilita el uso del método avanzado para implementar Merchant Connect. Este método se analiza con más detalle a continuación.

Controles de velocidad

CCBill Velocity Controls es una función avanzada de la API de CCBill y le permite limitar las transacciones de los clientes por el número de transacciones y / o por el monto en efectivo de las transacciones dentro de un período de tiempo específico. Esto significa que puede establecer el número de transacciones para un cliente específico dentro de un período de tiempo determinado. Las reglas se aplican a todos los tipos de pago y se pueden implementar en una sola subcuenta o en todas las subcuentas.

Cuando se aplica, a cada cliente se le asigna una identificación única en función de su información financiera y antecedentes de seguridad. Al configurar CCBill Velocity Controls, limita las posibilidades de fraude y, de manera individual, permite que los buenos clientes leales continúen comprando más allá de los límites establecidos. Si está interesado en esta función avanzada, comuníquese con merchandisingupport@ccbill.com para configurar controles de velocidad de acuerdo con los requisitos de su negocio.

Casos de uso

La implementación del sistema Merchant Connect será diferente para casi todas las situaciones. Este documento tiene la intención de brindarle una descripción general del proceso y las llamadas necesarias para los métodos admitidos de envío y recuperación; Deberá utilizar la información proporcionada y adaptarla a su propia configuración.

Se incluyen cuatro posibles maneras en las que Merchant Connect podría utilizarse.

Caso de uso n. ° 1: redireccionar a los consumidores a un recorrido

1. El consumidor visita el sitio del comerciante afiliado e inicia sesión en su cuenta.

2. Desde el sitio del comerciante afiliado, el consumidor hace clic en un banner o enlace para el programa del comerciante patrocinador.

3. Merchant Connect redirige al consumidor a la página del programa del comerciante patrocinador con un token adjunto que contiene la información de identificación del consumidor (el token no es visible para el consumidor).

4. Merchant Connect presenta una oferta al consumidor del comerciante patrocinador.

Un gráfico que muestra cómo funciona Merchant Connect.

5. El consumidor acepta los términos de la transacción.

6. Merchant Connect utiliza la información del token para procesar la transacción sin que el consumidor ingrese ninguna información de pago.

7. El Comerciante Patrocinador completa el cumplimiento del pedido y el Comerciante Afiliado recibe crédito por recomendar al consumidor al Comerciante Patrocinador.

Caso de uso n. ° 2: cobrar a un consumidor de inmediato

1. El consumidor visita el sitio del comerciante afiliado e inicia sesión en su cuenta.

2. Desde el sitio del comerciante afiliado, el consumidor hace clic en un banner o enlace para el programa del comerciante patrocinador.

3. Merchant Connect redirige al consumidor a la página del programa del comerciante patrocinador con un token adjunto que contiene la información de identificación del consumidor (el token no es transparente para el consumidor).

Merchant Connect al cobrar al cliente de inmediato.

4. Durante la redirección, se cobra al consumidor utilizando la información del token.

5. El consumidor es redirigido al sitio del comerciante patrocinador con una transacción exitosa.

6. Se acredita al comerciante afiliado por recomendar al consumidor al comerciante patrocinador.

Caso de uso n. ° 3: cobrar a un consumidor con un sessionId

1. El consumidor visita el sitio del comerciante afiliado e inicia sesión en su cuenta.

2. Mientras está registrado en el sitio del comerciante afiliado, el consumidor hace clic en un banner o enlace para el programa del comerciante patrocinador.

3. Merchant Connect redirige al consumidor a la página del programa del comerciante patrocinador con un token adjunto que contiene la información de identificación del consumidor (el token no es visible para el consumidor).

4. El comerciante patrocinador utiliza información de token para generar una sesión de información del consumidor (las sesiones no caducan y pueden usarse indefinidamente para cobrar al consumidor sin volver a ingresar la información de pago).

Merchant Connect al cobrar al cliente con el sessionID.

5. Merchant Connect utiliza la información de la sesión para procesar la transacción sin que el consumidor ingrese ninguna información de pago.

6. El Comerciante Patrocinador completa el cumplimiento del pedido y el Comerciante Afiliado recibe crédito por recomendar al consumidor al Comerciante Patrocinador.

Caso de uso n. ° 4: crear un perfil para un consumidor

1. El consumidor visita el sitio del comerciante afiliado e inicia sesión en su cuenta.

2. Mientras está registrado en el sitio del comerciante afiliado, el consumidor hace clic en un banner o enlace para el programa del comerciante patrocinador.

3. Merchant Connect redirige al consumidor a la página del programa del comerciante patrocinador con un token adjunto que contiene la información de identificación del consumidor (el token no es transparente para el consumidor).

4. El comerciante afiliado agrega información adicional a la URL de redireccionamiento como detalles delimitados por barra (/ variable1 / valor1 / variable2 / valor2).

5. El comerciante patrocinador recibe información del sitio del comerciante afiliado y crea un perfil para el consumidor.

Uso de Merchant Connect para crear un perfil para un consumidor.

6. Merchant Connect utiliza la información del token para procesar la transacción sin que el consumidor ingrese ninguna información de pago.

7. El consumidor ha iniciado sesión en el sitio del comerciante patrocinador con una transacción exitosa y su nuevo perfil.

8. El Comerciante Patrocinador completa el cumplimiento del pedido y el Comerciante Afiliado recibe crédito por recomendar al consumidor al Comerciante Patrocinador.

Métodos de implementación

Hay dos métodos de implementación de Merchant Connect:

Método avanzado

El método avanzado requiere que los comerciantes afiliados se integren completamente con la API de CCBill. Luego, el Afiliado utiliza las llamadas "Obtener token de venta cruzada" en la API de CCBill para generar y devolver un token autenticado a través de un script cuando un consumidor hace clic en el banner o material promocional en el sitio del comerciante afiliado. El comerciante afiliado luego reemplaza ese token con una versión modificada que contiene su ID de participación en el programa.

El sitio del comerciante patrocinador utilizará la API de CCBill para realizar una llamada de "Cargo por token" a la API de CCBill para completar la compra. En el caso de que el token no esté autenticado (el período de autenticación ha caducado), el consumidor deberá proporcionar alguna verificación de identidad para obtener un token verificado y volver a enviar la llamada "Cargo por token". El período de autenticación predeterminado es de 24 horas.

Este método, aunque requiere más programación, crea una experiencia más fluida para el usuario.

Método simple

El método simple requiere menos programación de los comerciantes afiliados para implementar, pero resulta en más información del consumidor para completar la compra.

En el método simple, los comerciantes afiliados adjuntan información de identificación sobre el titular de la suscripción al código de enlace de referencia en lugar de generar un token de API de CCBill. El consumidor es dirigido a través de Merchant Connect, donde se crea un token no autenticado que incluye la información del comerciante afiliado y la información de identificación del consumidor y se envía al sitio del comerciante patrocinador.

El consumidor hace clic para confirmar la compra, lo que activa la llamada "Cargo por token" a la API de CCBill, que a su vez reconoce el estado no autenticado del token y solicita al consumidor la verificación de identidad. Si la identidad se verifica con éxito, la API de CCBill redirigirá al parámetro "url" pasado por el comerciante patrocinador (también se puede proporcionar una "URL de falla" para los casos en los que el consumidor no se identifica correctamente).

El método simple tiene dos "subopciones" disponibles. La única diferencia entre los dos son los parámetros que deben enviarse del comerciante afiliado a Merchant Connect.

Integración API

información de autenticación

MerchantAccnumEnteroNúmero de cuenta comercial de CCBill
ComercianteSubaccShortNúmero de subcuenta del comerciante de CCBill
usandoMerchantSubaccShortNúmero de subcuenta del comerciante de CCBill (cuando corresponda y MerchantSubacc es nulo)
nombre de usuarioCordónNombre de usuario de la API de CCBill
la contraseñaCordónContraseña de la API de CCBill

Ejemplos de funciones

Funciones del comerciante patrocinador

getCrossSaleSessionInfo / getCrossSaleTokenInfo

INinformación de autenticación
INsessionId / tokeninfocadenasessionId representa un identificador único para la relación de consumidor entre el comerciante afiliado y el comerciante patrocinador; tokeninfo es un objeto de datos transitorio que incluye información que se utilizará para crear o buscar una sesión.
OUTcorreo electrónico,cadenaDirección de correo electrónico registrada para el consumidor del comerciante afiliado.
OUTisAuthLockedbyte1 = El consumidor ha fallado demasiadas veces para ser autenticado y debe intentarlo de nuevo más tarde;
0 = El consumidor no ha agotado sus intentos de autenticación
OUTestá autenticadobyte1 = El consumidor ha validado su código postal o se trata de un token avanzado;
0 = El consumidor no ha validado su código postal, su ventana de validación ha expirado o un token avanzado ha expirado.
OUTURL de autenticacióncadenaSi isAuthenticated = 0, el usuario deberá ser redirigido a esta URL para validar su identidad; Los siguientes parámetros se pueden transferir a este sistema:
* url = URL para redirigir a una validación exitosa (si no se proporciona, redirigirá a HTTP_REFERER)
* failureUrl = URL a la que redirigir tras una validación fallida (si no se proporciona, se redirigirá al parámetro "url")
OUTesUsuarioCreadobyte1 = El patrocinador ha registrado correctamente un usuario para el consumidor utilizando el método createUserForCrossSale;
0 = El patrocinador aún no ha registrado un usuario para el consumidor mediante el método createUserForCrossSale.
OUTpagoUniqueIdcadenaIdentifica de forma única una cuenta de pago en particular (tarjeta de crédito / fecha de vencimiento, cuenta ACH / número de ruta) utilizando un algoritmo hash. Usado a menudo por los comerciantes patrocinadores con fines de fraude.
OUTID de participación del programaenteroEl identificador único que indica la relación entre un comerciante afiliado y el programa de un comerciante patrocinador.
OUTID de sesióncadenaLo mismo que arriba.
OUTcódigo de errorentero0 = No hubo error;
consulte el Apéndice A: Códigos de error y descripciones para obtener una lista de otros códigos posibles.
OUTerrorDesccadenaDescripción del error devuelto; consulte el Apéndice A: Códigos de error y descripciones para obtener una lista de posibles descripciones.
OUTID de suscripciónenteroSi esto está presente, el comerciante patrocinador ha procesado al menos una venta con esta sesión. El subscriptionId proporcionado fue la primera venta procesada.

Ejemplo:

<soapenv:Envelope>
<soapenv:Body>
<q0:getCrossSaleTokenInfoRequest>
<authenticationInfo>
<MerchantAccnum>9000000</MerchantAccnum>
<username>user</username>
<password>test1234</password>
</authenticationInfo>
<tokenInfo>4OJ3K6i63IOtc0Czanbz5m2boEiaFf+lE2prv1bPkXQ=</tokenInfo>
</q0:getCrossSaleTokenInfoRequest>
</soapenv:Body>
</soapenv:Envelope>

Respuesta:

<soap:Envelope>
<soap:Body>
<getCrossSaleTokenInfoResponse>
<response>
<errorCode>0</errorCode>
<email>xxxx@ccbill.com</email>
<isAuthLocked>0</isAuthLocked>
<isAuthenticated>1</isAuthenticated>
<isUserCreated>0</isUserCreated>
<paymentUniqueId>/PvvoUQCmc3WoTssCZawbQ</paymentUniqueId>
<programParticipationId>4240</programParticipationId>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<subscriptionId>0106100101000000001</subscriptionId
</response>
</getCrossSaleTokenInfoResponse>
</soap:Body>
</soap:Envelope>

información de pago

INinformación de autenticación
INsessionId / tokeninfocadenasessionId representa un identificador único para la relación de consumidor entre el comerciante afiliado y el comerciante patrocinador; tokeninfo es un objeto de datos transitorio que incluye información que se utilizará para crear o buscar una sesión.
INprecio inicialenteroImporte del cargo inicial. Basado en dos decimales implícitos. Por ejemplo, $ 2.95 deben pasarse como 295.
INperiodo inicialenteroDuración del plazo inicial de suscripción en días.
INPrecio recurrenteenteroOpcionalMonto de cada cargo recurrente. Basado en dos decimales implícitos. Por ejemplo, se deben pasar $ 29.95 2995.
INperíodo recurrenteenteroOpcionalDuración del plazo recurrente de la suscripción en días.
INrefacturacionesCortoOpcionalNúmero de veces que se debe volver a facturar la suscripción antes de que finalice (99 para ilimitado).
INcódigo de monedaCortoOpcionalCódigo de moneda numérico ISO 4217 (es decir, dólares estadounidenses = 840); Predeterminado a 840.

chargeCrossSaleBySession / chargeCrossSaleByToken

INpares de pasopares nombre / valorOpcionalDatos misceláneos que el Patrocinador puede pasar durante el proceso de registro que se les proporcionará en las publicaciones de antecedentes de aprobación / rechazo.
OUTaprobadobyte0 = Rechazado, 1 = Aprobado.
OUTpagoUniqueIdcadenaIdentifica de forma única una cuenta de pago en particular (es decir, tarjeta de crédito / fecha de vencimiento, cuenta ACH / número de ruta) utilizando un algoritmo hash. Algunos comerciantes utilizan esto con fines de fraude de su lado.
OUTID de sesióncadenaID de sesión representa un identificador único para la relación de consumidor entre el comerciante afiliado y el comerciante patrocinador.
OUTID de suscripcióncadenaEl ID de suscripción de la transacción recién procesada (asumiendo que fue aprobada).
OUTID de negaciónenteroEl descriptor único del ID.
OUTdecliveCodeenteroEl código de rechazo proporcionado por el procesador de la tarjeta de crédito.
OUTdeclinarTextocadenaPresente si se rechaza la transacción; proporciona una descripción de por qué se rechazó la transacción.
OUTAuthenticateUrlcadenaPresente si el token / sesión no está autenticado. Si isAuthenticated = 0, el usuario deberá ser redirigido a esta URL para validar su identidad; Los siguientes parámetros se pueden transferir a este sistema:
* url = URL para redirigir a una validación exitosa (si no se proporciona, redirigirá a HTTP_REFERER)
* errorUrl = URL a la que redirigir tras una validación fallida (si no se proporciona, se redirigirá al parámetro "url")

Ejemplo:


<soapenv:Envelope>
<soapenv:Body>
<q0:chargeCrossSaleBySessionRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<usingMerchantSubacc>0000</usingMerchantSubacc>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<paymentInfo>
<initialPrice>1000</initialPrice>
<initialPeriod>30</initialPeriod>
</paymentInfo>
<passThroughInfo>
<pairs>
<name>field1</name>
<value>value1</value>
</pairs>
</passThroughInfo>
</q0:chargeCrossSaleBySessionRequest>
</soapenv:Body>
</soapenv:Envelope>

Respuesta:

<soap:Envelope>
<soap:Body>
<chargeCrossSaleBySessionResponse>
<response>
<errorCode>0</errorCode>
<approved>1</approved>
<paymentUniqueId>/PvvoUQCmc3WoTssCZawbQ</paymentUniqueId>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<subscriptionId>910089201000000023</subscriptionId>
</response>
</chargeCrossSaleBySessionResponse>
</soap:Body>
</soap:Envelope>

createUserForCrossSaleSession / createUserForCrossSaleToken

INinformación de autenticación
INsessionId / tokeninfocadenaID de sesión representa un identificador único para la relación de consumidor entre el comerciante afiliado y el comerciante patrocinador; tokeninfo es un objeto de datos transitorio que incluye información que se utilizará para crear o buscar una sesión.
INPatrocinador Miembro Nombre de usuariocadenaOpcionalEl nombre de usuario que el comerciante patrocinador agregó a su sitio web y nos proporcionó utilizando el createUserForCrossSaleToken or createUserForCrossSaleSession métodos.
INPatrocinador Miembro ContraseñacadenaOpcionalIgual que Patrocinador Miembro Nombre de usuario, excepto la contraseña.
OUTID de sesióncadenaID de sesión representa un identificador único para la relación de consumidor entre el comerciante afiliado y el comerciante patrocinador.

Ejemplo:

<soapenv:Envelope>
<soapenv:Body>
<q0:createUserForCrossSaleSessionRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
<SponsorMemberUsername>TEST</SponsorMemberUsername>
<SponsorMemberPassword>TEST</SponsorMemberPassword>
</q0:createUserForCrossSaleSessionRequest>
</soapenv:Body>
</soapenv:Envelope>

Respuesta:

<soap:Envelope>
<soap:Body>
<createUserForCrossSaleSessionResponse>
<response>
<errorCode>0</errorCode>
<sessionId>kmEEyxSst43rIx0Quj4RyA</sessionId>
</response>
</createUserForCrossSaleSessionResponse>
</soap:Body>
</soap:Envelope>

Funciones de los comerciantes afiliados

generar sesión para venta cruzada

INinformación de autenticación
INID de suscripciónenteroOpcionalEl ID de suscripción desde el que el comerciante afiliado desea crear el token.
INAfiliadoMiembroNombre de usuariocadenaOpcionalEl nombre de usuario que el comerciante afiliado desea incluir en el token (se anulará con el que tenemos registrado si está utilizando nuestra gestión de usuarios).
IN
Afiliado Miembro Contraseña
cadenaOpcionalLa contraseña que el comerciante afiliado desea incluir en el token (se anulará con lo que tenemos registrado si está utilizando nuestra gestión de usuarios).
OUTtokeninfocadenaEl token autenticado que se crea en base a la información anterior que utilizarán para reenviar al consumidor a través de WMS al sitio web del Patrocinador.

Ejemplo:

<soapenv:Envelope>
<soapenv:Body>
<q0:generateSessionForCrossSaleByTokenRequest>
<authenticationInfo>
<MerchantAccnum>900000</MerchantAccnum>
<username>testuser</username>
<password>test1234</password>
</authenticationInfo>
<subscriptionId>0910089201000000022</subscriptionId>
</q0:generateSessionForCrossSaleByTokenRequest>
</soapenv:Body>
</soapenv:Envelope>

Respuesta:

<soap:Envelope>
<soap:Body>
<generateSessionForCrossSaleByTokenResponse>
<return>
<errorCode>0</errorCode>
<tokeninfo>4OJ3K6i63IOtc0Czanbz5thajxTbspyOu7DBqLoLt9w%3D</tokeninfo>
</return>
</generateSessionForCrossSaleByTokenResponse>
</soap:Body>
</soap:Envelope>

Apéndice A: Códigos de error y descripciones

Código de errorError de descripción
-101ID de suscripción no válido
-102ID de participación en el programa no válido
-103Sesión no encontrada
-104La sesión no está autenticada
-105ID de suscripción no presente
-106Error del sistema
-107Usuario ya creado
-108Transaccion rechazada
-109Suscripción inválida
-110No se puede verificar la suscripción
-111No se puede encontrar la información del cliente
-112Subcuenta de comerciante no válida
-113Información recurrente no válida

Comerciante afiliado

Merchant Connect es un mercado diseñado para reunir a los comerciantes en una ubicación centralizada. Merchant Connect se basa en nuestro sistema de venta cruzada con un solo clic. Puede brindarles a los consumidores una nueva forma de realizar compras adicionales de diferentes comerciantes sin tener que volver a ingresar la información de pago.

Beneficios del comerciante afiliado

¿Cómo me uno a un programa Merchant Connect?

Para unirse a un programa Merchant Connect:

1. Inicie sesión en Portal de administración.

2. Haga clic en el megamenú Merchant Connect y, a continuación, haga clic en Explore y únase a programas.

3. Explore la lista de programas Merchant Connect disponibles. Cuando encuentre un programa que le interese, haga clic en Ver más para obtener más información. Ver más muestra la siguiente información:

Reseña del programa
Nombre del programaNombre del Programa de Patrocinador disponible.
URL del programaLa URL a la que se dirige a un consumidor desde su sitio.
Tipo de pago
Reparto de ingresosPaga un porcentaje de la compra del consumidor.
Pago por ventaPaga una cantidad fija en dólares por venta.
Gestionado por el patrocinadorEl pago es variable; El comerciante patrocinador proporcionará más información.
Detalles de pago
Pagar por pruebas / iniciales / reembolsosMuestra qué tipos de transacciones paga el programa.
Frecuencia de pago de nueva facturaLa cantidad de facturas que paga el programa.
Porcentaje de pago de venta o monto de pago fijoCantidades de pago específicas.
Tiempo de pagoYa sea que reciba el pago en el momento de la venta inicial o después de que la primera refacturación sea exitosa.
Método
Simple y avanzado / avanzadoMétodo de venta cruzada seleccionado para el programa.
Detalles del programa
InstruccionesInstrucciones generales de Merchant Connect.
Instrucciones especialesInstrucciones específicas del patrocinador para este programa.

4. Busque un programa que le gustaría promover y haga clic en Unirse al programa.

5. Después de hacer clic Unirse al programa, se envía una notificación al propietario del programa expresando su interés en asociarse con ellos. Cuando el Patrocinador apruebe su solicitud, recibirá un correo electrónico confirmando su aceptación.

Descarga el script PHP

1. Inicie sesión en Portal de administración.

2. Por Conexión comercial mega menú, haga clic en Programas actualmente inscritos para ver sus asociaciones actuales.

3. Busque el programa para el que desea crear un script y haga clic en Ver más.

4. En el Cuenta API sección, haga clic en Generar script PHP.

5. Después de hacer clic en este enlace, se le pedirá que seleccione un Cuenta API utilizar para este script. Seleccione el botón de radio para el nombre de usuario que le gustaría usar y haga clic en Generar PHP.

Una vez que se haga clic en este botón, la descarga comenzará en una nueva pestaña.

¿Cómo puedo comenzar a enviar tráfico?

Después de unirse a los programas que desea promover y descargar el script PHP, solo necesita completar la integración técnica. Haga clic en el Características técnicas en la parte superior de esta página para obtener detalles y ejemplos de casos de uso / flujos para Merchant Connect.

Comerciante patrocinador

Merchant Connect es un mercado diseñado para reunir a los comerciantes en una ubicación centralizada. Al expandir nuestro sistema de venta cruzada con un solo clic, puede brindarles a los consumidores una nueva forma de realizar compras adicionales de diferentes comerciantes sin tener que volver a ingresar la información de pago.

Beneficios del comerciante patrocinador

¿Cómo puedo convertirme en un comerciante patrocinador?

Convertirse en un patrocinador de Merchant Connect requiere la configuración del personal de apoyo al comerciante de CCBill. Por favor contactar merchandisingupport@ccbill.com para comenzar el proceso

Una vez que el personal de CCBill haya configurado su cuenta para ser un patrocinador de Merchant Connect, puede configurar su programa.

¿Cómo creo un programa Merchant Connect?

Para crear un programa Sponsor Merchant Connect:

1. Inicie sesión en Portal de administración.

2. Por Conexión comercial mega menú, haga clic en Crear programa para ver sus asociaciones actuales.

3. El asistente le ayudará a configurar su Conexión comercial Programa. La Crear programa La pantalla contiene los siguientes campos:

Tipo de pago
Reparto de ingresosPorcentaje de la compra del consumidor pagada por las ventas pagadas por CCBill.
Pago por ventaMonto fijo en dólares pagado por venta pagada por CCBill.
Gestionado por el patrocinadorSi manejará los pagos usted mismo; CCBill no pagará por programas con esta configuración.
Método
Simple y avanzado / avanzadoMétodos de integración de venta cruzada.
Detalles del programa
InstruccionesInstrucciones generales de Merchant Connect.
Instrucciones especialesSus instrucciones específicas para este programa.

4. Complete los campos obligatorios y haga clic en Ahorrar en la parte superior de la página.

¿Cómo administro mis programas?

1. Inicie sesión en Portal de administración.

2. Por Conexión comercial mega menú, haga clic en Administrar mis programas para ver sus asociaciones actuales. Esta pantalla enumerará todos sus Conexión comercial Programas.

3. Seleccione su acción preferida de la Acciones Menú desplegable. Las opciones disponibles son:

Ver / modificar programa

Desde dentro del Ver / modificar programa pantalla, tendrá la capacidad de realizar ediciones en la configuración de su programa existente. El sistema CCBill notificará automáticamente a su comerciante Conéctese socios por correo electrónico cuando se realicen cambios en su programa.

1. Hacer clic en Editar en la parte superior izquierda de la pantalla.

2. Actualice los campos donde se necesiten cambios.

3. Hacer clic en Ahorrar en la parte superior izquierda de la pantalla.

Desactivar programa

Si desea desactivar un Conexión comercial Programa puedes hacer esto desde el Administrar mi programa Pantalla.

1. Busque el programa que desea desactivar de su lista de programas.

2. Seleccionar Desactivar programa Desde el menú desplegable.

3. Se le presentará un cuadro de confirmación para desactivar el programa.

4. Seleccionar .

Reactivar programa

Si tiene un programa que ha sido desactivado, puede reactivarlo desde el Administrar mi programa pantalla también.

1. Busque el programa que desea reactivar de su lista de programas.

2. Seleccionar Programa reactivo En el menú desplegable.

3. Se le presentará un cuadro de confirmación para reactivar el programa.

4. Seleccionar .

Ver afiliados asignados

Esta opción le presentará todos Conexión comercial socios actualmente activos en su programa. Desde aquí puede ver los detalles del comerciante o eliminarlos de su programa.

Ver los detalles del comerciante

Para ver los detalles de un socio en particular, simplemente haga clic en Ver más junto a su nombre. Desde esta pantalla podrá ver los detalles que se enumeran a continuación.

NOMBRE
ID de afiliado
ID de participación
Nombre
Correo electrónico
Dirección
Eliminar un afiliado

Tiene dos opciones para eliminar un afiliado de su programa:

Opción 1: desde la página de descripción general

1. Marque la casilla a la izquierda del ID de afiliado del comerciante que desea eliminar. Puede seleccionar varios afiliados para eliminarlos a la vez.

2. Hacer clic en Eliminar al afiliado seleccionado de este programa.

Opción 2: desde la página de detalles

1. Busque el afiliado que desea eliminar de su programa y haga clic en Ver más.

2. Hacer clic en Eliminar afiliado de este programa.

Cola de invitaciones

Todas las solicitudes para unirse a su programa se enviarán al Cola de invitaciones y requieren aprobación antes de que puedan comenzar a promocionar su programa. Cuando un Afiliado solicita unirse a su programa, se le notificará por correo electrónico sobre una invitación pendiente. La visualización y la gestión de la cola de invitaciones se pueden realizar en unos sencillos pasos.

1. Inicie sesión en Portal de administración.

2. Por Conexión comercial mega menú, haga clic en Cola de invitaciones para ver sus invitaciones pendientes. Esta pantalla mostrará una lista de todas sus invitaciones pendientes.

3. Marque la casilla junto a los Afiliados que desea aceptar o rechazar.

4. Haga clic en el botón apropiado (Aceptar invitaciones seleccionadas or Rechazar invitaciones seleccionadas) en la parte superior de la pantalla.

Los afiliados serán notificados por correo electrónico cuando se les acepte o se les niegue el acceso a su programa.

Webhooks

Introducción

Webhooks es un sistema de notificación push impulsado por eventos; cuando ocurre un evento (por ejemplo, una refacturación), entregamos una publicación de datos a un script que usted diseñó en base a nuestra Documentación de webhook.

Webhooks es una alternativa a nuestra función Publicación en segundo plano en URL y una función complementaria para nuestro sistema ENS. El sistema Webhooks es mucho más robusto y proporciona notificaciones en tiempo real, además de cubrir una mayor variedad de tipos de eventos.

¿Qué es un Webhook?

En terminología general, Webhooks es un concepto de API para enviar notificaciones push en tiempo real a puntos finales de Webhook.

  1. Su Punto final de webhook es su URL previamente definida. Todas las notificaciones de eventos se enviarán a su URL.
  2. An Evento es un hecho relacionado con su cuenta, por ejemplo, un usuario que reactiva su suscripción o una venta exitosa. Siempre que se produzca un evento de pago, recibirá una notificación automática.
  3. An POST HTTP es el proceso de enviar datos a un recurso específico. Los datos enviados no se almacenan en el historial del navegador ni en los registros del servidor web; necesitará un script que lea los datos y los almacene en su base de datos. Cuando se trata de enviar datos, esta es una seguro y seguro método de transferencia de datos.

En pocas palabras, cuando sucede algo (un evento) con su cuenta, los Webhooks de CCBill enviarán una notificación a su URL (Punto final de webhook), lo que le proporciona información valiosa sobre su negocio en línea.

¿Por qué querría utilizar webhooks?

Para los comerciantes, Webhooks es una forma de recibir información valiosa tan pronto como ocurre, en lugar de verificar los datos de su cuenta continuamente y no obtener datos valiosos la mayor parte del tiempo. En muchos sentidos, Webhooks es como recibir notificaciones automáticas en su teléfono inteligente, es decir, Facebook le envía una notificación cada vez que recibe una solicitud de amistad. De manera similar, CCBill Webhooks le enviará una notificación si, por ejemplo, se realizó con éxito una nueva venta. Puede escribir estos datos en una base de datos para mantener registros o pasarlos a otro script.

Los webhooks son especialmente útiles para:

Cómo funcionan los webhooks

Un Webhook es una operación HTTP POST que se produce cuando sucede algo (por ejemplo, una venta). Es como un punto final de API invertido; en lugar de realizar una llamada a la API, puede hacer que se envíe información a su URL de devolución de llamada. Registra una URL que le notificaremos cada vez que ocurra un evento en la cuenta.

El siguiente diagrama ejemplifica cómo funcionan los Webhooks de CCBill:

Cómo funcionan los Webhooks.

¿Qué es exactamente un evento?

Como se señaló, un Evento es una acción relacionada con su cuenta. Cada notificación de inserción se envía como un paquete de datos XML y su URL debe ser un script, como CGI, PHP, ASP, etc., programado para recibir y analizar la información publicada por CCBill.

A continuación, encontrará un ejemplo de publicación de Webhooks.

POST /webhooks.php?clientAccnum=999999&clientSubacc=9999&eventType=Expiration&eventGroupType=Subscription HTTP/1.1
X-Allowed-Satellites: PHX,ASH,AMS
Content-Type: application/x-www-form-urlencoded
Content-Length: 102
Host: merchanturl.com
User-Agent: Java/1.6.0_03
Via: 1.1 wmq1.ccbill.com:3129 (squid/2.7.STABLE5), 1.0 internal
Cache-Control: max-age=0
Connection: keep-alive
clientAccnum=999999&clientSubacc=9999&subscriptionId=0913024401000012340&timestamp=2013-01-25 03:22:44

Habilitación y configuración de webhooks

Para configurar Webhooks:

  1. Desde el Administrador de subcuenta, haga clic en el Webhooks enlace en el lado izquierdo de la pantalla.
  2. Ingrese la URL a la que desea que se dirijan las publicaciones en el URL del webhook campo.
  3. Seleccione los tipos de publicaciones a las que desea suscribirse (haga clic en Todas las para seleccionar todos los tipos, o seleccionar y elegir cualquier combinación de tipos de publicaciones seleccionando la casilla de verificación junto a ella).
  4. Seleccione la pestaña  Ubicaciones satélite desde el que los Webhooks deberían enviarte mensajes. Intente elegir una ubicación que esté geográficamente cerca del servidor que la URL que seleccionó en el paso 2 para asegurarse de que las publicaciones lleguen a su URL lo más rápido posible. Las ubicaciones de los satélites son actualmente:
    • Phoenix, Arizona
    • Ashburn, Virginia
    • Amsterdam, Países Bajos
  5. Haga clic Actualización para guardar la configuración.

Para obtener una descripción detallada de los tipos de publicaciones de Webhooks, las variables y otra información importante, consulte la Guía del usuario.

Nota:: Recomendamos probar la configuración de Webhook antes de confiar en su precisión. Puede hacerlo creando una cuenta CCBill Test.

¿Puedo tener varias URL que actúen como puntos finales de webhook?

Después de que se haya guardado al menos un Webhook, se le presentará la opción de editar, eliminar o agregar más. Puede agregar hasta cuatro (4) Webhooks, y cada uno puede usar URL diferentes si lo desea.

Eventos de webhooks

Las notificaciones de webhooks se describen en la Documentación de webhooks.

Los eventos incluidos son:

Soporte

Si tiene algún problema al configurar Webhooks, comuníquese con Soporte al comerciante y un miembro de nuestro equipo lo ayudará de inmediato.

Guía de la API de CCBill

Introducción

Este documento se proporciona como recurso técnico para los comerciantes de CCBill.

La información contenida en este documento se refiere al establecimiento y uso de la Interfaz de Programa de Aplicación (API) del servicio al consumidor del lado del comerciante. La secuencia de comandos de administración de suscripciones reemplaza la secuencia de comandos de cancelación personalizada y proporciona nuevas funciones adicionales. La información contenida en este documento describe la funcionalidad de Gestión de Suscripciones y su interacción con el Sistema de Gestión de Usuarios CCBill. Se requiere una configuración adecuada del sistema de extracción de enlace de datos antes de que se pueda utilizar la API de CCBill.

API CCBill

El gestión de suscripciones.cgi La secuencia de comandos reemplaza la secuencia de comandos customCancel.cgi en el Sistema de extracción de enlace de datos. La API de CCBill tiene características adicionales que no se incluyeron en customCancel.cgi.

Antes de que el gestión de suscripciones.cgi Se puede utilizar el script. Su sistema debe estar configurado para acceder al Sistema de Extracción de Enlace de Datos CCBill.

El sistema de extracción de enlace de datos de CCBill permite a los comerciantes de CCBill acceder a los datos de transacciones de la base de datos de CCBill con un script CGI. Puedes consultar nuestra Guía del usuario de Data Link Extract para obtener más información sobre Data Link Extract.

Parámetros necesarios para la autenticación

clienteAccnum

Este parámetro especifica el número de cuenta comercial CCBill principal del comerciante que solicita los datos. El valor debe ser un número de seis dígitos.

nombre de usuario

Este es el nombre de usuario que se configuró para la autenticación en el sistema Data Link Extract.

la contraseña

Esta es la contraseña que se configuró para la autenticación en el sistema Data Link Extract.

DE ACTUAR!

Esta es la función que se realizará dentro de la API de CCBill. Consulte Acciones admitidas para obtener una lista completa de las opciones disponibles.

La tabla enumera los parámetros que siempre se requieren independientemente de si la acción se realizará en la cuenta principal o en una subcuenta:

clienteAccnumnombre de usuariola contraseña DE ACTUAR!
Cuenta principal XXX
Sub-cuenta XXX

Número de cuenta principal - Todos los comerciantes de CCBill reciben un número de cuenta con fines de seguimiento. El formato estándar es 9xxxxx-xxxx, donde 9xxxxx es la cuenta principal. La cuenta principal es un número de 6 dígitos. Por ejemplo: "900000".

Número de subcuenta - Después de que un comerciante se registra para la facturación del sitio web, puede abrir una o más subcuentas. La subcuenta es un número de 4 dígitos. El formato estándar es: xxxx. Por ejemplo: "0002". La subcuenta es parte de la cuenta principal.

Parámetros opcionales

clienteSubacc

Este es el número de subcuenta específico con el que está relacionada la suscripción; debe tener cuatro dígitos. Si se proporciona este parámetro, se le autenticará en una subcuenta específica y no en la cuenta principal. Cualquier acción solicitada debe pertenecer a esta subcuenta; de lo contrario, la operación fallará.

usandoSubacc

Utilice este parámetro si desea autenticarse en la cuenta principal pero no en una subcuenta específica. Este parámetro especifica una subcuenta en la que se realizará una operación solicitada.

Nota:: Si clientSubacc se pasa junto con usingSubacc, deben tener el mismo valor para una autenticación exitosa. Diferentes valores harían que se autenticara en una subcuenta específica y operar en otra.

retornoXML

Si se pasa este parámetro, recibirá la información en formato XML; de lo contrario, la información se devuelve en formato CSV (valores separados por comas).

Acciones admitidas y parámetros requeridos

viewSubscriptionStatus

Informa el estado de la suscripción de un cliente.

Parámetros obligatorios (X) y opcionales (O)

viewSubscriptionStatusclienteSubaccusandoSubaccID de suscripciónretornoXML
Cuenta principal  OX 
Cuenta principal con XML  OXX
Sub-cuenta X X 
Subcuenta con XML X XX

Información devuelta

Códigos de estado:

Ejemplo de versión CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&action=viewSubscriptionStatus&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

"cancelDate","signupDate","chargebacksIssued","timesRebilled","expirationDate","recurringSubscription","subscriptionStatus","refundsIssued","voidsIssued""20050228","20050228170442","0","0","20050228","1","0","1","0"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123& returnXML=1&action=viewSubscriptionStatus&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

1.0 20050228 0 20050228 1 1 20050228170442 0 0

verDescuentoInfo

Reporta la información de descuento de una suscripción de consumidor.

Parámetros obligatorios (X) y opcionales (O)

verDescuentoInfoclienteSubaccusandoSubaccID de suscripciónretornoXML
Cuenta principal  O X X
Cuenta principal con XML  O X X
Sub-cuenta X  X 
Subcuenta con XML X  X X

Información devuelta

Nota: Los descuentos solo se pueden configurar para suscripciones recurrentes. Además, para ser elegible para un descuento, el precio recurrente de la suscripción debe ser de al menos $ 5.00.

Ejemplo de versión CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&action=viewDiscountInfo&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

"startPeriod","amount","discounts","discountInterval","type","startDate""1","1.00","1","1","CANCEL","20050228173436"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password =test123&returnXML=1&action=viewDiscountInfo&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

1.0 1.00 1 1 20050228173436 CANCELAR

aplicar descuento

Aplica un descuento por cancelación configurado previamente a una suscripción determinada.

Parámetros obligatorios (X) y opcionales (O)

aplicar descuentoclienteSubaccusandoSubaccID de suscripciónretornoXML
Cuenta principal  O X 
Cuenta principal con XML  O X X
Sub-cuenta X O X 
Subcuenta con XML X O X X

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientSubacc=&discountType=cancel&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&password=test123&action=applyDiscount&clientAccnum=923590

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientSubacc=&discountType=cancel&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&password=test123&returnXML=1&action=applyDiscount&clientAccnum=923590

Ida y vuelta

1.0

voidTransaction

Anula la transacción de un consumidor, si aún es elegible. La transacción del consumidor más actual se puede anular durante un período definido antes de que se liquide la transacción.

No se le cobrará al consumidor.

Parámetros obligatorios (X) y opcionales (O)

voidTransactionclienteSubaccusandoSubaccID de suscripciónretornoXML
Cuenta principal  O X 
Cuenta principal con XML  O X X
Sub-cuenta X  X 
Subcuenta con XML X  X X

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientSubacc=&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&password=test123&action=voidTransaction&clientAccnum=923590

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientSubacc=&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&password=test123&returnXML=1&action=voidTransaction&clientAccnum=923590

Ida y vuelta

1.0

ReembolsoTransacción

Permite un reembolso total o parcial. Pasar la cantidad reembolsará esa cantidad; tenga en cuenta que no se pueden otorgar reembolsos por un monto superior al de la transacción inicial. Omitir el valor dará un reembolso completo por el monto de la transacción inicial.

Parámetros obligatorios (X) y opcionales (O)

modificarUserCredentialsclienteSubaccusandoSubaccID de suscripciónCantidad
Cuenta principal  O X O
Cuenta principal con XML  O X O
Sub-cuenta X  X O
Subcuenta con XML X  X O

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&action=refundTransaction&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=900000&amount=5.95

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&returnXML=1&action=refundTransaction&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=900000&amount=5.95

Ida y vuelta

1.0

voidOrRefundTransaction

Intentos de anular la transacción. Si la transacción ya no se puede anular porque ha pasado el período definido, se reembolsará la transacción. Los reembolsos parciales se pueden dar pasando en el cantidad parámetro. Si se transfiere el monto pero la transacción puede anularse, la transacción se anulará. Para emitir reembolsos totales o parciales sin intentar anular la transacción, consulte la ReembolsoTransacción sección de este documento.

Parámetros obligatorios (X) y opcionales (O)

voidOrRefundTransactionclienteSubaccusandoSubaccID de suscripciónretornoXMLcantidad
Cuenta principal  O X  O
Cuenta principal con XML  O X X O
Sub-cuenta  X  O
Subcuenta con XML  X X O

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&action=voidOrRefundTransaction&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&returnXML=1&action=voidOrRefundTransaction&usingSubacc=0005&subscriptionId=1071776966&username=ccbill12&clientAccnum=923590

Ida y vuelta

1.0

modificarUserCredentials

Vuelve a agregar o cambia el nombre de usuario y / o contraseña para una suscripción activa.

Parámetros obligatorios (X) y opcionales (O)

modificarUserCredentialsclienteSubaccusandoSubaccID de suscripciónnombre de usuario del clientecontraseña del clienteretornoXML
Cuenta principal  O X O O 
Cuenta principal con XML  O X O O X
Sub-cuenta X  X O O 
Subcuenta con XML X  X O O X

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?usingSubacc=0005&username=ccbill12&custUsername=randomUN&password=test123&action=modifyUserCredentials&custPassword=randomPW&clientAccnum=923590

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?usingSubacc=0005&username=ccbill12&custUsername=randomUN&password=test123&action=modifyUserCredentials&custPassword=randomPW&clientAccnum=923590&returnXML=1

Ida y vuelta

1.0

manualAdd

Agrega manualmente un usuario a la cuenta. El usuario tendrá acceso al sitio hasta la fecha especificada por el 'endDate' parámetro. Esta opción omite el modelo de suscripción.

Parámetros obligatorios (X) y opcionales (O)

manualAddclienteSubaccusandoSubaccnombre de usuario del clientecontraseña del clientefecha finalgenerarRandomretornoXML
Cuenta principal  X X X X  
Cuenta principal con XML  X X X X  X
Sub-cuenta X  X X X  
Subcuenta con XML X  X X X  X
Cuenta principal con aleatorio  X   X X 
Cuenta principal con XML y aleatorio  X   X X
Subcuenta con aleatorio X    X X 
Subcuenta con XML y aleatorio X    X X X

Parámetros opcionales

generarRandom

Cuando se utiliza esta opción, el nombre de usuario y la contraseña se generarán de forma aleatoria y, por lo tanto, no se requieren los parámetros nombre de usuario y contraseña.

custUsername / custPassword

Cuando se pasan estos parámetros, el nombre de usuario y la contraseña se establecerán en los valores respectivos y, por lo tanto, no se generarán aleatoriamente.

Información devuelta

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?usingSubacc=0005&username=ccbill12&custUsername=manualAdd1&password=test123&endDate=20050330&action=manualAdd&custPassword=manualAdd2&clientAccnum=923590

Ida y vuelta

"EndDate", "nombre de usuario", "contraseña" 20050330, manualAdd1, test123

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?usingSubacc=0005&username=ccbill12&custUsername=manualAdd1&password=test123&returnXML=1&endDate=20050330&action=manualAdd&custPassword=manualAdd2&clientAccnum=923590

Ida y vuelta

1.0 manualAdd20050330 test1

manualEliminar

Elimina la capacidad de un consumidor para acceder a su sitio.

Parámetros obligatorios (X) y opcionales (O)

manualEliminarclienteSubaccusandoSubaccnombre de usuario del clienteretornoXML
Cuenta principal  X X 
Cuenta principal con XML  X X X
Sub-cuenta X  X 
Subcuenta con XML X  X X

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&custUsername=quarter&action=manualRemove&usingSubacc=0005&username=ccbill12&clientAccnum=923590

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&returnXML=1&custUsername=quarter&action=manualRemove&usingSubacc=0005&username=ccbill12&clientAccnum=923590

Ida y vuelta

1.0

extender suscripción

Extiende la duración de una suscripción de consumidor existente. los ‘extendLength’ El parámetro se usa para extender la suscripción por varios días.

Parámetros obligatorios (X) y opcionales (O)

manualEliminarclienteSubaccusandoSubaccretornoXMLextenderLongitud
Cuenta principal  X  X
Cuenta principal con XML  X X X
Sub-cuenta X   X
Subcuenta con XML X  X

Información devuelta

Se devolverá un código de éxito o error.

EJEMPLO DE VERSIÓN CSV

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&username=test123&clientAccnum=999999&clientSubacc=0000&action=extendSubscription&subscriptionId=1234567890&extendLength=30

Ida y vuelta

"resultados" "1"

EJEMPLO DE VERSIÓN XML

Solicitar cadena

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?password=test123&username=test123&clientAccnum=999999&clientSubacc=0000&action=extendSubscription&subscriptionId=1234567890&extendLength=30&returnXML=1

Ida y vuelta

1.0

Códigos de éxito y fracaso

Códigos de éxito
1La acción solicitada fue un éxito.

Códigos de error

CodeDescripción
0La acción solicitada falló.
-1Los argumentos proporcionados para autenticar al comerciante no eran válidos o faltaban.
-2El ID de suscripción proporcionado no es válido o el tipo de suscripción no es compatible con la acción solicitada.
-3No se encontró ningún registro para la suscripción dada.
-4La suscripción dada no era para la cuenta en la que el comerciante estaba autenticado.
-5Los argumentos proporcionados para la acción solicitada no eran válidos o faltaban.
-6La acción solicitada no es válida
-7Hubo un error interno o un error en la base de datos y la acción solicitada no se pudo completar.
-8La dirección IP en la que el comerciante intentaba autenticarse no estaba en el rango válido.
-9La cuenta del comerciante se ha desactivado para su uso en el sistema de enlace de datos o el comerciante no está autorizado a realizar la acción solicitada.
-10El comerciante no está configurado para usar el sistema Datalink.
-11La suscripción no es elegible para un descuento, precio recurrente menor a $ 5.00.
-12El comerciante ha iniciado sesión sin éxito en el sistema 3 o más veces en la última hora. El comerciante debe esperar una hora antes de intentar iniciar sesión nuevamente y se le recomienda que revise la información de inicio de sesión.
-15Comerciante por encima del umbral de reembolso
-16Comerciante por encima del umbral nulo
-23Se alcanzó el límite de transacciones
-24Se alcanzó el límite de compra

Ejemplo 1: Versión XML - Suscripción cancelada

Solicite

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientAccnum=900100&username=myusername&password=mypassword&action=cancelSubscription&subscriptionId=1000000000&returnXML=1

Descripción

El comerciante está intentando autenticarse en la cuenta principal 900100. El clienteSubacc El parámetro no se pasa y, por lo tanto, la autenticación se llevará a cabo en la cuenta principal. La solicitud es para ver el estado de suscripción del ID de suscripción 1000000000. Desde el clienteSubacc no se pasó el parámetro, el ID de suscripción puede ser de cualquier subcuenta de la cuenta 900100. Si se hubiera pasado, el ID de suscripción tendría que ser para la subcuenta especificada. El comerciante solicita que la información se devuelva en formato XML.

Respuesta

1.0 20050223 0 20050324 1 0 20050222162551 1 0

Descripción

La fecha y hora de registro inicial de la suscripción fue el 02/22/2005 a las 04:25:51 PM. Es una suscripción recurrente. La fecha de vencimiento de la suscripción es el 03/24/2005. La suscripción está en estado activo; sin embargo, ha sido cancelado por el cliente el 02/23/2005. No hubo reembolsos, anulaciones, reembolsos o devoluciones de cargo para la suscripción.

Ejemplo 2: Versión CSV - Suscripción con descuento

Solicite

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientAccnum=900000&username=myusername&password=mypassword&action=discountSubscription&discountAmount=2.00&subscriptionId=0012946984374168

Descripción

El comerciante está intentando autenticarse en la subcuenta 0002 que está bajo la cuenta 900100. La solicitud es ver la información de descuento para el ID de suscripción 1000000002. Debido a que el comerciante se está autenticando en la subcuenta 0002, la suscripción debe ser para esa subcuenta. No se pasó un returnXML y, por lo tanto, la información se devolverá en formato CSV.

Respuesta

"startPeriod","amount","discounts","discountInterval","type","startDate"
"3","5.00","2","1","LOYALTY","20050222162551"

Descripción

La información informa que hay un descuento configurado para la suscripción. El tipo de descuento que se configuró para el tipo de suscripción es un descuento por lealtad. El descuento comenzará después de 3 refacturaciones. El descuento es de $ 5.00 (el precio recurrente será de $ 5.00 menos). Se puede aplicar un máximo de 2 descuentos a la suscripción. El intervalo entre los descuentos aplicados es 1 refacturación; este es el número de refacturaciones que deben producirse antes de aplicar descuentos sucesivos. El registro de suscripción inicial se produjo el 02/22/2005.

Funciones especiales de la API de CCBill:

API CCBill: Cancelar suscripción
API CCBill: actualizaciones dinámicas avanzadas
API CCBill: un clic
API de CCBill: cargo por ID de transacción anterior

API CCBill: Tangibles

Introducción

Este documento es un anexo a la API de CCBill y analiza la configuración del comerciante de la API de CCBill para implementar las ventas de productos tangibles de suscripción.

Alcance

La API de CCBill se considera una característica avanzada del sistema de CCBill. Este documento asume lo siguiente:

Descripción

Se han agregado tres acciones a la API de CCBill, crearCumplimiento, actualizaciónCumplimiento y getFulfillmentStatus. Estas acciones permiten insertar y mantener la información del envío en nuestro sistema.

Estructura de acción

Cada acción realizada a través de la API de CCBill al sistema CCBill debe incluir los parámetros estándar de la API de CCBill aplicables (clienteAccnum, clienteSubacc, usandoSubacc, nombre de usuario, la contraseña, retornoXML- no todos son obligatorios. Ver el Guía de la API de CCBill para obtener más información sobre la estructura básica de la API de CCBill.

Acciones

Las acciones y sus respectivos parámetros se enumeran en esta sección. El sistema de CCBill enviará una respuesta a la acción; las posibles respuestas se definen en la sección Respuesta más adelante en este documento.

crearCumplimiento

El crearCumplimiento La acción le permite insertar información de envío en nuestro sistema. La acción consta de los siguientes parámetros obligatorios:

ParámetroPropósitoDatos
ID de transacciónIdentifica la transacción con la que está asociado el envío.19-20 caracteres numéricos; subscriptionId o ID asociado con la refacturación.
compañía de enviosIdentifica el nombre de la empresa que realiza el envío físico.Los parámetros permitidos son: 1. UPS (United Parcel Service)
2. USPS (Servicio Postal de los Estados Unidos)
3. FedEx (Anteriormente Federal Express)
Estos parámetros distinguen entre mayúsculas y minúsculas.
ID de rastreoIdentifica el número de seguimiento de la empresa que realiza el envío físico.Para UPS: * 4-20 caracteres alfanuméricos. Para USPS
(Clase o servicio de correo (con número de identificación de etiqueta de muestra)): * Express Mail® EA 000 000 000 US
* Express Mail International® EC 000 000 000 US
* Priority Mail International® CP 000 000 000 US
* Global Express Guaranteed® 82 000 000 00
*Correo registrado RA 000 000 000 US
*Confirmacion de envio 0000 0000 0000 0000 0000 00 Para FedEx: * 12 dígitos numéricos

CreateFulfillment Ejemplo de acción

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientAccnum=923590&username=testuser&password=testpassword&returnXML=1&clientSubacc=0005&action=createFulfillment&transactionId=12345678987654321&shippingCompany=FedEx&trackingId=123456789987

actualizaciónCumplimiento

El actualizaciónCumplimiento La acción le permite actualizar el remitente existente y / o el número de seguimiento para un ID de transacción. Cualquier dato que envíe usando esta acción reemplazará al enviado previamente compañía de envios y ID de rastreo parámetros del anterior crearCumplimiento or actualizaciónCumplimiento acciones y reemplazarlo con los datos que se envían.

Los siguientes parámetros son necesarios para actualizaciónCumplimiento acción:

ParámetroPropósitoDatos
ID de transacciónIdentifica la transacción con la que está asociado el envío.19-20 caracteres numéricos; subscriptionId o ID asociado con la refacturación.
Identificación del envíoGenerado por CCBill y enviado con la respuesta createFulfillment original y utilizado para identificar el envío.Caracteres numéricos de longitud variable, nunca más de 20 caracteres.
compañía de enviosIdentifica el nombre de la empresa que realiza el envío físico.Los parámetros permitidos son: 1. UPS (United Parcel Service)
2. USPS (Servicio Postal de los Estados Unidos)
3. FedEx (Anteriormente Federal Express)
Estos parámetros distinguen entre mayúsculas y minúsculas.
ID de rastreoIdentifica el número de seguimiento de la empresa que realiza el envío físico.Para UPS: * 4-20 caracteres alfanuméricos. Para USPS
(Clase o servicio de correo (con número de identificación de etiqueta de muestra)): * Express Mail® EA 000 000 000 US
* Express Mail International® EC 000 000 000 US
* Priority Mail International® CP 000 000 000 US
* Global Express Guaranteed® 82 000 000 00
*Correo registrado RA 000 000 000 US
*Confirmacion de envio 0000 0000 0000 0000 0000 00 Para FedEx: * 12 dígitos numéricos

updateFulfillment Ejemplo de acción

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientAccnum=923590&username=testuser&password=testpassword&returnXML=1&clientSubacc=0005&action=updateFulfillment&transactionId=12345678987654321&shipmentId=123456&shippingCompany=FedEx&trackingId=123456789887

getFulfillmentStatus

El getFulfillmentStatus La acción le permite consultar el sistema CCBill para obtener datos de cumplimiento almacenados previamente para una transacción.

El getFulfillmentStatus action utiliza los siguientes parámetros:

ParámetroPropósitoDatos
ID de transacciónIdentifica la transacción con la que está asociado el envío.19-20 caracteres numéricos; subscriptionId o ID asociado con la refacturación.
Identificación del envíoGenerado por CCBill y enviado con la respuesta createFulfillment original y utilizado para identificar el envío.Parámetro opcional. Caracteres numéricos de longitud variable, nunca más de 20 caracteres.

Acción de muestra getFulfillmentStatus

https://datalink.ccbill.com/utils/subscriptionManagement.cgi?clientAccnum=923590&username=testuser&password=testpassword&returnXML=1&clientSubacc=0005&action=getFulfillmentStatus&transactionId=12345678987654321&shipmentId=123456

Respuesta

Éxito

Las respuestas correctas se devolverán con algunos o todos los siguientes parámetros:

RespuestaPropósitoDatos
ID de rastreoIdentifica el número de seguimiento de la empresa que realiza el envío físico.Para UPS: * 4-20 caracteres alfanuméricos. Para USPS
(Clase o servicio de correo (con número de identificación de etiqueta de muestra)): * Express Mail® EA 000 000 000 US
* Express Mail International® EC 000 000 000 US
* Priority Mail International® CP 000 000 000 US
* Global Express Guaranteed® 82 000 000 00
*Correo registrado RA 000 000 000 US
*Confirmacion de envio 0000 0000 0000 0000 0000 00 Para FedEx: * 12 dígitos numéricos
Identificación del envíoGenerado por CCBill y enviado con la respuesta createFulfillment original y utilizado para identificar el envío.Parámetro opcional. Caracteres numéricos de longitud variable, nunca más de 20 caracteres.
fecha de creaciónLa fecha y hora en que se creó el registro.2010-06-01T15:27:11.529-07:00   AAAA-MM-DDTHH: mm: ss.lllooo: 00 * AAAA es el año de 4 dígitos $$$ * MM es el mes de 2 dígitos
* DD es el día de 2 dígitos
* HH es la hora de 2 dígitos
* mm es el minuto de 2 dígitos
* ss es el segundo de 2 dígitos
* lll son los milisegundos de 3 dígitos
* ooo: 00 es el desplazamiento GMT (IE -07: 00 es GMT-7)
nextCheckTimeLa próxima vez, el sistema CCBill comprobará el estado del envío.2010-06-01T15:27:11.529-07:00   AAAA-MM-DDTHH: mm: ss.lllooo: 00 * AAAA es el año de 4 dígitos $$$ * MM es el mes de 2 dígitos
* DD es el día de 2 dígitos
* HH es la hora de 2 dígitos
* mm es el minuto de 2 dígitos
* ss es el segundo de 2 dígitos
* lll son los milisegundos de 3 dígitos
* ooo: 00 es el desplazamiento GMT (IE -07: 00 es GMT-7)
anteriorEnvíoIdPermite a los clientes recuperar información de envío almacenada previamente para una transacción; siempre el más reciente.Caracteres numéricos de longitud variable, nunca más de 20 caracteres.
checkStatusURLLa URL que utiliza CCBill para verificar el estado del envío.http://www.shipperurl.com/
ccbillEnvíoEstadoEl código de estado que utiliza CCBill para los envíos.*Mira la sección: Códigos de estado más adelante en este documento para obtener una lista de los códigos de estado de CCBill y sus significados.
compañía de enviosIdentifica el nombre de la empresa que realiza el envío físico.Los parámetros permitidos son: *UPS (United Parcel Service)

Muestra de respuesta exitosa

Respuesta delimitada por comas

"trackingId","shipmentId","creationDate","shipperStatus","nextCheckTime","prevShipmentId","checkStatusURL","ccbillShipmentStatus","shippingCompany"
"1","13","2010-06-01T15:27:11.529-07:00","ERROR RESPONSE","2010-06-01T23:27:23.326-07:00","0", "http://www.fedex.com/Tracking?language=english&cntry_code=&tracknumbers=1","SHIPPER_ERROR","FedEx"

Respuesta XML

Envío a SHIPPER_ERROR http://www.fedex.com/Tracking?language=english&cntry_code=&tracknumbers=1.0 1-2010-06T01: 15: 36-05.159: 07 00-2010-06T01: 23: 36-08.211: 07 00 13 RESPUESTA AL ERROR FedEx EA 14 000 000 EE. UU. 000 900000 0000-2010-06T01: 15: 27-10: 07 00 910130101000000003

Códigos de estado

CodeDescripción
SIN DATOSEl estado inicial de cada Envío que aparece cuando la información de cumplimiento no se ha agregado o no se ha agregado correctamente.
PENDIENTEIndica que los datos de cumplimiento ingresados ​​por el cliente están esperando ser enviados al remitente para su primera verificación de estado; Se ingresaron los datos de cumplimiento, pero el período de espera de 8 horas para la verificación inicial del remitente aún no ha pasado.
ENVIADOEste es el estado que indica que un Envío está con el remitente pero aún no lo ha recibido el consumidor.
ENVÍO_ERRORLa empresa de envío ha devuelto un error similar a "estado no disponible" en nuestro sistema durante la verificación de estado más reciente.
DeliveredLa empresa de envío nos ha devuelto un estado que indica que el envío ha sido entregado al destinatario.
NO_ENTREGABLEIndica que un envío no se puede entregar al consumidor por algún motivo, incluidos errores de dirección y rechazos.
DESPEJADOUn miembro del personal de CCBill borró el estado y lo estableció como OK.

Error

Los errores pueden deberse a varios motivos, siendo los más habituales los errores de validación de datos. A continuación, se muestra una lista de la validación de datos realizada por las funciones de suscripción tangibles:

Una respuesta de error suele contener dos parámetros:

Todos los posibles errores, junto con la información de solución de problemas, se incluyen en esta tabla:

errorDesccódigo de errorDescripción
ERROR_SERVICE_ERROR-200Este es un código de error genérico y generalmente indica que el servicio no está disponible temporalmente.
ERROR_MISSING_PARAM-201Uno de los parámetros necesarios para la función no se incluyó en la acción. Consulte el cuadro anterior para conocer los parámetros necesarios para la acción que está intentando realizar y verifique que el formato de su acción esté correctamente construido.
ERROR_NO_COINCIDIR_ENVÍO-202El parámetro shippingId contiene información de identificación de envío desconocida / no coincidente.
ERROR_INVALID_TRACKING_NUMBER-203El parámetro trackingId contiene información no válida. Verifique que el trackingId contenga todos los caracteres esperados, coincida con el formato esperado para el parámetro shippingCompany (consulte la tabla anterior) y verifique el trackingId en el recibo de envío proporcionado por su compañía de envío.
ERROR_NO_COINCIDIR_TRANSACCIÓN-204El transactionId proporcionado en la acción no coincide con ningún transactionId previamente conocido para su número de cuenta (y número de subcuenta, si corresponde). Verifique el transactionId y vuelva a enviarlo, si es necesario.

Publicación de fondo

Este documento se proporciona como recurso técnico para los comerciantes de CCBill. Se analizan las características y la implementación del sistema CCBill Background Post. Este documento está destinado a programadores, técnicos y otras personas con habilidades de codificación avanzadas.

Descripción

La publicación de antecedentes de CCBill es un método para pasar datos entre el sistema del comerciante y el sistema de CCBill. La publicación en segundo plano tiene básicamente dos propósitos:

Estas dos aplicaciones del sistema de Publicaciones en segundo plano se excluyen mutuamente y no se requiere que ninguna use la otra.

Soporte TLS

La publicación en segundo plano admite el protocolo de seguridad TLS 1.2. Si tiene dificultades y no recibe publicaciones de CCBill, verifique qué protocolo TLS está utilizando.

Pasar variables al formulario de registro

Las variables se pueden pasar al formulario de registro para completar previamente la información del consumidor. Esto se puede implementar con el propósito de formularios de varias partes, seguimiento personalizado y otras implementaciones. Las variables se pasan al formulario de suscripción desde la página que lo precede mediante el uso de un formulario HTML o pasando las variables a través de la cadena URL. A continuación se ofrecen ejemplos de código.

Las variables de seguimiento personalizadas también se pueden enviar al formulario. Estos valores se volverán a publicar mediante la publicación en segundo plano cuando se complete la transacción. Para definir estas variables, simplemente especifique un nombre de variable y un valor de la misma manera que las otras variables que se pasan.

Para completar previamente el formulario, primero debe generar código HTML para el formulario dentro del Administrador de CCBill. (Para obtener más información sobre cómo generar este código, consulte el archivo de ayuda de CCBill). Después de generar su código, las variables de seguimiento personalizadas opcionales se pueden agregar manualmente creando campos de formulario HTML adicionales o pasando las variables adicionales a la cadena de URL, según el método de envío elegido.
El siguiente ejemplo muestra el código de botón HTML básico, con dos variables personalizadas agregadas. El botón creado, cuando se haga clic, llevará al consumidor al formulario de registro de CCBill mientras pasa las dos variables personalizadas:





customVarName1 y customVarName2 son solo nombres de ejemplo y pueden ser cualquier cosa que elija. Los valores también son un ejemplo.
Puede utilizar un enlace de texto en lugar de un botón. El siguiente ejemplo muestra cómo hacer esto usando datos idénticos a los del ejemplo de formulario anterior:

https://bill.ccbill.com/jpost/signup.cgi?clientAccnum=900000&clientSubacc=0001&formName=11wc&language=English&allowedTypes=0000003761:840,0000004607:840,0000060248:840,0000063750:840,0000060752:840&subscriptionTypeId=0000004657:840&customVarName1=customVarValue1&customVarName2=customVarValue2

Ambos métodos tienen el mismo propósito y se pueden utilizar.

Flujo de CCBill para pasar variables


La información también se puede pasar al formulario de registro de CCBill utilizando variables dinámicas en un script personalizado. Un formulario HTML personalizado puede llamar al script, que luego envía las variables al formulario de suscripción de CCBill. Los datos fluyen en esta ruta:

Flujo del formulario de suscripción de CCBill cuando se utilizan variables dinámicas en un script personalizado


El formulario que cree pasará los datos ingresados ​​por el consumidor al siguiente formulario, que luego pasará las variables al formulario de registro de CCBill. Una vez completada la transacción, los datos se enviarán a la URL de publicación de aprobación o denegación.
El siguiente ejemplo de código usa código Perl / CGI para generar un campo de formulario HTML oculto usando una variable dinámica:

impresión " ";

Otros lenguajes tendrán diferentes declaraciones y sintaxis para la salida de datos, como declaraciones de impresión o eco en PHP. El código de enlace se puede generar de manera similar al código de formulario HTML anterior, reemplazando cualquier número de valores de variables estáticas con variables dinámicas. Consulte cualquier pregunta que tenga acerca de este tipo de código a un programador calificado.

Publicaciones de aprobación y denegación

Cuando se aprueba o deniega una transacción, los datos se enviarán a la URL de aprobación o denegación, respectivamente. Los datos enviados incluirán todo lo que se pasó al formulario de registro a través de la publicación de antecedentes junto con los datos ingresados ​​en el formulario de pago por el consumidor, excluyendo la información de pago. Estos datos se pueden analizar y manejar de cualquier forma que se codifique el script.

Los datos se pueden capturar de varias formas según el idioma en el que esté escrito el guión de aprobación o denegación. Por ejemplo:

Otros lenguajes tendrán funciones apropiadas para capturar datos POST. Una lista completa de las variables de CCBill está disponible más adelante en este documento. Tenga en cuenta que los nombres de las variables deben ingresarse exactamente como aparecen en este documento.

Una vez que la secuencia de comandos captura estos valores variables, la secuencia de comandos puede manejar los datos de cualquier manera especificada en la secuencia de comandos, como ingresar la información en una base de datos.
La imagen ilustra el proceso de envío y recepción de datos mediante las URL de aprobación y denegación:

El flujo del proceso de envío y recepción de datos mediante URL de aprobación y denegación:

Variables

La publicación en segundo plano contiene un conjunto de variables de sistema específicas que se pueden utilizar para extraer datos del sistema de CCBill. Se utilizan dos conjuntos de variables, uno para cada una de las siguientes situaciones:

En ambos casos, las variables personalizadas se enviarán exactamente como se ingresaron.
Los nombres de las variables del sistema deben ingresarse exactamente como aparecen en esta lista.

Formulario de registro

El siguiente cuadro enumera cada variable que se puede completar previamente en el formulario de registro:

Nombre de la variableDescripción
nombre_clienteNombre del consumidor
nombre_clienteApellido del consumidor
address1Dirección del consumidor
correo electrónico,Dirección de correo electrónico del consumidor
ciudadCiudad consumidora
estadoEstado del consumidor
código postalCódigo postal del consumidor
paísPaís consumidor
número de teléfonoNúmero de teléfono del consumidor
nombre de usuarioNombre de usuario del consumidor
la contraseñaContraseña de consumidor
LifeTimeSubscription

Las siguientes variables también se pueden pasar al formulario de registro, pero no se muestran en el formulario:

Nombre de la variableDescripciónValor de ejemplo
ccbill_refererNúmero de identificación de afiliado de CCBill. Este valor se pasa como 'revendedor' cuando se usa Traffic Manager para pasar en cascada a los formularios de Epoch.1626321
nombre del formularioCódigo de tres o más caracteres que identifica el formulario.13cc
confirmar ContraseñaConfirme la contraseña en el formulario de registro.0 o 1 (sí o no)
suscripciónTypeIdID de tipo de suscripción.0108191202000001259
tipos permitidosLas opciones de suscripción que aparecerán en el formulario; este valor se genera automáticamente en el Admin.0000003761: 840,0000004607: 840

Postback

Las variables que se enumeran a continuación se vuelven a publicar en las URL de publicación de aprobación o denegación:

Nombre de la variableDescripciónTipo de datos (longitud máxima)Valor de ejemplo
cantidad contablePrecio de pago real en USD que el comerciante recibirá por la compra.decimal (9,2)14.83
address1Dirección del consumidor.varchar (30)123 Main Street
filialReferente no personalizado para transacciones heredadas; cuentas que no son CCBill (EC Suite, etc.)cadena1234567
identificación del afiliadoIdentificación de participación en el programa.cadena3542
sistema_de_filiados-1– No disponible, recuperar de DataLink
1 - CCBill
2 - Afiliado de WMS
3 - Varios
4 - Rastreador WMS
numérico-1
tipos permitidosValor utilizado para determinar las opciones de precios en el formulario de registro.N / A (sin límite)
moneda baseMoneda en la que se configuró el precio.int (3)840
tipo de tarjetaTipo de tarjeta de crédito utilizada.cadenaVISA o MASTERCARD
ccbill_refererNúmero de identificación de afiliado de CCBill. Este valor se pasa como 'revendedor' cuando se usa Traffic Manager para pasar en cascada a los formularios de Epoch.cadena1626321
ciudadCiudad consumidora.varchar (30)Anytown
clienteAccnumNúmero de cuenta principal del comerciante de CCBill.mediumint (6) sin firmar900100
liquidación impulsada por el clienteRefleja si la transacción fue aprobada previamente o no mediante un Acuerdo impulsado por el comerciante.booleano1 o 0 (sí o no, respectivamente)
clienteSubaccNúmero de subcuenta de cliente de CCBill.smallint (4) zerofill sin firmar0000
consumidorUniqueIdNúmero de identificación de consumidor único.bigint (20)no firmado
paísPaís consumidor.varchar (30)US
código de monedaMoneda de tres dígitos en la que se facturó al consumidor.int (3)978
nombre_clienteNombre del consumidor.varchar (20)Juan
nombre_clienteApellido del consumidor.varchar (30)Smith
ID de negaciónEl número que identifica la transacción rechazada de un consumidor.
NOTA: Este número solo se proporciona con los rechazos y está en blanco con las aprobaciones.
bigint (20) sin firmar111140501000005157
correo electrónico,Dirección de correo electrónico del consumidor.varchar (40)user@example.com
nombre del formularioCódigo de tres o más caracteres para el formulario.char (255)13cc
Precio con formato inicialPrecio inicial con entidad HTML para el símbolo de moneda.cadena$10.00
periodo inicialEl período inicial de la suscripción (en días).smallint (4) sin firmar7
precio inicialEl precio inicial de la suscripción.decimal (9,2)4.99
dirección IPDirección IP del consumidor.varchar (31)192.168.27.4
LifeTimeSubscriptionIndica si la transacción es una suscripción de por vida.
No se publica si no es positivo.
int1
la contraseñaContraseña de consumidor.varchar (30)micontraseña
Cuenta de pagoResumen de hash de la información de facturación del consumidor.cuerda (32)e1w4858fgb34e5ab2b0e8bd94cb09565
número de teléfonoNúmero de teléfono del consumidor; aparece como ingresado por el consumidor.varchar (20)(123) 456-7890
precioPrecio del producto en formato HTML como se muestra en el formulario.cadena& 36; 5.95 por 30 días (no recurrente)
productoDescDescripción del producto.varchar (50)
motivo de rechazoEl motivo del rechazo (solo URL de publicación de denegación). Descripción de texto de reasonForDeclineCode.
Consulte la sección "Códigos de rechazo de devolución" a continuación para obtener una lista completa de códigos.
cadenaEl ID de suscripción proporcionado no es válido
(Consulte la sección Códigos de rechazo de devolución al final de este documento para obtener una lista completa de los códigos de rechazo y sus descripciones de motivos).
ratioForDeclineBeforeOverrideEl error de motivo de rechazo que aparece cuando se rechazó una transacción y luego se aprobó mediante Web Verify.CordónLa transacción requiere aprobación adicional: consulte su correo electrónico de confirmación para obtener más instrucciones.
(Consulte la sección Códigos de rechazo de devolución al final de este documento para obtener una lista completa de los códigos de rechazo y sus descripciones de motivos).
ratioForDeclineCodeCódigo de rechazo numérico (solo URL de publicación de rechazo).cadena16
(Consulte la sección Códigos de rechazo de devolución al final de este documento para obtener una lista completa de los códigos de rechazo y sus descripciones de motivos).
ratioForDeclineCodeBeforeOverrideEl código de error del motivo del rechazo que aparece cuando se rechazó una transacción y luego se aprobó mediante Web Verify.45
(Consulte la sección Códigos de rechazo de devolución al final de este documento para obtener una lista completa de los códigos de rechazo y sus descripciones de motivos).
refacturacionesEl número total de nuevas facturas.
Un valor de '99' se volverá a facturar indefinidamente.
tinyint (2) sin firmar12
Precio con formato recurrentePrecio recurrente con entidad HTML para el símbolo de moneda.cadena$19.95
período recurrenteEl período de la suscripción (recurrente, en días).smallint (4) sin firmar30
Precio recurrenteEl precio de la suscripción (recurrente).decimal (7,2)19.99
árbitroNúmero de identificación de no afiliado de CCBill. Esta variable es utilizada principalmente por sistemas de terceros.varchar (16)1626321
ReferUrlURL desde la que se hizo referencia a la transacción.cadenahttp://www.example.com
bookingIdNúmero de identificación de reserva de suscripción del consumidor.bigint (20) sin firmar0109072310330002423
resumen de respuestaResumen de hash de una respuesta de precios dinámicos. Si no utiliza el precio dinámico, este valor se devolverá como una cadena en blanco.cuerda (32)s4f5198jgd21a4pk1p2s7sd23lm58937
start_dateFecha de inicio de la suscripción.datos2008-08-05 15:18:17
estadoEstado consumidor.varchar (20)AZ
ID de suscripciónNúmero de identificación de suscripción (solo URL de publicación de aprobación).bigint (20) sin firmar1000000000
ID de tipoNúmero de identificación del tipo de suscripción que identifica el punto de precio utilizado en la transacción.int (10)0000060748
nombre de usuarioNombre de usuario del consumidor.varchar (16)username1
código postalCódigo postal del consumidor.varchar (10)85251

Otros servicios de CCBill, cuando se utilizan, devolverán variables adicionales mediante la publicación en segundo plano. Para obtener más información sobre las variables devueltas, consulte la Guía del usuario de ese servicio.

Códigos de rechazo de devolución de datos

La siguiente tabla enumera los valores potenciales para el ratioForDeclineCode parámetro y sus relacionados motivo de rechazo respuestas de texto.

ratioForDeclineCodemotivo de rechazo
1El sitio web no está disponible para registrarse
2No se pueden determinar los requisitos de registro en el sitio web
3No se acepta tu tipo de tarjeta, prueba con otro tipo de tarjeta de crédito
4Error del sistema bancario
5La tarjeta de crédito que ingresaste no es válida
6Verifique para asegurarse de haber ingresado su fecha de vencimiento Se utiliza para mostrar las fechas anuales, mensuales o diarias correspondientes individuales para los datos del informe. El formato de la función de fecha es año-mes-día; por ejemplo, 2002-01-01.
7Verifique para asegurarse de haber ingresado su número de cuenta bancaria correctamente
8Verifique para asegurarse de haber ingresado correctamente el número de ruta de su banco
9Error del sistema bancario, inténtelo de nuevo
10El sitio web tiene un precio no válido
11Transaccion rechazada
12Actualmente tiene una suscripción y no puede registrarse
13Ya ha tenido una prueba gratuita
14Debe ingresar su número CVV2 en el reverso de su tarjeta
15Su cuenta se está procesando actualmente, consulte el sitio web al que se está uniendo para ver si tiene acceso. Si no, por favor contacte support@ccbill.com
16El ID de suscripción proporcionado no es válido
17El ID de suscripción no existe en el sistema
18Se rechazó el intento de transacción anterior en la solicitud
19No está autorizado para registrarse con las credenciales proporcionadas
20Sin declive
21Ya tuvo una prueba, seleccione una opción de membresía recurrente normal
22Se produjo un error al comunicarse con el banco. Vuelva a intentarlo más tarde.
23Se proporcionó una tarjeta de crédito no válida
24Transacción denegada por el banco
25Error bancario
26Configuración de procesamiento de tarjetas incorrecta para el comerciante
27Error del sistema, por favor, inténtalo de nuevo
28No podemos procesar su transacción en este momento. Porfavor intente más tarde
29Tarjeta caducada
30No podemos facturar el número de teléfono proporcionado para esta transacción. Regrese al sitio web y elija un método de pago alternativo
31Fondos insuficientes
32Debe proporcionar CVV2 para completar la transacción
33No se pudo determinar el tipo de transacción
34Se produjo un error al comunicarse con el banco. Vuelva a intentarlo más tarde.
35Tarjeta rechazada en Pre-Auth SC
36No se puede contactar con el banco
37Actualmente no procesamos para su bandeja de bancos
38Transacción rechazada por el banco emisor
39Has enviado demasiadas veces hoy.
40Este comerciante no acepta la tarjeta que está utilizando
41Comerciante inactivo
42Dirección incorrecta proporcionada
43No podemos procesar su transacción de facturación telefónica porque su proveedor solo permite un cargo, por número de teléfono, por día, y nuestros registros muestran que tiene un cargo diario existente para este número de teléfono. Regrese al sitio web y elija un método de pago alternativo
44Lo sentimos, en este momento no se permiten tarjetas prepagas. Prueba con otro tipo de tarjeta
45La transacción requiere aprobación adicional: consulte su correo electrónico de confirmación para obtener más instrucciones
46Transaccion rechazada
47Se superó el límite de transacciones
48Se alcanzó su límite de compra
49No se puede autenticar su método de pago. Elija un método de pago diferente y vuelva a intentarlo. Si necesita más información, consulte Preguntas frecuentes sobre la autenticación de consumidores de 3DS
50La dirección de correo electrónico supera el límite de transacciones de ACH
51Procesador no compatible con CDS
52La transacción TGS ya ha sido capturada
53Supera el límite de reembolso
54La transacción ya ha sido anulada
55La transacción ya ha sido reembolsada.
56Tarjeta de Credito invalible
57El precio inicial supera el máximo
58Precio inicial por debajo del mínimo
59El precio recurrente supera el máximo
60Precio recurrente por debajo del mínimo
61Error del sistema al crear la tarjeta de crédito de la tienda
62La cuenta de pago supera la regulación del número de transacción
63La cuenta de pago excede el límite de cantidad de transacción
64Falló la autenticación 3DS

Intervalos de IP de publicación en segundo plano

Recibirá Publicaciones en segundo plano de los siguientes rangos de IP de CCBill:
64.38.240.0/24
64.38.241.0/24
64.38.212.0/24
64.38.215.0/24

Puede usar esta información para configurar reglas de firewall o confirmar la validez de una IP desde su aplicación.

Complemento de seguridad de WordPress e iThemes

Si usa estas funciones en una instalación de WordPress y en el complemento de seguridad de iThemes, es posible que tenga problemas para recibir publicaciones de CCBill.

Siga estos pasos para resolver el problema:

  1. Inicie sesión en WordPress Página Web.
  2. Haga clic en Configuración de seguridad.
  3. Haga clic en Usuarios prohibidos.
  4. Desmarcar el Habilitar Función de lista negra de HackRepair.com.

Reenvío de publicaciones fallidas

El sistema de Publicaciones en segundo plano reenvía automáticamente las publicaciones fallidas hasta 30 veces en el transcurso de unas pocas horas. Si no recibe publicaciones, no tenemos forma de reenviarlas más allá de eso.

Si está experimentando muchas publicaciones fallidas, verifique que no esté experimentando un problema de conexión como problemas con su empresa de alojamiento, entre otras cosas. Luego, comuníquese con Soporte para comerciantes y haremos todo lo posible para ayudarlo a encontrar una solución.