const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 50000, currency: 'EUR'})
};
fetch('https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PUT \
--url https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": 50000,
"currency": "EUR"
}
'import requests
url = "https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit"
payload = {
"amount": 50000,
"currency": "EUR"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit"
payload := strings.NewReader("{\n \"amount\": 50000,\n \"currency\": \"EUR\"\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://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 50000,\n \"currency\": \"EUR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit")
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 \"amount\": 50000,\n \"currency\": \"EUR\"\n}"
response = http.request(request)
puts response.read_body{
"amount": 50000,
"currency": "EUR",
"decimals": 2,
"sync_status": "pending",
"spent_today": 12550,
"remaining": 37450,
"updated_at": "2025-06-15T14:30:00Z"
}{
"code": 123,
"message": "<string>",
"reason": "<string>"
}Set an account spending limit
Sets the daily card-spending limit shared by all cards on the account.
currency must match the account native currency, and amount is in
minor units of that currency. Amounts above the maximum configured for the
partner are rejected. A successful request may return sync_status: pending;
use GET /accounts/{account_id}/limit until it becomes synced or failed.
Once synced, this is a cumulative spending limit, not a per-transaction cap. An authorization that causes the cumulative spend for today to meet or exceed the limit can be approved; subsequent eligible authorizations are declined.
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: 50000, currency: 'EUR'})
};
fetch('https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PUT \
--url https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amount": 50000,
"currency": "EUR"
}
'import requests
url = "https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit"
payload = {
"amount": 50000,
"currency": "EUR"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit"
payload := strings.NewReader("{\n \"amount\": 50000,\n \"currency\": \"EUR\"\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://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 50000,\n \"currency\": \"EUR\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.prod.gnosispay.com/partner-api/v1/accounts/{account_id}/limit")
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 \"amount\": 50000,\n \"currency\": \"EUR\"\n}"
response = http.request(request)
puts response.read_body{
"amount": 50000,
"currency": "EUR",
"decimals": 2,
"sync_status": "pending",
"spent_today": 12550,
"remaining": 37450,
"updated_at": "2025-06-15T14:30:00Z"
}{
"code": 123,
"message": "<string>",
"reason": "<string>"
}Path Parameters
The account ID.
Body
New daily account spending limit.
Response
The request has succeeded.
Configured daily limit in the currency's smallest unit.
ISO-4217 currency code.
Number of decimal places for this currency (2 for USD, EUR, and GBP).
Application status of the limit. pending means the update is still being
applied, synced means it is active, and failed means it could not be
applied.
pending, synced, failed Last time this limit was modified.
Eligible card spending counted against this limit since 00:00 UTC, summed across all cards on the account and expressed in the currency's smallest unit.
Remaining headroom for today, in the currency's smallest unit. Equal to
max(0, amount - spent_today).