Saltar al contenido principal

Crear una orden de pago

Aprende de inicio a fin como recibir los pagos de tus clientes.

Enviar datos de orden

A continuación, se detalla el método de integración al servicio de checkout de Flow utilizando la API versión 1.

El proceso inicia cuando el cliente selecciona su producto y elige pagar mediante Flow. Cuando el comercio recibe la solicitud de pago del cliente, este debe crear una orden de pago en Flow llamando al recurso /payment/create mediante un método POST. El esquema de recurso es del tipo application/x-www-form-urlencoded, que debe ser indicado en el header Content-Type

apiKey
required
string

apiKey del comercio

commerceOrder
required
string

Orden del comercio

subject
required
string

Descripción de la orden

currency
string

Moneda de la orden

amount
required
number

Monto de la orden

email
required
string <email>

email del pagador

paymentMethod
integer

Identificador del medio de pago. Si se envía el identificador, el pagador será redireccionado directamente al medio de pago que se indique, de lo contrario Flow le presentará una página para seleccionarlo. El medio de pago debe haber sido previamente contratado. Podrá ver los identificadores de sus medios de pago en la sección "Mis Datos" ingresando a Flow con sus credenciales. Para indicar todos los medios de pago utilice el identificador:

  • 9 Todos los medios
urlConfirmation
required
string <uri>

url callback del comercio donde Flow confirmará el pago

urlReturn
required
string <uri>

url de retorno del comercio donde Flow redirigirá al pagador

optional
string

Datos opcionales en formato JSON clave = valor, ejemplo: {"rut":"9999999-9","nombre":"cliente 1"}

timeout
integer

tiempo en segundos para que una orden expire después de haber sido creada. Si no se envía este parámetro la orden no expirará y estará vigente para pago por tiempo indefinido. Si envía un valor en segundos, la orden expirará x segundos después de haber sido creada y no podrá pagarse.

merchantId
string

Id de comercio asociado. Solo aplica si usted es comercio integrador.

payment_currency
string

Moneda en que se espera se pague la orden

s
required
string

la firma de los parámetros efectuada con su secretKey

{
  • "apiKey": "string",
  • "commerceOrder": "string",
  • "subject": "string",
  • "currency": "string",
  • "amount": 0,
  • "email": "user@example.com",
  • "paymentMethod": 0,
  • "urlConfirmation": "http://example.com",
  • "urlReturn": "http://example.com",
  • "optional": "string",
  • "timeout": 0,
  • "merchantId": "string",
  • "payment_currency": "string",
  • "s": "string"
}

Firma de parámetros

Ejemplos de firmado de parámetros en diferentes lenguajes de programación
$secretKey = 'my secret'
$params = array(
'apiKey' => '1F90971E-8276-4715-97FF-2BLG5030EE3B',
'token' => 'AJ089FF5467367'
);
$keys = array_keys($params);
sort($keys);
$toSign = '';
foreach($keys as $key) {
$toSign .= $key . $params[$key];
};
$signature = hash_hmac('sha256', $toSign , $secretKey);

La respuesta que entrega por Flow al llamado a crear una orden es del tipo JSON donde se indican los parámetros, flowOrder, url y token. Los parámetros url y token permiten construir la dirección del checkout para que el cliente sea redirigido al checkout de Flow.

url
string

URL ha redireccionar. Para formar el link de pago a esta URL se debe concatenar el token de la siguiente manera: url + "?token=" + token

token
string

token de la transacción

flowOrder
number

Número de order de cobro Flow

{
  • "token": "33373581FC32576FAF33C46FC6454B1FFEBD7E1H",
  • "flowOrder": 8765456
}

Redirección

El comercio debe redireccionar al cliente concatenado la url y token de la siguiente forma: url + "?token=" + token.

El cliente, a su vez, podrá seleccionar uno de los medios de pagos disponibles y proceder con la transacción. Los comercios pueden administrar los medios de pagos que tienen disponibles a sus clientes desde el portal de Flow.