NAV Navbar
shell
  • Introducción
  • Authentication
  • Accounts
  • Charges
  • Plans
  • Testing Cards
  • Introducción

    Bienvenido a 4Geeks Payments API! Ahora puedes usar nuestros endpoints para acceder a nuestra API, en donde puedes obtener información de pagos, planes, clientes y cupones que existen en nuestra base de datos.

    Puedes observar en el area de la derecha ejemplos de como consumir nuestro API y cual seria la respuesta obtienes al consumir nuestros enpoints.

    Authentication

    Para autorizar utiliza este código:

      curl -X POST \
      https://api.payments.4geeks.io/authentication/token/ \
      -d '{
            "grant_type": "client_credentials",
            "client_id":"kGnxskOMNedrqj8IVma23Qk2DQGpjjpAUUPLr85W",
            "client_secret":"VbCaLax7xnhsBIfmkwic6ifSZ4FRiMRfwrrtdSKhw89f17LRdyeW7zYYKLwvj2VLRbQzH6q0F7mRejGJwBIckHa7W2PlJNN4QLqQcnCMYQkYj1DK4uUv0MVCbYhVeyTX"
          }'
    

    Asegurate de remplazar my_gived_client_id, my_gived_client_secret con el client_id y client_secret que te brindamos.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

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

    Recuerda enviar el access_token a travez de todos los request para validar tus accessos al API:

    El equipo de 4Geeks payments te enviara un correo con tus credenciales y la informacion necesaria para poder empezar a consumir nuestro API.

    4Geeks Payments utiliza oAuth por lo tanto asegurate de enviar grant_type=client_credentials para que te pueda autentificar mendiante el password de tu cuenta de developer. Ademas, deberias enviar client_id=my_gived_client_id, client_secret=my_gived_client_secret

    Accounts

    Retreive My Information

    curl "https://api.payments.4geeks.io/v1/accounts/me/" \
      -X GET \
      -H "authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz"
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    {
        "developer_key": "RF4wdFt2zgyzWpnhJz9vwrPkBfL3dVH1",
        "test": true,
        "page": "http://my_website.com",
        "bank_name": "your_bank_name",
        "bank_aba_route": "your_bank_aba",
        "bank_account_number": "your_bank_account_number",
        "bank_account_type": "your_bank_account_type",
        "bank_sinpe": "your_bank_sinpe"
    }
    

    Este endpoint retorna mi información como developer de 4geeks Payments.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/accounts/me/

    Update My Information

    curl "https://api.payments.4geeks.io/v1/accounts/me/" \
      -X PUT \
      -H "authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz" \
      -F bank_name=new_bank_name \
      -F test=false
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    {
        "developer_key": "RF4wdFt2zgyzWpnhJz9vwrPkBfL3dVH1",
        "test": false,
        "page": "http://my_website.com",
        "bank_name": "new_bank_name",
        "bank_aba_route": "your_bank_aba",
        "bank_account_number": "your_bank_account_number",
        "bank_account_type": "your_bank_account_type",
        "bank_sinpe": "your_bank_sinpe"
    }
    

    Este endpoint retorna mi información como developer de 4geeks Payments.

    HTTP Request

    PUT https://api.payments.4geeks.io/v1/accounts/me/

    PATCH https://api.payments.4geeks.io/v1/accounts/me/

    List My Customers

    curl https://api.payments.4geeks.io/v1/accounts/customers/ \
      -X GET \
      -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    [
        {
            "id": 1,
            "name": "Peter Parker",
            "email": "peter@4geeks.io",
            "currency": "crc",
            "credit_card_number": "*************4242",
            "credit_card_security_code_number": "***",
            "exp_month": 12,
            "exp_year": 2020,
            "test": true,
            "key": "x4X5IDj61Zgm0kySyY4hYeEbXa6xFxGk"
        },
        {
            "id": 2,
            "name": "Bruce Wayne",
            "email": "bruce@4geeks.io",
            "currency": "usd",
            "credit_card_number": "*************4242",
            "credit_card_security_code_number": "***",
            "exp_month": 12,
            "exp_year": 2020,
            "test": true,
            "key": "gzvqFYXWvJhE4eCsZ3xFZckzDfMn"
        }
    ]
    

    Este endpoint retorna mi la informacion de todos mis customers asociados.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/accounts/customers/

    Create a Customer

    curl 'https://api.payments.4geeks.io/v1/accounts/customers/' \
        -X POST \
        -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
        -F 'name=Tony Stark' \
        -F 'email=tony@4geeks.io' \
        -F 'currency=crc' \
        -F 'credit_card_number=4242424242424242' \
        -F 'credit_card_security_code_number=123' \
        -F 'exp_month=11' \
        -F 'exp_year=2022' \
        -F 'test=true'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente y un status HTTP 201 Created:

    {
        "id": 15,
        "name": "Tony Stark",
        "email": "tony@4geeks.io",
        "currency": "crc",
        "credit_card_number": "*************4242",
        "credit_card_security_code_number": "***",
        "exp_month": 11,
        "exp_year": 2022,
        "test": true,
        "key": "SdNG1igN2HXX9HlsZCz0gouQM9FzeHKr"
    }
    

    Este endpoint crea y asigna un customer a tu cuenta de 4Geeks payments.

    HTTP Request

    POST https://api.payments.4geeks.io/v1/accounts/customers/

    Fields

    Parameter Description Type Required
    name Nombre del customer string true
    email Email para contactar al customer string true
    currency Moneda en la cual vamos a cobrarle al customer string true
    credit_card_number Numero de tarjeta. string true
    credit_card_security_code_number Codigo de seguridad de la tarjeta. string true
    exp_month Fecha del mes de expiracion de la tarjeta. integer true
    exp_year Fecha del año de expiracion de la tarjeta. integer true
    test true para poder hacer pruebas con el customer, false para lo contrario. Default: TRUE. boolean false
    key Identificador unico generado automaticamente string false

    Retrieve a Customer

    curl https://api.payments.4geeks.io/v1/accounts/customer/15/ \
      -X GET \
      -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    {
        "id": 15,
        "name": "Tony Stark",
        "email": "tony@4geeks.io",
        "currency": "crc",
        "credit_card_number": "*************4242",
        "credit_card_security_code_number": "***",
        "exp_month": 11,
        "exp_year": 2022,
        "test": true,
        "key": "SdNG1igN2HXX9HlsZCz0gouQM9FzeHKr"
    }
    

    Este endpoint retorna el customer que desamos visualizar.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/accounts/customer/<ID>/

    URL Parameters

    Parameter Description
    ID El ID del customer que se quiere retornar

    Update a Customer

    curl https://api.payments.4geeks.io/v1/accounts/customer/15/ \
         -X PUT \
         -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
         -F 'currency=usd' \
         -F 'exp_month=09' \
         -F 'exp_year=2025' \
         -F 'test=false'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    {
        "id": 15,
        "name": "Tony Stark",
        "email": "tony@4geeks.io",
        "currency": "usd",
        "credit_card_number": "*************4242",
        "credit_card_security_code_number": "***",
        "exp_month": 9,
        "exp_year": 2025,
        "test": false,
        "key": "SdNG1igN2HXX9HlsZCz0gouQM9FzeHKr"
    }
    

    Este endpoint edita un customer en especifico.

    HTTP Request

    PUT https://api.payments.4geeks.io/v1/accounts/customer/<ID>/

    PATCH https://api.payments.4geeks.io/v1/accounts/customer/<ID>/

    URL Parameters

    Parameter Description
    ID El ID del customer que se quiere retornar

    Delete a Customer

    curl https://api.payments.4geeks.io/v1/accounts/customer/15/ \
         -X DELETE \
         -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 204 No Content

    Este endpoint elimina un customer en especifico.

    HTTP Request

    DELETE https://api.payments.4geeks.io/v1/accounts/customer/<ID>/

    URL Parameters

    Parameter Description
    ID El ID del customer que se quiere eliminar

    Charges

    Create a Charge

    curl 'https://api.payments.4geeks.io/v1/charges/create/' \
        -X POST \
        -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
        -F 'customer_key=56U9RMd7EKYLWtlNX112W5e3L73BYzuE' \
        -F 'amount=90.32' \
        -F 'description=some_description_here' \
        -F 'entity_description=some_text_here' \
        -F 'currency=usd'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 201 Created

    Este endpoint crea un charge, en otras palabras, realiza un rebajo a la tarjeta del cliente, utilizando sus datos financieros.

    HTTP Request

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

    Fields

    Parameter Description Type Required
    customer_key Llave del cliente, esto para obtener la informacion de la tarjeta asociada al mismo. string true
    amount Cantidad de dinero a rebajar. float true
    description Descripcion que le enviaremos al cliente del rebajo. string true
    entity_description Descripcion para el estado de cuenta de la tarjeta del cliete. string false
    currency Moneda por la cual se le hara el rebajo al cliente (crc, usd), por defecto se va a descontar en la moneda del customer string false

    Create a Simple Charge

    curl 'https://api.payments.4geeks.io/v1/charges/simple/create/' \
        -X POST \
        -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
        -F 'amount=800.55' \
        -F 'description=Desc for Simple' \
        -F 'entity_description=Desc for Simple' \
        -F 'currency=usd' \
        -F 'credit_card_number=4242424242424242' \
        -F 'credit_card_security_code_number=123' \
        -F 'exp_month=11' \
        -F 'exp_year=2020'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 201 Created

    Este endpoint crea un simple charge, en otras palabras, realiza un rebajo a la tarjeta que venga en el POST, no esta asignada a ningun customer.

    HTTP Request

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

    Fields

    Parameter Description Type Required
    amount Cantidad de dinero a rebajar. float true
    description Descripcion que le enviaremos al cliente del rebajo. string true
    entity_description Descripcion para el estado de cuenta de la tarjeta del cliete. string false
    currency Moneda por la cual se le hara el rebajo al cliente (crc, usd) string true
    credit_card_number Numero de tarjeta. string true
    credit_card_security_code_number Codigo de seguridad de la tarjeta. string true
    exp_month Fecha del mes de expiracion de la tarjeta. integer true
    exp_year Fecha del año de expiracion de la tarjeta. integer true

    List all Charges Logs

    curl https://api.payments.4geeks.io/v1/charges/logs/ \
      -X GET \
      -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    [
      {
         "customer": {
             "id": 16,
             "name": "Tony Stark",
             "email": "tony@4geeks.io",
             "currency": "crc",
             "credit_card_number": "*************4242",
             "credit_card_security_code_number": "***",
             "exp_month": 11,
             "exp_year": 2022,
             "test": true,
             "key": "56U9RMd7EKYLWtlNX112W5e3L73BYzuE"
         },
         "charge_log": {
             "status": "succeeded",
             "entity_description": "some_text_here",
             "amount": 90.32,
             "date": "2017-07-13 22:26:41",
             "description": "some_description_here"
         }
     },
     {
         "customer": {
             "id": 16,
             "name": "Tony Stark",
             "email": "tony@4geeks.io",
             "currency": "crc",
             "credit_card_number": "*************4242",
             "credit_card_security_code_number": "***",
             "exp_month": 11,
             "exp_year": 2022,
             "test": true,
             "key": "56U9RMd7EKYLWtlNX112W5e3L73BYzuE"
         },
         "charge_log": {
             "status": "succeeded",
             "entity_description": "Entity Description",
             "amount": 3000.55,
             "date": "2017-07-13 22:26:41",
             "description": "Description Here"
         }
       }
    ]
    

    Este endpoint retorna todos los logs de los cargos creados a mis clientes.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/charges/logs/

    Fields

    Name Description Type
    customer Retorna toda la informacion de mi cliente. object
    charge_log Retorna la informacion de la transacción. object

    Plans

    Create a Plan

    curl 'https://api.payments.4geeks.io/v1/plans/create/' \
         -X POST
         -H 'authorization: bearer 1qtm7wVG2eREf8vZhLRckAQWaxbaWY' \
         -F 'id_name=mi-plan-id' \
         -F 'name=Mi Plan' \
         -F 'amount=300000' \
         -F 'currency=crc' \
         -F 'trial_period_days=0' \
         -F 'interval=month' \
         -F 'interval_count=1' \
         -F 'credit_card_description=Descripción'
    

    Asegurate de remplazar 1qtm7wVG2eREf8vZhLRckAQWaxbaWY con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 201 Created

    Este endpoint crea un plan de pago.

    HTTP Request

    POST https://api.payments.4geeks.io/v1/plans/create/

    Fields

    Parameter Description Type Required
    id_name Identificador del plan. string true
    name Nombre del plan. string true
    currency Moneda en la cual se haran los rebajos. string true
    trial_period_days Numero de dias en las cuales se le brindara al usuario un trial. Default 0. integer false
    interval Frecuenca de rebajos (month, week, day, year). string true
    interval_count La cantidad de intervalos, por ejemplo interval=month, interval_count=6, eso significa que cada 6 meses se hara un rebajo. string true
    credit_card_description Descripcion para el estado de cuenta de la tarjeta del cliete. string false

    List all Plans

    curl https://api.payments.4geeks.io/v1/plans/mine/ \
      -X GET \
      -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    [
        {
            "information": {
                "id_name": "test-plan",
                "currency": "crc",
                "amount": 6000,
                "name": "Test Plan",
                "created": 1500932203,
                "credit_card_description": "Charge Test",
                "trial_period_days": null,
                "interval": "month",
                "interval_count": 1
            }
        },
        {
            "information": {
                "id_name": "mi-plan-id",
                "currency": "crc",
                "amount": 300000,
                "name": "Mi Plan",
                "created": 1501184712,
                "credit_card_description": "Descripcion",
                "trial_period_days": null,
                "interval": "month",
                "interval_count": 1
            }
        }
    ]
    

    Este endpoint retorna todos los planes que hayas creado.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/plans/mine/

    Create a Subscription

    curl 'https://api.payments.4geeks.io/v1/plans/subscribe/' \
         -X POST
         -H 'authorization: bearer 1qtm7wVG2eREf8vZhLRckAQWaxbaWY' \
         -F 'customer_key=56U9RMd7EKYLWtlNX112W5e3L73BYzuE' \
         -F 'plan_id_name=mi-plan-id'
    

    Asegurate de remplazar 1qtm7wVG2eREf8vZhLRckAQWaxbaWY con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 201 Created

    Este endpoint crea un y asigna una subscripción a un cliente.

    HTTP Request

    POST https://api.payments.4geeks.io/v1/plans/subscribe/

    Fields

    Parameter Description Type Required
    customer_key Identificador del cliente. string true
    plan_id_name identificador del plan. string true

    List all Subscriptions

    curl https://api.payments.4geeks.io/v1/plans/subscriptions/ \
      -X GET \
      -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna una structura JSON como la siguiente:

    [
        {
            "id": 1,
            "subscription_id": "sub_B6Vje4CBVugWea",
            "developer": {
                "developer_key": "RF4wdFt2zgyzWpnhJz9vwrPkBfL3dVH1",
                "test": true,
                "page": "http://test.com",
                "bank_name": "BCR",
                "bank_aba_route": "123123",
                "bank_account_number": "123123123123",
                "bank_account_type": "DB",
                "bank_sinpe": "123123123123"
            },
            "customer": {
                "id": 16,
                "name": "Tony Stark",
                "email": "tony@4geeks.io",
                "currency": "crc",
                "credit_card_number": "*************4242",
                "credit_card_security_code_number": "***",
                "exp_month": 11,
                "exp_year": 2022,
                "test": true,
                "key": "56U9RMd7EKYLWtlNX112W5e3L73BYzuE"
            }
        }
    ]
    

    Este endpoint retorna todos las subscripciones creadas.

    HTTP Request

    GET https://api.payments.4geeks.io/v1/plans/subscriptions/

    Delete a Subscription

    curl https://api.payments.4geeks.io/v1/plans/un-subscribe/ \
         -X DELETE \
         -H 'authorization: bearer PdSKf04xi9LEcvcwIAdbWAXVg380Kz' \
         -F 'subscription_id=sub_B6Vje4CBVugWea'
    

    Asegurate de remplazar PdSKf04xi9LEcvcwIAdbWAXVg380Kz con el token retornado durante el proceso de autentificación.

    Si corres el comando descrito arriba retorna un status HTTP 204 No Content

    Este endpoint elimina una subscripcion en especifico.

    HTTP Request

    DELETE https://api.payments.4geeks.io/v1/plans/un-subscribe/

    URL Parameters

    Parameter Description
    subscription_id Identificador de la subscripcion.

    Testing Cards

    Test Card Numbers and Brand

    A continuación se enlistan números de tarjetas para afectos de testing, junto a su proveedor.

    Numero Marca
    4242424242424242 Visa.
    5555555555554444 MasterCard.
    378282246310005 AmericanExpress.

    Test Card Numbers and Errors

    A continuación se enlistan números de tarjetas para afectos de testing, junto a su proveedor.

    Numero Descripcion
    4000000000000127 CVC no es correcto.
    4000000000000002 Tarjeta Denegada.
    4000000000000069 Tarjeta expirada.

    Ademas puedes probar con numeros invalidos en mes, año y cvc, ya sea poniendo fechas pasadas o meses inválidos.