본문으로 건너뛰기

Custom Messages

본 문서는 OCPP 버전별 SK일렉링크 커스텀 메시지 사용 방식을 정의합니다.

  • DataTransfer를 사용하는 경우 vendorId는 항상 com.skelectlink입니다.

OCPP 2.1

OCPP v2.1 표준 메시지는 이 부록에 중복 정의하지 않습니다. OCPP v2.1 표준 메시지로 표현되지 않는 SK일렉링크 확장 기능만 DataTransfer:com.skelectlink로 교환합니다.

단가와 결제 정보는 OCPP v2.1 표준 메시지 조합을 우선 사용합니다. RemoteStartTransactionAdditionalInfoTypeRequestStartTransaction에 그대로 넣지 말고, 아래 표준 위치로 나누어 표현합니다. 충전 중 비용 표시는 TransactionEventResponse.totalCost를 기본으로 사용하고, 정산 결과는 NotifySettlement를 우선 사용합니다.

OCPP v1.6 additionalInfo 항목OCPP v2.1 사용 방식
currency, unitPriceEVSE 로컬 비용 계산이 필요한 경우 chargingProfile.chargingSchedule.absolutePriceSchedule 또는 Tariff 계열 메시지로 전달합니다.
paymentMethod, demandValue요구 금액은 TransactionEventResponse.transactionLimit.maxCost, 요구 전력량은 TransactionEventResponse.transactionLimit.maxEnergy로 전달합니다.
userTargetSoC충전 한도로 처리할 수 있는 경우 TransactionEventResponse.transactionLimit.maxSoC를 사용합니다.
memberType, memberInfo항상 idToken.additionalInfo로 포함합니다. memberTypetype=MemberType으로 전달하고, 로밍 회원인 경우 memberInfo의 로밍 정보는 type=RoamingCompanyCode, type=RoamingCompanyName으로 나누어 전달합니다.
consentedK-VAS 충전기인 경우 idToken.additionalInfo(type=VASPrivacyPolicyConsent, additionalIdToken=true/false)로 포함합니다. 충전 중 별도 갱신이 필요한 경우 SetPrivacyPolicyCheck 확장을 사용합니다.

MAC 주소 인증은 OCPP v2.1 AuthorizeidToken.type=MacAddress로 처리할 수 있습니다. 단, 카드번호와 MAC 주소를 등록 또는 연결하는 MacRegister 동작은 OCPP v2.1 표준 메시지로 대체되지 않으므로 DataTransfer 확장으로 유지합니다.

Plug & Charge 등록에서 eMAID와 멤버십 카드를 연결하는 PncRegister 동작도 OCPP v2.1 표준 메시지로 대체되지 않으므로 DataTransfer 확장으로 유지합니다.

DataTransfer 확장

MessagemessageIdDirection
MAC 주소 등록MacRegisterEVSE -> CSMS
Plug & Charge (PnC) 등록PncRegisterEVSE -> CSMS
스마트충전(VAS) 인증서 발급 요청GetSmartChargeCertificateEVSE -> CSMS
스마트충전(VAS) 인증서 설치 요청InstallSmartChargeCertificateCSMS -> EVSE
스마트충전(VAS) 인증서 정보 조회GetSmartChargeCertificateInfoTypeCSMS -> EVSE
스마트충전(VAS) 세션키 발급 요청GetSmartChargeSessionKeyEVSE -> CSMS
스마트충전(VAS) 세션키 설치 요청InstallSmartChargeSessionKeyCSMS -> EVSE
사용자 Target SoC 설정SetUserTargetSoCCSMS -> EVSE 또는 EVSE -> CSMS
스마트충전(VAS) 배터리 정보 전송BatteryInfoEVSE -> CSMS
스마트충전(VAS) 개인정보 동의 설정SetPrivacyPolicyCheckCSMS -> EVSE 또는 EVSE -> CSMS
충전 고유키 조회GetEssentialsKeyEVSE -> CSMS
운영 스케줄 설정SetOperatingScheduleCSMS -> EVSE
광고 프로파일 조회GetAdProfileEVSE -> CSMS
광고 미디어 조회GetAdMediaEVSE -> CSMS
화면 캡처 트리거TriggerScreenCaptureCSMS -> EVSE
화면 캡처 결과 전송ScreenCaptureResultEVSE -> CSMS

OCPP 1.6

OCPP v1.6 충전기는 아래 메시지를 DataTransfer:com.skelectlink로 교환합니다.

RemoteStartTransaction

CSMS가 EVSE로 요청하는 해당 메시지는, 아래 비표준 파라미터를 추가로 포함합니다.

Field NameTypeRequiredDescription
connectorIdNumberOptional충전을 시작할 커넥터 번호
idTagStringRequiredtransactionId 수신전 임시로 사용하는 임의의 키값
chargingProfileNumberOptional스마트 충전 관련 규격
additionalInfoRemoteStartTransactionAdditionalInfoTypeOptional(추가)

DataTransfer

이 메시지의 하위 카테고리는 messageId 별로 data 값을 정의하는 내용을 담습니다.

단가 조회(Legacy)

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: getPrice.req

단가 조회 요청

data가 없습니다.

예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "getPrice.req"
}
]
단가 조회 응답
Field NameTypeRequiredDescription
connectorIdNumberRequiredfixed 0
currencyStringRequiredfixed ""
unitPriceNumberRequiredkWh/원 단가
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"connectorId": 0,
"currency": "",
"unitPrice": 420
},
"status": "Accepted"
}
]

단가 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetUnitPrice

단가 조회 요청
Field NameTypeRequiredDescription
unitPriceEnumTypeUnitPriceEnumTypeRequired요청할 단가 타입 구분
connectorIdNumberOptional커넥터 식별자 (unitPriceEnumType이 "Proportional"인 경우 필수)
예시 — Member 타입
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetUnitPrice",
"data": {
"unitPriceEnumType": "Member"
}
}
]
예시 — Proportional 타입
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetUnitPrice",
"data": {
"unitPriceEnumType": "Proportional",
"connectorId": 1
}
}
]
단가 조회 응답
Field NameTypeRequiredDescription
currencyStringRequiredfixed "KRW"
unitPriceStringRequiredkWh/원 단가
memberInfoMemberInfoTypeOptional회원 유형 정보 (unitPriceEnumType이 "Proportional"인 경우에만 포함)
예시 — 기본 응답
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "324.4"
},
"status": "Accepted"
}
]
예시 — 회원 단가 (ST)
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "292.9",
"memberInfo": {
"memberType": "MEMBER"
}
},
"status": "Accepted"
}
]
예시 — 로밍 단가 (ROAMING)
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"currency": "KRW",
"unitPrice": "350.0",
"memberInfo": {
"memberType": "ROAMING",
"roamingCompanyCode": "ME",
"roamingCompanyName": "한국전력"
}
},
"status": "Accepted"
}
]

구독 요금제 단가 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다. 구독 요금제가 적용되는 충전기에서 사용자에게 구독 요금제 구간 단가(최소~최대)와 적용 기간을 안내할 때 사용합니다.

messageId: GetSubscriptionPrice

구독 요금제 단가 조회 요청

data가 없습니다. 대상 충전기는 세션 컨텍스트로 식별합니다.

예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSubscriptionPrice"
}
]
구독 요금제 단가 조회 응답

구독 요금제가 적용되고 현재 유효한 구간이 있으면 statusAccepted이며 아래 data를 포함합니다. 구독 요금제 대상이 아니거나 현재 유효한 구간이 없으면 statusRejected이며 data를 포함하지 않습니다.

  • maxPrice는 제공되지 않을 수 있으며, 이 경우 minPrice 하나만 표시합니다.
  • 충전기는 적용 시작~종료 일자 이내 시간 동안 구독 요금제 구간 가격을 표시합니다.
Field NameTypeRequiredDescription
applyStartAtDateTimeRequired구독 요금제 적용 시작 일시 (UTC, ISO 8601)
applyEndAtDateTimeRequired구독 요금제 적용 종료 일시 (UTC, ISO 8601)
minPriceStringRequired구간 최소 단가 (KRW/kWh)
maxPriceStringOptional구간 최대 단가 (KRW/kWh). 미제공 시 minPrice만 표시
예시 — 구독 요금제 적용
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"applyStartAt": "2026-07-01T00:00:00Z",
"applyEndAt": "2026-09-30T23:59:59Z",
"minPrice": "290.0",
"maxPrice": "347.0"
},
"status": "Accepted"
}
]
예시 — 최대 단가 미제공 (최소 단가만 표시)
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"applyStartAt": "2026-07-01T00:00:00Z",
"applyEndAt": "2026-09-30T23:59:59Z",
"minPrice": "290.0"
},
"status": "Accepted"
}
]
예시 — 구독 요금제 미적용
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Rejected"
}
]

메시지 트리거

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다. OCPP v1.6 세션에서 메시지 트리거 동작을 제공하기 위한 DataTransfer 호환 메시지입니다.

customTrigger값이 DataTransfer로 시작하는 경우, 콜론(:)으로 vendorId, messageId를 구분하여 요청합니다.

messageId: TriggerMessage

메시지 트리거 요청
Field NameTypeRequiredDescription
requestMessageMessageTriggerEnumTypeRequiredTrigger할 메시지의 타입을 의미합니다.
customTriggerStringOptionalrequestMessage가 CustomTrigger인 경우 해당 필드가 포함됩니다.
evseEVSETypeOptional사용하지 않습니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "TriggerMessage",
"data": {
"requestMessage": "CustomTrigger",
"customTrigger": "DataTransfer:com.skelectlink:GetPrice"
}
}
]

예상되는 동작: EVSE는 CSMS로 DataTransfer 메시지를 보냅니다.

메시지 트리거 응답
Field NameTypeRequiredDescription
statusTriggerMessageStatusEnumTypeRequired트리거 명령 수행 상태를 응답합니다.
statusInfoStatusInfoTypeOptional자세한 충전기의 상태의 포함합니다.

충전기는 반드시 해당 요청을 받고, 해당 명령을 수행할 수 있는 상태를 즉시 응답한 이후 언급된 트리거 메시지를 동작시켜야한다. statusInfostatusAccepted가 아닌 경우 가급적 포함하십시오.

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted",
"data": {
"status": "Rejected",
"statusInfo": {
"reasonCode": "{제조사별 임의 코드}",
"additionalInfo": "충전기가 작동 준비중입니다."
}
}
}
]

변수 조회

이 메시지는 양방향으로 교환할 수 있습니다.

messageId: GetVariables

변수 조회 요청
Field NameTypeRequiredDescription
getVariableDataArray<GetVariableDataType>Required요청할 변수들의 리스트입니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetVariables",
"data": {
"getVariableData": [
{
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxStartedMeasurands"
}
},
{
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxUpdatedMeasurands"
}
}
]
}
}
]
변수 조회 응답
Field NameTypeRequiredDescription
getVariableResultArray<GetVariableResultType>Required변수 조회 결과 리스트입니다.
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"getVariableResult": [
{
"attributeStatus": "Accepted",
"attributeType": "Actual",
"attributeValue": "Energy.Active.Import.Register,SoC",
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxStartedMeasurands"
}
},
{
"attributeStatus": "Accepted",
"attributeType": "Actual",
"attributeValue": "300",
"component": {
"name": "SampledDataCtrlr"
},
"variable": {
"name": "TxUpdatedMeasurands"
}
}
]
},
"status": "Accepted"
}
]

변수 설정

이 메시지는 양방향으로 교환할 수 있습니다.

messageId: SetVariables

변수 설정 요청
Field NameTypeRequiredDescription
setVariableDataArray<SetVariableDataType>Required설정할 컴포넌트-변수 쌍과 속성 값들입니다.
변수 설정 응답
Field NameTypeRequiredDescription
setVariableResultArray<SetVariableResultType>Required변수 설정 결과 리스트입니다.

사용자 인증

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: Authorize

사용자 인증 요청
Field NameTypeRequiredDescription
certificateStringOptionalEV가 제시한 X.509 인증서 체인으로 PEM 형식으로 인코딩됩니다. 검증이 필요한 경우에만 사용됩니다.
idTokenIdTokenTypeRequired인증이 필요한 식별자를 포함합니다.
iso15118CertificateHashDataOCSPRequestDataTypeOptionalOCSP를 통해 EV 계약 인증서를 검증하는 데 필요한 정보를 포함합니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "Authorize",
"data": {
"idToken": {
"idToken": "04D2A91234567890",
"type": "ISO14443"
}
}
}
]
사용자 인증 응답
Field NameTypeRequiredDescription
idTokenInfoIdTokenInfoTypeRequired인증 결과 및 추가 정보를 포함합니다.
certificateStatusEnumTypeAuthorizeCertificateStatusEnumTypeEnumTypeOptional인증서 상태 정보입니다.
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"idTokenInfo": {
"status": "Accepted"
}
},
"status": "Accepted"
}
]

결제 정보 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: PaymentInfo

결제 정보 전송 요청
Field NameTypeRequiredDescription
typePaymentInfoEnumTypeRequired결제 처리 유형
paymentMethodPaymentMethodEnumTypeRequired결제 방식
transactionIdStringRequired거래 번호
demandValueNumberRequired요구 값 (kWh: Wh 단위, Money: KRW 단위)
tradeApprovalIdStringRequired결제 승인번호
tradeUniqueIdStringRequired결제 고유번호
deviceResponseCodeStringRequired결제단말기 응답 코드
deviceResponseMessageStringRequired결제단말기 응답 메시지
deviceCardResponseCodeStringRequired카드사 응답 코드
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "PaymentInfo",
"data": {
"type": "Prepaid",
"paymentMethod": "kWh",
"transactionId": "6864827f-2b65-498d-8420-d5a0cf33dc80",
"demandValue": 50000.0,
"tradeApprovalId": "APPROVAL123456789",
"tradeUniqueId": "TXN987654321",
"deviceResponseCode": "00",
"deviceResponseMessage": "승인완료",
"deviceCardResponseCode": "00"
}
}
]
결제 정보 전송 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

MAC 주소 등록

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: MacRegister

MAC 주소 등록 요청
Field NameTypeRequiredDescription
macAddressStringRequiredMAC 주소
cardNumberStringRequired연결할 카드 번호
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "MacRegister",
"data": {
"macAddress": "00-1A-2B-3C-4D-5E",
"cardNumber": "04D2A91234567890"
}
}
]
MAC 주소 등록 응답
Field NameTypeRequiredDescription
successBooleanRequired등록 성공 여부
messageStringOptional등록 결과 메시지(success == false 시 노출됩니다)
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"success": true
},
"status": "Accepted"
}
]

Plug & Charge (PnC) 등록

이 메시지는 EVSE가 계약 인증서를 보유하지 않은 차량에 대해 고객 등록 절차를 완료한 뒤 CSMS로 요청할 수 있습니다. CSMS는 전달받은 PCID, eMAID, 멤버십 카드 번호를 연결하여 이후 Plug & Charge 인증을 회원 계약 기준으로 처리합니다.

messageId: PncRegister

Plug & Charge (PnC) 등록 요청
Field NameTypeRequiredDescription
emaidStringRequired계약 인증서에 포함된 eMAID
cardNumberStringRequired연결할 멤버십 카드 번호
pcidStringRequiredEV Provisioning Certificate Identifier
iso15118CertificateHashDataArrayOptional설치된 계약 인증서 식별을 위한 인증서 해시 정보
예시
[
2,
"uuid-pnc-register",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "PncRegister",
"data": {
"emaid": "DE*ABC*E1234567*1",
"cardNumber": "04D2A91234567890",
"pcid": "PCID-EXAMPLE-001",
"iso15118CertificateHashData": [
{
"hashAlgorithm": "SHA256",
"issuerNameHash": "BASE64_ISSUER_NAME_HASH",
"issuerKeyHash": "BASE64_ISSUER_KEY_HASH",
"serialNumber": "04A1B2C3D4"
}
]
}
}
]
Plug & Charge (PnC) 등록 응답
Field NameTypeRequiredDescription
successBooleanRequired등록 성공 여부
messageStringOptional등록 결과 메시지(success == false 시 노출됩니다)
예시
[
3,
"uuid-pnc-register",
{
"status": "Accepted",
"data": {
"success": true
}
}
]

네트워크 프로파일 설정

이 메시지는 CSMS가 EVSE의 네트워크 연결 정보를 설정할 때 사용합니다.

messageId: SetNetworkProfile

네트워크 프로파일 설정 요청
Field NameTypeRequiredDescription
configurationSlotIntegerRequired설정을 저장할 슬롯 번호
connectionDataNetworkConnectionProfileTypeRequired연결 상세 정보
예시
[
2,
"e1a2b3c4-d567-8901-2345-6789abcdef01",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetNetworkProfile",
"data": {
"configurationSlot": 1,
"connectionData": {
"ocppVersion": "1.6",
"ocppInterface": "Any",
"ocppTransport": "JSON",
"messageTimeout": 30,
"ocppCsmsUrl": "wss://csms.example.com/ocpp/",
"securityProfile": 2,
"identity": "6013ME53-01",
"basicAuthPassword": "?GJ1Hx1U0A]_~$)N)k3OTq5mLh8Pjb"
}
}
}
]
네트워크 프로파일 설정 응답
Field NameTypeRequiredDescription
statusSetNetworkProfileStatusEnumTypeRequired작업 결과 상태
statusInfoStatusInfoTypeOptional상세 상태 정보
예시
[
3,
"e1a2b3c4-d567-8901-2345-6789abcdef01",
{
"data": {
"status": "Accepted",
"statusInfo": {
"reasonCode": "Configured",
"additionalInfo": "네트워크 프로파일이 정상적으로 설정되었습니다."
}
},
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 발급 요청

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetSmartChargeCertificate

인증서 발급 요청 요청
Field NameTypeRequiredDescription
timeStampStringRequired인증서 요청 시간
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeCertificate",
"data": {
"timeStamp": "2024-01-15T10:30:00.000Z",
"connectorId": 1
}
}
]
인증서 발급 요청 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 설치 요청

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: InstallSmartChargeCertificate

인증서 설치 요청 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
certificatesSmartChargeCertificateInfoTypeRequired인증서 정보
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "InstallSmartChargeCertificate",
"data": {
"connectorId": 1,
"certificates": {
"chargerCertificate": "LS0tLS1CRUdJTi...",
"chargerPrivateKey": "LS0tLS1CRUdJTi...",
"kecoServerCertificate": "LS0tLS1CRUdJTi..."
}
}
}
]
인증서 설치 요청 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 인증서 정보 조회

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: GetSmartChargeCertificateInfoType

인증서 정보 조회 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeCertificateInfoType",
"data": {
"connectorId": 1
}
}
]
인증서 정보 조회 응답
Field NameTypeRequiredDescription
certificatesSmartChargeCertificateInfoTypeOptional설치된 인증서 정보 목록
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"certificates": {
"chargerCertificate": "LS0tLS1CRUdJTi...",
"chargerPrivateKey": "LS0tLS1CRUdJTi...",
"kecoServerCertificate": "LS0tLS1CRUdJTi..."
}
},
"status": "Accepted"
}
]

스마트충전(VAS) 세션키 발급 요청

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetSmartChargeSessionKey

세션키 발급 요청 요청
Field NameTypeRequiredDescription
timeStampDateTimeRequired세션키 요청 시간
keyTypeStringOptional요청하는 키 타입
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetSmartChargeSessionKey",
"data": {
"timeStamp": "2024-01-15T10:30:00.000Z",
"connectorId": 1
}
}
]
세션키 발급 요청 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 세션키 설치 요청

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: InstallSmartChargeSessionKey

세션키 설치 요청 요청
Field NameTypeRequiredDescription
signDataStringRequired서명 데이터
publicKeyStringRequired공개키
keyIdStringRequired키 ID
keyTypeStringOptional키 타입
validFromStringRequired유효 시작 시간
validToStringRequired유효 만료 시간
connectorIdNumberRequired요청 커넥터 번호(Not 0)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "InstallSmartChargeSessionKey",
"data": {
"signData": "LS0tLS1CRUdJTi...",
"publicKey": "LS0tLS1CRUdJTi...",
"keyId": "195024035...",
"validFrom": "2024-01-15T00:00:00Z",
"validTo": "2024-02-15T23:59:59Z",
"connectorId": 1
}
}
]
세션키 설치 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

사용자 Target SoC 설정

이 메시지는 양방향에서 요청할 수 있습니다.

messageId: SetUserTargetSoC

사용자 Target SoC 설정 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
userTargetSoCStringRequired사용자 설정 SoC (0~100)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetUserTargetSoC",
"data": {
"connectorId": 1,
"userTargetSoC": "80"
}
}
]
사용자 Target SoC 설정 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 배터리 정보 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: BatteryInfo

배터리 정보 전송 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
infoCountNumberRequiredBattery 데이터 수
SmartChargeBatteryDataSetTypeArray<SmartChargeBatteryDataSetType>RequiredBatteryData 배열
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "BatteryInfo",
"data": {
"connectorId": 1,
"infoCount": 1,
"SmartChargeBatteryDataSetType": [
{
"timeStamp": "2024-01-15T10:30:00.000Z",
"sessionDuration": "1800",
"counter": "1",
"batteryData": "LS0tLS1CRUdJTi..."
}
]
}
}
]
배터리 정보 전송 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

스마트충전(VAS) 개인정보 동의 설정

이 메시지는 양방향에서 요청할 수 있습니다.

messageId: SetPrivacyPolicyCheck

개인정보 동의 설정 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired요청 커넥터 번호(Not 0)
timeStampDateTimeRequired개인정보 수집 및 동의 확인 시간
consentedBooleanRequired개인정보 수집 및 동의여부
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetPrivacyPolicyCheck",
"data": {
"connectorId": 1,
"timeStamp": "2024-01-15T10:30:00.000Z",
"consented": true
}
}
]
개인정보 동의 설정 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

표시 메시지 설정

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: SetDisplayMessage

표시 메시지 설정 요청
Field NameTypeRequiredDescription
messageMessageInfoTypeRequired표시할 메시지의 설정 정보를 포함합니다.
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetDisplayMessage",
"data": {
"message": {
"id": 2,
"priority": "InFront",
"message": {
"format": "UTF8",
"content": "고장 조치 중입니다. 불편을 드려 죄송합니다. (고객센터: 1566-1704)"
}
}
}
}
]
표시 메시지 설정 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"status": "Accepted"
},
"status": "Accepted"
}
]

충전 고유키 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetEssentialsKey

충전 고유키 조회 요청
Field NameTypeRequiredDescription
connectorIdNumberRequired
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetEssentialsKey",
"data": {
"connectorId": 1
}
}
]
충전 고유키 조회 응답
Field NameTypeRequiredDescription
essentialsKeyStringRequired
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"essentialsKey": "4326342645265234MJUWXVCASUSDRGDDERDXGF"
},
"status": "Accepted"
}
]

운영 스케줄 설정

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: SetOperatingSchedule

운영 스케줄 설정 요청
Field NameTypeRequiredDescription
profileIdNumberRequired운영 스케줄 프로파일 ID
utcOffsetStringRequiredUTC 오프셋 (예: "+09:00", "+00:00")
schedulesArray<OperatingScheduleEntryType>Required스케줄 항목 목록
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "SetOperatingSchedule",
"data": {
"profileId": 1,
"utcOffset": "+09:00",
"schedules": [
{
"connectorId": null,
"dayOfWeek": "MON",
"startTime": "09:00",
"endTime": "18:00"
},
{
"connectorId": null,
"dayOfWeek": "TUE",
"startTime": "09:00",
"endTime": "18:00"
},
{
"connectorId": null,
"dayOfWeek": "SAT",
"startTime": "10:00",
"endTime": "14:00"
}
]
}
}
]

위 예시에서 수~금, 일요일은 스케줄이 없으므로 24시간 운영됩니다. 토요일은 전체 커넥터가 10:00~14:00만 운영됩니다.

운영 스케줄 설정 응답
Field NameTypeRequiredDescription
statusStringRequired처리 결과 (Accepted / Rejected)
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

광고 프로파일 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetAdProfile

광고 프로파일 조회 요청

data가 없습니다.

예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetAdProfile"
}
]
광고 프로파일 조회 응답
Field NameTypeRequiredDescription
profileAdProfileTypeOptional광고 프로파일

활성 프로파일이 있는 경우:

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"profile": {
"version": "1.0.0-5-20260326150000|1.0.0-7-open",
"validUntil": "2026-03-26T15:00:00Z",
"items": [
{
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"displayOrder": 1,
"durationSec": 10
},
{
"mediaKey": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"displayOrder": 2,
"durationSec": 15
},
{
"mediaKey": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"displayOrder": 1,
"durationSec": 20
}
]
}
},
"status": "Accepted"
}
]

활성 프로파일이 없는 경우:

예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"profile": null
},
"status": "Accepted"
}
]

광고 미디어 조회

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: GetAdMedia

광고 미디어 조회 요청
Field NameTypeRequiredDescription
mediaKeyStringRequired미디어 파일 식별 키 (UUID)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "GetAdMedia",
"data": {
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
]
광고 미디어 조회 응답
Field NameTypeRequiredDescription
(fields)AdMediaTypeRequired미디어 파일 정보
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"data": {
"mediaKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"fileName": "spring-event-01.jpg",
"contentType": "image/jpeg",
"fileSize": 524288,
"uri": "https://cdn.example.com/ad-media/a1b2c3d4.jpg?token=eyJhbGci...&expires=1748293800"
},
"status": "Accepted"
}
]

화면 캡처 트리거

이 메시지는 CSMS가 EVSE로 요청할 수 있습니다.

messageId: TriggerScreenCapture

화면 캡처 트리거 요청
Field NameTypeRequiredDescription
screenIdStringRequired캡처 대상 화면 식별자 (충전기 내부 화면 ID)
expireAtDateTimeRequired트리거 유효 만료 시각 (UTC, ISO 8601). 만료 시 트리거 자동 해제.
maxCapturesNumberOptional최대 캡처 횟수. 생략 시 기본값 1. 해당 횟수 도달 시 트리거 자동 해제.
uploadUrlStringRequired캡처 이미지를 HTTP POST(multipart)로 업로드할 URL. CSMS가 메시지 ID 기반으로 생성한 엔드포인트.
예시
[
2,
"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "TriggerScreenCapture",
"data": {
"screenId": "SCR_ERROR_01",
"expireAt": "2025-04-07T09:00:00Z",
"maxCaptures": 3,
"uploadUrl": "https://csms.example.com/v1/screen-capture/60130038-01/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
]
화면 캡처 트리거 응답
Field NameTypeRequiredDescription
statusStringRequired트리거 등록 결과 (Accepted, Rejected, NotSupported)
statusInfoObjectOptional상세 상태 정보 (reasonCode, additionalInfo)
예시
[
3,
"a1b2c3d4-e5f6-7890-abcd-ef1234567890",
{
"data": {
"status": "Accepted"
},
"status": "Accepted"
}
]

화면 캡처 결과 전송

이 메시지는 EVSE가 CSMS로 요청할 수 있습니다.

messageId: ScreenCaptureResult

화면 캡처 결과 전송 요청

이미지 바이너리는 uploadUrl로 HTTP POST(multipart) 전송하며, DataTransfer로는 메타데이터만 전송합니다.

Field NameTypeRequiredDescription
screenIdStringRequired캡처된 화면의 식별자 (트리거 설정 시 지정한 값)
capturedAtDateTimeRequired실제 캡처가 수행된 시각 (UTC, ISO 8601)
uploadStatusStringRequiredHTTP 업로드 결과 (Uploaded, UploadFailed)
예시
[
2,
"b914adcc-d113-46de-ad4b-edb168b96045",
"DataTransfer",
{
"vendorId": "com.skelectlink",
"messageId": "ScreenCaptureResult",
"data": {
"screenId": "SCR_ERROR_01",
"capturedAt": "2025-04-06T14:23:15Z",
"uploadStatus": "Uploaded"
}
}
]
화면 캡처 결과 전송 응답
예시
[
3,
"b914adcc-d113-46de-ad4b-edb168b96045",
{
"status": "Accepted"
}
]

StopTransaction

  1. idTag 값은 보내주지 마세요.
  2. reason 값은 반드시 보내주세요.
  3. transactionData 대신 MeterValues.req를 보내주세요. (단, contextTransaction.End로 설정해야 합니다.)