curl --request GET \
--url https://api.example.com/subscription-intents/{id}/status \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/subscription-intents/{id}/status"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/subscription-intents/{id}/status', 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.example.com/subscription-intents/{id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$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://api.example.com/subscription-intents/{id}/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/subscription-intents/{id}/status")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/subscription-intents/{id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"paymentId": "<string>",
"status": "successful",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"failureCause": {
"code": "internal_error",
"message": "<string>",
"params": [
"<string>"
]
},
"subscriptionId": 123
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Retrieve a card-on-file enrollment status
Find out how a card-on-file enrollment ended: abandoned by the payer, refused, or failed. Enrollments created before this endpoint was released return 404.
curl --request GET \
--url https://api.example.com/subscription-intents/{id}/status \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/subscription-intents/{id}/status"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/subscription-intents/{id}/status', 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.example.com/subscription-intents/{id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$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://api.example.com/subscription-intents/{id}/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/subscription-intents/{id}/status")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/subscription-intents/{id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"paymentId": "<string>",
"status": "successful",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"failureCause": {
"code": "internal_error",
"message": "<string>",
"params": [
"<string>"
]
},
"subscriptionId": 123
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Path Parameters
Id of the enrollment payment returned by POST /subscription-intents.
Response
Id of the underlying enrollment payment, as returned by POST /subscription-intents.
"pending" while the enrollment link has been issued but nothing came back yet, "action_required" once the payer has been redirected to the card issuer's page, "successful" once the subscription has actually been recorded, and "failed" when the enrollment was refused or could not be recorded. A payer who never completes the page stays "action_required" — it is never reported as "failed".
successful, failed, pending, action_required When the enrollment link was issued.
When the enrollment last changed state.
Present when status is "failed". Same shape and same codes as a regular payment's failureCause.
Show child attributes
Show child attributes
Present once status is "successful": the subscription id to use with /subscriptions endpoints (charge, cancel, suspend, transactions).
