Tabla de Contenidos

API: Leer deuda

Ejemplo de cómo obtener la información de una deuda utilizando el API.

Harías este llamada cuando deseas consultar el estado de pago de una deuda que creaste. Normalmente no es necesaria esta llamada porque AdamsPay notificará a tu webhook cuando una deuda cambie de estado.

Llamadas al API | Ciclo de cobro


PHP

<?php
 
$idDeuda = 'demo001';
$apiUrl = 'https://staging.adamspay.com/api/v1/debts/' . $idDeuda;
$apiKey = 'tu-api-key';
 
$curl = curl_init();
 
curl_setopt_array($curl,[
 CURLOPT_URL => $apiUrl,
 CURLOPT_HTTPHEADER => ['apikey: '.$apiKey],
 CURLOPT_RETURNTRANSFER => true
 ]);
 
$response = curl_exec($curl);
if( $response ){
  $data = json_decode($response,true);
 
  // Verificar estado de pago
  $debt = isset($data['debt']) ? $data['debt'] : null;
  if( $debt ){
    $payUrl = $debt['payUrl'];
    $label = $debt['label'];
    $objStatus = $debt['objStatus']['status'];
    $payStatus = $debt['payStatus']['status'];
    $isActive = false !== array_search($objStatus,['active','alert','success']);
    $isPaid =$payStatus === 'paid';
 
    echo "Deuda encontrada, URL=$payUrl\n";
    echo "Concepto: $label\n";
    echo "Activa: ",($isActive?'Si':'No'),"\n";
    echo "Pagada: ";
    if( $isPaid ){
      $payTime  = $debt['payStatus']['time'];
      echo "Si, en fecha $payTime\n";
    }
    else {
      echo "No\n";
    }
 
  } else {
    echo "No se pudo obtener datos de la deuda\n";
    print_r($data['meta']);
  }
 
}
else {
  echo 'curl_error: ',curl_error($curl);
}
curl_close($curl);

Python

import http.client
import json
import pprint
import datetime
 
apiKey = "tu-api-key"
idDeuda = "demo001"
host = "staging.adamspay.com"
path = "/api/v1/debts/" + idDeuda
headers = {"apikey": apiKey}
 
conn = http.client.HTTPSConnection(host)
conn.request("GET", path , "", headers)
data = conn.getresponse().read().decode("utf-8")
 
response = json.JSONDecoder().decode(data)
 
pp = pprint.PrettyPrinter(indent=2)
if "debt" in response:
    debt=response["debt"]
    payUrl = debt["payUrl"]
    label = debt["label"]
    objStatus = debt["objStatus"]["status"]
    payStatus = debt["payStatus"]["status"]
    isPaid = payStatus == "paid"
    isActive = objStatus == "active" or objStatus == "alert" or objStatus == "success"
 
    print("Deuda encontrada, URL=" + payUrl)
    print("Concepto: " + label)
    print("Activa: " + ("Si" if isActive else "No"))
    if isPaid:
        date = datetime.datetime.fromisoformat(debt["payStatus"]["time"])
        payText = "Si, en fecha " + date.ctime()
    else:
        payText = "No"
    print("Pagada: " + payText)
 
 
else:
    print("# Error")
    if "meta" in response:
        pp.pprint(response["meta"])