Eliminar cobro
curl --request DELETE \
--url https://api.onepay.la/v1/payments/{payment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"notify": true
}'import requests
url = "https://api.onepay.la/v1/payments/{payment_id}"
payload = { "notify": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({notify: true})
};
fetch('https://api.onepay.la/v1/payments/{payment_id}', 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/payments/{payment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'notify' => true
]),
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/payments/{payment_id}"
payload := strings.NewReader("{\n \"notify\": true\n}")
req, _ := http.NewRequest("DELETE", 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.delete("https://api.onepay.la/v1/payments/{payment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"notify\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onepay.la/v1/payments/{payment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"notify\": true\n}"
response = http.request(request)
puts response.read_bodyno content
{
"message": "Registro no encontrado, Pago no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "Registro no encontrado, Token de api no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "El pago fue cancelado",
"code": 15004,
"code_name": "payment_cancelled"
}
{
"message": "Este pago ya fue pagado.",
"code": 15003,
"code_name": "payment_already_paid"
}
{
"message": "La solicitud contiene errores de validación.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"notify": ["El campo notify debe ser verdadero o falso."]
}
}
Eliminar cobro
Este endpoint te permite eliminar un cobro existente
DELETE
/
payments
/
{payment_id}
Eliminar cobro
curl --request DELETE \
--url https://api.onepay.la/v1/payments/{payment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"notify": true
}'import requests
url = "https://api.onepay.la/v1/payments/{payment_id}"
payload = { "notify": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({notify: true})
};
fetch('https://api.onepay.la/v1/payments/{payment_id}', 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/payments/{payment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'notify' => true
]),
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/payments/{payment_id}"
payload := strings.NewReader("{\n \"notify\": true\n}")
req, _ := http.NewRequest("DELETE", 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.delete("https://api.onepay.la/v1/payments/{payment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"notify\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onepay.la/v1/payments/{payment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"notify\": true\n}"
response = http.request(request)
puts response.read_bodyno content
{
"message": "Registro no encontrado, Pago no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "Registro no encontrado, Token de api no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "El pago fue cancelado",
"code": 15004,
"code_name": "payment_cancelled"
}
{
"message": "Este pago ya fue pagado.",
"code": 15003,
"code_name": "payment_already_paid"
}
{
"message": "La solicitud contiene errores de validación.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"notify": ["El campo notify debe ser verdadero o falso."]
}
}
Path Parameters
string
required
ID del cobro que eliminarás. Crear cobro.
Body
boolean
default:"true"
Controla si se le avisa al cliente que su cobro fue cancelado. Con
false el cobro se cancela igual, pero no se envía el mensaje de WhatsApp (plantilla canceled_payment) ni el correo de cancelación. Por defecto (true u omitido) sí se envían, que es el comportamiento histórico del endpoint.Está pensado para ajustes operativos: corregir un cobro y volver a emitirlo, o retirar una deuda que el cliente ya pagó en caja. En esos casos avisarle que “la empresa canceló tu pago pendiente” lo confunde, porque desde su lado no hay nada que corregir.El body es opcional: si no lo envías, se aplica notify: true. Un valor que no sea booleano devuelve 422.El webhook al comercio se envía igual.
notify solo silencia los avisos al cliente final —WhatsApp y correo—. La notificación a tu sistema sale siempre, también con notify: false, así que tu integración se entera de la cancelación sin ningún cambio.notify: false deja al cliente con un link muerto: cancelar un cobro invalida su link de pago (el checkout responde 404). Si silencias el aviso, el cliente conserva un link que ya no cobra y no se entera.Por eso el default es true. Usa notify: false solo cuando la comunicación ya esté resuelta por otro lado: le vas a emitir un cobro nuevo, o ya pagó en caja.Ejemplos de uso
- curl
- JavaScript
- Python
curl https://api.onepay.la/v1/payments/9e5ccd4a-d2f0-49dd-87fc-a0da752bd166 \
-X DELETE \
-H "Authorization: Bearer sk_test_KjbE0Vobf5Lg1yNZ4HoKawDItDs3Rod9VXNBWrEYmGn06tkesPIi" \
-H "Content-Type: application/json" \
-d '{
"notify": false
}'
const response = await fetch('https://api.onepay.la/v1/payments/9e5ccd4a-d2f0-49dd-87fc-a0da752bd166', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer sk_test_KjbE0Vobf5Lg1yNZ4HoKawDItDs3Rod9VXNBWrEYmGn06tkesPIi',
'Content-Type': 'application/json',
},
body: JSON.stringify({
notify: false, // Cancela el cobro sin avisarle al cliente
}),
});
// 204 No Content
import requests
response = requests.delete(
'https://api.onepay.la/v1/payments/9e5ccd4a-d2f0-49dd-87fc-a0da752bd166',
headers={'Authorization': 'Bearer sk_test_KjbE0Vobf5Lg1yNZ4HoKawDItDs3Rod9VXNBWrEYmGn06tkesPIi'},
json={'notify': False}, # Cancela el cobro sin avisarle al cliente
)
# 204 No Content
Response
no content
{
"message": "Registro no encontrado, Pago no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "Registro no encontrado, Token de api no existe",
"code": 10002,
"code_name": "record_not_found"
}
{
"message": "El pago fue cancelado",
"code": 15004,
"code_name": "payment_cancelled"
}
{
"message": "Este pago ya fue pagado.",
"code": 15003,
"code_name": "payment_already_paid"
}
{
"message": "La solicitud contiene errores de validación.",
"code": 10001,
"code_name": "validation_error",
"errors": {
"notify": ["El campo notify debe ser verdadero o falso."]
}
}
Was this page helpful?
⌘I