Update backend
curl --request PUT \
--url https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": {
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
},
"credentials": {
"password": "YOUR_PROVIDER_PASSWORD",
"username": "acme-api-user"
},
"enabled": true,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": [
"f6e5d4c3b2a1"
],
"extra_header_claims": [
"iat"
],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"name": "Acme Risk"
}
'import requests
url = "https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}"
payload = {
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": { "assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": { "body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
} },
"response_mapping": { "200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
} }
} },
"credentials": {
"password": "YOUR_PROVIDER_PASSWORD",
"username": "acme-api-user"
},
"enabled": True,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": ["f6e5d4c3b2a1"],
"extra_header_claims": ["iat"],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"name": "Acme Risk"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
auth_pipeline: {source_type: 'inline', credential_type: 'bearer', token_prefix: 'token'},
connections: {
'assess.pan': {
endpoint: {
method: 'POST',
path: '/v1/decisions',
content_type: 'application/json',
timeout_ms: 5000
},
request_mapping: {
body: JSON.stringify({
cardNumber: '{{ $.request.body.credential.pan.value | required }}',
amount: '{{ $.request.body.transaction.amount | required }}',
currency: '{{ $.request.body.transaction.currency | required }}'
})
},
response_mapping: {
'200': {
return: '200',
body: JSON.stringify({
type: 'enum',
value: '{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}',
backend_reference: '{{ $.response.body.id | omit_if_null }}'
})
}
}
}
},
credentials: {password: 'YOUR_PROVIDER_PASSWORD', username: 'acme-api-user'},
enabled: true,
encryption: {
algorithm: 'RSA-OAEP-256',
encryption_method: 'A256GCM',
mode: 'whole_body',
request_key_kid: 'a1b2c3d4e5f6',
response_key_kids: ['f6e5d4c3b2a1'],
extra_header_claims: ['iat'],
request_field: 'encryptedRequest',
response_field: 'encryptedResponse'
},
host: 'api.acme.example',
name: 'Acme Risk'
})
};
fetch('https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}', 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://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'auth_pipeline' => [
'source_type' => 'inline',
'credential_type' => 'bearer',
'token_prefix' => 'token'
],
'connections' => [
'assess.pan' => [
'endpoint' => [
'method' => 'POST',
'path' => '/v1/decisions',
'content_type' => 'application/json',
'timeout_ms' => 5000
],
'request_mapping' => [
'body' => [
'cardNumber' => '{{ $.request.body.credential.pan.value | required }}',
'amount' => '{{ $.request.body.transaction.amount | required }}',
'currency' => '{{ $.request.body.transaction.currency | required }}'
]
],
'response_mapping' => [
'200' => [
'return' => '200',
'body' => [
'type' => 'enum',
'value' => '{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}',
'backend_reference' => '{{ $.response.body.id | omit_if_null }}'
]
]
]
]
],
'credentials' => [
'password' => 'YOUR_PROVIDER_PASSWORD',
'username' => 'acme-api-user'
],
'enabled' => true,
'encryption' => [
'algorithm' => 'RSA-OAEP-256',
'encryption_method' => 'A256GCM',
'mode' => 'whole_body',
'request_key_kid' => 'a1b2c3d4e5f6',
'response_key_kids' => [
'f6e5d4c3b2a1'
],
'extra_header_claims' => [
'iat'
],
'request_field' => 'encryptedRequest',
'response_field' => 'encryptedResponse'
],
'host' => 'api.acme.example',
'name' => 'Acme Risk'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}"
payload := strings.NewReader("{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}"
response = http.request(request)
puts response.read_body{
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": {
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
},
"enabled": true,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": [
"f6e5d4c3b2a1"
],
"extra_header_claims": [
"iat"
],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"id": "acme-risk",
"inserted_at": "2026-05-12T09:30:00Z",
"name": "Acme Risk",
"protocol": "https://developer.hellgate.io/protocols/specter/v1"
}{
"classifier": "UNAUTHORIZED",
"code": 401,
"message": "No valid means of authentication was provided"
}{
"classifier": "FORBIDDEN",
"code": 403,
"message": "Not allowed to access this resource or feature"
}{
"classifier": "NOT_FOUND",
"code": 404,
"message": "The requested resource does not exist"
}{
"classifier": "VALIDATION_ERROR",
"code": 422,
"validation_errors": [
{
"message": "must be a positive integer",
"path": "limit"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Backend update
How outbound requests to the provider are authenticated. An empty object (or omitting the pipeline) adds no authentication. A non-empty pipeline requires source_type and credential_type.
Show child attributes
Show child attributes
{
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
}
Show child attributes
Show child attributes
{
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
}
Credential material for the auth pipeline. Shape is determined by auth_pipeline.source_type and auth_pipeline.credential_type.
- InlineBasicCredentials
- InlineBearerCredentials
- InlineHmacCredentials
- VaultCredentials
Show child attributes
Show child attributes
true
Optional per-backend message-level encryption (MLE). When set, the mapped request body is JWE-encrypted before dispatch and the response body is decrypted before response mapping. Key material is managed via /api/admin/keys.
Show child attributes
Show child attributes
"api.acme.example"
"Acme Risk"
Response
Backend updated
How outbound requests to the provider are authenticated. An empty object (or omitting the pipeline) adds no authentication. A non-empty pipeline requires source_type and credential_type.
Show child attributes
Show child attributes
{
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
}
Map of action keys to connection configurations
Show child attributes
Show child attributes
{
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
}
true
Optional per-backend message-level encryption (MLE). When set, the mapped request body is JWE-encrypted before dispatch and the response body is decrypted before response mapping. Key material is managed via /api/admin/keys.
Show child attributes
Show child attributes
"api.acme.example"
"acme-risk"
"2026-05-12T09:30:00Z"
"Acme Risk"
"https://developer.hellgate.io/protocols/specter/v1"
curl --request PUT \
--url https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": {
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
},
"credentials": {
"password": "YOUR_PROVIDER_PASSWORD",
"username": "acme-api-user"
},
"enabled": true,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": [
"f6e5d4c3b2a1"
],
"extra_header_claims": [
"iat"
],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"name": "Acme Risk"
}
'import requests
url = "https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}"
payload = {
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": { "assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": { "body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
} },
"response_mapping": { "200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
} }
} },
"credentials": {
"password": "YOUR_PROVIDER_PASSWORD",
"username": "acme-api-user"
},
"enabled": True,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": ["f6e5d4c3b2a1"],
"extra_header_claims": ["iat"],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"name": "Acme Risk"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
auth_pipeline: {source_type: 'inline', credential_type: 'bearer', token_prefix: 'token'},
connections: {
'assess.pan': {
endpoint: {
method: 'POST',
path: '/v1/decisions',
content_type: 'application/json',
timeout_ms: 5000
},
request_mapping: {
body: JSON.stringify({
cardNumber: '{{ $.request.body.credential.pan.value | required }}',
amount: '{{ $.request.body.transaction.amount | required }}',
currency: '{{ $.request.body.transaction.currency | required }}'
})
},
response_mapping: {
'200': {
return: '200',
body: JSON.stringify({
type: 'enum',
value: '{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}',
backend_reference: '{{ $.response.body.id | omit_if_null }}'
})
}
}
}
},
credentials: {password: 'YOUR_PROVIDER_PASSWORD', username: 'acme-api-user'},
enabled: true,
encryption: {
algorithm: 'RSA-OAEP-256',
encryption_method: 'A256GCM',
mode: 'whole_body',
request_key_kid: 'a1b2c3d4e5f6',
response_key_kids: ['f6e5d4c3b2a1'],
extra_header_claims: ['iat'],
request_field: 'encryptedRequest',
response_field: 'encryptedResponse'
},
host: 'api.acme.example',
name: 'Acme Risk'
})
};
fetch('https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}', 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://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'auth_pipeline' => [
'source_type' => 'inline',
'credential_type' => 'bearer',
'token_prefix' => 'token'
],
'connections' => [
'assess.pan' => [
'endpoint' => [
'method' => 'POST',
'path' => '/v1/decisions',
'content_type' => 'application/json',
'timeout_ms' => 5000
],
'request_mapping' => [
'body' => [
'cardNumber' => '{{ $.request.body.credential.pan.value | required }}',
'amount' => '{{ $.request.body.transaction.amount | required }}',
'currency' => '{{ $.request.body.transaction.currency | required }}'
]
],
'response_mapping' => [
'200' => [
'return' => '200',
'body' => [
'type' => 'enum',
'value' => '{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}',
'backend_reference' => '{{ $.response.body.id | omit_if_null }}'
]
]
]
]
],
'credentials' => [
'password' => 'YOUR_PROVIDER_PASSWORD',
'username' => 'acme-api-user'
],
'enabled' => true,
'encryption' => [
'algorithm' => 'RSA-OAEP-256',
'encryption_method' => 'A256GCM',
'mode' => 'whole_body',
'request_key_kid' => 'a1b2c3d4e5f6',
'response_key_kids' => [
'f6e5d4c3b2a1'
],
'extra_header_claims' => [
'iat'
],
'request_field' => 'encryptedRequest',
'response_field' => 'encryptedResponse'
],
'host' => 'api.acme.example',
'name' => 'Acme Risk'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}"
payload := strings.NewReader("{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{instance}.{env}.on-hellgate.cloud/api/admin/backends/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"auth_pipeline\": {\n \"source_type\": \"inline\",\n \"credential_type\": \"bearer\",\n \"token_prefix\": \"token\"\n },\n \"connections\": {\n \"assess.pan\": {\n \"endpoint\": {\n \"method\": \"POST\",\n \"path\": \"/v1/decisions\",\n \"content_type\": \"application/json\",\n \"timeout_ms\": 5000\n },\n \"request_mapping\": {\n \"body\": {\n \"cardNumber\": \"{{ $.request.body.credential.pan.value | required }}\",\n \"amount\": \"{{ $.request.body.transaction.amount | required }}\",\n \"currency\": \"{{ $.request.body.transaction.currency | required }}\"\n }\n },\n \"response_mapping\": {\n \"200\": {\n \"return\": \"200\",\n \"body\": {\n \"type\": \"enum\",\n \"value\": \"{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}\",\n \"backend_reference\": \"{{ $.response.body.id | omit_if_null }}\"\n }\n }\n }\n }\n },\n \"credentials\": {\n \"password\": \"YOUR_PROVIDER_PASSWORD\",\n \"username\": \"acme-api-user\"\n },\n \"enabled\": true,\n \"encryption\": {\n \"algorithm\": \"RSA-OAEP-256\",\n \"encryption_method\": \"A256GCM\",\n \"mode\": \"whole_body\",\n \"request_key_kid\": \"a1b2c3d4e5f6\",\n \"response_key_kids\": [\n \"f6e5d4c3b2a1\"\n ],\n \"extra_header_claims\": [\n \"iat\"\n ],\n \"request_field\": \"encryptedRequest\",\n \"response_field\": \"encryptedResponse\"\n },\n \"host\": \"api.acme.example\",\n \"name\": \"Acme Risk\"\n}"
response = http.request(request)
puts response.read_body{
"auth_pipeline": {
"source_type": "inline",
"credential_type": "bearer",
"token_prefix": "token"
},
"connections": {
"assess.pan": {
"endpoint": {
"method": "POST",
"path": "/v1/decisions",
"content_type": "application/json",
"timeout_ms": 5000
},
"request_mapping": {
"body": {
"cardNumber": "{{ $.request.body.credential.pan.value | required }}",
"amount": "{{ $.request.body.transaction.amount | required }}",
"currency": "{{ $.request.body.transaction.currency | required }}"
}
},
"response_mapping": {
"200": {
"return": "200",
"body": {
"type": "enum",
"value": "{{ $.response.body.status | map({ ACCEPTED: ALLOW, REJECTED: BLOCK, PENDING: REVIEW }) | required }}",
"backend_reference": "{{ $.response.body.id | omit_if_null }}"
}
}
}
}
},
"enabled": true,
"encryption": {
"algorithm": "RSA-OAEP-256",
"encryption_method": "A256GCM",
"mode": "whole_body",
"request_key_kid": "a1b2c3d4e5f6",
"response_key_kids": [
"f6e5d4c3b2a1"
],
"extra_header_claims": [
"iat"
],
"request_field": "encryptedRequest",
"response_field": "encryptedResponse"
},
"host": "api.acme.example",
"id": "acme-risk",
"inserted_at": "2026-05-12T09:30:00Z",
"name": "Acme Risk",
"protocol": "https://developer.hellgate.io/protocols/specter/v1"
}{
"classifier": "UNAUTHORIZED",
"code": 401,
"message": "No valid means of authentication was provided"
}{
"classifier": "FORBIDDEN",
"code": 403,
"message": "Not allowed to access this resource or feature"
}{
"classifier": "NOT_FOUND",
"code": 404,
"message": "The requested resource does not exist"
}{
"classifier": "VALIDATION_ERROR",
"code": 422,
"validation_errors": [
{
"message": "must be a positive integer",
"path": "limit"
}
]
}