NAV Navbar
shell php

Introducción

Endpoints

# Producción
https://api.gamecash.mx/

# Sandbox
https://sandbox-api.gamecash.mx/

La API GameCash está organizada en torno a REST. Nuestra API tiene URL predecibles orientadas a los recursos, devuelve respuestas codificadas por JSON y utiliza códigos de respuesta HTTP, autenticación y verbos estándar.

Autenticación

curl -u sk_z8A4Fje1yDM5q9He2
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$request_body = [];

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', '{{endpoint}}', [
    'headers' => $headers,
    'json' => $request_body,
]);

Debera reemplazar sk_z8A4Fje1yDM5q9He2 con su API key.

La API GameCash utiliza claves API para autenticar solicitudes.

La autenticación a la API se realiza a través de HTTP Basic Auth. Proporcione su clave API como nombre de usuario de autenticación básico, no necesita proporcionar una contraseña.

Todas las solicitudes de API deben hacerse a través de HTTPS. Las llamadas realizadas a través de HTTP simple fallarán. Las solicitudes de API sin autenticación también fallarán.

Authorization: sk_z8A4Fje1yDM5q9He2

RESPUESTAS

401 Unauthorized

{
  "message": "Invalid authentication credentials.",
  "status_code": 401
}

Respuestas

Código Descripción
401 Unauthorized

Ordenes

El objeto orden

EL OBJETO ORDEN

{
  "id": "ord_KQK3JBnwOjXwZo",
  "object": "order",
  "description": "Prueba de pago en OXXO.",
  "amount": 134999,
  "status": "paid",
  "customer": {
    "id": "cus_0G9wK1LBy7A0X3",
    "object": "customer",
    "firstname": "Roberto",
    "lastname": "Ramirez",
    "email": "robertoiran@example.com",
    "phone": "+5215555555555"
  },
  "payment_method": {
    "data": [
      {
        "id": "och_AgpDB9PYR4RJyYD",
        "reference": "64000000003320022901349997",
        "type": "oxxo",
        "status": "paid",
        "expires_at": 1583013067,
        "paid_at": 1578687860,
        "error_code": null,
        "error_message": null,
        "created_at": 1578681919,
        "updated_at": 1578687862
      }
    ]
  },
  "operation_type": "in",
  "refunds": {
    "id": "re_84xQBdd2JkJzzEd7",
    "amount": 134999,
    "reason": "requested_by_customer",
    "status": "in_review",
    "refunded_at": null,
    "created_at": 1578687876
  },
  "paid_at": 1578687860,
  "metadata": {
    "order_id": 231008
  },
  "created_at": 1578681919,
  "updated_at": 1578687862,
  "links": {
    "receipt_payment": "https://admin.gamecash.mx/receipt-payment/ord_KQK3JBnwOjXwZo"
  }
}
Atributos Descripción
id Identificador único de la orden.
string
description Descripción asociada a la orden.
string, requerido, maxLength=250
amount Monto expresado en centavos.
integer, requerido
status El status de la orden. Posibles valores pending_payment, declined, expired, paid, refunded, voided, error.
string
customer Hash que contiene la información del cliente.
Hash
id
> customer
Identificador único del cliente.
string
firstname
> customer
Nombre del cliente.
string, requerido, minLength=3, maxLength=250
lastname
> customer
Apellidos del cliente.
string, requerido, minLength=3, maxLength=250
email
> customer
Correo electrónico del cliente.
string, requerido
phone
> customer
Número telefónico del cliente.
string
payment_method Lista de los cargos generados a la orden.
List
id
> payment_method
Identificador único del método de pago.
string
type
> payment_method
Tipo del método de pago. Posibles valores oxxo, spei, paynet, oxxopay.
string
reference
> payment_method
Linea de captura para realizar el cobro. Para spei seria la clabe interbancaria y para los demas el código de barras.
string
status
> payment_method
El status del cargo. Posibles valores pending_payment, declined, expired, paid, error.
string
expires_at
> payment_method
Fecha de expiración del cargo.
32-bit unix timestamp
paid_at
> payment_method
Fecha en que se realizó el pago del cargo.
32-bit unix timestamp
error_code
> payment_method
Código de error.
string
error_message
> payment_method
Mensaje descriptivo del error.
string
created_at
> payment_method
Fecha de creación del método de pago.
32-bit unix timestamp
updated_at
> payment_method
Fecha de la última actualización del método de pago.
32-bit unix timestamp
refunds Hash que contiene la información de la devolución.
Hash
id
> refunds
Identificador único de la devolución.
string
amount
> refunds
Monto expresado en centavos.
integer
reason
> refunds
Indica el motivo del reembolso. Posibles valores duplicate, fraudulent, requested_by_customer, other.
string
status
> refunds
El status del reembolso. Posibles valores completed, declined, expired, paid, refunded, voided, error.
string
refunded_at
> refunds
Fecha y hora en que se ejecuto el reembolso.
32-bit unix timestamp
created_at
> refunds
Fecha de creación del reembolso.
32-bit unix timestamp
paid_at Fecha en que se realizó el pago de la orden.
32-bit unix timestamp
metadata Hash en donde el usuario puede enviar información adicional para la orden. Puede especificar hasta 50 elementos, con nombres de clave de hasta 40 caracteres y valores de hasta 500 caracteres.
Hash
created_at Fecha de creación de la orden.
32-bit unix timestamp
updated_at Fecha de la última actualización de la orden.
32-bit unix timestamp
links Links relacionados a la orden.
Hash
receipt_payment
> links
Link para el recibo de pago en formato pdf. El recibo de pago contiene las instrucciones necesarias para realizar el pago de cada tipo de cargo.
string

Crear una orden

POST /orders
curl -X POST \
  https://api.gamecash.mx/orders \
  -H 'Content-Type: application/json' \
  -u sk_z8A4Fje1yDM5q9He2: \
  -d '{
    "amount": 134999,
    "description": "Prueba de pago en OXXO.",
    "customer": {
        "firstname": "Roberto",
        "lastname": "Ramirez",
        "email": "robertoiran@example.com"
    },
    "payment_method": {
      "type": "oxxo",
      "expires_at": "1583013067"
    },
    "metadata": {
      "order_id": 231008
    }
  }'
<?php

require 'vendor/autoload.php';

$headers = [
    'Content-Type' => 'application/json',
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$request_body = [
    'amount' => 134999,
    'description' => 'Prueba de pago en OXXO.',
    'customer' => [
        'firstname' => 'Roberto',
        'lastname' => 'Ramirez',
        'email' => 'robertoiran@example.com',
    ],
    'payment_method' => [
        'type' => 'oxxo',
        'expires_at' => '1583013067',
    ],
    "metadata": {
      "order_id": 231008
    }
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.gamecash.mx/orders', [
        'headers' => $headers,
        'json' => $request_body,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Crear una orden nueva

Parámetro Descripción
description Descripción asociada a la orden.
string, requerido, maxLength=250
amount Monto expresado en centavos.
integer, requerido
customer Hash que contiene la información del cliente.
Hash
firstname
> customer
Nombre del cliente.
string, requerido, minLength=3, maxLength=250
lastname
> customer
Apellidos del cliente.
string, requerido, minLength=3, maxLength=250
email
> customer
Correo electrónico del cliente.
string, requerido
payment_method Lista de los cargos generados a la orden.
List
type
> payment_method
Tipo del método de pago. Posibles valores oxxo, spei, paynet, oxxopay.
string
expires_at
> payment_method
Fecha de expiración del cargo.
32-bit unix timestamp
metadata Hash en donde el usuario puede enviar información adicional para la orden. Puede especificar hasta 50 elementos, con nombres de clave de hasta 40 caracteres y valores de hasta 500 caracteres.
Hash

RESPUESTAS

200 OK

{
  "id": "ord_KQK3JBnwOjXwZo",
  "object": "order",
  "description": "Prueba de pago en OXXO.",
  "amount": 134999,
  "status": "pending_payment",
  "customer": {
    "id": "cus_0G9wK1LBy7A0X3",
    "object": "customer",
    "firstname": "Roberto",
    "lastname": "Ramirez",
    "email": "robertoiran@example.com",
    "phone": "+5215555555555"
  },
  "payment_method": {
    "data": [
      {
        "id": "och_AgpDB9PYR4RJyYD",
        "reference": "64000000003320022901349997",
        "type": "oxxo",
        "status": "pending_payment",
        "expires_at": 1583013067,
        "paid_at": null,
        "error_code": null,
        "error_message": null,
        "created_at": 1578681919,
        "updated_at": 1578681919
      }
    ]
  },
  "operation_type": "in",
  "refunds": [],
  "paid_at": null,
  "metadata": {
    "order_id": 231008
  },
  "created_at": 1578681919,
  "updated_at": 1578681919,
  "links": {
    "receipt_payment": "https://admin.gamecash.mx/receipt-payment/ord_KQK3JBnwOjXwZo"
  }
}

422 Unprocessable Entity

{
    "message": "422 Unprocessable Entity",
    "errors": {
        "customer.email": [
            "El campo customer.email es obligatorio."
        ]
    },
    "code": "validation_errors",
    "status_code": 422
}

Respuestas

Código Descripción
200 OK
422 Unprocessable Entity

Recuperar una orden

GET /orders/:id
curl https://api.gamecash.mx/orders/ord_KQK3JBnwOjXwZo \
  -u sk_z8A4Fje1yDM5q9He2:
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.gamecash.mx/orders/ord_KQK3JBnwOjXwZo', [
        'headers' => $headers,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Recupera los detalles de una orden que se ha creado previamente. Proporcione el ID de la orden que le devolvió su solicitud anterior. Se devuelve la misma información al crear o reembolsar la orden.

Parámetros

Parámetro Descripción
id Identificador único de la orden.
string

RESPUESTAS

200 OK

{
  "id": "ord_KQK3JBnwOjXwZo",
  "object": "order",
  "description": "Prueba de pago en OXXO.",
  "amount": 134999,
  "status": "pending_payment",
  "customer": {
    "id": "cus_0G9wK1LBy7A0X3",
    "object": "customer",
    "firstname": "Roberto",
    "lastname": "Ramirez",
    "email": "robertoiran@example.com",
    "phone": "+5215555555555"
  },
  "payment_method": {
    "data": [
      {
        "id": "och_AgpDB9PYR4RJyYD",
        "reference": "64000000003320022901349997",
        "type": "oxxo",
        "status": "pending_payment",
        "expires_at": 1583013067,
        "paid_at": null,
        "error_code": null,
        "error_message": null,
        "created_at": 1578681919,
        "updated_at": 1578681919
      }
    ]
  },
  "operation_type": "in",
  "refunds": [],
  "paid_at": null,
  "created_at": 1578681919,
  "updated_at": 1578681919,
  "links": {
    "receipt_payment": "https://admin.gamecash.mx/receipt-payment/ord_KQK3JBnwOjXwZo"
  }
}

404 Not Found

{
    "message": "No such resource: ord_KQK3JBnwOjXwZos",
    "code": "resource_missing_error",
    "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Reembolsar una orden

POST /orders/refunds
curl -X POST \
  https://api.gamecash.mx/orders/refunds \
  -H 'Content-Type: application/json' \
  -u sk_z8A4Fje1yDM5q9He2: \
  -d '[
    {
       "order_id": "ord_KQK3JBnwOjXwZo",
       "reason": "requested_by_customer",
       "method": "spei"
       "bank_account": {
          "bank_code": 40002,
          "clabe": "489093653610032428"
       }
    }
  ]'
<?php

require 'vendor/autoload.php';

$headers = [
    'Content-Type' => 'application/json',
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$request_body = [
    {
       'order_id' : 'ord_KQK3JBnwOjXwZo',
       'reason' : 'requested_by_customer',
       'method' : 'spei',
       "bank_account": {
          "bank_code": 40002,
          "clabe": "489093653610032428"
       }
    }
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.gamecash.mx/orders/refunds', [
        'headers' => $headers,
        'json' => $request_body,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Parámetros

Se envia una matriz con uno o mas objetos de instrucciones.

Parámetro Descripción
order_id Identificador único de la orden.
string, requerido
reason Indica el motivo del reembolso. Posibles valores duplicate, fraudulent, requested_by_customer, other.
string
method Método por el cual se ejecutará la instrucción. Posibles valores spei
string, requerido
bank_account Hash que contiene la información bancaria del cliente, debe estar presente para el método spei.
Hash
bank_code
> bank_account
La clave de la institución a la que va dirigida el pago de acuerdo con el Catálogo Instituciones.
integer, requerido
clabe
> bank_account
CLABE interbancaria del cliente.
string, requerido

RESPUESTAS

200 OK

{
  "id": "ord_KQK3JBnwOjXwZo",
  "object": "order",
  "description": "Prueba de pago en OXXO.",
  "amount": 134999,
  "status": "paid",
  "customer": {
    "id": "cus_0G9wK1LBy7A0X3",
    "object": "customer",
    "firstname": "Roberto",
    "lastname": "Ramirez",
    "email": "robertoiran@example.com",
    "phone": "+5215555555555"
  },
  "payment_method": {
    "data": [
      {
        "id": "och_AgpDB9PYR4RJyYD",
        "reference": "64000000003320022901349997",
        "type": "oxxo",
        "status": "paid",
        "expires_at": 1583013067,
        "paid_at": 1578687860,
        "error_code": null,
        "error_message": null,
        "created_at": 1578681919,
        "updated_at": 1578687862
      }
    ]
  },
  "operation_type": "in",
  "refunds": {
    "id": "re_84xQBdd2JkJzzEd7",
    "amount": 134999,
    "reason": "requested_by_customer",
    "status": "in_review",
    "refunded_at": null,
    "created_at": 1578687876
  },
  "paid_at": 1578687860,
  "created_at": 1578681919,
  "updated_at": 1578687862,
  "links": {
    "receipt_payment": "https://admin.gamecash.mx/receipt-payment/ord_KQK3JBnwOjXwZo"
  }
}

404 Not Found

{
    "message": "No such resource: ord_KQK3JBnwOjXwZos",
    "code": "resource_missing_error",
    "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Dispersiones

El objeto dispersión

EL OBJETO DISPERSIÓN

{
  "id": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "object": "dispersion",
  "amount": 1018676,
  "status": "pending_payment",
  "payment_method": {
    "id": "och_HdT7LmkRRDlbCNMjw0lnj",
    "reference": "646180179900000014",
    "type": "spei",
    "status": "pending_payment",
    "expires_at": null,
    "paid_at": null,
    "error_code": null,
    "error_message": null,
    "created_at": 1594915607,
    "updated_at": 1594915607
  },
  "finished_at": null,
  "canceled_at": null,
  "created_at": 1594915607,
  "updated_at": 1594915607,
  "instructions": {
    "object": "list",
    "data": [
      {...},
      {...},
      {...}
    ],
    "url": "/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions",
    "has_more": false,
    "total": 3
  }
}
Atributos Descripción
id Identificador único de la dispersión.
string
object Tipo de objeto.
string
amount Monto expresado en centavos, el valor es calculado sumando el monto de las instrucciones mas las comisiones.
integer
status El status de la dispersión. Posibles valores pending_payment, running, finished, canceled.
string
payment_method Hash que contiene la información del cargo para fondear la dispersión.
Hash
id
> payment_method
Identificador único del método de pago.
string
reference
> payment_method
CLABE interbancaria para realizar el fondeo.
string
type
> payment_method
Tipo del método de pago.
string
status
> payment_method
El status del cargo. Posibles valores pending_payment, declined, expired, paid, error.
string
expires_at
> payment_method
Fecha de expiración del cargo.
32-bit unix timestamp
paid_at
> payment_method
Fecha en que se realizó el pago del cargo.
32-bit unix timestamp
error_code
> payment_method
Código de error.
string
error_message
> payment_method
Mensaje descriptivo del error.
string
created_at
> payment_method
Fecha de creación del método de pago.
32-bit unix timestamp
updated_at
> payment_method
Fecha de la última actualización del método de pago.
32-bit unix timestamp
finished_at Fecha en que se terminaron de dispersar todas las instrucciones.
32-bit unix timestamp
canceled_at Fecha en que se cancelo la dispersión.
32-bit unix timestamp
created_at Fecha de creación de la dispersión.
32-bit unix timestamp
updated_at Fecha de la última actualización de la dispersión.
32-bit unix timestamp
instructions Lista de las instrucciones.
list

Crear una dispersión

POST /dispersions
curl -X POST \
  https://api.gamecash.mx/dispersions \
  -H 'Content-Type: application/json' \
  -u sk_z8A4Fje1yDM5q9He2: \
  -d '[
    {
      "description": "Descripción de instrucción por spei.",
      "amount": 218847,
      "method": "spei",
      "customer": {
        "firstname": "Gia",
        "lastname": "Carter",
        "email": "vidal49@example.com",
        "phone": "5594546531"
      },
      "bank_account": {
        "bank_code": 40002,
        "clabe": "489093653610032428"
      },
      "metadata": {
        "order_id": "3381"
      }
    },
    {
      "description": "Descripción de instrucción por servicio.",
      "amount": 10000,
      "method": "service",
      "customer": {
        "firstname": "Damian",
        "lastname": "Ramírez",
        "email": "dramirez@example.com"
      },
      "service": {
        "service_code": 64,
        "product_code": 193,
        "reference": "5555555555"
      }
      "metadata": {
        "order_id": "3382"
      }
    },
    {...},
    {...}
  ]'
<?php

require 'vendor/autoload.php';

$headers = [
    'Content-Type' => 'application/json',
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$request_body = [
  {
    "description": "Descripción de instrucción por spei.",
    "amount": 218847,
    "method": "spei",
    "customer": {
      "firstname": "Gia",
      "lastname": "Carter",
      "email": "vidal49@example.com",
      "phone": "5594546531"
    },
    "bank_account": {
      "bank_code": 40002,
      "clabe": "489093653610032428"
    },
    "metadata": {
      "order_id": "3381"
    }
  },
  {
    "description": "Descripción de instrucción por servicio.",
    "amount": 10000,
    "method": "service",
    "customer": {
      "firstname": "Damian",
      "lastname": "Ramírez",
      "email": "dramirez@example.com"
    },
    "service": {
      "service_code": 64,
      "product_code": 193,
      "reference": "5555555555"
    }
    "metadata": {
      "order_id": "3382"
    }
  },
  {...},
  {...}
];

$client = new \GuzzleHttp\Client();

try {
  $response = $client->request('POST','https://api.gamecash.mx/dispersions', [
    'headers' => $headers,
    'json' => $request_body,
  ]);

  print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
  print_r($e->getMessage());
}

Se envia una matriz con uno o mas objetos de instrucciones.

Parámetro Descripción
description Descripción asociada a la instrucción.
string, requerido, maxLength=40
amount Monto expresado en centavos, el monto mínimo para transferencias spei es de $200.00.
integer, requerido, min=20000
method Método por el cual se ejecutará la instrucción. Posibles valores spei, service.
string
customer Hash que contiene la información del cliente.
Hash
firstname
> customer
Nombre del cliente.
string, requerido, minLength=3, maxLength=250
lastname
> customer
Apellidos del cliente.
string, requerido, minLength=3, maxLength=250
email
> customer
Correo electrónico del cliente.
string, requerido
phone
> customer
Número telefónico del cliente.
string, length=10
bank_account Hash que contiene la información bancaria del cliente, debe estar presente para el método spei.
Hash
bank_code
> bank_account
La clave de la institución a la que va dirigida el pago de acuerdo con el Catálogo Instituciones.
integer, requerido
clabe
> bank_account
CLABE interbancaria del cliente.
string, requerido
service Hash que contiene la información del servicio, debe estar presente para el método service.
Hash
service_code
> service
El código del servicio de acuerdo con el Catálogo Servicios y Productos.
integer
product_code
> service
El código del producto de acuerdo con el Catálogo Servicios y Productos.
integer
reference
> service
Número de teléfono o referencia.
string
metadata Hash en donde se puede enviar información adicional para la instrucción. Puede especificar hasta 50 elementos, con nombres de clave de hasta 40 caracteres y valores de hasta 500 caracteres.
Hash

RESPUESTAS

200 OK

{
  "id": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "object": "dispersion",
  "amount": 1018676,
  "status": "pending_payment",
  "payment_method": {
    "id": "och_HdT7LmkRRDlbCNMjw0lnj",
    "reference": "646180179900000014",
    "type": "spei",
    "status": "pending_payment",
    "expires_at": null,
    "paid_at": null,
    "error_code": null,
    "error_message": null,
    "created_at": 1594915607,
    "updated_at": 1594915607
  },
  "finished_at": null,
  "canceled_at": null,
  "created_at": 1594915607,
  "updated_at": 1594915607,
  "instructions": {
    "object": "list",
    "data": [
      {
        "id": "ins_WBM7q29vEpg5abGnRZgjd",
        "object": "instruction",
        "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
        "description": "Descripción de instrucción por spei.",
        "amount": 218847,
        "method": "spei",
        "customer": {
          "firstname": "Gia",
          "lastname": "Carter",
          "email": "vidal49@example.com",
          "phone": "5594546531"
        },
        "bank_account": {
          "bank_code": 40002,
          "clabe": "489093653610032428"
        },
        "metadata": {
          "order_id": "3381"
        },
        "error": {
          "message": null
        },
        "external_id": null,
        "status": "pending",
        "paid_at": null,
        "created_at": 1594915607,
        "updated_at": 1594915607
      },
      {
        "id": "ins_7q29vbGnpg5ajdWBMRZgE",
        "object": "instruction",
        "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
        "description": "Descripción de instrucción por servicio.",
        "amount": 10000,
        "method": "service",
        "customer": {
          "firstname": "Damian",
          "lastname": "Ramírez",
          "email": "dramirez@example.com"
        },
        "service": {
          "service_code": 64,
          "product_code": 193,
          "reference": "5555555555"
        }
        "metadata": {
          "order_id": "3382"
        },
        "error": {
          "message": null
        },
        "external_id": null,
        "status": "pending",
        "paid_at": null,
        "created_at": 1594915607,
        "updated_at": 1594915607
      },
      {...},
      {...}
    ],
    "url": "/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions",
    "has_more": false,
    "total": 4
  }
}

422 Unprocessable Entity

{
    "message": "422 Unprocessable Entity",
    "errors": {
        "0.amount": [
            "El monto mínimo es de 20000 centavos."
        ]
    },
    "code": "validation_errors",
    "status_code": 422
}

Respuestas

Código Descripción
200 OK
422 Unprocessable Entity

Recuperar una dispersión

GET /dispersions/:id
curl https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr \
  -u sk_z8A4Fje1yDM5q9He2:
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr', [
        'headers' => $headers,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Recupera los detalles de una dispersión que se ha creado previamente, el valor devuelto es un objeto dispersión.

Parámetros

Parámetro Descripción
id Identificador único de la dispersión.
string

RESPUESTAS

200 OK

{
  "id": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "object": "dispersion",
  "amount": 1018676,
  "status": "pending_payment",
  "payment_method": {
    "id": "och_HdT7LmkRRDlbCNMjw0lnj",
    "reference": "646180179900000014",
    "type": "spei",
    "status": "pending_payment",
    "expires_at": null,
    "paid_at": null,
    "error_code": null,
    "error_message": null,
    "created_at": 1594915607,
    "updated_at": 1594915607
  },
  "finished_at": null,
  "canceled_at": null,
  "created_at": 1594915607,
  "updated_at": 1594915607,
  "instructions": {
      "object": "list",
      "data": [
        {
          "id": "ins_WBM7q29vEpg5abGnRZgjd",
          "object": "instruction",
          "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
          "description": "Descripción de la instrucción.",
          "amount": 218847,
          "method": "spei",
          "customer": {
            "firstname": "Gia",
            "lastname": "Carter",
            "email": "vidal49@example.com",
            "phone": "5594546531"
          },
          "bank_account": {
            "bank_code": 40002,
            "clabe": "489093653610032428"
          },
          "metadata": {
            "order_id": "3381"
          },
          "error": {
            "message": null
          },
          "external_id": null,
          "status": "pending",
          "paid_at": null,
          "created_at": 1594915607,
          "updated_at": 1594915607
        },
        {...},
        {...}
      ],
      "url": "/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions",
      "has_more": false,
      "total": 3
  }
}

404 Not Found

{
  "message": "No such resource: dsp_mPgYQzE5B8rypJyK4oMvr",
  "code": "resource_missing_error",
  "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Cancelar una dispersión

POST /dispersions/:id/cancel
curl -X POST https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/cancel \
  -u sk_z8A4Fje1yDM5q9He2:
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('POST','https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/cancel', [
        'headers' => $headers,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Una dispersión creada anteriormente se puede cancelar si aún no se ha fondeado.

Parámetros

Parámetro Descripción
id Identificador único de la dispersión.
string

RESPUESTAS

200 OK

{
  "id": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "object": "dispersion",
  "amount": 1018676,
  "status": "canceled",
  "payment_method": {
    "id": "och_HdT7LmkRRDlbCNMjw0lnj",
    "reference": "646180179900000014",
    "type": "spei",
    "status": "pending_payment",
    "expires_at": null,
    "paid_at": null,
    "error_code": null,
    "error_message": null,
    "created_at": 1594915607,
    "updated_at": 1594915607
  },
  "finished_at": null,
  "canceled_at": 1594994461,
  "created_at": 1594915607,
  "updated_at": 1594915607,
  "instructions": {
      "object": "list",
      "data": [
        {
          "id": "ins_WBM7q29vEpg5abGnRZgjd",
          "object": "instruction",
          "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
          "description": "Descripción de la instrucción.",
          "amount": 218847,
          "method": "spei",
          "customer": {
            "firstname": "Gia",
            "lastname": "Carter",
            "email": "vidal49@example.com",
            "phone": "5594546531"
          },
          "bank_account": {
            "bank_code": 40002,
            "clabe": "489093653610032428"
          },
          "metadata": {
            "order_id": "3381"
          },
          "error": {
            "message": null
          },
          "external_id": null,
          "status": "canceled",
          "paid_at": null,
          "created_at": 1594915607,
          "updated_at": 1594915607
        },
        {...},
        {...}
      ],
      "url": "/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions",
      "has_more": false,
      "total": 3
  }
}

404 Not Found

{
  "message": "No such resource: dsp_mPgYQzE5B8rypJyK4oMvr",
  "code": "resource_missing_error",
  "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Instrucciones

El objeto instrucción

EL OBJETO INSTRUCCIÓN

{
  "id": "ins_WBM7q29vEpg5abGnRZgjd",
  "object": "instruction",
  "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "description": "Descripción de la instrucción.",
  "amount": 218847,
  "method": "spei",
  "customer": {
    "firstname": "Gia",
    "lastname": "Carter",
    "email": "vidal49@example.com",
    "phone": "5594546531"
  },
  "bank_account": {
    "bank_code": 40002,
    "clabe": "489093653610032428"
  },
  "service": {
    "service_code": 64,
    "product_code": 193,
    "reference": "5555555555"
  }
  "metadata": {
    "order_id": "3381"
  },
  "error": {
    "message": null
  },
  "external_id": null,
  "status": "pending",
  "paid_at": null,
  "created_at": 1594915607,
  "updated_at": 1594915607
}
Atributos Descripción
id Identificador único de la instrucción.
string
object Tipo de objeto.
string
dispersion ID de la dispersión.
string
description Descripción asociada a la instrucción.
string, requerido, maxLength=40
amount Monto expresado en centavos, el monto mínimo para transferencias spei es de $200.00.
integer, requerido, min=20000
method Método por el cual se ejecutará la instrucción. Posibles valores spei, service.
string
customer Hash que contiene la información del cliente.
Hash
firstname
> customer
Nombre del cliente.
string, requerido, minLength=3, maxLength=250
lastname
> customer
Apellidos del cliente.
string, requerido, minLength=3, maxLength=250
email
> customer
Correo electrónico del cliente.
string, requerido
phone
> customer
Número telefónico del cliente.
string, length=10
bank_account Hash que contiene la información bancaria del cliente, debe estar presente para el método spei.
Hash
bank_code
> bank_account
La clave de la institución a la que va dirigida el pago de acuerdo con el Catálogo Instituciones.
integer, requerido
clabe
> bank_account
CLABE interbancaria del cliente.
string, requerido
service Hash que contiene la información del servicio, debe estar presente para el método service.
Hash
service_code
> service
El código del servicio de acuerdo con el Catálogo Servicios y Productos.
integer
product_code
> service
El código del producto de acuerdo con el Catálogo Servicios y Productos.
integer
reference
> service
Número de teléfono o referencia.
string
metadata Hash en donde se puede enviar información adicional para la instrucción. Puede especificar hasta 50 elementos, con nombres de clave de hasta 40 caracteres y valores de hasta 500 caracteres.
Hash
error Hash que contiene la información del error.
Hash
message
> error
Mensaje de error por el cual no se pudo llevar acabo la dispersión.
string
external_id Código de rastreo de la dispersión.
string
status El status de la instrucción. Posibles valores pending, in_transit, paid, failed, canceled, refunded.
string
paid_at Fecha en la que se disperso la instrucción.
32-bit unix timestamp
created_at Fecha de creación de la instrucción.
32-bit unix timestamp
updated_at Fecha de la última actualización de la instrucción.
32-bit unix timestamp

Listado de instrucciones

GET /dispersions/:id/instructions
curl https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions \
  -u sk_z8A4Fje1yDM5q9He2:
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions', [
        'headers' => $headers,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Devuelve una lista de instrucciones asociadas a una dispersión.

Parámetros

Parámetro Descripción
id Identificador único de la instrucción.
string

RESPUESTAS

200 OK

{
  "object": "list",
  "data": [
    {
      "id": "ins_WBM7q29vEpg5abGnRZgjd",
      "object": "instruction",
      "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
      "description": "Descripción de la instrucción.",
      "amount": 218847,
      "method": "spei",
      "customer": {
        "firstname": "Gia",
        "lastname": "Carter",
        "email": "vidal49@example.com",
        "phone": "5594546531"
      },
      "bank_account": {
        "bank_code": 40002,
        "clabe": "489093653610032428"
      },
      "metadata": {
        "order_id": "3381"
      },
      "error": {
        "message": null
      },
      "external_id": null,
      "status": "pending",
      "paid_at": null,
      "created_at": 1594915607,
      "updated_at": 1594915607
    },
    {...},
    {...}
  ],
  "url": "/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions",
  "has_more": false,
  "total": 3
}

404 Not Found

{
  "message": "No such resource: dsp_mPgYQzE5B8rypJyK4oMvr",
  "code": "resource_missing_error",
  "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Recuperar una instrucción

GET /dispersions/:id/instructions/:id
curl https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions/ins_WBM7q29vEpg5abGnRZgjd \
  -u sk_z8A4Fje1yDM5q9He2:
<?php

require 'vendor/autoload.php';

$headers = [
    'auth' => [ 'sk_z8A4Fje1yDM5q9He2', ],
];

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('GET','https://api.gamecash.mx/dispersions/dsp_mPgYQzE5B8rypJyK4oMvr/instructions/ins_WBM7q29vEpg5abGnRZgjd', [
        'headers' => $headers,
    ]);

    print_r($response->getBody()->getContents());
} catch (\GuzzleHttp\Exception\BadResponseException $e) {
    print_r($e->getMessage());
}

Recupera los detalles de una instrucción que se ha creado previamente, el valor devuelto es un objeto instrucción.

Parámetros

Parámetro Descripción
id Identificador único de la dispersión.
string
id Identificador único de la instrucción.
string

RESPUESTAS

200 OK

{
  "id": "ins_WBM7q29vEpg5abGnRZgjd",
  "object": "instruction",
  "dispersion": "dsp_mPgYQzE5B8rypJyK4oMvr",
  "description": "Descripción de la instrucción.",
  "amount": 218847,
  "method": "spei",
  "customer": {
    "firstname": "Gia",
    "lastname": "Carter",
    "email": "vidal49@example.com",
    "phone": "5594546531"
  },
  "bank_account": {
    "bank_code": 40002,
    "clabe": "489093653610032428"
  },
  "metadata": {
    "order_id": "3381"
  },
  "error": {
    "message": null
  },
  "external_id": null,
  "status": "pending",
  "paid_at": null,
  "created_at": 1594915607,
  "updated_at": 1594915607
}

404 Not Found

{
  "message": "No such resource: ins_WBM7q29vEpg5abGnRZgjd",
  "code": "resource_missing_error",
  "status_code": 404
}

Respuestas

Código Descripción
200 OK
404 Not Found

Paginación

Una lista representa una conjunto de objetos.

El objeto lista

EL OBJETO LISTA

{
  "object": "list",
  "data": [
    {...},
    {...},
    {...}
  ],
  "url": "...",
  "has_more": false,
  "total": 3
  "previous_page": "..."
  "next_page": "..."
}
Atributos Descripción
object Cadena que describe el tipo de objeto devuelto.
string
data Matriz que contiene los elementos.
array
url URL para acceder a la lista.
string
has_more Indicardor si hay o no más elementos disponibles después de este conjunto. Si es falso, este conjunto comprende el final de la lista.
boolean
total Total de elementos mostrados en el conjunto.
integer
previous_page URL de la pagina anterior.
string
next_page URL de la pagina siguiente.
string

Eventos

Los eventos es la forma en que le informamos cualquier cosa que ha pasado en su cuenta. Cuando ocurre un evento, creamos un nuevo objeto Evento. Por ejemplo, cuando un cargo ha sido pagado creamos el evento order.paid.

La manera en que le informamos los eventos es por medio de un sistema de webhooks, que se encarga de enviar los objetos de Evento directamente a un endpoint en su servidor. Los webhooks se administran en la configuración de su cuenta.

Si el endpoint en su servidor no responde con un código de respuesta 2xx volveremos a intentar informarle después de 10 segundos. Si ese segundo intento falla, volveremos a intentar informarle por última vez después de 100 segundos. El webhook también se considerara fallido si la aplicación no responde en 3 segundos o si el SSL no es válido.

El objeto evento

EL OBJETO EVENTO

{
  "object": "event",
  "type": "order.paid",
  "event_date": 1596029094,
  "data": { ... }
}
Atributos Descripción
object Tipo de objeto.
string
type Tipo de evento (por ejemplo, order.paid o order.refunded).
string
event_date Fecha de creación del evento.
32-bit unix timestamp
data Hash que contiene el objeto asociado con el evento.
Hash

Tipos de eventos

Esta es una lista de todos los tipos de eventos que enviamos actualmente. Podemos agregar más en cualquier momento, por lo que al desarrollar y mantener su código, no debe suponer que solo existen estos tipos.

Evento Descripción
order.paid Este evento ocurre cuando una orden ha sido pagada. Incluye el objeto orden.
dispersion.created Este evento ocurre cuando una dispersión ha sido registrada. Incluye el objeto dispersión.
dispersion.finished Este evento ocurre cuando se han ejecutado todas las instrucciones de una dispersión. Incluye el objeto dispersión.
instruction.created Este evento ocurre cuando una instrucción ha sido registrada. Incluye el objeto instrucción.
instruction.in_transit Este evento ocurre cuando se ha enviado una instrucción a Banxico. Incluye el objeto instrucción.
instruction.paid Este evento ocurre cuando se ha liquidado una instrucción. Incluye el objeto instrucción.
instruction.canceled Este evento ocurre cuando se detecta un comportamiento inusual en alguna de las cuentas involucradas.

Los motivos para la cancelación son:

* Cuenta bloqueada o cancelada
* No cumple con los lineamientos o disposiciones dictadas por la Comisión Nacional Bancaria y de Valores (CNBV) en materia de Prevención de Lavado de Dinero (PLD)

Incluye el objeto instrucción.
instruction.refunded Este evento ocurre cuando el banco beneficiario rechaza la instrucción. Incluye el objeto instrucción.

Errores

La API de GameCash usa los siguientes códigos de error:

Error Descripción
400 Bad Request -- El mensaje JSON enviado en el cuerpo de la petición no es válido.
401 Unauthorized -- Tu clave de API es incorrecta.
404 Not Found -- El recurso no existe.
422 Unprocessable Entity -- Error en la validación de los parámetros.
500 Internal Server Error -- Tuvimos un problema con nuestro servidor. Intenta nuevamente más tarde.

Catálogo de Instituciones

Código Nombre
2001 BANXICO
37006 BANCOMEXT
37009 BANOBRAS
37019 BANJERCITO
37135 NAFIN
37166 BANSEFI
37168 HIPOTECARIA FED
40002 BANAMEX
40012 BBVA BANCOMER
40014 SANTANDER
40021 HSBC
40030 BAJIO
40036 INBURSA
40042 MIFEL
40044 SCOTIABANK
40058 BANREGIO
40059 INVEX
40060 BANSI
40062 AFIRME
40072 BANORTE
40102 ACCENDO BANCO
40103 AMERICAN EXPRES
40106 BANK OF AMERICA
40108 MUFG
40110 JP MORGAN
40112 BMONEX
40113 VE POR MAS
40124 DEUTSCHE
40126 CREDIT SUISSE
40127 AZTECA
40128 AUTOFIN
40129 BARCLAYS
40130 COMPARTAMOS
40132 MULTIVA BANCO
40133 ACTINVER
40136 INTERCAM BANCO
40137 BANCOPPEL
40138 ABC CAPITAL
40140 CONSUBANCO
40141 VOLKSWAGEN
40143 CIBANCO
40145 BBASE
40147 BANKAOOL
40148 PAGATODO
40150 INMOBILIARIO
40151 DONDE
40152 BANCREA
40154 BANCO FINTERRA
40155 ICBC
40156 SABADELL
40157 SHINHAN
40158 MIZUHO BANK
40160 BANCO S3
90600 MONEXCB
90601 GBM
90602 MASARI
90605 VALUE
90606 ESTRUCTURADORES
90608 VECTOR
90613 MULTIVA CBOLSA
90616 FINAMEX
90617 VALMEX
90620 PROFUTURO
90630 CB INTERCAM
90631 CI BOLSA
90634 FINCOMUN
90636 HDI SEGUROS
90638 AKALA
90642 REFORMA
90646 STP
90648 EVERCORE
90652 CREDICAPITAL
90653 KUSPIT
90656 UNAGRA
90659 ASP INTEGRA OPC
90670 LIBERTAD
90677 CAJA POP MEXICA
90680 CRISTOBAL COLON
90683 CAJA TELEFONIST
90684 TRANSFER
90685 FONDO (FIRA)
90686 INVERCAP
90689 FOMPED
90901 CLS
90902 INDEVAL
90903 CoDi Valida
91812 BBVA BANCOMER2
90814 SANTANDER2
91821 HSBC2