Budget

Overview

SCP에서 제공하는 Budget 서비스를 프로그램적으로 이용할 수 있도록 지원하는 응용 프로그램 인터페이스(Application Programming Interface, API)를 제공합니다.

본 가이드는 Budget 서비스에 대한 간략한 설명 및 API를 호출하는 방법을 제공합니다. API는 RESTful API 방식으로 제공되며, JSON 형식으로 응답합니다.

Version

VersionStatusSupported Until

OpenAPI URL

https://budget.{environment}.samsungsdscloud.com

Environment and Region List

environmentregion
skr-west1
skr-east1
gkr-south1
gkr-south2
gkr-south3
ekr-west1
ekr-east1

1 - APIs

1.1 - CreateAccountBudget

1.1.1 - 1.0

post /v1/budgets/account

Description

어카운트 예산 생성

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.0-

Parameters

TypeNameDescriptionSchemaDefault
bodybody
required

BudgetCreateRequest

Responses

HTTP CodeDescriptionSchema
201CreatedBudgetAccountShowResponse
400Bad RequestNone
401UnauthorizedNone
403ForbiddenNone
409ConflictNone

Example HTTP request

Request path

/v1/budgets/account

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = budget 1.0"

Request body

{
    "amount": 1000000,
    "name": "test_budget",
    "notifications": {
        "is_use_notification": true,
        "notification_send_period": "FIRST",
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "thresholds": [
            80
        ]
    },
    "prevention": {
        "is_use_prevention": true,
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "threshold": 80
    },
    "start_month": "2026-01",
    "unit": "MONTHLY"
}

Example HTTP response

Response 201

{
    "budget": {
        "amount": 1000000,
        "created_at": "2025-11-01T00:00:00",
        "created_by": "TEST",
        "id": "240200fd2b02490ca63bb3965048b493",
        "modified_at": "2025-11-01T00:00:00",
        "modified_by": "TEST",
        "name": "my_budget_ex",
        "start_month": "2025-11",
        "type": "COST",
        "unit": "MONTHLY"
    },
    "notifications": {
        "is_use_notification": true,
        "notification_send_period": "FIRST",
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "thresholds": [
            80
        ]
    },
    "prevention": {
        "is_use_prevention": true,
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "threshold": 80
    }
}

1.2 - DeleteAccountBudget

1.2.1 - 1.0

delete /v1/budgets/account/{budget_id}

Description

어커운트 예산 삭제

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.0-

Parameters

TypeNameDescriptionSchemaDefault
pathbudget_id
required
Budget id
Example : 240200fd2b02490ca63bb3965048b493
stringNone

Responses

HTTP CodeDescriptionSchema
204No ContentNone
401UnauthorizedNone
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/budgets/account/{budget_id}

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = budget 1.0"

Example HTTP response

Response 204

1.3 - ListAccountBudgets

1.3.1 - 1.0

get /v1/budgets/account

Description

어카운트 예산 목록 조회

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.0-

Parameters

TypeNameDescriptionSchemaDefault
querysize
optional
size
Example : 20
any of [integer, null]20
querypage
optional
page
Example : 0
any of [integer, null]0
querysort
optional
sort
Example : created_at:desc
any of [string, null]None
querysearch_name
optional
Budget name
Example : my_budget_ex
any of [string, null]None
querybudget_name
optional
Budget name
Example : my_budget_ex
any of [string, null]None

Responses

HTTP CodeDescriptionSchema
200OKBudgetAccountPageResponse
400Bad RequestNone
401UnauthorizedNone
403ForbiddenNone

Example HTTP request

Request path

/v1/budgets/account

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = budget 1.0"

Example HTTP response

Response 200

{
    "budgets": [
        {
            "amount": 1000000,
            "created_at": "2025-11-01T00:00:00",
            "created_by": "TEST",
            "id": "240200fd2b02490ca63bb3965048b493",
            "modified_at": "2025-11-01T00:00:00",
            "modified_by": "TEST",
            "name": "my_budget_ex",
            "start_month": "2025-11",
            "type": "COST",
            "unit": "MONTHLY"
        }
    ],
    "count": 20,
    "page": 0,
    "size": 20,
    "sort": [
        "created_at:asc"
    ]
}

1.4 - SetAccountBudget

1.4.1 - 1.0

put /v1/budgets/account/{budget_id}

Description

어카운트 예산 수정

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.0-

Parameters

TypeNameDescriptionSchemaDefault
pathbudget_id
required
Budget id
Example : 240200fd2b02490ca63bb3965048b493
stringNone
bodybody
required

BudgetSetRequest

Responses

HTTP CodeDescriptionSchema
200OKBudgetAccountShowResponse
400Bad RequestNone
401UnauthorizedNone
403ForbiddenNone
404Not FoundNone
409ConflictNone

Example HTTP request

Request path

/v1/budgets/account/{budget_id}

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = budget 1.0"

Request body

{
    "amount": 1000000,
    "name": "test_budget",
    "notifications": {
        "is_use_notification": true,
        "notification_send_period": "FIRST",
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "thresholds": [
            80
        ]
    },
    "prevention": {
        "is_use_prevention": true,
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "threshold": 80
    },
    "start_month": "2026-01",
    "unit": "MONTHLY"
}

Example HTTP response

Response 200

{
    "budget": {
        "amount": 1000000,
        "created_at": "2025-11-01T00:00:00",
        "created_by": "TEST",
        "id": "240200fd2b02490ca63bb3965048b493",
        "modified_at": "2025-11-01T00:00:00",
        "modified_by": "TEST",
        "name": "my_budget_ex",
        "start_month": "2025-11",
        "type": "COST",
        "unit": "MONTHLY"
    },
    "notifications": {
        "is_use_notification": true,
        "notification_send_period": "FIRST",
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "thresholds": [
            80
        ]
    },
    "prevention": {
        "is_use_prevention": true,
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "threshold": 80
    }
}

1.5 - ShowAccountBudget

1.5.1 - 1.0

get /v1/budgets/account/{budget_id}

Description

어카운트 예산 상세 조회

상태 ACTIVE (CURRENT)

버전최소 지원 보장일
1.0-

Parameters

TypeNameDescriptionSchemaDefault
pathbudget_id
required
Budget id
Example : 240200fd2b02490ca63bb3965048b493
stringNone

Responses

HTTP CodeDescriptionSchema
201CreatedBudgetAccountShowResponse
401UnauthorizedNone
403ForbiddenNone
404Not FoundNone

Example HTTP request

Request path

/v1/budgets/account/{budget_id}

Request header

"Scp-Accesskey = 2sd2gg=2agbdSD26svcD",
"Scp-Signature = fsfsdf235f9U35sdgf35Xsf/qgsdgsdg326=sfsdr23rsef=",
"Scp-Timestamp = 1605290625682",
"Scp-ClientType = Openapi",
"Accept-Language = ko-KR",
"Scp-Api-Version = budget 1.0"

Example HTTP response

Response 201

{
    "budget": {
        "amount": 1000000,
        "created_at": "2025-11-01T00:00:00",
        "created_by": "TEST",
        "id": "240200fd2b02490ca63bb3965048b493",
        "modified_at": "2025-11-01T00:00:00",
        "modified_by": "TEST",
        "name": "my_budget_ex",
        "start_month": "2025-11",
        "type": "COST",
        "unit": "MONTHLY"
    },
    "notifications": {
        "is_use_notification": true,
        "notification_send_period": "FIRST",
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "thresholds": [
            80
        ]
    },
    "prevention": {
        "is_use_prevention": true,
        "receivers": [
            "test_user1@test.com",
            "test_user2@test.com"
        ],
        "threshold": 80
    }
}

2 - Models

2.1 - BudgetAccountPageResponse

NameDescriptionSchemaDefault
budgets
required

array[BudgetAccountUnit]
count
required
count
Example : 20
integer
page
required
page
Example : 0
integer
size
required
size
Example : 20
integer
sort
optional
sort
Example : ['created_at:asc']
any of [array[string], null]

2.2 - BudgetAccountShowResponse

NameDescriptionSchemaDefault
budget
required

BudgetShowDetail
notifications
required

NotificationSetting
prevention
required

PreventionSetting

2.3 - BudgetAccountUnit

NameDescriptionSchemaDefault
amount
required
Budget amount
Example : 1000000
integer
created_at
optional
Created datetime
Example : 2025-11-01T00:00:00
string (date-time)
created_by
optional
Created user
Example : TEST
string
id
required
Budget id
Example : 240200fd2b02490ca63bb3965048b493
string
modified_at
optional
Modified datetime
Example : 2025-11-01T00:00:00
string (date-time)
modified_by
optional
Modified user
Example : TEST
string
name
required
Budget name
Example : my_budget_ex
string
start_month
required
Budget start month (ex.YYYY-MM)
Example : 2025-11
string
type
required
Budget type
Example : COST
string
unit
required
Budget management unit (MONTHLY or OVERALL)
Example : MONTHLY
string

2.4 - BudgetCreateRequest

NameDescriptionSchemaDefault
amount
required
Budget amount
Example : 1000000
integer
name
required
Budget name
Example : test_budget
string
notifications
optional
Notification settings for the budget.
any of [NotificationSettingNew, null]
prevention
optional
Auto generation prevention settings for the budget.
any of [PreventionSettingNew, null]
start_month
required
Budget start month (ex.YYYY-MM)
Example : 2026-01
string
unit
required
Budget management unit (MONTHLY or OVERALL)
Example : MONTHLY
string

2.5 - BudgetSetRequest

NameDescriptionSchemaDefault
amount
required
Budget amount
Example : 1000000
integer
name
required
Budget name
Example : test_budget
string
notifications
optional
Notification settings for the budget.
any of [NotificationSettingNew, null]
prevention
optional
Auto generation prevention settings for the budget.
any of [PreventionSettingNew, null]
start_month
required
Budget start month (ex.YYYY-MM)
Example : 2026-01
string
unit
required
Budget management unit (MONTHLY or OVERALL)
Example : MONTHLY
string

2.6 - BudgetShowDetail

NameDescriptionSchemaDefault
amount
required
Budget amount
Example : 1000000
integer
created_at
optional
Created datetime
Example : 2025-11-01T00:00:00
string (date-time)
created_by
optional
Created user
Example : TEST
string
id
required
Budget id
Example : 240200fd2b02490ca63bb3965048b493
string
modified_at
optional
Modified datetime
Example : 2025-11-01T00:00:00
string (date-time)
modified_by
optional
Modified user
Example : TEST
string
name
required
Budget name
Example : my_budget_ex
string
start_month
required
Budget start month (ex.YYYY-MM)
Example : 2025-11
string
type
required
Budget type
Example : COST
string
unit
required
Budget management unit (MONTHLY or OVERALL)
Example : MONTHLY
string

2.7 - NotificationSetting

NameDescriptionSchemaDefault
is_use_notification
optional
Notification use state
Example : True
any of [boolean, null]True
notification_send_period
optional
The notification frequency can be FIRST, DAILY, or NONE.
Example : FIRST
any of [string, null]FIRST
receivers
optional
Threshold exceed notification recipient email list.
Example : ['test_user1@test.com', 'test_user2@test.com']
any of [array[string], null][’test_user1@test.com’, ’test_user2@test.com']
thresholds
optional
Thresholds for receiving threshold exceed notification email: 70/80/90/100.
Example : [80]
any of [array[integer], null][80]

2.8 - NotificationSettingNew

NameDescriptionSchemaDefault
is_use_notification
optional
Notification use state
Example : True
any of [boolean, null]True
notification_send_period
optional
The notification frequency can be FIRST, DAILY, or NONE.
Example : FIRST
any of [string, null]FIRST
receivers
optional
Threshold exceed notification recipient email list.
Example : ['test_user1@test.com', 'test_user2@test.com']
any of [array[string], null][’test_user1@test.com’, ’test_user2@test.com']
thresholds
optional
Thresholds for receiving threshold exceed notification email: 70/80/90/100.
Example : [80]
any of [array[integer], null][80]

2.9 - PreventionSetting

NameDescriptionSchemaDefault
is_use_prevention
optional
Auto Generation prevent use state
Example : True
any of [boolean, null]True
receivers
optional
Prevention notification recipient email list.
Example : ['test_user1@test.com', 'test_user2@test.com']
any of [array[string], null][’test_user1@test.com’, ’test_user2@test.com']
threshold
optional
Threshold for receiving prevention notification email: 70/80/90/100.
Example : 80
any of [integer, null]80

2.10 - PreventionSettingNew

NameDescriptionSchemaDefault
is_use_prevention
optional
Auto Generation prevent use state
Example : True
any of [boolean, null]True
receivers
optional
Prevention notification recipient email list.
Example : ['test_user1@test.com', 'test_user2@test.com']
any of [array[string], null][’test_user1@test.com’, ’test_user2@test.com']
threshold
optional
Threshold for receiving prevention notification email: 70/80/90/100.
Example : 80
any of [integer, null]80