Generar link de domiciliación
curl --request POST \
--url https://api.onepay.la/v1/utilities/direct-debits/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reference": "<string>",
"phone": "<string>",
"approx_amount": 123,
"expiration_minutes": 123
}
'import requests
url = "https://api.onepay.la/v1/utilities/direct-debits/link"
payload = {
"reference": "<string>",
"phone": "<string>",
"approx_amount": 123,
"expiration_minutes": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reference: '<string>',
phone: '<string>',
approx_amount: 123,
expiration_minutes: 123
})
};
fetch('https://api.onepay.la/v1/utilities/direct-debits/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/utilities/direct-debits/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reference' => '<string>',
'phone' => '<string>',
'approx_amount' => 123,
'expiration_minutes' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.onepay.la/v1/utilities/direct-debits/link"
payload := strings.NewReader("{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onepay.la/v1/utilities/direct-debits/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onepay.la/v1/utilities/direct-debits/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}"
response = http.request(request)
puts response.read_body{
"url": "https://onepay.la/s/abc123",
"reference": "3167591038",
"expires_at": "2026-02-16T15:55:00.000000-05:00"
}
Generar link de domiciliación
Genera un link firmado para que un cliente suscriba su método de pago al débito automático de facturas.
POST
utilities
/
direct-debits
/
link
Generar link de domiciliación
curl --request POST \
--url https://api.onepay.la/v1/utilities/direct-debits/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reference": "<string>",
"phone": "<string>",
"approx_amount": 123,
"expiration_minutes": 123
}
'import requests
url = "https://api.onepay.la/v1/utilities/direct-debits/link"
payload = {
"reference": "<string>",
"phone": "<string>",
"approx_amount": 123,
"expiration_minutes": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reference: '<string>',
phone: '<string>',
approx_amount: 123,
expiration_minutes: 123
})
};
fetch('https://api.onepay.la/v1/utilities/direct-debits/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onepay.la/v1/utilities/direct-debits/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'reference' => '<string>',
'phone' => '<string>',
'approx_amount' => 123,
'expiration_minutes' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.onepay.la/v1/utilities/direct-debits/link"
payload := strings.NewReader("{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onepay.la/v1/utilities/direct-debits/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onepay.la/v1/utilities/direct-debits/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reference\": \"<string>\",\n \"phone\": \"<string>\",\n \"approx_amount\": 123,\n \"expiration_minutes\": 123\n}"
response = http.request(request)
puts response.read_body{
"url": "https://onepay.la/s/abc123",
"reference": "3167591038",
"expires_at": "2026-02-16T15:55:00.000000-05:00"
}
Genera una URL firmada con tiempo de expiración que redirige al checkout de domiciliación. El cliente podrá registrar su método de pago (tarjeta o cuenta) para el cobro automático de sus facturas.
La compañía debe tener al menos un servicio de facturación (
BillService) habilitado para poder generar el link.Body
string
required
Referencia de la factura o servicio a domiciliar. Mínimo 1 carácter, máximo 60.
string
Número de teléfono del cliente en formato E.164. Si se envía, el checkout lo pre-llenará.
number
Monto aproximado del cobro (en pesos). Se muestra al cliente como referencia. Mínimo
0.integer
Minutos de validez del link. Mínimo
60, máximo 43200 (30 días). Por defecto 4320 (3 días).Ejemplos de uso
- curl
- JavaScript
- Python
curl https://api.onepay.la/v1/utilities/direct-debits/link \
-X POST \
-H "Authorization: Bearer sk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"reference": "3167591038",
"phone": "+573001234567",
"approx_amount": 45000,
"expiration_minutes": 4320
}'
const response = await fetch('https://api.onepay.la/v1/utilities/direct-debits/link', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
reference: '3167591038',
phone: '+573001234567',
approx_amount: 45000,
expiration_minutes: 4320,
}),
});
const data = await response.json();
console.log(data.url);
import requests
response = requests.post(
'https://api.onepay.la/v1/utilities/direct-debits/link',
headers={
'Authorization': 'Bearer sk_test_xxx',
'Content-Type': 'application/json',
},
json={
'reference': '3167591038',
'phone': '+573001234567',
'approx_amount': 45000,
'expiration_minutes': 4320,
},
)
data = response.json()
print(data['url'])
Response
string
URL corta que redirige al checkout de domiciliación. Este link es público y puede compartirse con el cliente.
string
La referencia enviada en el request.
string
Fecha y hora de expiración del link en formato ISO 8601.
{
"url": "https://onepay.la/s/abc123",
"reference": "3167591038",
"expires_at": "2026-02-16T15:55:00.000000-05:00"
}
Notas importantes
- El link generado es una URL firmada con expiración. Una vez vencido, el cliente verá un error 403.
- Se genera automáticamente una URL corta para facilitar el envío por WhatsApp o SMS.
- El cliente podrá registrar una tarjeta o cuenta bancaria como método de pago automático.
Was this page helpful?
⌘I