curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/rfis/answer \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"answer": [
{
"key": "sandbox_regression_note",
"type": "TEXT",
"text": "Sandbox contract test response"
}
]
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/rfis/answer"
payload = {
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"answer": [
{
"key": "sandbox_regression_note",
"type": "TEXT",
"text": "Sandbox contract test response"
}
]
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-auth-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
rfi_id: 'ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9',
answer: [
{
key: 'sandbox_regression_note',
type: 'TEXT',
text: 'Sandbox contract test response'
}
]
})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/rfis/answer', 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-sandbox.uqpaytech.com/api/v1/rfis/answer",
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([
'rfi_id' => 'ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9',
'answer' => [
[
'key' => 'sandbox_regression_note',
'type' => 'TEXT',
'text' => 'Sandbox contract test response'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>",
"x-idempotency-key: <x-idempotency-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/rfis/answer"
payload := strings.NewReader("{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-auth-token", "<api-key>")
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-sandbox.uqpaytech.com/api/v1/rfis/answer")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/rfis/answer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"account_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"rfi_type": "onboarding",
"ref_reference_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"status": "SUBMITTED_PENDING",
"request": [
{
"question": {
"key": "sandbox_regression_note",
"comment": "Sandbox regression note",
"type": "TEXT"
},
"answer": {
"key": "sandbox_regression_note",
"text": "Sandbox contract test response",
"type": "TEXT"
}
}
],
"create_time": "2026-09-11T11:39:55.694+08:00",
"update_time": "2026-09-11T13:42:17.031+08:00"
}Answer RFI
Submit an answer to an RFI. The answer.key for each item must match the corresponding question.key returned by Retrieve RFI.
For attachment-type questions, upload each document via Upload A File first to obtain a file_id, then include the returned IDs in the attachments array.
curl --request POST \
--url https://api-sandbox.uqpaytech.com/api/v1/rfis/answer \
--header 'Content-Type: application/json' \
--header 'x-auth-token: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"answer": [
{
"key": "sandbox_regression_note",
"type": "TEXT",
"text": "Sandbox contract test response"
}
]
}
'import requests
url = "https://api-sandbox.uqpaytech.com/api/v1/rfis/answer"
payload = {
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"answer": [
{
"key": "sandbox_regression_note",
"type": "TEXT",
"text": "Sandbox contract test response"
}
]
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-auth-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-auth-token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
rfi_id: 'ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9',
answer: [
{
key: 'sandbox_regression_note',
type: 'TEXT',
text: 'Sandbox contract test response'
}
]
})
};
fetch('https://api-sandbox.uqpaytech.com/api/v1/rfis/answer', 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-sandbox.uqpaytech.com/api/v1/rfis/answer",
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([
'rfi_id' => 'ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9',
'answer' => [
[
'key' => 'sandbox_regression_note',
'type' => 'TEXT',
'text' => 'Sandbox contract test response'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-auth-token: <api-key>",
"x-idempotency-key: <x-idempotency-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.uqpaytech.com/api/v1/rfis/answer"
payload := strings.NewReader("{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-auth-token", "<api-key>")
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-sandbox.uqpaytech.com/api/v1/rfis/answer")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("x-auth-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v1/rfis/answer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["x-auth-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rfi_id\": \"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9\",\n \"answer\": [\n {\n \"key\": \"sandbox_regression_note\",\n \"type\": \"TEXT\",\n \"text\": \"Sandbox contract test response\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"account_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"rfi_id": "ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9",
"rfi_type": "onboarding",
"ref_reference_id": "b1b89684-c2c4-4d54-b8a8-3572727fd120",
"status": "SUBMITTED_PENDING",
"request": [
{
"question": {
"key": "sandbox_regression_note",
"comment": "Sandbox regression note",
"type": "TEXT"
},
"answer": {
"key": "sandbox_regression_note",
"text": "Sandbox contract test response",
"type": "TEXT"
}
}
],
"create_time": "2026-09-11T11:39:55.694+08:00",
"update_time": "2026-09-11T13:42:17.031+08:00"
}Authorizations
The API token for login provided by UQPAY.
Headers
The value set to the connected account's ID. More information at List Connected Accounts
A unique identifier (UUID) used to maintain operation idempotency, ensuring that repeated executions of the same operation do not result in unintended effects or duplication. It helps preserve data consistency in the face of network errors, retries, or failures.
Body
The complete RFI identifier returned by the RFI list or webhook. Use it unchanged, including any prefix.
"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9"
The list of answers, one per question. Each answer.key must match the corresponding question.key returned by Retrieve RFI.
Show child attributes
Show child attributes
[
{
"key": "sandbox_regression_note",
"type": "TEXT",
"text": "Sandbox contract test response"
}
]
Response
OK - Successfully answered the RFI.
A unique identifier of the account.
"f5bb6498-552e-40a5-b14b-616aa04ac1c1"
The complete RFI identifier returned by the RFI list or webhook. Use it unchanged, including any prefix.
"ACTREQ-895487f0-3220-4aae-81ad-a20dba6fa2d9"
The current status of the RFI.
ACTION_REQUIRED: An answer is required from you.SUBMITTED_PENDING: An answer has been submitted and is under review.APPROVED: The submitted answer has been approved.REJECTED: The submitted answer has been rejected; further action may be required.
SUBMITTED_PENDING, REJECTED, APPROVED, ACTION_REQUIRED "SUBMITTED_PENDING"
Creation time of the RFI.
"2024-11-08T17:17:32+08:00"
Last updated time of the RFI.
"2024-11-09T17:17:32+08:00"
The list of questions raised in this RFI and any answers already submitted.
Show child attributes
Show child attributes

