Update Configuration Template
1 min
PUT
https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}
Path Parameters
- templateIdstringrequiredDescription
Header Parameters
- x-upstart-tenantstringrequiredDescription
Body Parameters
- bodyUpdateCfgTemplaterequiredExample
{ "name": "Cybersource Payment Gateway Configuration v2", "propertiesDec": { "type": "object", "properties": { "merchantId": { "type": "string", "description": "Merchant identifier" }, "apiKey": { "type": "string", "format": "password", "minLength": 32 }, "apiSecret": { "type": "string", "format": "password", "description": "NEW: API secret for enhanced security" }, "apiUrl": { "type": "string", "format": "uri", "default": "https://api.cybersource.com" }, "currency": { "type": "string", "enum": [ "USD", "EUR", "GBP", "CAD" ], "default": "USD" } }, "required": [ "merchantId", "apiKey" ] }, "enabled": true, "accessControl": { "read": true, "modify": false } }Description- namestringrequiredExampleDescription
- propertiesDecobjectrequiredExample
{ "type": "object", "properties": { "merchantId": { "type": "string", "description": "Merchant identifier from Cybersource", "pattern": "^[a-zA-Z0-9_-]+$" }, "apiKey": { "type": "string", "description": "API key for authentication", "format": "password", "minLength": 32 }, "apiSecret": { "type": "string", "description": "NEW FIELD: API secret for enhanced security", "format": "password", "minLength": 32 }, "apiUrl": { "type": "string", "format": "uri", "default": "https://api.cybersource.com", "description": "Cybersource API base URL" }, "currency": { "type": "string", "enum": [ "USD", "EUR", "GBP", "CAD" ], "default": "USD", "description": "Default currency" }, "testMode": { "type": "boolean", "default": false }, "webhookUrl": { "type": "string", "format": "uri", "description": "NEW FIELD: Optional webhook for payment notifications" } }, "required": [ "merchantId", "apiKey" ] }Description - enabledbooleanrequiredExampleDescription
- accessControlCfgAccessControlDescription
- readbooleanrequiredExampleDescription
- modifybooleanrequiredDescription
Responses
200
400
- ValidationErrorResponseExample
{ "name": "ValidationError", "code": "SCHEMA_VALIDATION_FAILED", "detail": "Configuration data validation failed: data.apiKey is required but was not provided. Expected string with minimum length 32." }Description- namestringrequiredExampleDescription
- codestringrequiredExampleDescription
- detailstringExampleDescription
401
- ErrorResponseExample
{ "name": "AuthorizationError", "code": "INSUFFICIENT_PERMISSIONS", "detail": "User does not have the required tenant.cfg.modify permission to perform this operation.", "reason": "Your access token does not include the necessary permissions. Contact your administrator to request access." }Description- namestringrequiredExampleDescription
- codestringrequiredExampleDescription
- detailstringrequiredExampleDescription
- reasonstringExampleDescription
404
- ErrorResponseExample
{ "name": "ResourceNotFoundError", "code": "TEMPLATE_NOT_FOUND", "detail": "The configuration template with ID \"payment-stripe\" was not found in the system.", "reason": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates." }Description- namestringrequiredExampleDescription
- codestringrequiredExampleDescription
- detailstringrequiredExampleDescription
- reasonstringExampleDescription
422
- ErrorResponseExample
{ "name": "UnprocessableEntityError", "code": "TEMPLATE_IN_USE", "detail": "Cannot delete template \"payment-cybersource\" because 5 configuration records are still using it.", "reason": "Delete or migrate all records using this template before deleting the template itself." }Description- namestringrequiredExampleDescription
- codestringrequiredExampleDescription
- detailstringrequiredExampleDescription
- reasonstringExampleDescription
500
- ErrorResponseExample
{ "name": "InternalServerError", "code": "UNEXPECTED_ERROR", "detail": "An unexpected error occurred while processing your request.", "reason": "Our team has been notified. Please try again, and if the problem persists, contact support with trace ID: 550e8400-e29b-41d4-a716-446655440000" }Description- namestringrequiredExampleDescription
- codestringrequiredExampleDescription
- detailstringrequiredExampleDescription
- reasonstringExampleDescription
curl
curl --request PUT \
--url https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId} \
--header 'accept: text/plain' \
--header 'content-type: application/json' \
--header 'x-upstart-tenant: string' \
--data '{
"name": "Cybersource Payment Gateway Configuration v2",
"propertiesDec": "{\"type\":\"object\",\"properties\":{\"merchantId\":{\"type\":\"string\",\"description\":\"Merchant identifier from Cybersource\",\"pattern\":\"^[a-zA-Z0-9_-]+$\"},\"apiKey\":{\"type\":\"string\",\"description\":\"API key for authentication\",\"format\":\"password\",\"minLength\":32},\"apiSecret\":{\"type\":\"string\",\"description\":\"NEW FIELD: API secret for enhanced security\",\"format\":\"password\",\"minLength\":32},\"apiUrl\":{\"type\":\"string\",\"format\":\"uri\",\"default\":\"https://api.cybersource.com\",\"description\":\"Cybersource API base URL\"},\"currency\":{\"type\":\"string\",\"enum\":[\"USD\",\"EUR\",\"GBP\",\"CAD\"],\"default\":\"USD\",\"description\":\"Default currency\"},\"testMode\":{\"type\":\"boolean\",\"default\":false},\"webhookUrl\":{\"type\":\"string\",\"format\":\"uri\",\"description\":\"NEW FIELD: Optional webhook for payment notifications\"}},\"required\":[\"merchantId\",\"apiKey\"]}",
"enabled": true,
"accessControl": {
"read": true,
"modify": false
}
}'javascript
var myHeaders = new Headers();
myHeaders.append("accept", "text/plain");
myHeaders.append("content-type", "application/json");
myHeaders.append("x-upstart-tenant", "string");
var raw = JSON.stringify({
"name": "Cybersource Payment Gateway Configuration v2",
"propertiesDec": "{\"type\":\"object\",\"properties\":{\"merchantId\":{\"type\":\"string\",\"description\":\"Merchant identifier from Cybersource\",\"pattern\":\"^[a-zA-Z0-9_-]+$\"},\"apiKey\":{\"type\":\"string\",\"description\":\"API key for authentication\",\"format\":\"password\",\"minLength\":32},\"apiSecret\":{\"type\":\"string\",\"description\":\"NEW FIELD: API secret for enhanced security\",\"format\":\"password\",\"minLength\":32},\"apiUrl\":{\"type\":\"string\",\"format\":\"uri\",\"default\":\"https://api.cybersource.com\",\"description\":\"Cybersource API base URL\"},\"currency\":{\"type\":\"string\",\"enum\":[\"USD\",\"EUR\",\"GBP\",\"CAD\"],\"default\":\"USD\",\"description\":\"Default currency\"},\"testMode\":{\"type\":\"boolean\",\"default\":false},\"webhookUrl\":{\"type\":\"string\",\"format\":\"uri\",\"description\":\"NEW FIELD: Optional webhook for payment notifications\"}},\"required\":[\"merchantId\",\"apiKey\"]}",
"enabled": true,
"accessControl": {
"read": true,
"modify": false
}
});
var requestOptions = {
method: 'PUT',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));ruby
require "uri"
require "json"
require "net/http"
url = URI("https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Put.new(url)
request["accept"] = "text/plain"
request["content-type"] = "application/json"
request["x-upstart-tenant"] = "string"
request.body = JSON.dump({
"name": "Cybersource Payment Gateway Configuration v2",
"propertiesDec": "{\"type\":\"object\",\"properties\":{\"merchantId\":{\"type\":\"string\",\"description\":\"Merchant identifier from Cybersource\",\"pattern\":\"^[a-zA-Z0-9_-]+$\"},\"apiKey\":{\"type\":\"string\",\"description\":\"API key for authentication\",\"format\":\"password\",\"minLength\":32},\"apiSecret\":{\"type\":\"string\",\"description\":\"NEW FIELD: API secret for enhanced security\",\"format\":\"password\",\"minLength\":32},\"apiUrl\":{\"type\":\"string\",\"format\":\"uri\",\"default\":\"https://api.cybersource.com\",\"description\":\"Cybersource API base URL\"},\"currency\":{\"type\":\"string\",\"enum\":[\"USD\",\"EUR\",\"GBP\",\"CAD\"],\"default\":\"USD\",\"description\":\"Default currency\"},\"testMode\":{\"type\":\"boolean\",\"default\":false},\"webhookUrl\":{\"type\":\"string\",\"format\":\"uri\",\"description\":\"NEW FIELD: Optional webhook for payment notifications\"}},\"required\":[\"merchantId\",\"apiKey\"]}",
"enabled": true,
"accessControl": {
"read": true,
"modify": false
}
})
response = https.request(request)
puts response.read_body
python
import requests
import json
url = "https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}"
payload = json.dumps({
"name": "Cybersource Payment Gateway Configuration v2",
"propertiesDec": "{\"type\":\"object\",\"properties\":{\"merchantId\":{\"type\":\"string\",\"description\":\"Merchant identifier from Cybersource\",\"pattern\":\"^[a-zA-Z0-9_-]+$\"},\"apiKey\":{\"type\":\"string\",\"description\":\"API key for authentication\",\"format\":\"password\",\"minLength\":32},\"apiSecret\":{\"type\":\"string\",\"description\":\"NEW FIELD: API secret for enhanced security\",\"format\":\"password\",\"minLength\":32},\"apiUrl\":{\"type\":\"string\",\"format\":\"uri\",\"default\":\"https://api.cybersource.com\",\"description\":\"Cybersource API base URL\"},\"currency\":{\"type\":\"string\",\"enum\":[\"USD\",\"EUR\",\"GBP\",\"CAD\"],\"default\":\"USD\",\"description\":\"Default currency\"},\"testMode\":{\"type\":\"boolean\",\"default\":false},\"webhookUrl\":{\"type\":\"string\",\"format\":\"uri\",\"description\":\"NEW FIELD: Optional webhook for payment notifications\"}},\"required\":[\"merchantId\",\"apiKey\"]}",
"enabled": True,
"accessControl": {
"read": True,
"modify": False
}
})
headers = {
'accept': 'text/plain',
'content-type': 'application/json',
'x-upstart-tenant': 'string'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
200
// Success-template updated successfully. Version automatically incremented.
400
// The request contained information that the server was unable to process. Appropriate errors are provided in the response body.
{
"name": "ValidationError",
"code": "SCHEMA_VALIDATION_FAILED",
"detail": "Configuration data validation failed: data.apiKey is required but was not provided. Expected string with minimum length 32."
}401
// The provided credentials were not valid for this endpoint. It may be that they are expired or that the user's roles are insufficient.
{
"name": "ResourceNotFoundError",
"code": "TEMPLATE_NOT_FOUND",
"detail": "The configuration template with ID \"payment-stripe\" was not found in the system.",
"reason": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
}404
// The requested resource was not found in the NoChannel system.
{
"name": "ResourceNotFoundError",
"code": "TEMPLATE_NOT_FOUND",
"detail": "The configuration template with ID \"payment-stripe\" was not found in the system.",
"reason": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
}422
// The request was well-formed but contains semantic errors or violates business rules that prevent processing.
{
"name": "ResourceNotFoundError",
"code": "TEMPLATE_NOT_FOUND",
"detail": "The configuration template with ID \"payment-stripe\" was not found in the system.",
"reason": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
}500
// An unexpected internal server error occurred. The request may be retried, and if the problem persists, contact support with the traceId from the error response.
{
"name": "ResourceNotFoundError",
"code": "TEMPLATE_NOT_FOUND",
"detail": "The configuration template with ID \"payment-stripe\" was not found in the system.",
"reason": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
}