Saltar al contenido principal

Crear una tarjeta de pago

Este endpoint te permite generar un enlace de pago. Con este enlace, puedes recibir depósitos de otras cuentas de TropiPay o de fuentes externas de forma sencilla. Puedes compartir tus enlaces de pago y gestionar tus cobros de manera eficiente.

POST <base url>/api/v3/paymentcards

Encabezados

NombreTipoRequeridoDescripción
AuthorizationstringBearer {user-token}
Content-Typestringapplication/json

Ejemplo de solicitud

{
"client": {
"name": "John",
"lastName": "McClane",
"address": "Ave. Guadí 232, Barcelona, Barcelona",
"phone": "+34645553333",
"email": "client@email.com",
"countryId": 2,
"termsAndConditions": true,
"city": "Barcelona",
"postCode": "78622",
"dateOfBirth": "1984-08-15"
},
"reference": "my-reference",
"concept": "Bicycle",
"favorite": "true",
"description": "Two wheels",
"amount": 100,
"currency": "EUR",
"singleUse": "true",
"reasonId": 4,
"accountId": 9,
"expirationDays": 1,
"lang": "es",
"urlSuccess": "https://my-business.com/payment-ok",
"urlFailed": "https://my-business.com/payment-ko",
"urlNotification": "https://my-business.com/payment-callback",
"directPayment": "false",
"paymentMethods": [
"EXT",
"TPP",
"TPP_GIFTCARD",
"CRYPTO"
]
}

Ejemplo de respuesta

{
"id": "1178ee20-fd00-11ef-a2a1-395c2db61965",
"saveToken": false,
"accountId": 9,
"reference": "my-reference",
"concept": "Bicycle",
"description": "Two wheels",
"amount": 100,
"currency": "EUR",
"singleUse": true,
"favorite": true,
"reasonId": 4,
"reasonDes": null,
"expirationDays": 0,
"userId": "5b78aed0-70d7-11ef-8e71-afa4d9a6153a",
"lang": "es",
"imageBase": null,
"state": 1,
"urlSuccess": "https://my-business.com/payment-ok",
"urlFailed": "https://my-business.com/payment-ko",
"urlNotification": "https://my-business.com/payment-callback",
"expirationDate": null,
"serviceDate": null,
"hasClient": true,
"credentialId": 10,
"force3ds": false,
"origin": 2,
"paymentcardType": 1,
"strictPostalCodeCheck": false,
"strictAddressCheck": false,
"updatedAt": "2025-03-09T16:03:41.486Z",
"createdAt": "2025-03-09T16:03:40.675Z",
"qrImage": "data:image/png;base64,iVBORw0KGgoA...",
"shortUrl": "https://tppay.me/m81tp753",
"paymentUrl": null,
"bankOrderCode": "439900781291",
"rawUrlPayment": null,
"giftcard": null
}

Campos

CampoTipoDescripción
referencestringSe usa para rastrear pedidos dentro de tu aplicación. Este valor se devolverá en notificaciones y webhooks.
conceptstringUn título o concepto breve para el pago.
favoritebooleanMarca esta tarjeta de pago como favorita.
descriptionstringDescripción detallada de para qué es el pago.
amountnumberMonto del pago en céntimos (por ejemplo, 10.55 EUR debe enviarse como 1055).
currencystringCódigo de moneda (por ejemplo, "EUR").
singleUsebooleanIndica si el enlace de pago puede usarse solo una vez.
reasonIdnumberIdentificador del motivo del pago.
accountIdnumberEl identificador único de la cuenta para la cual se creará la tarjeta de pago. IMPORTANTE: Determina dónde se liquidarán los fondos. Si se omite, se usará la cuenta predeterminada configurada por el usuario.
reasonDesstringTexto del motivo si el motivo es 9 (ver más abajo la lista completa de motivos).
expirationDaysnumberLos fondos permanecerán pendientes de entrada hasta este número de días después del pago.
langstringCódigo de idioma (por ejemplo, "es" para español).
urlSuccessstringURL a la que se redirigirá al usuario tras un pago exitoso.
urlFailedstringURL a la que se redirigirá al usuario si el pago falla.
urlNotificationstringEndpoint POST que recibirá las notificaciones de pago. Debe ser accesible para los servidores de TropiPay. Para pruebas, puedes usar servicios como ngrok o webhook.site.
expirationDatestringFecha hasta la cual estará disponible la tarjeta de pago, en formato ISO8601 incluyendo variantes que permiten zona horaria.
termsAndConditionsbooleanAceptación de términos y condiciones.

Información del cliente (Requerida)

tip

El objeto client, si está presente, debe incluir TODOS los siguientes campos (pasa null para que Tropipay solicite los datos del cliente en la tarjeta de pago):

CampoTipoDescripción
namestringNombre del cliente.
lastNamestringApellido del cliente.
addressstringDirección del cliente.
phonestringNúmero de teléfono del cliente.
emailstringCorreo electrónico del cliente.
citystringCiudad del cliente.
postCodestringCódigo postal o ZIP del cliente.
dateOfBirthstringFecha de nacimiento del cliente. Formato: yyyy-mm-dd.
termsAndConditionsstringAceptación de términos y condiciones.

Campos opcionales

CampoTipoDescripción
countryIdnumberIdentificador del país. No es requerido si se proporciona countryIso.
countryIsostringCódigo ISO del país (por ejemplo, "ES", "US"). No es requerido si se proporciona countryId.
paymentMethodsarray[string]Especifica los métodos de pago disponibles. Las opciones incluyen 'EXT' (tarjetas externas como Visa, Mastercard) y 'TPP' (saldo de TropiPay). 'CRYPTO' (criptomonedas). Si se omite, todos los métodos de pago estarán disponibles.
saveTokenbooleanGuarda el token de pago para uso futuro. Por defecto false.
imageBasestringCadena en formato Base64 de una imagen (JPG, PNG, etc.). Ejemplo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKQAAACkHYTCA...

Ejemplos de código

curl --request POST \
--url https://sandbox.tropipay.me/api/v3/paymentcards \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your-token}' \
--header 'Content-Type: application/json' \
--data '{
"reference": "my-reference",
"concept": "Bicycle",
"favorite": true,
"description": "Two wheels",
"accountId": 9,
"amount": 100000,
"currency": "EUR",
"singleUse": true,
"reasonId": 4,
"expirationDays": 1,
"lang": "es",
"urlSuccess": "https://my-business.com/payment-ok",
"urlFailed": "https://my-business.com/payment-ko",
"urlNotification": "https://my-business.com/payment-callback",
"serviceDate": "2021-08-20",
"client": {
"name": "John",
"lastName": "McClane",
"address": "Ave. Guadí 232, Barcelona, Barcelona",
"phone": "+34645553333",
"email": "client@email.com",
"countryId": 1,
"termsAndConditions": "true",
"city": "Barcelona",
"postCode": "78622",
"dateOfBirth": "1984-08-15"
},
"directPayment": true,
"paymentMethods": [
"EXT",
"TPP"
]
}'

Campos de la respuesta

CampoTipoDescripción
idstringIdentificador único de la tarjeta de pago.
referencestringLa referencia proporcionada.
conceptstringConcepto del pago.
descriptionstringDescripción del pago.
amountnumberMonto del pago en céntimos.
accountIdnumberEl identificador único de la cuenta para la cual se creó la tarjeta de pago.
currencystringCódigo de moneda.
singleUsebooleanIndica si el enlace de pago puede usarse solo una vez.
favoritebooleanIndica si la tarjeta de pago está marcada como favorita.
reasonIdnumberIdentificador del motivo.
reasonDesstringDescripción del motivo (puede ser null).
expirationDaysnumberDías hasta la expiración.
userIdstringID del usuario que creó la tarjeta de pago.
langstringCódigo de idioma.
statenumberEstado del pago.
urlSuccessstringURL de éxito.
urlFailedstringURL de fallo.
urlNotificationstringURL de notificación para webhooks.
expirationDatestringFecha de expiración (puede ser null).
serviceDatestringFecha del servicio (puede ser null).
hasClientbooleanIndica si se incluye información del cliente.
updatedAtstringMarca temporal de la última actualización.
createdAtstringMarca temporal de creación.
qrImagestringImagen del código QR codificada en Base64 para el pago.
shortUrlstringURL corta para acceder al pago.

Notas de implementación

  • Para probar tarjetas de pago y simular transacciones exitosas o fallidas en Sandbox, consulta la referencia Pruebas de pagos con tarjeta.
  • Para probar notificaciones webhook de forma local, considera usar servicios como ngrok o webhook.site.
  • El campo amount siempre es un entero en céntimos (por ejemplo, 10.55 EUR debe representarse como 1055).
  • Puedes especificar métodos de pago para limitar cómo pueden pagar los usuarios (tarjetas externas, saldo de TropiPay, o ambos).
  • La imagen QR se devuelve como una cadena base64, que puede mostrarse directamente en tu sitio web.