API CashIn
Buscar…
Registrar
Permite registrar una orden para que el comprador haga el pago. El parámetro checkout, indica la URL donde el comprador puede completar el pago.
Request
Request (ejemplo)
Response
Response (ejemplo)
Cabeceras
Campo
Tipo
Requerido
Descripción
merchant
string
si
Nombre asignado para el comercio en Payvalida. Se entrega con las credenciales.
email
string
si
Correo electrónico del comprador. Debe cumplir con el formato de correo valido.
country
number
si
order
string
si
Código de la orden para el comercio. Este código debe ser único para todas las ordenes registradas desde el comercio. Se utilizara para la notificación. No debe contener guiones bajos ni caracteres especiales.
reference
string
no
Numero de la referencia con la cual el cliente efectuara el pago. Este numero es único en Payvalida. si no se envía se proporcionara uno disponible. Si se envía puede darse la posibilidad de colisiones.
amount
string
si
Monto de la orden para el recaudo. Si se envía este campo en cero ("0") la orden sera de monto abierto por lo que el cliente puede cualquier monto. Y se notificara el monto pagado.
description
string
si
Descripción corta de la orden. No incluir caracteres especiales.
method
string
no
Método de pago para la orden. Si no se envía la orden se podrá pagar por cualquiera de los metodos de pago registrados en el comercio.
language
string
no
lenguaje de la petición. es o en. default: es
recurrent
bool
si
Indica si la orden es o no recurrente. Si la orden es recurrente está no expira y se puede pagar multiples veces por el usuario. La notificación para recurrentes se realizara con el consecutivo (order+_+consecutivo) que aumenta según la cantidad de pagos.
expiration
string
si
Fecha de expiración de la orden en formato DD/MM/AAAA. No puede superar 30 días calendario y no debe ser inferior a la fecha actual.
iva
string
si
Monto porcentual correspondiente al IVA de la orden. Si tu medio de pago es tarjeta de crédito debes indicar este valor para el calculo del reteIVA.
checksum
string
si
Cadena de comprobación con SHA512 (email + country + order + money + amount + FIXED_HASH)
user_di
string
no
Número del documento de identidad del comprador.
user_type_di
string
no
Tipo del documento de identidad del cliente.
user_name
string
no
nombre del cliente en el documento de identidad (no acepta caracteres especiales ni acentos).
redirect_timeout
string
no
Tiempo de espera para redireccionar automáticamente al sitio del comercio cuando la operación de pago ha sido completada. Aplica para TC y PSE en Colombia. (Default: 15000 ms).
shortener
bool
no
Indica si la url recibida en el checkout esta acortada o no.
1
curl --location --request POST 'https://api-test.payvalida.com/api/v3/porders' \
2
--header 'Content-Type: application/json' \
3
--data-raw '{
4
"merchant": "kuanto",
5
"email": "[email protected]",
6
"country": 343,
7
"order": "999999991",
8
"reference": "46534512",
9
"money": "COP",
10
"amount": "10500",
11
"description": "Orden de prueba",
12
"method": "",
13
"language": "es",
14
"recurrent": true,
15
"expiration": "27/12/2020",
16
"iva": "0",
17
"checksum": "96C79878E0CDC0C525090281141874D7494E0194B33E0E373DC412DD31AAD32B5DB2C681441C8007B2FCAF0873BBF2C8BFDB4A6E7D04DB8E52A843A30D6CFF08",
18
"user_di": "94320444",
19
"user_type_di": "CC",
20
"user_name": "NombreUsuario",
21
"redirect_timeout": "300000"
22
}'
Copied!
Campo
Estructura
Tipo
Descripción
CODE
-
string
Código de respuesta 0000 para OK.
DESC
-
string
Descripción de la respuesta.
DATA
-
string
Datos del registro
Monto
DATA
string
Monto de la operación.
Operacion
DATA
string
Resultado de la creación de la orden.
OrdenID
DATA
string
ID único de la orden asociado al comercio.
PVordenID
DATA
string
ID único asociado a la orden para Payvalida.
Referencia
DATA
string
Numero de la referencia con la cual el cliente realizara el pago.
checkout
DATA
string
Link generado por Payvalida donde el cliente podrá efectuar el pago para las redes de recaudo electrónico y obtener información del pago.
1
{
2
"CODE": "0000",
3
"DATA": {
4
"Monto": "10500.0",
5
"Operacion": "CREADA",
6
"OrdenID": "999999991",
7
"PVordenID": "1934480",
8
"Referencia": "46534512",
9
"checkout": "sandbox-short.payv.co/H4P1KTDr9"
10
},
11
"DESC": "OK"
12
}
Copied!
Cabecera
Valor
Content-Type
application/json
La identificación del comercio (merchant) y FIXED_HASH, es generada al momento de crear una cuenta en nuestra plataforma y se envía por correo electrónico.

Ejemplos

  • GO
1
package main
2
import (
3
"bytes"
4
"crypto/sha512"
5
"encoding/hex"
6
"encoding/json"
7
"fmt"
8
"io/ioutil"
9
"math/rand"
10
"net/http"
11
"time"
12
)
13
type Request struct {
14
Country int `json:"country,omitempty"`
15
Email string `json:"email,omitempty"`
16
Merchant string `json:"merchant,omitempty"`
17
Order string `json:"order,omitempty"`
18
Reference string `json:"reference,omitempty"`
19
Money string `json:"money,omitempty"`
20
Amount string `json:"amount,omitempty"`
21
Description string `json:"description,omitempty"`
22
Language string `json:"language,omitempty"`
23
Recurrent bool `json:"recurrent,omitempty"`
24
Expiration string `json:"expiration,omitempty"`
25
Method string `json:"method,omitempty"`
26
Iva string `json:"iva,omitempty"`
27
Checksum string `json:"checksum,omitempty"`
28
UserDI string `json:"user_di,omitempty"`
29
UserTypeDI string `json:"user_type_di,omitempty"`
30
RedirectTimeout string `json:"redirect_timeout,omitempty"`
31
UserName string `json:"user_name,omitempty"`
32
}
33
func main() {
34
url := "https://api-test.payvalida.com/api/v3/porders"
35
method := "POST"
36
email := "[email protected]"
37
country := "343"
38
order := "test" + fmt.Sprint(rand.Intn(999999999))
39
money := "COP"
40
amount := "20000"
41
fixedHash := "xxccc_b0b20707cca2b283b5844e77cadf2b5813bd923362b91583c95b736c8763937c0e0df27e9b730c404eeac6484666430f6042c043089135e8d3e76f2e86a82c38"
42
Paysha512 := sha512.Sum512([]byte(email + country + order + money + amount + fixedHash))
43
checksum := hex.EncodeToString(Paysha512[:])
44
date := time.Now()
45
expiration := date.AddDate(0, 0, 2)
46
request := Request{
47
Country: 343,
48
Email: email,
49
Merchant: "kuanto",
50
Order: order,
51
Reference: "",
52
Money: money,
53
Amount: amount,
54
Description: "Test pruebas unitarias",
55
Language: "es",
56
Recurrent: false,
57
Expiration: expiration.Format("02/01/2006"),
58
Method: "",
59
Iva: "0",
60
Checksum: checksum,
61
UserDI: "90000000",
62
UserTypeDI: "CC",
63
RedirectTimeout: "150000",
64
UserName: "devPayvalida",
65
}
66
json, err := json.Marshal(request)
67
if err != nil {
68
fmt.Println(err)
69
return
70
}
71
client := &http.Client{}
72
req, err := http.NewRequest(method, url, bytes.NewBuffer(json))
73
if err != nil {
74
fmt.Println(err)
75
return
76
}
77
req.Header.Add("Content-Type", "application/json")
78
res, err := client.Do(req)
79
if err != nil {
80
fmt.Println(err)
81
return
82
}
83
defer res.Body.Close()
84
body, err := ioutil.ReadAll(res.Body)
85
if err != nil {
86
fmt.Println(err)
87
return
88
}
89
fmt.Println(string(body))
90
}
Copied!
  • PHP
1
<?php
2
3
$curl = curl_init();
4
5
curl_setopt_array($curl, array(
6
CURLOPT_URL => "https://api-test.payvalida.com/api/v3/porders",
7
CURLOPT_RETURNTRANSFER => true,
8
CURLOPT_ENCODING => "",
9
CURLOPT_MAXREDIRS => 10,
10
CURLOPT_TIMEOUT => 0,
11
CURLOPT_FOLLOWLOCATION => true,
12
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
13
CURLOPT_CUSTOMREQUEST => "POST",
14
CURLOPT_POSTFIELDS =>"{\n \"merchant\": \"kuanto\",\n \"email\": \"[email protected]\",\n \"country\": 343,\n \"order\": \"999999991\",\n \"reference\": \"46534512\",\n \"money\": \"COP\",\n \"amount\": \"10500\",\n \"description\": \"Orden de prueba\",\n \"method\": \"\",\n \"language\": \"es\",\n \"recurrent\": true,\n \"expiration\": \"27/12/2020\",\n \"iva\": \"0\",\n \"checksum\": \"96C79878E0CDC0C525090281141874D7494E0194B33E0E373DC412DD31AAD32B5DB2C681441C8007B2FCAF0873BBF2C8BFDB4A6E7D04DB8E52A843A30D6CFF08\",\n \"user_di\": \"94320444\",\n \"user_type_di\": \"CC\",\n \"user_name\": \"NombreUsuario\",\n \"redirect_timeout\": \"300000\"\n}",
15
CURLOPT_HTTPHEADER => array(
16
"Content-Type: application/json"
17
),
18
));
19
20
$response = curl_exec($curl);
21
22
curl_close($curl);
23
echo $response;
24
Copied!
  • JAVA
1
OkHttpClient client = new OkHttpClient().newBuilder()
2
.build();
3
MediaType mediaType = MediaType.parse("application/json");
4
RequestBody body = RequestBody.create(mediaType, "{\n \"merchant\": \"kuanto\",\n \"email\": \"[email protected]\",\n \"country\": 343,\n \"order\": \"999999991\",\n \"reference\": \"46534512\",\n \"money\": \"COP\",\n \"amount\": \"10500\",\n \"description\": \"Orden de prueba\",\n \"method\": \"\",\n \"language\": \"es\",\n \"recurrent\": true,\n \"expiration\": \"27/12/2020\",\n \"iva\": \"0\",\n \"checksum\": \"96C79878E0CDC0C525090281141874D7494E0194B33E0E373DC412DD31AAD32B5DB2C681441C8007B2FCAF0873BBF2C8BFDB4A6E7D04DB8E52A843A30D6CFF08\",\n \"user_di\": \"94320444\",\n \"user_type_di\": \"CC\",\n \"user_name\": \"NombreUsuario\",\n \"redirect_timeout\": \"300000\"\n}");
5
Request request = new Request.Builder()
6
.url("https://api-test.payvalida.com/api/v3/porders")
7
.method("POST", body)
8
.addHeader("Content-Type", "application/json")
9
.build();
10
Response response = client.newCall(request).execute();
Copied!
  • Python
1
import http.client
2
import mimetypes
3
conn = http.client.HTTPSConnection("api-test.payvalida.com")
4
payload = "{\n \"merchant\": \"kuanto\",\n \"email\": \"[email protected]\",\n \"country\": 343,\n \"order\": \"999999991\",\n \"reference\": \"46534512\",\n \"money\": \"COP\",\n \"amount\": \"10500\",\n \"description\": \"Orden de prueba\",\n \"method\": \"\",\n \"language\": \"es\",\n \"recurrent\": true,\n \"expiration\": \"27/12/2020\",\n \"iva\": \"0\",\n \"checksum\": \"96C79878E0CDC0C525090281141874D7494E0194B33E0E373DC412DD31AAD32B5DB2C681441C8007B2FCAF0873BBF2C8BFDB4A6E7D04DB8E52A843A30D6CFF08\",\n \"user_di\": \"94320444\",\n \"user_type_di\": \"CC\",\n \"user_name\": \"NombreUsuario\",\n \"redirect_timeout\": \"300000\"\n}"
5
headers = {
6
'Content-Type': 'application/json'
7
}
8
conn.request("POST", "/api/v3/porders", payload, headers)
9
res = conn.getresponse()
10
data = res.read()
11
print(data.decode("utf-8"))
Copied!
  • JavaScript
1
var myHeaders = new Headers();
2
myHeaders.append("Content-Type", "application/json");
3
var raw = JSON.stringify({"merchant":"kuanto","email":"[email protected]","country":343,"order":"999999991","reference":"46534512","money":"COP","amount":"10500","description":"Orden de prueba","method":"","language":"es","recurrent":true,"expiration":"27/12/2020","iva":"0","checksum":"96C79878E0CDC0C525090281141874D7494E0194B33E0E373DC412DD31AAD32B5DB2C681441C8007B2FCAF0873BBF2C8BFDB4A6E7D04DB8E52A843A30D6CFF08","user_di":"94320444","user_type_di":"CC","user_name":"NombreUsuario","redirect_timeout":"300000"});
4
var requestOptions = {
5
method: 'POST',
6
headers: myHeaders,
7
body: raw,
8
redirect: 'follow'
9
};
10
fetch("https://api-test.payvalida.com/api/v3/porders", requestOptions)
11
.then(response => response.text())
12
.then(result => console.log(result))
13
.catch(error => console.log('error', error));
Copied!
Copiar enlace
Contenidos
Ejemplos