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