센드타임 API 서비스 소개
센드타임 API 서비스는 센드타임의 고객사 전용 서비스로,
REST API 리퀘스트를 통해 회사에서 사용중인 어드민, 툴과 더불어 센드타임의 다양한 기능을 사용하실 수 있는 서비스입니다.

2023년 2월 기준 BETA 서비스 진행 중이기 때문에,
센드타임 팀으로부터 Access Token을 발급받은 고객사만을 대상으로 서비스를 제공하고 있습니다.
서비스 도입을 원하실 경우 팀에 문의 주시기 바랍니다. 🥕


API 버전 : v0.2 (2023.02.22)
문서 최종 업데이트 시간 : 2023.02.22 오전 11시
API 사용 안내
서비스 사용 및 API 도큐먼트 이해를 위해 필요한 내용을 안내드립니다.

API 적용 및 관리를 위해 필수적인 내용들이며,
이해에 어려움이 있으시다면, 센드타임 팀에게 연락 주세요. 😎
Access Token 발급
Access Token은 센드타임 API 서비스를 사용하기 위한 필수 키입니다.
센드타임 API 서비스 사용 고객사를 대상으로 고유한 Access Token을 발급해드립니다.

Access Token을 분실하셨거나 재발급이 필요하신 경우 센드타임 팀에게 연락 주시면, 도와드리겠습니다.
Access Token 관리 및 사용
센드타임 API 서비스를 사용하기 위해서는 도입하신 비즈니스 팀(기업)에 대해 발급된 고유한 Access Token이 필요합니다.

모든 API 리퀘스트는 Access Token을 포함해 전송되여야 하며,
Access Token이 없거나, 유효하지 않은 Access Token을 포함한 API 리퀘스트의 경우
서버 내부에서 폐기 후, 처리 불가 Response를 응답합니다.

또한, 센드타임 API 서비스는 Access Token을 기준으로 고객사의 사용량을 기록하고, 과금하고 있습니다.
따라서, 개별 고객사는 Access Token의 관리에 유의해주세요.
Access Token이 유출되지 않도록, Request를 안전하게 전송할 것을 당부드립니다.

* 센드타임 API 서비스는 주고받는 데이터의 외부 노출을 막고 안전을 보장하기 위해 https 프로토콜을 사용하고 있습니다.
REST 기반 API 설계 내용
센드타임 API는 REST를 기반으로 설계되어 있습니다.
REST는 HTTP 프로토콜을 기반으로 하는 API 설계 방법론으로,
HTTP 프로토콜의 Method, URL, Header, Body 등을 활용하여 API를 설계합니다.

센드타임 API는 아래와 같은 2가지의 HTTP Method를 사용하고 있습니다.
  • GET
  • POST

센드타임 API는 아래와 같은 4가지의 HTTP Status Code를 사용하고 있습니다.
  • 200 - 정상 호출
  • 400 - 비정상 Body 리퀘스트
  • 404 - 비정상 URL 리쿼스트
  • 500 - 서버 접속 에러

센드타임 API는 아래와 같은 1가지의 HTTP Response Body를 사용하고 있습니다.
  • JSON
API Schema 데이터 형식
센드타임 API 서비스에서 사용하는 각각의 스키마에 대한 내용은 API 도큐먼트 파트에서 확인하실 수 있지만,
해당 파트 이전에, 스키마 표기에서 공통적으로 사용하는 데이터 형식에 대해 먼저 안내 드립니다.

현재 버전의 센드타임 API 서비스는 다음과 같은 2가지의 데이터 형식을 사용하고 있습니다.
  • text
  • boolen

text 형식의 데이터는 문자열 형태의 데이터를 의미하며,
API 스키마에서 아래와 같이 큰 따옴표와 함께 표기되어 있습니다.
"key": "text value"

boolen 형식의 데이터는 true 또는 false의 두 가지 값만을 가질 수 있는 데이터를 의미하며,
API 스키마에서 아래와 같이 큰 따옴표 없이 표기되어 있습니다.
"key": true

각 데이터 형식이 가진 특징에 맞추어, API 적용 개발을 진행해주시기 바랍니다.
API 도큐먼트
이 파트는 센드타임 API 서비스를 실제로 사용하기 위하여,
데이터를 주고 받기 위해 꼭 필요한 정보인 각 API의 URL과 메소드, 포멧을 설명하는 파트입니다.
또한, 서버에 요청하는 Request 스키마와
서버가 응답하는 각 상황에 대한 Response 스키마가 예시 데이터와 함께 작성되어 있습니다.

아래의 정보들과 스키마에 대해
더 디테일한 정보가 필요하시거나, 개선이 필요한 부분이 있다면,
언제든지 편하게 센드타임 팀에게 연락 주시기 바랍니다. 😆
Request 공통 내용
모든 API의 Request에는 공통적으로 authorization 파트가 포함됩니다.
{
    "authorization": {
        "companyToken": "abcedfg123456",
        "userID": "010-1234-5678",
        "userPassword": "password"
    }
}

  • companyToken 은 센드타임 API 서비스 사용을 위해 발급해드린 각 기업의 고유한 Access Token입니다.
  • userID 는 해당 작업을 진행할 센드타임(sendtime.app) 계정의 휴대전화 번호입니다. - (하이픈) 표시를 필수적으로 넣어주셔야 합니다.
  • userPassword 는 해당 작업을 진행할 센드타임(sendtime.app) 계정의 비밀번호입니다.
Response 공통 내용
모든 API의 Response에는 공통적으로 authorization 파트가 포함됩니다.
{
    "authorization": {
        "company": "splab",
        "loginStatus": true 
    }
}

  • company 는 Access Token에 대응하는 기업의 이름입니다.
  • loginStatus 는 제공한 센드타임(sendtime.app) 로그인 정보로 진행한 로그인 작업 성공 여부입니다.
3자 일정 조율 생성 API
API Request

URL : https://api.sendtime.global/createTPS
method : POST
body format : JSON
{
    "authorization": {
        "companyToken": "abcedfg123456",
        "userID": "010-1234-5678",
        "userPassword": "password"
    },
    "target": {
        "reservationPageID": "dvYBHV" 
    },
    "request": {
        "TPSName": "3자 일정 조율 이름",
        "proposer": {
            "name": "홍길동",
            "organization":  "기업명",
            "role": "직급", 
            "department": "부서명", 
            "phone": "010-1234-5678", 
            "email": "minyou@splab.dev", 
            "noti": {
                "kakao": true,
                "email": true 
            },
            "reminder": {
                "reminderStatus": true,
                "reminderDate": "2023-01-01",
                "reminderTime": "04:00"
            }
        },
        "acceptor": {
            "name": "홍길동",
            "phone": "010-1234-5678",
            "email": "minyou@splab.dev", 
            "noti": {
                "kakao": true,
                "email": true
            },
            "reminder": {
                "reminderStatus": true,
                "reminderDate": "2023-01-01",
                "reminderTime": "04:00" 
            }
        }
    }
}

상세 설명
  • 3자 일정 조율 기능의 별칭으로 API 문서에서는 앞으로 TPS 라는 단어를 사용합니다.

  • targetreservationPageID 는 각 예약페이지 링크에서 확인하실 수 있습니다.
    https://www.sendtime.app/reservation?u=EYXDZA&i=dvYBHV 에서의 i= 뒤에 오는 dvYBHVreservationPageID 입니다.

  • phone 의 값은 한국 휴대전화 번호(010-...)만 입력이 가능합니다. 텍스트로 입력되어야 하며, - (하이픈) 표시를 필수적으로 넣어주셔야 합니다.

  • email 의 값은 수신이 가능한 유효한 이메일 주소(@ 포함)를 입력해주셔야 합니다.

  • reminderDate 의 값은 예시데이터와 같이 "연도-월-일" 의 형식을 정확하게 맞추어주셔야 합니다. 형식에 맞지 않은 경우, 리마인더가 발송되지 않습니다.

  • reminderTime 의 값은 24시간 표기로 "시:분" 의 형식을 정확하게 맞추어주셔야 합니다. ex) "18:00"




API Response #1 정상 호출
{
    "authorization": {
        "company": "splab",
        "loginStatus": true,
    },
    "response": {
        "status": {
            "tpsStatus": true,
            "message": "TPS 생성 성공"
        },
        "results": {
            "TPSID": "63e5ff285e121717e5127bb2",
            "TPSName": "김민유와 스플랩의 미팅"
        }
    }
}

상세 설명
  • 문제 없이, 정상적으로 API 호출 및 작업 진행이 완료되었을 경우, 해당 Response를 응답합니다.

  • TPSIDTPSName 은 해당 API 리퀘스트를 통해 만들어진 3자 일정 조율 페이지의 ID와 이름을 반환합니다.
    해당 정보들은 이후 예약 상태 정보 확인을 위해 필요한 정보입니다.




API Response #2 3자 일정 조율 정보 입력 에러
{
    "authorization": {
        "company": "splab",
        "loginStatus": true, 
    },
    "response": {
        "status": {
            "tpsStatus": false, 
            "message": "TPS 생성 실패" 
        },
        "results": {
            "TPSID": "", 
            "TPSName": "" 
        }
    }
}

상세 설명
  • Request Body 데이터에서 3자 일정 조율 생성을 위해 입력한 정보 중 형식에 맞지 않거나, 누락된 정보가 있는 경우, 해당 Response가 응답됩니다.
    TPSIDTPSName 은 빈 값으로 반환됩니다.




API Response #3 로그인 정보 입력 에러
{
    "authorization": {
        "company": "splab",
        "loginStatus": false 
    }
}

상세 설명
  • Request Body 데이터에서 센드타임(sendtime.app) 서비스 로그인을 위해 입력한 폰 번호와 비밀번호에 문제가 있는 경우, 해당 Response가 응답됩니다.




API Response #4 기업 토큰 입력 에러
{
    "authorization": {
        "company": "ACCESS_DENIED"
    }
}

상세 설명
  • Request Body 데이터에서 companyToken 에 문제가 있는 경우, 해당 Response가 응답됩니다.




예약 상태 정보 확인 API
API Request

URL : https://api.sendtime.global/statusCheck
method : GET
body format : JSON
{
    "authorization": {
        "companyToken": "abcedfg123456", 
        "userID": "010-1234-5678", 
        "userPassword": "password" 
    },
    "target": {
        "reservationPageID": "dvYBHV", 
        "reservationID": "63e5ff285e121717e5127bb2", 
        "reservationName": "김민유와 스플랩의 미팅" 
    }
}

상세 설명
  • targetreservationPageID 는 각 예약페이지 링크에서 확인하실수 있습니다.
    https://www.sendtime.app/reservation?u=EYXDZA&i=dvYBHV 에서의 i= 뒤에 오는 dvYBHVreservationPageID 입니다.

  • targetreservationIDreservationName 은 3자 일정 조율 API의 Response 에서 TPSIDTPSName 과 각각 대응됩니다.




API Response #1 정상 호출
{
    "authorization": {
        "company": "splab",
        "loginStatus": true
    },
    "response": {
        "status": {
            "requestStatus": true,
            "message": "상태 정보 확인 성공"
        },
        "results": {
            "reservationName": "김민유와 스플랩의 미팅",
            "reservationStatus": "CONFIRMED",
            "reservationDate": "2023-2-15",
            "reservationTime": "19:00"
        }
    }
}

상세 설명
  • 문제 없이, 정상적으로 API 호출 및 작업 진행이 완료되었을 경우, 해당 Response를 응답합니다.

  • 예약이 확정되지 않은 경우, reservationStatus 의 값은 "NOT_CONFIRMED" 로 반환됩니다.
    이 때, reservationDatereservationTime 의 값은 빈 값이 반환됩니다.

  • 예약이 확정된 경우, reservationStatus 의 값은 "CONFIRMED" 로 반환됩니다.
    이 때, reservationDate 는 "2023-2-16" 과 같이 "연도-월-일" 형식으로 반환되고,
    reservationTime 은 "17:00" 과 같이 24시간 표기로 "시:분" 형식으로 반환됩니다.

  • 예약이 변경된 경우, reservationStatus 의 값은 "EDITED" 로 반환됩니다.
    이 때, reservationDatereservationTime 은 변경된 예약 시간으로 반환됩니다.

  • 예약이 취소된 경우, reservationStatus 의 값은 "CANCELED" 로 반환됩니다.
    이 때, reservationDatereservationTime 은 취소되기 전, 확정되었던 예약 시간으로 반환됩니다.





API Response #2 예약 정보 입력 에러
{
    "authorization": {
        "company": "splab",
        "loginStatus": true
    },
    "response": {
        "status": {
            "requestStatus": false,
            "message": "상태 정보 확인 실패"
        }
    }
}

상세 설명
  • Request Body 데이터에서 예약 상태 정보 확인을 위해 입력한 정보 중 형식에 맞지 않거나, 누락된 정보가 있는 경우, 해당 Response가 응답됩니다.




API Response #3 로그인 정보 입력 에러
{
    "authorization": {
        "company": "splab",
        "loginStatus": false
    }
}

상세 설명
  • Request Body 데이터에서 센드타임(sendtime.app) 서비스 로그인을 위해 입력한 폰 번호와 비밀번호에 문제가 있는 경우, 해당 Response가 응답됩니다.




API Response #4 기업 토큰 입력 에러
{
    "authorization": {
        "company": "ACCESS_DENIED"
    }
}

상세 설명
  • Request Body 데이터에서 companyToken 에 문제가 있는 경우, 해당 Response가 응답됩니다.

접속하신 기기의 화면이 센드타임 API 서비스의 다양한 내용들을 보여드리기에는 조금 부족해요!

센드타임 API 서비스 소개, API 사용 안내, API 도큐먼트와 같은 내용을 보고 싶으시다면,
지금보다 조금 더 큰 화면의 데스크톱으로 접속해주세요! 😎

지금 API 도입 문의하기