Update Spend Limit

Updates a Spend Limit

Script brex Verified

by hugo697 ยท 10/17/2025

The script

Submitted by hugo697 Bun
Verified 217 days ago
1
//native
2
type Brex = {
3
  token: string;
4
};
5
/**
6
 * 
7
Update Spend Limit
8

9
 * 
10
Updates a Spend Limit
11

12
 */
13
export async function main(
14
  auth: Brex,
15
  id: string,
16
  Idempotency_Key: string,
17
  body: {
18
    name?: string;
19
    description?: string;
20
    status?:
21
      | ("ACTIVE" & {})
22
      | ("EXPIRED" & {})
23
      | ("ARCHIVED" & {})
24
      | ("DELETED" & {});
25
    period_recurrence_type?:
26
      | ("PER_WEEK" & {})
27
      | ("PER_MONTH" & {})
28
      | ("PER_QUARTER" & {})
29
      | ("PER_YEAR" & {})
30
      | ("ONE_TIME" & {});
31
    start_date?: string;
32
    end_date?: string;
33
    authorization_settings?: {
34
      base_limit?: { amount: number; currency?: string } & {};
35
      limit_buffer_percentage?: number;
36
      authorization_type?: ("HARD" & {}) | ("SOFT" & {});
37
      rollover_refresh_rate?:
38
        | ("PER_MONTH" & {})
39
        | ("PER_QUARTER" & {})
40
        | ("PER_YEAR" & {})
41
        | ("OFF" & {})
42
        | ("NEVER" & {});
43
    } & {};
44
    expense_visibility?: ("SHARED" & {}) | ("PRIVATE" & {});
45
    authorization_visibility?: ("PRIVATE" & {}) | ("PUBLIC" & {});
46
    merchant_category_controls?: {
47
      allowed_merchant_categories?:
48
        | "ADVERTISING_MARKETING"
49
        | "GROCERY"
50
        | "TELEPHONY"
51
        | "OFFICE_SUPPLIES"
52
        | "PRIVATE_AIR_TRAVEL"
53
        | "CLOTHING"
54
        | "CAR_RENTAL"
55
        | "VEHICLE_EXPENSES"
56
        | "RESTAURANTS"
57
        | "GAMBLING"
58
        | "FLOWERS"
59
        | "ELECTRONICS"
60
        | "LEGAL_SERVICES"
61
        | "UTILITIES"
62
        | "FURNITURE"
63
        | "BARS_NIGHTLIFE"
64
        | "LAUNDRY"
65
        | "EVENT_EXPENSES"
66
        | "SHIPPING"
67
        | "OTHER_TRAVEL_EXPENSES"
68
        | "CHARITY"
69
        | "SOFTWARE"
70
        | "LODGING"
71
        | "FACILITIES_EXPENSES"
72
        | "SERVERS"
73
        | "CONFERENCES"
74
        | "FOOD_DELIVERY"
75
        | "RENT"
76
        | "AIRLINE_EXPENSES"
77
        | "OTHER_BUSINESS_EXPENSES"
78
        | "BANK_FINANCIAL_FEES"
79
        | "BOOKS_NEWSPAPERS"
80
        | "CONSULTANT_CONTRACTOR"
81
        | "CORPORATE_INSURANCE"
82
        | "DIGITAL_GOODS"
83
        | "LICENSES_TAXES"
84
        | "GAS_FUEL"
85
        | "GENERAL_MERCHANDISE"
86
        | "MEDICAL"
87
        | "MEMBERSHIPS_CLUBS"
88
        | "PARKING_EXPENSES"
89
        | "POLITICAL_DONATIONS"
90
        | "PUBLIC_TRANSPORTATION"
91
        | "RECURRING_SOFTWARE_SAAS"
92
        | "RIDESHARE_TAXI"
93
        | "TOLL_BRIDGE_FEES"
94
        | "TRAINING_EDUCATION"
95
        | "TRAVEL"[];
96
      blocked_merchant_categories?:
97
        | "ADVERTISING_MARKETING"
98
        | "GROCERY"
99
        | "TELEPHONY"
100
        | "OFFICE_SUPPLIES"
101
        | "PRIVATE_AIR_TRAVEL"
102
        | "CLOTHING"
103
        | "CAR_RENTAL"
104
        | "VEHICLE_EXPENSES"
105
        | "RESTAURANTS"
106
        | "GAMBLING"
107
        | "FLOWERS"
108
        | "ELECTRONICS"
109
        | "LEGAL_SERVICES"
110
        | "UTILITIES"
111
        | "FURNITURE"
112
        | "BARS_NIGHTLIFE"
113
        | "LAUNDRY"
114
        | "EVENT_EXPENSES"
115
        | "SHIPPING"
116
        | "OTHER_TRAVEL_EXPENSES"
117
        | "CHARITY"
118
        | "SOFTWARE"
119
        | "LODGING"
120
        | "FACILITIES_EXPENSES"
121
        | "SERVERS"
122
        | "CONFERENCES"
123
        | "FOOD_DELIVERY"
124
        | "RENT"
125
        | "AIRLINE_EXPENSES"
126
        | "OTHER_BUSINESS_EXPENSES"
127
        | "BANK_FINANCIAL_FEES"
128
        | "BOOKS_NEWSPAPERS"
129
        | "CONSULTANT_CONTRACTOR"
130
        | "CORPORATE_INSURANCE"
131
        | "DIGITAL_GOODS"
132
        | "LICENSES_TAXES"
133
        | "GAS_FUEL"
134
        | "GENERAL_MERCHANDISE"
135
        | "MEDICAL"
136
        | "MEMBERSHIPS_CLUBS"
137
        | "PARKING_EXPENSES"
138
        | "POLITICAL_DONATIONS"
139
        | "PUBLIC_TRANSPORTATION"
140
        | "RECURRING_SOFTWARE_SAAS"
141
        | "RIDESHARE_TAXI"
142
        | "TOLL_BRIDGE_FEES"
143
        | "TRAINING_EDUCATION"
144
        | "TRAVEL"[];
145
    } & {};
146
    transaction_limit?: { amount: number; currency?: string } & {};
147
    limit_increase_setting?: ("ENABLED" & {}) | ("DISABLED" & {});
148
    spend_type?:
149
      | ("BUDGET_PROVISIONED_CARDS_ONLY" & {})
150
      | ("NON_BUDGET_PROVISIONED_CARDS_ALLOWED" & {});
151
    auto_transfer_cards_setting?: ("ENABLED" & {}) | ("DISABLED" & {});
152
    auto_create_limit_cards_setting?: ("DISABLED" & {}) | ("ALL_MEMBERS" & {});
153
    owner_user_ids?: string[];
154
    member_user_ids?: string[];
155
    expense_policy_id?: string;
156
    limit_increase_request_policy_id?: string;
157
    limit_approval_policy_id?: string;
158
    legal_entity_id?: string;
159
    department_id?: string;
160
  },
161
) {
162
  const url = new URL(`https://platform.brexapis.com/v2/spend_limits/${id}`);
163

164
  const response = await fetch(url, {
165
    method: "PUT",
166
    headers: {
167
      "Idempotency-Key": Idempotency_Key,
168
      "Content-Type": "application/json",
169
      Authorization: "Bearer " + auth.token,
170
    },
171
    body: JSON.stringify(body),
172
  });
173
  if (!response.ok) {
174
    const text = await response.text();
175
    throw new Error(`${response.status} ${text}`);
176
  }
177
  return await response.json();
178
}
179