Obtener suscripción
curl --request GET \
--url https://tapipay-facade.homo.tapila.cloud/subscriptions/{id} \
--header 'x-api-key: <api-key>' \
--header 'x-authorization-token: <api-key>'import requests
url = "https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}"
headers = {
"x-api-key": "<api-key>",
"x-authorization-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-authorization-token': '<api-key>'}
};
fetch('https://tapipay-facade.homo.tapila.cloud/subscriptions/{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://tapipay-facade.homo.tapila.cloud/subscriptions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-authorization-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-authorization-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}")
.header("x-api-key", "<api-key>")
.header("x-authorization-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-authorization-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"subscriptionId": "sub_839d28e1-a175-40c7-a54b-55f6c17b7964",
"externalSubscriptionId": "SUB-2026-007",
"status": "ACTIVE",
"scheduling": {
"intervalUnit": "month",
"intervalCount": 1,
"startDate": "2026-06-15",
"totalCycles": 12,
"endDate": null,
"billingDay": {
"day": 15
}
},
"externalClientId": "CLI-00042",
"amount": 999,
"currency": "MXN",
"paymentUrl": "https://app.tapipay.la/s/acme-corp/portal/aB3dE5fG7h/debts",
"enforcePaymentOrder": false,
"autopay": false,
"allowOverduePayment": true,
"allowPartialPayments": true,
"paymentMethods": [
"CASH",
"CARD"
],
"description": "Plan Gimnasio",
"additionalData": {
"source": "crm"
},
"contact": {
"contactId": "con_9aL3kP2m",
"externalClientId": "CLI-00042",
"createdInline": false
},
"product": {
"productId": "prd_42",
"name": "Plan Gimnasio",
"active": true,
"createdInline": true
},
"createdAt": "2026-06-03T18:15:00.000Z",
"updatedAt": "2026-06-03T18:15:00.000Z"
},
"requestId": "<string>"
}Subscriptions
Obtener suscripción
Recupera una suscripción por su subscriptionId. Una suscripción ACTIVE cuya fecha de fin ya pasó se devuelve como ENDED.
GET
/
subscriptions
/
{id}
Obtener suscripción
curl --request GET \
--url https://tapipay-facade.homo.tapila.cloud/subscriptions/{id} \
--header 'x-api-key: <api-key>' \
--header 'x-authorization-token: <api-key>'import requests
url = "https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}"
headers = {
"x-api-key": "<api-key>",
"x-authorization-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-authorization-token': '<api-key>'}
};
fetch('https://tapipay-facade.homo.tapila.cloud/subscriptions/{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://tapipay-facade.homo.tapila.cloud/subscriptions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-authorization-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-authorization-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}")
.header("x-api-key", "<api-key>")
.header("x-authorization-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapipay-facade.homo.tapila.cloud/subscriptions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-authorization-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"subscriptionId": "sub_839d28e1-a175-40c7-a54b-55f6c17b7964",
"externalSubscriptionId": "SUB-2026-007",
"status": "ACTIVE",
"scheduling": {
"intervalUnit": "month",
"intervalCount": 1,
"startDate": "2026-06-15",
"totalCycles": 12,
"endDate": null,
"billingDay": {
"day": 15
}
},
"externalClientId": "CLI-00042",
"amount": 999,
"currency": "MXN",
"paymentUrl": "https://app.tapipay.la/s/acme-corp/portal/aB3dE5fG7h/debts",
"enforcePaymentOrder": false,
"autopay": false,
"allowOverduePayment": true,
"allowPartialPayments": true,
"paymentMethods": [
"CASH",
"CARD"
],
"description": "Plan Gimnasio",
"additionalData": {
"source": "crm"
},
"contact": {
"contactId": "con_9aL3kP2m",
"externalClientId": "CLI-00042",
"createdInline": false
},
"product": {
"productId": "prd_42",
"name": "Plan Gimnasio",
"active": true,
"createdInline": true
},
"createdAt": "2026-06-03T18:15:00.000Z",
"updatedAt": "2026-06-03T18:15:00.000Z"
},
"requestId": "<string>"
}Autorizaciones
API key del API Gateway de Tapi. Requerida en todas las operaciones. Distinta por ambiente (desarrollo, homologación, producción).
Token TAPI JWT. Requerido en todas las operaciones. Se envía sin prefijo "Bearer". Ej: x-authorization-token: eyJhbGci...
Parámetros de ruta
ID público con prefijo sub_ o el mismo valor sin prefijo.
Ejemplo:
"sub_839d28e1-a175-40c7-a54b-55f6c17b7964"
Respuesta
Suscripción obtenida
description, additionalData y paymentMethods solo vienen si tienen valor. Una suscripción ACTIVE cuya fecha de fin ya pasó se devuelve como ENDED.
Show child attributes
Show child attributes
Ejemplo:
{
"subscriptionId": "sub_839d28e1-a175-40c7-a54b-55f6c17b7964",
"externalSubscriptionId": "SUB-2026-007",
"status": "ACTIVE",
"scheduling": {
"intervalUnit": "month",
"intervalCount": 1,
"startDate": "2026-06-15",
"totalCycles": 12,
"endDate": null,
"billingDay": { "day": 15 }
},
"externalClientId": "CLI-00042",
"amount": 999,
"currency": "MXN",
"paymentUrl": "https://app.tapipay.la/s/acme-corp/portal/aB3dE5fG7h/debts",
"enforcePaymentOrder": false,
"autopay": false,
"allowOverduePayment": true,
"allowPartialPayments": true,
"paymentMethods": ["CASH", "CARD"],
"description": "Plan Gimnasio",
"additionalData": { "source": "crm" },
"contact": {
"contactId": "con_9aL3kP2m",
"externalClientId": "CLI-00042",
"createdInline": false
},
"product": {
"productId": "prd_42",
"name": "Plan Gimnasio",
"active": true,
"createdInline": true
},
"createdAt": "2026-06-03T18:15:00.000Z",
"updatedAt": "2026-06-03T18:15:00.000Z"
}

