인증/인가 API
인증/인가 관련 API입니다.
사용자 등록
사용자를 등록합니다. 고객 인증 코드가 필요합니다.
HTTP request
POST /api/v1/auth/register HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 139
Host: localhost:8080
{
"authCode" : "test_code",
"email" : "test@gmail.com",
"password" : "test1234!",
"name" : "홍길동",
"phone" : "01011111111"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
고객 인증 코드 (* required) |
|
|
이메일 (* required) |
|
|
비밀번호 (* required) |
|
|
이름 (* required) |
|
|
전화번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 78
{
"code" : 200,
"message" : "사용자 등록이 성공하였습니다."
}
로그인
이메일과 비밀번호를 통해 로그인을 합니다. 성공 시 액세스 토큰과 리프레시 토큰을 쿠키로 반환합니다.
HTTP request
POST /api/v1/auth/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Host: localhost:8080
{
"email" : "test@gmail.com",
"password" : "test1234!"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이메일 (* required) |
|
|
비밀번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: access=ACCESS_TOKEN
Set-Cookie: refresh=REFRESH_TOKEN
Content-Type: application/json;charset=UTF-8
Content-Length: 74
{
"code": 200,
"message": "로그인이 성공하였습니다."
}
로그아웃
로그아웃을 합니다. 액세스 토큰과 리프레시 토큰 쿠키를 삭제합니다.
HTTP request
POST /api/v1/auth/logout HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 74
{
"code" : 200,
"message" : "로그아웃이 성공하였습니다."
}
토큰 재발급
액세스 토큰과 리프레시 토큰을 재발급을 합니다. 리프레시 토큰이 필요합니다.
HTTP request
POST /api/v1/auth/reissue HTTP/1.1
Host: localhost:8080
Cookie: refresh=REFRESH_TOKEN
Content-Type: application/x-www-form-urlencoded
Request cookies
Name | Description |
---|---|
|
리프레시 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: access=ACCESS_TOKEN
Set-Cookie: refresh=REFRESH_TOKEN
Content-Type: application/json;charset=UTF-8
Content-Length: 74
{
"code": 200,
"message": "토큰 재발급이 성공하였습니다."
}
이메일 중복 체크
이미 존재하는 이메일인지 검사합니다.
HTTP request
POST /api/v1/auth/email/duplication HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: localhost:8080
{
"email" : "test@gmail.com"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이메일 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 72
{
"code" : 200,
"message" : "사용 가능한 이메일입니다."
}
이메일 인증 코드 전송
이메일 인증 코드를 전송합니다. 인증 코드의 유효 기간은 3분입니다.
HTTP request
POST /api/v1/auth/email/code HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: localhost:8080
{
"email" : "test@gmail.com"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이메일 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 80
{
"code" : 200,
"message" : "이메일 인증코드가 전송되었습다"
}
이메일 인증
이메일 인증을 합니다. 인증 코드의 유효 기간은 3분입니다.
HTTP request
PUT /api/v1/auth/email/code HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 51
Host: localhost:8080
{
"email" : "test@gmail.com",
"code" : 123123
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이메일 (* required) |
|
|
코드 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 78
{
"code" : 200,
"message" : "이메일 인증이 성공하였습니다."
}
전화번호 인증 코드 전송
전화번호 인증 코드를 전송합니다. 인증 코드의 유효 기간은 3분입니다.
HTTP request
POST /api/v1/auth/phone/code HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 29
Host: localhost:8080
{
"phone" : "01011111111"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
전화번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 87
{
"code" : 200,
"message" : "전화번호 인증코드가 전송되었습니다."
}
전화번호 인증
전화번호 인증을 합니다. 인증 코드의 유효 기간은 3분입니다.
HTTP request
PUT /api/v1/auth/phone/code HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 48
Host: localhost:8080
{
"phone" : "01012341234",
"code" : 123123
}
Request fields
Path | Type | Description |
---|---|---|
|
|
전화번호 (* required) |
|
|
코드 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{
"code" : 200,
"message" : "전화번호 인증이 성공하였습니다."
}
이메일 찾기
이메일 찾기입니다.
HTTP request
GET /api/v1/auth/email HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 72
Host: localhost:8080
{
"name" : "홍길동",
"phone" : "01012341234",
"code" : 123123
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이름 (* required) |
|
|
전화번호 (* required) |
|
|
인증 코드 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 127
{
"code" : 200,
"message" : "이메일 찾기가 성공하였습니다.",
"data" : {
"email" : "test@gmail.com"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
찾은 이메일 |
비밀번호 찾기
비밀번호 찾기입니다.
HTTP request
PUT /api/v1/auth/password HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 118
Host: localhost:8080
{
"email" : "test@gmail.com",
"code" : 123123,
"newPassword" : "test1234!",
"newPasswordCheck" : "test1234!"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이메일 (* required) |
|
|
코드 (* required) |
|
|
새 비밀번호 (* required) |
|
|
새 비밀번호 확인 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{
"code" : 200,
"message" : "비밀번호 찾기가 성공하였습니다."
}
사용자 API
현재 사용자 정보 조회
현재 사용자 정보를 조회합니다.
HTTP request
GET /api/v1/users/current HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 308
{
"code" : 200,
"message" : "현재 사용자 정보 조회가 성공하였습니다.",
"data" : {
"clientId" : 1,
"clientName" : "KOSA",
"clientPhone" : "01011112222",
"userId" : 1,
"userEmail" : "test@gmail.com",
"userName" : "홍길동",
"userPhone" : "01033334444"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
고객 아이디 |
|
|
고객명 |
|
|
고객 전화번호 |
|
|
사용자 아이디 |
|
|
사용자 이메일 |
|
|
사용자명 |
|
|
사용자 전화번호 |
상품 API
상품 관련 API입니다.
상품 생성
상품을 생성합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/items HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=item
Content-Type: application/json
{"name":"NAME","price":"10000","description":"Description"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=item.png
Content-Type: image/png
item data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request parts
Part | Description |
---|---|
|
상품 정보 |
|
상품 이미지 |
Request part-data-fields
Path | Type | Description |
---|---|---|
|
|
상품명 (* required) |
|
|
상품 가격 (* required) |
|
|
상품 상세 설명 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 394
{
"code" : 200,
"message" : "상품이 성공적으로 생성되었습니다.",
"data" : {
"id" : 1,
"name" : "Name",
"description" : "Item Description",
"price" : 1000,
"imageUrl" : "http://example.com/image.jpg",
"createdAt" : "2024-08-07T10:50:38.150372521",
"updatedAt" : "2024-08-07T10:50:38.150383402",
"contractCount" : 5,
"isBasic" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 설명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
|
|
상품 생성일 |
|
|
상품 정보 수정일 |
|
|
관련 계약수 |
|
|
간편동의 기본상품 여부 |
상품 정보 수정
상품 정보를 수정합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
PUT /api/v1/items/3 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 75
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"name" : "UPDATED",
"price" : "100000",
"description" : "UPDATED"
}
Path parameters
Parameter | Description |
---|---|
|
상품 ID |
Request fields
Path | Type | Description |
---|---|---|
|
|
상품명 (* required) |
|
|
상품 가격 (* required) |
|
|
상세 설명 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 400
{
"code" : 200,
"message" : "상품 정보가 성공적으로 수정되었습니다.",
"data" : {
"id" : 1,
"name" : "Name",
"description" : "Item Description",
"price" : 1000,
"imageUrl" : "http://example.com/image.jpg",
"createdAt" : "2024-08-07T10:50:38.179837521",
"updatedAt" : "2024-08-07T10:50:38.17984784",
"contractCount" : 5,
"isBasic" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 설명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
|
|
상품 생성일 |
|
|
상품 정보 수정일 |
|
|
관련 계약수 |
|
|
간편동의 기본상품 여부 |
상품 이미지 수정
상품 이미지를 수정합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
PUT /api/v1/items/3/image HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=item.png
Content-Type: image/png
item data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Path parameters
Parameter | Description |
---|---|
|
상품 ID |
Request parts
Part | Description |
---|---|
|
상품 이미지 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 404
{
"code" : 200,
"message" : "상품 이미지가 성공적으로 수정되었습니다.",
"data" : {
"id" : 1,
"name" : "Name",
"description" : "Item Description",
"price" : 1000,
"imageUrl" : "http://example.com/image.jpg",
"createdAt" : "2024-08-07T10:50:38.106370036",
"updatedAt" : "2024-08-07T10:50:38.106386557",
"contractCount" : 5,
"isBasic" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 설명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
|
|
상품 생성일 |
|
|
상품 정보 수정일 |
|
|
관련 계약수 |
|
|
간편동의 기본상품 여부 |
상품 삭제
상품 정보를 삭제합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
DELETE /api/v1/items/3 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
상품 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 84
{
"code" : 200,
"message" : "상품이 성공적으로 삭제되었습니다."
}
상품 상세 조회
상품 상세 정보를 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/items/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
상품ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 400
{
"code" : 200,
"message" : "상품 정보를 성공적으로 조회하였습니다.",
"data" : {
"id" : 1,
"name" : "Name",
"description" : "Item Description",
"price" : 1000,
"imageUrl" : "http://example.com/image.jpg",
"createdAt" : "2024-08-07T10:50:38.127909652",
"updatedAt" : "2024-08-07T10:50:38.12791914",
"contractCount" : 5,
"isBasic" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 설명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
|
|
상품 생성일 |
|
|
상품 정보 수정일 |
|
|
관련 계약수 |
|
|
간편동의 기본상품 여부 |
상품 목록 조회
상품 목록 정보를 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/items?name=Item HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1278
{
"code" : 200,
"message" : "상품 정보를 성공적으로 조회하였습니다.",
"data" : {
"content" : [ {
"id" : 1,
"name" : "Item 1",
"description" : "Item 1 Description",
"price" : 1000,
"imageUrl" : "http://example.com/item1.jpg",
"createdAt" : "2024-08-07T10:50:38.062989141",
"updatedAt" : "2024-08-07T10:50:38.062997537",
"contractCount" : 5,
"isBasic" : true
}, {
"id" : 2,
"name" : "Item 2",
"description" : "Item 2 Description",
"price" : 2000,
"imageUrl" : "http://example.com/item2.jpg",
"createdAt" : "2024-08-07T10:50:38.063009048",
"updatedAt" : "2024-08-07T10:50:38.063013617",
"contractCount" : 10,
"isBasic" : true
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 20,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"totalPages" : 1,
"last" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
페이지 상품 목록 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 설명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
|
|
상품 생성일 |
|
|
상품 정보 수정일 |
|
|
관련 계약수 |
|
|
간편동의 기본상품 여부 |
|
|
페이징 정보 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
페이징 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징되지 않음 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
첫 페이지 여부 |
|
|
요소 개수 |
|
|
비어 있음 여부 |
회원 API
회원 관련 API입니다.
회원 생성
회원을 생성합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 120
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"name" : "kim",
"email" : "example@example.com",
"phone" : "01012345678",
"description" : "Test description"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
회원명(* required) |
|
|
이메일(* required) |
|
|
전화번호(* required) |
|
|
상세설명 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 98
{
"code" : 200,
"message" : "회원이 성공적으로 등록되었습니다.",
"data" : 3
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
회원 번호 |
회원 수정
회원 정보를 수정합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
PUT /api/v1/members/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 120
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"name" : "kim",
"email" : "example@example.com",
"phone" : "01012345678",
"description" : "Test description"
}
Path parameters
Parameter | Description |
---|---|
|
회원 ID |
Request fields
Path | Type | Description |
---|---|---|
|
|
회원명(* required) |
|
|
이메일(* required) |
|
|
전화번호(* required) |
|
|
상세설명 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 466
{
"code" : 200,
"message" : "회원 정보가 성공적으로 수정되었습니다.",
"data" : {
"id" : 1,
"name" : "kim",
"email" : "example@example.com",
"phone" : "01012345678",
"description" : "Member Description",
"contractCount" : 5,
"unPaidCount" : 2,
"totalInvoiceAmount" : 10000,
"totalUnpaidAmount" : 2000,
"createdAt" : "2024-08-07T10:50:38.795058818",
"updatedAt" : "2024-08-07T10:50:38.795066813"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
회원 설명 |
|
|
관련 계약수 |
|
|
미납 계약수 |
|
|
총 청구 금액 |
|
|
총 미납 금액 |
|
|
회원 생성일 |
|
|
회원 정보 수정일 |
회원 삭제
회원 정보를 삭제합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
DELETE /api/v1/members/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
회원 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 91
{
"code" : 200,
"message" : "회원 정보가 성공적으로 삭제되었습니다."
}
회원 상세 조회
회원 상세 정보를 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/members/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
회원ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 463
{
"code" : 200,
"message" : "회원 정보를 성공적으로 조회하였습니다.",
"data" : {
"id" : 1,
"name" : "Name",
"email" : "test@example.com",
"phone" : "1234567890",
"description" : "Member Description",
"contractCount" : 5,
"unPaidCount" : 2,
"totalInvoiceAmount" : 10000,
"totalUnpaidAmount" : 2000,
"createdAt" : "2024-08-07T10:50:38.736897955",
"updatedAt" : "2024-08-07T10:50:38.736906661"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
회원 설명 |
|
|
관련 계약수 |
|
|
미납 계약수 |
|
|
총 청구 금액 |
|
|
총 미납 금액 |
|
|
회원 생성일 |
|
|
회원 정보 수정일 |
회원 목록 조회
회원 목록의 조회합니다
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/members?name=Member HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1426
{
"code" : 200,
"message" : "회원 정보를 성공적으로 조회하였습니다.",
"data" : {
"content" : [ {
"id" : 1,
"name" : "Member 1",
"email" : "member1@example.com",
"phone" : "010-1234-5678",
"description" : "Member 1 Description",
"contractCount" : 5,
"unPaidCount" : 2,
"totalInvoiceAmount" : 10000,
"totalUnpaidAmount" : 2000,
"createdAt" : "2024-08-07T10:50:38.679595744",
"updatedAt" : "2024-08-07T10:50:38.679621272"
}, {
"id" : 2,
"name" : "Member 2",
"email" : "member2@example.com",
"phone" : "010-8765-4321",
"description" : "Member 2 Description",
"contractCount" : 10,
"unPaidCount" : 1,
"totalInvoiceAmount" : 20000,
"totalUnpaidAmount" : 5000,
"createdAt" : "2024-08-07T10:50:38.679645477",
"updatedAt" : "2024-08-07T10:50:38.679650206"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 20,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"totalPages" : 1,
"last" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 목록 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
회원 설명 |
|
|
관련 계약수 |
|
|
미납된 계약수 |
|
|
총 청구 금액 |
|
|
총 미납 금액 |
|
|
회원 생성일 |
|
|
회원 정보 수정일 |
|
|
페이징 정보 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
페이징 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징되지 않음 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
첫 페이지 여부 |
|
|
요소 개수 |
|
|
비어 있음 여부 |
회원 대량 등록
엑셀 파일을 활용하여 회원 정보를 대량 등록합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/members/bulk-register HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=member_test_success.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
exel data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 240
{
"code" : 200,
"message" : "계약 정보가 성공적으로 등록되었습니다.",
"data" : [ {
"name" : "kim",
"email" : "example@example.com",
"phone" : "010-1234-5678",
"description" : "Test description"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
등록된 회원 목록 |
|
|
회원 이름 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
회원 설명 |
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/members/bulk-register HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=member_test_success.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
exel data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 123
{
"code" : 400,
"message" : "유효한 파일이 아닙니다",
"data" : [ "1행 : 중복된 이메일입니다." ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
오류 목록 |
계약 API
계약 관련 API입니다.
계약 생성
계약을 생성합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/contracts HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 228
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"memberId" : 1,
"itemId" : 1,
"itemPrice" : 10000,
"itemAmount" : 5,
"isSubscription" : true,
"invoiceTypeId" : 1,
"paymentTypeId" : 2,
"isEasyConsent" : true,
"contractCycle" : 10,
"paymentDueCycle" : 15
}
Request fields
Path | Type | Description |
---|---|---|
|
|
회원 정보(* required) |
|
|
상품 정보(* required) |
|
|
금액 정보(* required) |
|
|
상품 수량(* required) |
|
|
구독 여부(* required) |
|
|
청구 타입(* required) |
|
|
결제 수단(* required) |
|
|
간편 동의 여부(* required) |
|
|
약정일(* required, 1~30일) |
|
|
납부 기한(* required, 1~30일) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 105
{
"code" : 200,
"message" : "계약 정보가 성공적으로 등록되었습니다.",
"data" : 0
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
생성된 계약ID |
계약 수정
계약 정보를 수정합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
PUT /api/v1/contracts/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 167
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"itemPrice" : 10000,
"itemAmount" : 5,
"invoiceTypeId" : 1,
"paymentTypeId" : 2,
"isEasyConsent" : true,
"contractCycle" : 10,
"paymentDueCycle" : 15
}
Path parameters
Parameter | Description |
---|---|
|
계약 ID |
Request fields
Path | Type | Description |
---|---|---|
|
|
금액 정보(* required) |
|
|
상품 수량(* required) |
|
|
청구 타입(* required) |
|
|
결제 수단(* required) |
|
|
간편 동의 여부(* required) |
|
|
약정일(* required, 1~30일) |
|
|
납부 기한(* required, 1~30일) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 91
{
"code" : 200,
"message" : "계약 정보가 성공적으로 수정되었습니다."
}
계약 삭제
계약 정보를 삭제합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
DELETE /api/v1/contracts/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
계약 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 91
{
"code" : 200,
"message" : "계약 정보가 성공적으로 수정되었습니다."
}
계약 상세 조회
계약 상세 정보를 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/contracts/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
계약 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 889
{
"code" : 200,
"message" : "계약 정보를 성공적으로 조회하였습니다.",
"data" : {
"id" : 1,
"member" : {
"id" : 1,
"name" : "member",
"phone" : "010-1234-5678",
"email" : "example@example.com"
},
"item" : {
"id" : 1,
"name" : "Item",
"price" : 1000,
"amount" : 10
},
"chargeAmount" : 10000,
"totalChargeAmount" : 100000,
"totalUnpaidAmount" : 50000,
"invoiceType" : {
"id" : 1,
"name" : "자동 청구"
},
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"contractCycle" : 30,
"paymentDueCycle" : 15,
"createdAt" : "2024-08-07T10:50:35.234203848",
"updatedAt" : "2024-08-07T10:50:35.234224406",
"contractStatus" : {
"id" : 2,
"name" : "진행"
},
"subscription" : true,
"easyConsent" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
계약 ID |
|
|
회원 정보 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 전화번호 |
|
|
회원 이메일 |
|
|
상품 정보 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 가격 |
|
|
상품 수량 |
|
|
금액 정보 |
|
|
금액 정보 |
|
|
구독 여부 |
|
|
간편 동의 여부 |
|
|
총 청구 금액 |
|
|
총 미납 금액 |
|
|
청구 타입 |
|
|
청구 타입 ID |
|
|
청구 타입명 |
|
|
계약 상태 |
|
|
계약 상태 ID |
|
|
계약 상태명 |
|
|
결제 수단 |
|
|
결제 수단 ID |
|
|
결제 수단명 |
|
|
약정일 |
|
|
납부 기한 |
|
|
계약 생성일 |
|
|
계약 정보 수정일 |
계약 목록 조회
계약 목록의 조회합니다
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/contracts?itemId=1&memberId=2&itemName=item&memberName=member&isSubscription=true&invoiceTypeId=1&contractStatusId=1&paymentTypeId=2 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1589
{
"code" : 200,
"message" : "계약 정보를 성공적으로 조회하였습니다.",
"data" : {
"content" : [ {
"id" : 1,
"memberName" : "member1",
"itemName" : "item1",
"chargeAmount" : 10000,
"contractCycle" : 30,
"paymentDueCycle" : 15,
"contractStatus" : {
"id" : 2,
"name" : "진행"
},
"invoiceType" : {
"id" : 1,
"name" : "자동 청구"
},
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"totalUnpaidCount" : 3,
"subscription" : true
}, {
"id" : 1,
"memberName" : "member2",
"itemName" : "item2",
"chargeAmount" : 20000,
"contractCycle" : 30,
"paymentDueCycle" : 15,
"contractStatus" : {
"id" : 2,
"name" : "진행"
},
"invoiceType" : {
"id" : 1,
"name" : "자동 청구"
},
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"totalUnpaidCount" : 5,
"subscription" : true
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 20,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"totalPages" : 1,
"last" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
페이지 계약 목록 |
|
|
계약 ID |
|
|
회원명 |
|
|
상품명 |
|
|
청구 금액 |
|
|
구독 여부 |
|
|
총 미납 횟수 |
|
|
청구 타입 정보 |
|
|
청구 타입 ID |
|
|
청구 타입명 |
|
|
결제 수단 정보 |
|
|
결제 수단 ID |
|
|
결제 수단명 |
|
|
결제 상태 |
|
|
결제 상태 ID |
|
|
결제 상태명 |
|
|
계약 주기 |
|
|
납부 기한 |
|
|
페이징 정보 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
페이징 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징되지 않음 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
첫 페이지 여부 |
|
|
요소 개수 |
|
|
비어 있음 여부 |
계약 대량 등록
엑셀 파일을 활용하여 계약 정보를 대량 등록합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/contracts/bulk-register HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=member_test_success.xlsx
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
exel data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 358
{
"code" : 200,
"message" : "계약 정보가 성공적으로 등록되었습니다.",
"data" : [ {
"memberId" : 1,
"itemId" : 1,
"itemPrice" : 10000,
"itemAmount" : 5,
"isSubscription" : true,
"invoiceTypeId" : 1,
"paymentTypeId" : 2,
"isEasyConsent" : true,
"contractCycle" : 10,
"paymentDueCycle" : 15
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
등록된 계약 목록 |
|
|
회원 정보(* required) |
|
|
상품 정보(* required) |
|
|
금액 정보(* required) |
|
|
상품 수량(* required) |
|
|
구독 여부(* required) |
|
|
청구 타입(* required) |
|
|
결제 수단(* required) |
|
|
간편 동의 여부(* required) |
|
|
약정일(* required, 1~30일) |
|
|
납부 기한(* required, 1~30일) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 136
{
"code" : 400,
"message" : "유효한 파일이 아닙니다",
"data" : [ "1행: 회원 정보는 필수 입력값입니다." ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
실패 메시지 배열 |
청구 API
청구 관련 API입니다.
청구서 발송
이메일과 문자로 청구서를 발송합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/invoices/1/send HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 87
{
"code" : 200,
"message" : "청구서를 성공적으로 발송하였습니다."
}
청구 생성
청구 정보를 생성합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
POST /api/v1/invoices HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 132
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"contractId" : 1,
"paymentTypeId" : 2,
"chargeAmount" : 10000,
"contractDate" : "2024-08-09",
"dueDate" : "2024-09-06"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
계약 정보(* required) |
|
|
결제 수단(* required) |
|
|
금액 정보(* required) |
|
|
약정일(* required) |
|
|
결제 기한(* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 105
{
"code" : 200,
"message" : "청구 정보가 성공적으로 등록되었습니다.",
"data" : 1
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
생성된 청구ID |
청구 수정
청구 정보를 수정합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
PUT /api/v1/invoices/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 112
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"paymentTypeId" : 1,
"chargeAmount" : 10000,
"contractDate" : "2024-08-09",
"dueDate" : "2024-09-06"
}
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
Request fields
Path | Type | Description |
---|---|---|
|
|
결제 수단(* required) |
|
|
금액 정보(* required) |
|
|
약정일(* required) |
|
|
결제 기한(* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 845
{
"code" : 200,
"message" : "청구 정보가 성공적으로 수정되었습니다.",
"data" : {
"contractId" : 1,
"invoiceId" : 1,
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"invoiceType" : {
"id" : 1,
"name" : "자동 청구"
},
"paymentStatus" : {
"id" : 3,
"name" : "대기"
},
"item" : {
"itemId" : 1,
"name" : "Item",
"price" : 1000,
"amount" : 10
},
"member" : {
"memberId" : 1,
"name" : "member",
"email" : "example@example.com",
"phone" : "010-1234-5678"
},
"chargeAmount" : 10000,
"isSubscription" : true,
"contractDate" : "2023-07-01T00:00:00",
"dueDate" : "2023-07-15T00:00:00",
"createdAt" : "2023-07-01T00:00:00",
"updatedAt" : "2023-07-10T00:00:00"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
계약 ID |
|
|
청구서 ID |
|
|
결제 수단 |
|
|
결제 수단 ID |
|
|
결제 수단명 |
|
|
청구 타입 |
|
|
청구 타입 ID |
|
|
청구 타입명 |
|
|
결제 상태 |
|
|
결제 상태 ID |
|
|
결제 상태명 |
|
|
상품 정보 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 가격 |
|
|
상품 수량 |
|
|
회원 정보 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
청구 금액 |
|
|
구독 여부 |
|
|
계약일 |
|
|
납부 기한 |
|
|
청구 생성일 |
|
|
청구 수정일 |
청구 삭제
청구 정보를 삭제합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
DELETE /api/v1/invoices/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 91
{
"code" : 200,
"message" : "청구 정보가 성공적으로 삭제되었습니다."
}
청구 상세 조회
청구 정보를 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/invoices/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 845
{
"code" : 200,
"message" : "청구 정보를 성공적으로 조회하였습니다.",
"data" : {
"contractId" : 1,
"invoiceId" : 1,
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"invoiceType" : {
"id" : 1,
"name" : "자동 청구"
},
"paymentStatus" : {
"id" : 3,
"name" : "대기"
},
"item" : {
"itemId" : 1,
"name" : "Item",
"price" : 1000,
"amount" : 10
},
"member" : {
"memberId" : 1,
"name" : "member",
"email" : "example@example.com",
"phone" : "010-1234-5678"
},
"chargeAmount" : 10000,
"isSubscription" : true,
"contractDate" : "2023-07-01T00:00:00",
"dueDate" : "2023-07-15T00:00:00",
"createdAt" : "2023-07-01T00:00:00",
"updatedAt" : "2023-07-10T00:00:00"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
계약 ID |
|
|
청구서 ID |
|
|
결제 수단 |
|
|
결제 수단 ID |
|
|
결제 수단명 |
|
|
청구 타입 |
|
|
청구 타입 ID |
|
|
청구 타입명 |
|
|
결제 상태 |
|
|
결제 상태 ID |
|
|
결제 상태명 |
|
|
상품 정보 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 가격 |
|
|
상품 수량 |
|
|
회원 정보 |
|
|
회원 ID |
|
|
회원명 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
청구 금액 |
|
|
구독 여부 |
|
|
계약일 |
|
|
납부 기한 |
|
|
청구 생성일 |
|
|
청구 수정일 |
청구 목록 조회
청구 정보 목록을 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/invoices?contractId=1&paymentStatusId=1&itemName=item&memberName=member&paymentTypeId=2&startContractDate=2023-07-01&endContractDate=2023-07-31&startDueDate=2023-07-01&endDueDate=2023-07-31&startCreatedAt=2023-07-01&endCreatedAt=2023-07-31 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
계약 ID |
|
상품명 |
|
회원명 |
|
결제 상태 ID |
|
결제 수단 ID |
|
계약 시작일 |
|
계약 종료일 |
|
납부 시작일 |
|
납부 종료일 |
|
생성 시작일 |
|
생성 종료일 |
|
페이지 번호 (기본값: 0) |
|
페이지 크기 (기본값: 20) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1507
{
"code" : 200,
"message" : "청구 정보를 성공적으로 조회하였습니다.",
"data" : {
"content" : [ {
"invoiceId" : 1,
"contractId" : 1,
"memberName" : "member1",
"itemName" : "item1",
"chargeAmount" : 10000,
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"paymentStatus" : {
"id" : 3,
"name" : "대기"
},
"contractDate" : "2023-07-01T00:00:00",
"dueDate" : "2023-07-15T00:00:00",
"createdAt" : "2023-07-01T00:00:00"
}, {
"invoiceId" : 2,
"contractId" : 2,
"memberName" : "member2",
"itemName" : "item2",
"chargeAmount" : 20000,
"paymentType" : {
"id" : 2,
"name" : "실시간 CMS"
},
"paymentStatus" : {
"id" : 3,
"name" : "대기"
},
"contractDate" : "2023-08-01T00:00:00",
"dueDate" : "2023-08-15T00:00:00",
"createdAt" : "2023-08-01T00:00:00"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 20,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalElements" : 2,
"totalPages" : 1,
"last" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"first" : true,
"empty" : false
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
페이지 청구서 목록 |
|
|
청구서 ID |
|
|
계약 ID |
|
|
회원명 |
|
|
상품명 |
|
|
청구 금액 |
|
|
결제 수단 정보 |
|
|
결제 수단 ID |
|
|
결제 수단명 |
|
|
결제 상태 정보 |
|
|
결제 상태 ID |
|
|
결제 상태명 |
|
|
계약일 |
|
|
납부 기한 |
|
|
청구서 생성일 |
|
|
페이징 정보 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
페이징 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징되지 않음 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보 비어 있음 여부 |
|
|
정렬 여부 |
|
|
정렬되지 않음 여부 |
|
|
첫 페이지 여부 |
|
|
요소 개수 |
|
|
비어 있음 여부 |
납부 API
납부 관련 API입니다.
납부 내역 취소
납부 내역을 취소합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
DELETE /api/v1/payments/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 91
{
"code" : 200,
"message" : "납부 내역이 성공적으로 취소되었습니다."
}
납부 내역 조회
납부 내역을 조회합니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/payments/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 312
{
"code" : 200,
"message" : "납부 내역을 성공적으로 조회하였습니다.",
"data" : {
"invoiceId" : 1,
"payAmount" : 10000,
"paymentMethod" : "ACCOUNT",
"createAt" : "2024-08-07T10:50:39.498005232",
"number" : "111111",
"bank" : "국민",
"owner" : "홍길동"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
청구 ID |
|
|
납부금 |
|
|
납부 수단 |
|
|
납부일 |
|
|
계좌 번호 |
|
|
은행명 |
|
|
계좌주 |
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/payments/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
청구 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 315
{
"code" : 200,
"message" : "납부 내역을 성공적으로 조회하였습니다.",
"data" : {
"invoiceId" : 1,
"payAmount" : 10000,
"paymentMethod" : "ACCOUNT",
"createAt" : "2024-08-07T10:50:39.517267236",
"number" : "111111",
"company" : "삼성",
"owner" : "홍길동"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
청구 ID |
|
|
납부금 |
|
|
납부 수단 |
|
|
납부일 |
|
|
카드 번호 |
|
|
카드사 |
|
|
카드 소유자명 |
동의 API
동의서 관련 API입니다.
동의정보 등록
동의정보를 등록합니다. 서명 이미지는 필수입니다.
HTTP request
POST /api/v1/consents/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=consent
Content-Type: application/json
{"owner":"홍길동","bank":"신한","number":"111222333444"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=signImage; filename=sign.png
Content-Type: image/png
consent data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 (* required) |
Request parts
Part | Description |
---|---|
|
동의 계좌 정보 (* required) |
|
동의 서명 이미지 (* required) |
Request part-data-fields
Path | Type | Description |
---|---|---|
|
|
계좌 소유주 (* required) |
|
|
은행 (* required) |
|
|
계좌 번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 328
{
"code" : 200,
"message" : "동의정보 등록이 완료되었습니다.",
"data" : {
"memberId" : 1,
"owner" : "홍길동",
"bank" : "신한",
"number" : "111222333444",
"signUrl" : "SIGN_URL",
"createdAt" : "2024-08-07T10:50:32.88488847",
"updatedAt" : "2024-08-07T10:50:32.884911764"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 아이디 |
|
|
계좌 소유주 |
|
|
은행 |
|
|
계좌번호 |
|
|
서명 이미지 URL |
|
|
동의서 생성일 |
|
|
동의서 수정일 |
동의정보 조회
동의정보를 조회합니다.
HTTP request
GET /api/v1/consents/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
Path parameters
Parameter | Description |
---|---|
|
회원 아이디 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 329
{
"code" : 200,
"message" : "동의정보 조회가 성공하였습니다.",
"data" : {
"memberId" : 1,
"owner" : "홍길동",
"bank" : "신한",
"number" : "111222333444",
"signUrl" : "SIGN_URL",
"createdAt" : "2024-08-07T10:50:32.979435418",
"updatedAt" : "2024-08-07T10:50:32.979445457"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 아이디 |
|
|
계좌 소유주 |
|
|
은행 |
|
|
계좌번호 |
|
|
서명 이미지 URL |
|
|
동의서 생성일 |
|
|
동의서 수정일 |
동의정보 수정
상품 정보를 수정합니다.
HTTP request
PUT /api/v1/consents/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 77
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"owner" : "홍길동",
"bank" : "신한",
"number" : "111222333444"
}
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
Path parameters
Parameter | Description |
---|---|
|
회원 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
계좌 소유주 (* required) |
|
|
은행 (* required) |
|
|
계좌번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 329
{
"code" : 200,
"message" : "동의정보 수정이 완료되었습니다.",
"data" : {
"memberId" : 1,
"owner" : "홍길동",
"bank" : "신한",
"number" : "111222333444",
"signUrl" : "SIGN_URL",
"createdAt" : "2024-08-07T10:50:32.788294768",
"updatedAt" : "2024-08-07T10:50:32.788309716"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 아이디 |
|
|
계좌 소유주 |
|
|
은행 |
|
|
계좌번호 |
|
|
서명 이미지 URL |
|
|
동의서 생성일 |
|
|
동의서 수정일 |
동의 서명 이미지 수정
동의 서명 이미지를 수정합니다.
HTTP request
PUT /api/v1/consents/1/image HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=signImage; filename=sign.png
Content-Type: image/png
consent data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
Path parameters
Parameter | Description |
---|---|
|
회원 아이디 |
Request parts
Part | Description |
---|---|
|
서명 이미지 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 330
{
"code" : 200,
"message" : "동의 서명 수정이 완료되었습니다.",
"data" : {
"memberId" : 1,
"owner" : "홍길동",
"bank" : "신한",
"number" : "111222333444",
"signUrl" : "SIGN_URL",
"createdAt" : "2024-08-07T10:50:32.942756549",
"updatedAt" : "2024-08-07T10:50:32.942768953"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 아이디 |
|
|
계좌 소유주 |
|
|
은행 |
|
|
계좌번호 |
|
|
서명 이미지 URL |
|
|
동의서 생성일 |
|
|
동의서 수정일 |
동의정보 삭제
동의 정보를 삭제합니다.
HTTP request
DELETE /api/v1/consents/1 HTTP/1.1
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
Path parameters
Parameter | Description |
---|---|
|
회원 아이디 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{
"code" : 200,
"message" : "동의정보 삭제가 완료되었습니다."
}
설정 API
설정 관련 API입니다.
간편동의 상품설정
간편동의 기본상품을 설정합니다. 선택한 상품 중 기본이 아닌 상품은 기본으로 설정되고, 기본인 상품은 기본이 아닌 상품으로 설정됩니다.
HTTP request
PUT /api/v1/setting/easy-consent/items HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
{
"itemIdList" : [ 1, 2, 3 ]
}
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 (* required) |
Request fields
Path | Type | Description |
---|---|---|
|
|
아이템 아이디 목록 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 89
{
"code" : 200,
"message" : "간편 동의 상품 설정이 완료되었습니다."
}
간편동의 API
비회원 간편동의 상품목록 조회
비회원 간편동의 상품목록을 조회합니다.
HTTP request
GET /api/v1/easy-consent/non-member/items?clientId=1 HTTP/1.1
Host: localhost:8080
Query parameters
Parameter | Description |
---|---|
|
고객 아이디 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 304
{
"code" : 200,
"message" : "비회원 간편동의 상품목록조회가 성공하였습니다.",
"data" : [ {
"id" : 1,
"name" : "item1",
"price" : 10000,
"imageUrl" : "IMAGE_URL"
}, {
"id" : 2,
"name" : "item2",
"price" : 20000,
"imageUrl" : "IMAGE_URL"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
상품 ID |
|
|
상품명 |
|
|
상품 가격 |
|
|
상품 이미지 URL |
비회원 간편동의
비회원 간편동의를 합니다. 서명 이미지는 필수입니다.
HTTP request
POST /api/v1/easy-consent/non-member?clientId=1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=consent
Content-Type: application/json
{"memberName":"홍길동","memberEmail":"test@gmail.com","memberPhone":"01012341234","itemId":1,"itemAmount":3,"isSubscription":true,"contractCycle":15,"accountBank":"은행","accountOwner":"홍길동","accountNumber":"1234567890"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=signImage; filename=sign.png
Content-Type: image/png
consent data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Query parameters
Parameter | Description |
---|---|
|
고객 아이디 |
Request parts
Part | Description |
---|---|
|
동의 정보 (* required) |
|
동의 서명 이미지 (* required) |
Request part-data-fields
Path | Type | Description |
---|---|---|
|
|
회원 이름 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
상품 아이디 |
|
|
상품 수량 |
|
|
정기 여부 |
|
|
약정일 주기 |
|
|
은행명 |
|
|
계좌주 |
|
|
계좌번호 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 84
{
"code" : 200,
"message" : "비회원 간편동의가 성공하였습니다."
}
회원 간편동의 계약정보 조회
회원 간편동의 계약정보를 조회합니다.
HTTP request
GET /api/v1/easy-consent/member/contracts/1 HTTP/1.1
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
계약 아이디 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 411
{
"code" : 200,
"message" : "회원 간편동의 계약정보 조회가 성공하였습니다.",
"data" : {
"contractId" : 1,
"memberId" : 1,
"memberName" : "홍길동",
"memberEmail" : "test@gmail.com",
"memberPhone" : "01012341234",
"itemId" : 1,
"itemName" : "item1",
"itemAmount" : 3,
"totalPrice" : 30000,
"isSubscription" : true,
"contractCycle" : 3
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
계약 아이디 |
|
|
회원 아이디 |
|
|
회원 아이디 |
|
|
회원 이름 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
상품 아이디 |
|
|
상품명 |
|
|
상품 개수 |
|
|
총 금액 |
|
|
정기 여부 |
|
|
약정일 주기 |
회원 간편동의
회원 간편동의를 합니다. 서명 이미지는 필수입니다.
HTTP request
POST /api/v1/easy-consent/member?contractId=1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=consent
Content-Type: application/json
{"owner":"홍길동","bank":"신한","number":"111222333444"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=signImage; filename=sign.png
Content-Type: image/png
consent data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Query parameters
Parameter | Description |
---|---|
|
계약 아이디 |
Request parts
Part | Description |
---|---|
|
동의 계좌 정보 (* required) |
|
동의 서명 이미지 (* required) |
Request part-data-fields
Path | Type | Description |
---|---|---|
|
|
계좌 소유주 (* required) |
|
|
은행 (* required) |
|
|
계좌 번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{
"code" : 200,
"message" : "회원 간편동의가 성공하였습니다."
}
납부자 결제 API
납부자 결제 API입니다.
카드 납부자 결제
카드로 납부자 결제를 합니다.
HTTP request
POST /api/v1/payments/payer-pay/card?invoiceId=1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 90
Host: localhost:8080
{
"owner" : "홍길동",
"company" : "신한카드",
"number" : "1234123412341234"
}
Query parameters
Parameter | Description |
---|---|
|
청구 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
카드 소유주 (* required) |
|
|
카드사 (* required) |
|
|
카드번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 86
{
"code" : 200,
"message" : "납부자 결제(카드)가 성공하였습니다."
}
계좌 납부자 결제
계좌로 납부자 결제를 합니다.
HTTP request
POST /api/v1/payments/payer-pay/account?invoiceId=1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 81
Host: localhost:8080
{
"owner" : "홍길동",
"bank" : "신한",
"number" : "1234123412341234"
}
Query parameters
Parameter | Description |
---|---|
|
청구 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
계좌 소유주 (* required) |
|
|
은행 (* required) |
|
|
계좌번호 (* required) |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 86
{
"code" : 200,
"message" : "납부자 결제(계좌)가 성공하였습니다."
}
납부자 결제 청구정보 조회
납부자 결제의 청구 정보를 조회합니다.
HTTP request
GET /api/v1/payments/payer-pay/invoices/1 HTTP/1.1
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
청구 아이디 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 397
{
"code" : 200,
"message" : "납부자 결제 청구정보 조회가 성공하였습니다.",
"data" : {
"memberName" : "홍길동",
"memberEmail" : "test@gmail.com",
"memberPhone" : "01012341234",
"itemName" : "item1",
"itemAmount" : 3,
"totalPrice" : 30000,
"contractDate" : "2024-08-07T10:50:39.421204268",
"dueDate" : "2024-08-07T10:50:39.421212734"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
회원 이름 |
|
|
회원 이메일 |
|
|
회원 전화번호 |
|
|
상품명 |
|
|
상품 개수 |
|
|
총 금액 |
|
|
약정일 |
|
|
결제기한 |
설정 API
통계 API입니다.
통계 데이터 조회
통계 데이터를 조회합니다. 년,월을 기준으로 검색할 수 있습니다.
Request cookies
Name | Description |
---|---|
|
엑세스 토큰 |
HTTP request
GET /api/v1/stats/1?year=2024&month=7 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: access=ACCESS_TOKEN
Path parameters
Parameter | Description |
---|---|
|
통계 타입 ID |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 330
{
"code" : 200,
"message" : "계약 정보를 성공적으로 조회하였습니다.",
"data" : [ {
"id" : 1,
"date" : "2024-08-07T10:50:40.271909004",
"totalInvoiced" : 1000,
"totalCollected" : 500,
"outstanding" : 500,
"year" : 2024,
"month" : 7,
"week" : 31,
"type" : "MONTHLY"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 데이터 |
|
|
통계 ID |
|
|
통계 날짜 |
|
|
총 청구 금액 |
|
|
총 수집 금액 |
|
|
미수금 |
|
|
년도 |
|
|
월 |
|
|
주 |
|
|
통계 타입 |