Square Connect - Retrieve Subscription API Call Returning INVALID_REQUEST_ERROR using PHP

41 views Asked by At

I’m using PHP and the curl_init function to try to run the Retrieve Subscription API call. Here is my code:

$curl_url = "https://connect.squareup.com/v2/subscriptions/" . $subscriptionID;

system_log("curl_url is $curl_url");

if (($subscriptionID != "") && ($curl_url != "")) {
    $ch = curl_init($curl_url);
    curl_setopt_array($ch, array(
        CURLOPT_POST => TRUE,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_HTTPHEADER => array(
            'Square-Version: 2023-09-25',
            'Authorization: Bearer ' . $GLOBALS['square_access_token'],
            'Content-Type: application/json'
        )
    ));

    $response = curl_exec($ch);
    system_log("response is $response");
}

system_log is just a simple function I have to log information to the database. The $response I’m constantly getting is:

{
  “errors”: [{
    “category”: “INVALID_REQUEST_ERROR”,
    “code”: “NOT_FOUND”,
    “detail”: “Resource not found.”
  }]
}

I have verified that the $subscriptionID variable is being passed in correctly, and the $curl_url value is correctly being set. I’ve also verified that the $subscriptionID is valid using their API Explorer, where I get valid data returned.

I’m using the API to make far more complicated calls, using the exact same code format, so I’m at a complete loss as to why (what should be) the simplest call that I have to make is failing…

Thank you in advance for your help!

1

There are 1 answers

0
Andy Mussaw On

Well, I figured it out...

CURLOPT_POST needs to be set to FALSE when making this API call... All of the others work just fine as POST calls...but apparently this one has to be a GET call....