Update Sub-Account
curl --request POST \
--url https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update \
--header 'Content-Type: application/json' \
--header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
--header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
--header 'X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>' \
--header 'X-GatePay-Signature: <x-gatepay-signature>' \
--header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
--data '{}'import requests
url = "https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update"
payload = {}
headers = {
"X-GatePay-Certificate-ClientId": "<x-gatepay-certificate-clientid>",
"X-GatePay-Timestamp": "<x-gatepay-timestamp>",
"X-GatePay-Nonce": "<x-gatepay-nonce>",
"X-GatePay-Signature": "<x-gatepay-signature>",
"X-GatePay-On-Behalf-Of": "<x-gatepay-on-behalf-of>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-GatePay-Certificate-ClientId': '<x-gatepay-certificate-clientid>',
'X-GatePay-Timestamp': '<x-gatepay-timestamp>',
'X-GatePay-Nonce': '<x-gatepay-nonce>',
'X-GatePay-Signature': '<x-gatepay-signature>',
'X-GatePay-On-Behalf-Of': '<x-gatepay-on-behalf-of>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update', 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://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>",
"X-GatePay-Nonce: <x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>",
"X-GatePay-Signature: <x-gatepay-signature>",
"X-GatePay-Timestamp: <x-gatepay-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update")
.header("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
.header("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
.header("X-GatePay-Nonce", "<x-gatepay-nonce>")
.header("X-GatePay-Signature", "<x-gatepay-signature>")
.header("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
.header("Content-Type", "application/json")
.body("{}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
req.Header.Add("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
req.Header.Add("X-GatePay-Nonce", "<x-gatepay-nonce>")
req.Header.Add("X-GatePay-Signature", "<x-gatepay-signature>")
req.Header.Add("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
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))
}require 'uri'
require 'net/http'
url = URI("https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-GatePay-Certificate-ClientId"] = '<x-gatepay-certificate-clientid>'
request["X-GatePay-Timestamp"] = '<x-gatepay-timestamp>'
request["X-GatePay-Nonce"] = '<x-gatepay-nonce>'
request["X-GatePay-Signature"] = '<x-gatepay-signature>'
request["X-GatePay-On-Behalf-Of"] = '<x-gatepay-on-behalf-of>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"code": "000000",
"errorMessage": "",
"data": {
"status": "ACTIVE",
"updated": "1764141615061",
"display_name": "new name",
"customer_id": "1234",
"account_id": "2124538349",
"account_holder": {
"entity_country": "AF",
"entity_type": "BUSINESS",
"entity_name": null,
"entity_id_type": "BUSINESS_LICENSE",
"entity_id_number": "abcd1234",
"entity_id_expiry": {
"valid_from": 1763538010509,
"valid_to": null
},
"dob": null,
"business_registration": null,
"address": null,
"merchant_category": "GENERAL_RETAIL",
"website": null,
"user_agreement": true
},
"metadata": null
}
}Accounts
Update Sub-account
Update sub-account details and account holder information.
POST
/
merchant
/
open
/
institution
/
v1
/
accounts
/
update
Update Sub-Account
curl --request POST \
--url https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update \
--header 'Content-Type: application/json' \
--header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
--header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
--header 'X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>' \
--header 'X-GatePay-Signature: <x-gatepay-signature>' \
--header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
--data '{}'import requests
url = "https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update"
payload = {}
headers = {
"X-GatePay-Certificate-ClientId": "<x-gatepay-certificate-clientid>",
"X-GatePay-Timestamp": "<x-gatepay-timestamp>",
"X-GatePay-Nonce": "<x-gatepay-nonce>",
"X-GatePay-Signature": "<x-gatepay-signature>",
"X-GatePay-On-Behalf-Of": "<x-gatepay-on-behalf-of>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-GatePay-Certificate-ClientId': '<x-gatepay-certificate-clientid>',
'X-GatePay-Timestamp': '<x-gatepay-timestamp>',
'X-GatePay-Nonce': '<x-gatepay-nonce>',
'X-GatePay-Signature': '<x-gatepay-signature>',
'X-GatePay-On-Behalf-Of': '<x-gatepay-on-behalf-of>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update', 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://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>",
"X-GatePay-Nonce: <x-gatepay-nonce>",
"X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>",
"X-GatePay-Signature: <x-gatepay-signature>",
"X-GatePay-Timestamp: <x-gatepay-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update")
.header("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
.header("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
.header("X-GatePay-Nonce", "<x-gatepay-nonce>")
.header("X-GatePay-Signature", "<x-gatepay-signature>")
.header("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
.header("Content-Type", "application/json")
.body("{}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-GatePay-Certificate-ClientId", "<x-gatepay-certificate-clientid>")
req.Header.Add("X-GatePay-Timestamp", "<x-gatepay-timestamp>")
req.Header.Add("X-GatePay-Nonce", "<x-gatepay-nonce>")
req.Header.Add("X-GatePay-Signature", "<x-gatepay-signature>")
req.Header.Add("X-GatePay-On-Behalf-Of", "<x-gatepay-on-behalf-of>")
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))
}require 'uri'
require 'net/http'
url = URI("https://openplatform.gateapi.io/merchant/open/institution/v1/accounts/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-GatePay-Certificate-ClientId"] = '<x-gatepay-certificate-clientid>'
request["X-GatePay-Timestamp"] = '<x-gatepay-timestamp>'
request["X-GatePay-Nonce"] = '<x-gatepay-nonce>'
request["X-GatePay-Signature"] = '<x-gatepay-signature>'
request["X-GatePay-On-Behalf-Of"] = '<x-gatepay-on-behalf-of>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"code": "000000",
"errorMessage": "",
"data": {
"status": "ACTIVE",
"updated": "1764141615061",
"display_name": "new name",
"customer_id": "1234",
"account_id": "2124538349",
"account_holder": {
"entity_country": "AF",
"entity_type": "BUSINESS",
"entity_name": null,
"entity_id_type": "BUSINESS_LICENSE",
"entity_id_number": "abcd1234",
"entity_id_expiry": {
"valid_from": 1763538010509,
"valid_to": null
},
"dob": null,
"business_registration": null,
"address": null,
"merchant_category": "GENERAL_RETAIL",
"website": null,
"user_agreement": true
},
"metadata": null
}
}Overview
This page documents thePOST /merchant/open/institution/v1/accounts/update endpoint. The full schema, parameters, and examples are rendered from the linked OpenAPI definition above.
Notes
- Authentication uses the standard GatePay signed headers.
- This dedicated institution endpoint requires
X-GatePay-On-Behalf-Of. - For shared signing rules, see /api-reference/version/100/en/common/securityAndSignature.
Headers
The clientId assigned when the merchant registers an application in the Gate merchant console.
Example:
"4186d0c6-6a35-55a9-8dc6-5312769dbff8"
Millisecond timestamp; the difference from server time must not exceed 30 seconds.
Example:
"1672905655498"
Random string. Must comply with HTTP header rules; recommended length is within 32 characters, composed of digits and letters.
Example:
"9578"
Request signature. GatePay uses this signature to verify whether the request is valid.
Required delegated subject header. Provide the initiating account ID for this transaction. It can be an institution account ID or a sub-account ID.
Body
application/json
⌘I

