Skip to main content

4Geeks Payments API

Autenticación#

4Geeks Payments utiliza oAuth2 como estándar de autenticación para usar el API de forma segura. Entonces, por cada request, debes enviar un token efímero, el cual lo generas al enviar los valores grant_type, client_secret y client_credentials al endpoint de generación de tokens.

Esto retornará un access_token, el cual necesitas enviar en cada solicitud de ahora en adelante.

Recuerda mantener estas credenciales siempre privadas, y nunca compartirlas con terceros. Lo recomendable es guardar dichas credenciales en variables de ambiente.

note

Al parámetro grant_type debes asignarle siempre el valor client_credentials como se muestra en el ejempo abajo.

important

client_id y client_secret los consigues al darte de alta como comercio.

HTTP Request: POST https://api.payments.4geeks.io/authentication/token/

$ npm install gpayments
const gpayments = require('gpayments')
const gpApi = gpayments({  clientId: '4geeks-payments-client-id',  clientSecret: '4geeks-payments-client-secret'})

Retorna:

{    "access_token": "PdSKf04xi9LEcvcwIAdbWAXVg380Kz",    "token_type": "Bearer",    "expires_in": 36000,    "scope": "read write groups"}

Códigos de respuesta#

El API devuelve mensajes de respuesta acompañados de códigos HTTP. Aquí describimos los código y una corta descripción.

Response codeDescription
201Created
204No Content
400Bad Request
401Unauthorized
403Forbidden
404Not Found
405Method Not Allowed
429Too Many Requests
500Internal Server Error
503Service Unavailable

Cargos simples#

Este endpoint crea un simple charge, en otras palabras, realiza un rebajo a la tarjeta que venga en el POST, no está asignada a ningún customer.

HTTP Request: POST https://api.payments.4geeks.io/v1/charges/simple/create/

await gpApi.charges.create({  amount: 90.32,  description: 'Plan 1 service charge',  entity_description: 'Plan 1',  currency: 'usd',  credit_card_number: 4242424242424242,  credit_card_security_code_number: 123,  exp_month: 11,  exp_year: 2020})

Retorna:

HTTP 201 Created

Reembolsos#

Este endpoint manipula los refunds o reembolsos generados desde tu cuenta.

Crear un reembolso#

Sólo es posible reembolsar el 100% del monto de una transacción satisfactoria, siempre y cuando ésta transacción no haya sido depositada a tu cuenta de banco aún.

tip

Desde tu Panel de Control también puedes crear reembolsos, desde una interfaz amigable.

HTTP Request: POST https://api.payments.4geeks.io/v1/refunds/

Fields:

ParameterDescriptionTypeRequired
amountMonto del reembolsostringtrue
charge_idIdentificador del Charge en cuestiónstringtrue
reasonduplicate, fraudulent o requested_by_customerstringtrue
await gpApi.charges.create({  amount: 90.32,  description: 'Plan 1 service charge',  entity_description: 'Plan 1',  currency: 'usd',  credit_card_number: 4242424242424242,  credit_card_security_code_number: 123,  exp_month: 11,  exp_year: 2020})

Retorna:

{    "refund_id": "1BiPhgCqnAMsdzqhvCTntF7aD",    "charge_id": "1BSt6hCqnAMAasd3vMGiBxOWe",    "amount": "10.99",    "currency": "usd",    "reason": "requested_by_customer",    "status": "succeeded",    "test": true}

Listar los reembolsos#

Este endpoint devuelve todos los reembolsos generados siempre y cuando ésta transacción no haya sido depositada a tu cuenta de banco aún.

HTTP Request: GET https://api.payments.4geeks.io/v1/refunds/

.

Retorna:

[    {        "refund_id": "1BiOrQCqNertMqhvvUMhJajE",        "charge_id": "1BSt5sCqnAMAMqhvd871C1Vl",        "amount": "10.00",        "currency": "usd",        "reason": "duplicate",        "status": "succeeded",        "test": true    },    {        "refund_id": "1BiPDoCqnNerAMqhvSzxyFXl2",        "charge_id": "1BSt5sCqnAMAMqhvd871C1Vl",        "amount": "40.00",        "currency": "usd",        "reason": "fraudulent",        "status": "succeeded",        "test": true    },    {        "refund_id": "1BiPeNCqnANerMqhvc4QUDeeK",        "charge_id": "1BSt6hCqnAMAMqhvMNerxOWe",        "amount": "10.00",        "currency": "usd",        "reason": "requested_by_customer",        "status": "succeeded",        "test": true    },    {        "refund_id": "1BiPhgNernAMAMqhvCTntF7aD",        "charge_id": "1BSt6hCqnAMAMqhvMGiBNerWe",        "amount": "10.00",        "currency": "usd",        "reason": "null",        "status": "succeeded",        "test": true    }]

Obtener un reembolso#

Este endpoint devuelve solamente un objeto reembolso.

HTTP Request: GET https://api.payments.4geeks.io/v1/refunds/<refund_id>/

Fields:

ParameterDescription
refund_idIdentificador del reembolso
.

Retorna

{    "refund_id": "1BiPhgCqnAMsdzqhvCTntF7aD",    "charge_id": "1BSt6hCqnAMAasd3vMGiBxOWe",    "amount": "10.00",    "currency": "usd",    "reason": "duplicate",    "status": "succeeded",    "test": true}

Testing Cards#

A continuación se listan algunos números y marca de tarjetas para afectos de prueba, con el fin que puedas simular un flujo real de pago.

No olvides que exp_year y exp_month deben apuntar a una fecha futura, y credit_card_security_code_number puede ser cualquier valor numérico positivo.

Número de tarjetaMarca
4242424242424242VISA
5555555555554444MasterCard
378282246310005AmericanExpress

Si quieres forzar errores durante el proceso de pago, por favor utiliza las siguientes tarjetas. Ademas puedes probar con números inválidos en exp_year, exp_month y credit_card_security_code_number, ya sea poniendo fechas pasadas o meses inválidos.

Número de tarjetaError
4000000000000127CVC incorrecto
4000000000000002Tarjeta denegada
4000000000000069Tarjeta expirada
Last updated on