Get Credit Status
curl --request POST \
--url https://api.example.com/client-interfaces/vna/get-credit-status \
--header 'Content-Type: application/json' \
--header 'User-Agent: <user-agent>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>' \
--data '
{
"TransactionId": "<string>",
"AccountIdentifier": "<string>",
"CreditTrackingNumber": "<string>"
}
'import requests
url = "https://api.example.com/client-interfaces/vna/get-credit-status"
payload = {
"TransactionId": "<string>",
"AccountIdentifier": "<string>",
"CreditTrackingNumber": "<string>"
}
headers = {
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>",
"User-Agent": "<user-agent>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>',
'User-Agent': '<user-agent>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
TransactionId: '<string>',
AccountIdentifier: '<string>',
CreditTrackingNumber: '<string>'
})
};
fetch('https://api.example.com/client-interfaces/vna/get-credit-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/client-interfaces/vna/get-credit-status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'TransactionId' => '<string>',
'AccountIdentifier' => '<string>',
'CreditTrackingNumber' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"User-Agent: <user-agent>",
"X-Signature: <x-signature>",
"X-Timestamp: <x-timestamp>"
],
]);
$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.example.com/client-interfaces/vna/get-credit-status"
payload := strings.NewReader("{\n \"TransactionId\": \"<string>\",\n \"AccountIdentifier\": \"<string>\",\n \"CreditTrackingNumber\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Timestamp", "<x-timestamp>")
req.Header.Add("X-Signature", "<x-signature>")
req.Header.Add("User-Agent", "<user-agent>")
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.post("https://api.example.com/client-interfaces/vna/get-credit-status")
.header("X-Timestamp", "<x-timestamp>")
.header("X-Signature", "<x-signature>")
.header("User-Agent", "<user-agent>")
.header("Content-Type", "application/json")
.body("{\n \"TransactionId\": \"<string>\",\n \"AccountIdentifier\": \"<string>\",\n \"CreditTrackingNumber\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/client-interfaces/vna/get-credit-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Timestamp"] = '<x-timestamp>'
request["X-Signature"] = '<x-signature>'
request["User-Agent"] = '<user-agent>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"TransactionId\": \"<string>\",\n \"AccountIdentifier\": \"<string>\",\n \"CreditTrackingNumber\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"CreditStatus": "InProgress",
"ResponseDescription": "<string>"
}CreditResponseType configuration) must be agreed during the planning phase of the integration, before development starts.POST request to:
[Base-URL]/GetCreditStatus.
[Base-URL]; the resource segment /GetCreditStatus, the POST method and the JSON body are fixed by this contract and are case-sensitive.Every request travels signed. It carries the X-Timestamp and X-Signature headers with the HMAC-SHA256 signature of the raw body. The Partner must validate the signature before processing the request.CreditStatusQueryRepetitionsInMinutes minutes.
Expected behavior:
Asynchronous query of the status of a previous funds credit order. With the tracking number (CreditTrackingNumber), the partner will report if the credit is in progress (InProgress), approved (Approved), or if it ended in an error (Failed).
TransactionId — it is a correlation identifier for that individual query, not an idempotency key like on the other five endpoints. A Partner that deduplicates by TransactionId here would keep replaying the first InProgress answer, the transition to Approved or Failed would never be observed, and the operation would stay open indefinitely.CreditStatus is mandatory and must be one of InProgress, Approved or Failed. If it is omitted or carries any other value, the Platform rejects the response and the operation stays open.Headers
UTC timestamp in ISO-8601 format with milliseconds (yyyy-MM-ddTHH:mm:ss.fffZ), generated at send time. Its exact string value is part of the signed message, so it cannot be altered, and it lets the Partner reject stale requests (replay protection). See Data Integrity.
HMAC-SHA256 signature of the request, Base64-encoded (standard alphabet). It is computed over bytes(X-Timestamp) + bytes(".") + rawBodyBytes using the shared secret agreed for the integration. The Partner MUST validate it — with a constant-time comparison and over the raw body, before any deserialization — and reject the request if it does not match. See Data Integrity.
Fixed value VNA. Sent on every request. Some Partners' WAFs reject requests without a User-Agent, so the Platform always sets it explicitly; if the Partner filters by this header, this is the value to allow.
Body
Unique identifier of this particular query. Unlike the other endpoints, a new value is generated on every poll, because this is a read of current state and not an operation to be deduplicated. The Partner must not use it as a cache key: every call must return the status at that moment.
An Id representing the External Account Object for the Partner.
The TrackingIdentifier the Partner returned in the Credit Funds response — that is, the identifier of the credit movement being referred to.
Response
Ok
The status of the credit order.
InProgress— the credit is still being processed by the PartnerApproved— the credit was applied successfullyFailed— the credit ended in an error; seeResponseDescriptionfor details
This field is mandatory. If it is omitted, or carries a value outside the three above, the Platform rejects the response and keeps the operation open.
InProgress, Approved, Failed Additional details about the status, mainly used when CreditStatus is Failed.