Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
stylenone

Changelogs

Version

Date

Changes by

Description of change

V 1.0.6

May 9, 2024

Que Nguyen

  • Update Grouped Device Terminology:

    • 3 Levels management: Grouped Device → Devices → Inverters

  • Update Grouped Device registration workflow:

    • Create a Grouped Device

      • Create Devices in the Grouped Device

        • Create Inverters in the Device

  • Rework the API definitions (重构API的部分字段)

    • Removed RemoteDevId

    • New Grouped Device request:

      • Added CountryCode for the Grouped Device

      • Added GroupedEnglishNamefor the Grouped Device

        • New Max length 255 characters

      • Added GroupedLocalNamefor the Grouped Device

        • New Max length 255 characters

      • Add Provincefor the Grouped Device

        • New Max length 20 characters

      • Added Timezone for the Grouped Device

        • Changed from required to optional

      • Added Devices for the Grouped Device

    • New Device request:

      • Added InstallationName for the Device and recommended format.

        • New Max length 255 characters.

      • Added Address for the Device

        • No max length

      • Added PostalCode for the Device.

        • New Max length 255 characters

      • Latitude & Longitude moved from inverter level to device level.

      • Added GridConnectionDate for Device.

      • OwnersDeclarationStartDate & OwnersDeclarationEndDate moved from inverter level to device level

      • Domestic, FeedInTariff, PecentageRenewable moved from inverter level to device level.

        • Add FeedInTariff default value (false)

      • Moved DeclaractionFormFileId from group level to device level. Add ability to reuse same file Id for multiple devices.

      • Added Inverters for Device's inverters

    • New Inverter request:

      • Changed InvEsnCode to ElectronicSerialNumber to be more clear

        • New Max length 255 characters.

      • Added BrandCode instead of Brand . Allowing to choose inverter brand code metadata. Added other brand code to be used if the inverter brand is not found in the collection.

      • Added OtherBrandName field as optional to be used when using Other’s brand code above.

  • Updated request payload’s samples for different scenarios:

    • Full request payload

    • Device has inverter's Brand that not existed in the Inverter Brands

    • 2 Devices uses same Declaration Form File Id

    • Device has no Owners Declaration End Date

  • Added 400 and 422 response body.

  • 更新分组设备术语:

    • 3 个层级: 分组设备 → 设备 → 逆变器

  • 更新分组设备注册流程:

    • 创建一个分组设备

      • 创建分组设备里的设备

        • 创建设备里的逆变器

  • 重构API的部分字段

    • 移除 RemoteDevId

    • 新的分组设备请求:

      • 为分组设备添加 CountryCode字段

      • 为分组设备添加 GroupedEnglishName字段

        • 最大长度 255 个字符

      • 为分组设备添加 GroupedLocalName字段

        • 最大长度 255 个字符

      • 为分组设备添加 Province字段

        • 最大长度 20 字符

      • 为分组设备添加 Timezone 字段

        • 从必填改为可选

      • 为分组设备添加 Devices 字段

    • 新的设备请求:

      • 增加设备的 InstallationName 字段和推荐的格式.

        • 最大长度 255 个字符.

      • 为设备添加 Address字段

        • 没有最大长度限制

      • 为设备添加 PostalCode字段.

        • 最大长度 255 个字符

      • Latitude & Longitude字段从逆变器层面移动到设备层面.

      • 为设备添加 GridConnectionDate 字段.

      • OwnersDeclarationStartDate & OwnersDeclarationEndDate 字段从 inverter 层面移动到 device 层面

      • Domestic, FeedInTariff, PecentageRenewable 字段从 inverter 层面移动到 device 层面

        • 添加 FeedInTariff字段默认值 (false)

      • DeclaractionFormFileId 字段从 group 层面移动到 device 层面. 增加了为多个设备重用相同文件 Id 的能力.

      • 添加 Inverters 字段作为设备的逆变器。

  • 更新不同场景的请求示例:

    • 完整的请求负载

    • 设备的逆变器品牌不存在于已有的逆变器列表

    • 2 个设备使用相同的声明函文件 Id

    • 设备没有限制业主声明结束日期

  • 添加 400422 的返回报文示例.

v 1.0.7

Sean

  • Updated GroupedEnglishName and GroupedLocalName Input Format

  • 更新分组设备英文名和中文名填写格式

v.1.0.8

Que Nguyen

  • Added Rate Limit Description

v.1.0.9

Sean

  • Updated ODF format requirements

  • 更新业主声明函格式需求

v.1.0.10

Que Nguyen

  • Added Business rule for Grid Connection Date of all devices must be in the same Year.

  • 增加业务规则:一个分组设备里的所有设备的并网连接时间必须是在同一年。

v.1.1.0

Que Nguyen

  • Added Generation Data Frequency on Grouped Device to indicate that this Grouped Device will send generation data by Daily Or Monthly, default is Daily

  • 分组设备增加一个字段Generation Data Frequency,用于标明本分组设备通过每日或每月的方式进行发电量传送,默认为按每日的方式。

v.1.1.1

Que Nguyen

  • Update ODF format to add Appendix B for 3 parties and 2 parties

v.1.1.2

Chen Xiaowei

  • Update the maximum number of inverters for grouped devices from 50 to 500, and the total capacity from 5MW to 125MW.

  • 将分组设备支持的逆变器最大数量更新为500个,最大容量更新为125MW。

  • Allow register devices having grid connection date or commission date in different years.

  • 更新业务规则:允许设备的并网日期为不同年份。

v.1.1.3

Chen Xiaowei

  • New Inverter request:

    • Added new optional fields (EffectiveStartDate, EffectiveEndDate, ReplacedByRemoteInvId) for use when replacing faulty inverters.

  • 新增逆变器请求:

    • 添加了新的可选字段(有效开始日期、有效结束日期、替换为新的逆变器ID),用于在更换故障逆变器时使用。

  • For guidelines on replacing a faulty inverter, please refer to the document below.

    API guideline on the Effective Period

  • 关于在接口中替换故障逆变器的指引,请参阅下面的文档。

    API guideline on the Effective Period

v.1.1.4

Quah Sean Choon

  • Update 3 parties and 2 parties ODF in Portuguese and Spanish language

Grouped Device Terminology

A grouped device container that holds multiple devices, each of which can contain one or multiple inverters.

分组设备(grouped device)是多个设备的集合,每个设备可以容纳一个或多个逆变器。

Drawio
mVer2
zoom1
simple0
inComment0
custContentId331612276
pageId331546710
lbox1
diagramDisplayNameGrouped_device_diagram.drawio
contentVer3
revision3
baseUrlhttps://redex-eco.atlassian.net/wiki
diagramNameGrouped_device_diagram.drawio
pCenter0
width761
links
tbstyle
height561.5
  • Registry supports I-REC

  • Fuel type: Group Solar Rooftop

  • Locations: SG, CN, VN, MY, ID, BR, MX

  • Generation data: required on inverter level.

  • Can contains multiple devices and their inverters.

  • Max number of all device’s inverters in the grouped device should not be greater than 500 inverters (this number is the current limit and can be changed or increased in the future).

    • Each inverter capacity must not greater than 0.25MW.

  • 注册表支持 I-REC

  • 燃料类型:集团太阳能屋顶

  • 地点:新加坡、中国、越南、马来西亚、印尼新加坡、中国、越南、马来西亚、印尼、巴西、墨西哥

  • 发电数据:需要在逆变器级别.

  • 能包含多个设备以及它们的逆变器。

  • 逆变器最大数量:500 个逆变器 (此数量为当前限制,可在未来更改或增加).

    • 每个逆变器容量不能大于 0.25MW.

Residual Mix Deadline

历史遗留电量发行 deadline

There are two deadlines issuance every year: 31 May and 30 September. This means the earliest issuance date can be requested before 31 May this year is 1 January in the previous year. Similarly, the earliest effective registration date can be requested after 31 May this year but before 30 September this year is 1 July in the previous year. 

For example, for submitting an issue request on 27 February 2024 (which is before 31 May 2024), the earliest possible claim issuance period date that can be requested is any date from 1 January 2023 onwards.

Please note that you cannot request issuance for power generated before the effective registration date.

每年对于设备的注册和发行电量有两个 deadline:5 月 31 号和 9 月 30 号。这意味着今年 5 月 31 号前可以发行电量的最早日期是去年的 1 月 1 号。同样,今年 5 月 31 号到 9 月 30 号期间可以发行电量的最早日期是去年的 7 月 1 号。

举个例子,如果 2024 年 2 月 27 号提交了一个发行或注册请求(即 5 月 31 号前),那么可以发行的有效发电量日期是 2023 年 1 月 1 日以后的任何日期。

请注意,您不能在有效发电量的日期之前发行电量。

More examples: 

更多例子如下:

Issuance Request Submitted Month/ Device Registration Submitted Month

发行请求提交月份/设备注册提交月份

Earliest possible claim issuance from

最早可发行电量的日期

Jan-24

1st January 2023

Feb-24

Mar-24

Apr-24

May-24

Jun-24

1st July 2023

Jul-24

Aug-24

Sep-24

Oct-24

1st January 2024

Nov-24

Dec-24

Jan-25

Feb-25

Mar-25

Apr-25

May-25

Owner Declaration Form (ODF)业主声明函

ODF Type

Description

File Template

Version

3 Parties ODF with Appendix A-B

三方业主声明函附录A例子

Note: ODF must be in searchable PDF format (Able to search PDF content using Ctrl+F)

注意: 业主声明函必须为可搜索的 PDF 格式(能够使用 Ctrl+F 搜索 PDF 内容)

3 Parties ODF with Appendix A-B (EN & CN)

三方业主声明函附录A例子 (中英)

View file
name中英SF-02C-(third parties) OwnersDeclaration-(Appendix AB) updated 09 Sep 24 v1.4.docx

Version: v1.4

3 Parties ODF with Appendix A-B (EN & POR)

三方业主声明函附录A例子 (英语和葡语)

View file
nameSF-02C-(3 parties) OwnersDeclaration-(Appendix AB)EN-POR v1.docx

Version: v1.1

3 Parties ODF with Appendix A-B (EN & ESP)

三方业主声明函附录A例子 (英语和西班牙语)

View file
nameSF-02C-(3 parties) OwnersDeclaration-(Appendix AB)EN-ESP v1.docx

Version: v1.1

3 Parties ODF with Appendix A-B (EN)

三方业主声明函附录A例子 (英)

View file
nameSF-02C-(third parties) OwnersDeclaration-(Appendix AB) updated 09 Sep 24 v1.4 EN.docx

Version: v1.4

2 Parties ODF with Appendix A

两方业主声明函附录A例子

Note: ODF must be in searchable PDF format (Able to search PDF content using Ctrl+F)

注意:业主声明函必须为可搜索的 PDF 格式(能够使用 Ctrl+F 搜索 PDF 内容)

2 Parties ODF with Appendix A (EN & CN)

两方业主声明函附录A例子 (中英)

View file
name中英SF-02C-OwnersDeclaration-Word-(NothirdParty) (Apendix AB) v1.3.docx

Version: v1.3

2 Parties ODF with Appendix A-B (EN & POR)

二方业主声明函附录A例子 (英语和葡语)

View file
nameSF-02C-(2 parties) OwnersDeclaration-(Appendix AB)EN-POR v1.docx

Version: v1.1

1 Parties ODF with Appendix A-B (EN & ESP)

二方业主声明函附录A例子 (英语和西班牙语)

View file
nameSF-02C-(2 parties) OwnersDeclaration-(Appendix AB)EN-ESP v1.docx

Version: v1.1

2 Parties ODF with Appendix A (EN)

两方业主声明函附录A例子 (英)

View file
nameSF-02C-OwnersDeclaration-Word-(NothirdParty) (Apendix AB) v1.3.docx

Version: v1.3

API Definitions

This endpoint is used to register the grouped device.

这个端点用于注册分组设备。

POST /public/v2/device-applications/i-rec/grouped

Request

The grouped device includes three data blocks

分组设备包含三个数据块。

Grouped Device

A Grouped device contains all multiples solar devices.

一个分组设备可以包含多个太阳能设备。

Devices

All of devices will be grouped into 1 Grouped Device

所有设备都会被分组到一个分组设备里。

Inverters

All of inverters belong to the devices.

所有逆变器都属于设备。

Maximum 500 inverters in the grouped device.

分组设备最大容纳500个逆变器。

Total installed capacity of all inverters must be lesser or equal to 125MW

所有逆变器的总安装容量必须少于或等于125MW。

Request

Request(中文版)

GroupedLocalName (required) text - max length (255)

A Grouped Device’s Name in Local Language. Alpha numeric, supporting special characters .,;()[]{}&_|'-/\

Regex: "^[ A-Za-z0-9.,;()\[\]{}&_|'-\/\\]*$"

Please use the format as below:

{Aggregator}-{Province}-{Date}{An auto-incremented numeric string that has 3 digits and starts with ‘1’}

ex: SEASolar-Singapore-20240516001

GroupedLocalName (required) text - max length (255)

分组设备中文名称。(必填)

Alpha 字符,支持特殊字符,比如.,;()[]{}&_|'-/

正则表达式:"^[ A-Za-z0-9.,;()\[\]{}&_|'-\/\\]*$"

请使用以下格式:

{公司名称}-{省份}-{日期}{一个自动递增的3位数字字符串,以' 1 '开头}

例如:海电能源-新加坡-20240516001

GroupedEnglishName (required) text - max length (255)

A Grouped Device’s Name in English.

Please use the format as below:

{Aggregator}-{Province}-{Date}{An auto-incremented numeric string that has 3 digits and starts with ‘1’}

ex: SEASolar-Singapore-20240516001

GroupedEnglishName (required) text - max length (255)

分组设备英文名(必填)

请使用以下格式:

{公司名称}-{省份}-{日期}{一个自动递增的3位数字字符串,以' 1 '开头}

例如:SEASolar-Singapore-20240516001

CountryCode (required) text - max length (2)

2-character country alpha code. ISO-3166. Supported list below:

Country Code i.e. SG, CN, VN, MY, ID

CountryCode (required) text - max length (2)

国家代码(必填)

2个字符的国家代码,ISO-3166标准,支持的列表如下:

SG, CN, VN, MY, ID

新加坡,中国,越南,马来西亚, 印尼

Province (required) text - max length (20)

A Grouped Device’s Province.

For country: China, Vietnam, Malaysia. please use Reference Province Code belowReference Province Codes

For other country, please input the Province’s Name.

Province (required) text - max length (20)

分组设备的省份。(必填)

对于中国、越南、马来西亚,请使用以下的省份代码:Reference Province Codes

对于其他国家,请手动输入省份名字。

Timezone (optional) text

Time zone information.

Sample: UTC+08:00

Timezone (optional) text

时区(可选)

时区信息。

比如:UTC+08:00

GenerationDataFrequency (optional) text - enum (Daily, Monthly)

Generation Data Frequency on Grouped Device to indicate that this Grouped Device will send generation data by Daily or Monthly, default is Daily

GenerationDataFrequency (optional) text - enum (Daily, Monthly)(可选)

如果为Daily,则后续发电量需传每日的维度发送,如果为Monthly,则后续发电量按每月的维度发送,默认为Daily。

Devices (required) array of objects

A Grouped Device’s devices

Code Block
languagejson
{
  "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000001",
  "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
  "PostalCode": "431231",
  "Longitude": 103.90861,
  "Latitude": 1.305278,
  "GridConnectionDate": "2022-05-13",
  "OwnersDeclarationStartDate": "2022-05-13",
  "OwnersDeclarationEndDate": "2025-05-13",
  "Domestic": true,
  "FeedInTariff": false,
  "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
  "PercentageRenewable": 100,
  "Inverters": [
    {
      "RemoteInvId": "RM1000020003386274014",
      "ElectronicSerialNumber": "HW2343243244414",
      "BrandCode": "HW21",
      "OtherBrandName": "",
      "InstalledCapacity": 10.9
    }
  ]
}

Devices (required) array of objects

设备(必填)

该值是一个列表,可放入多个设备

一个设备的示例:

Code Block
languagejson
{
  "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000001",
  "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
  "PostalCode": "431231",
  "Longitude": 103.90861,
  "Latitude": 1.305278,
  "GridConnectionDate": "2022-05-13",
  "OwnersDeclarationStartDate": "2022-05-13",
  "OwnersDeclarationEndDate": "2025-05-13",
  "Domestic": true,
  "FeedInTariff": false,
  "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
  "PercentageRenewable": 100,
  "Inverters": [
    {
      "RemoteInvId": "RM1000020003386274014",
      "ElectronicSerialNumber": "HW2343243244414",
      "BrandCode": "HW21",
      "OtherBrandName": "",
      "InstalledCapacity": 10.9
    }
  ]
}

Devices[n].InstallationName (required) text - max length (255)

The installation name of a device represents the project device. This name must match the value stated on the Owner Declaration Form in the appendix table.

Please use the format as below:

{Aggregator}-{Province}-{An auto-incremented numeric string that has 6 digits and starts with ‘1’}

ex: SouthEastAsiaSolarDeveloper-Singapore-000001

Devices[n].InstallationName (required) text - max length (255)

设备名称(必填)

installation name代表设备名称,此名称必须与业主声明函(ODF)上的附录表上的设备名称具有相同的值。

请使用以下格式:

{公司名称}-{省份}-{一个自动递增的6位数字字符串,以' 1 '开头}

例如:ChinaSolarDeveloper-AnhuiSheng-000001

Devices[n].Address (required) text - max length (255)

Device’s physical address. Must be in English

Devices[n].Address (required) text - max length (255)

设备地址(必填, 只限英文)

代表设备的物理地址。

Devices[n].PostalCode (required) text - max length (100)

Device’s postal code.

Devices[n].PostalCode (required) text - max length (100)

设备邮编(必填)。

Devices[n].Latitude (required) decimal(2,6)

The co-ordinates must demonstrate the location of the device or device. These co-ordinates must belong in the country/province identified previously.

* Must be in range -90 <= Latitude<= 90

* Must be provided in Google coordinates standard

Sample: 1.523123

Devices[n].Latitude (required) decimal(2,6)

设备纬度(必填)(整数位最多2位,小数位最多6位)

坐标必须正确显示设备的位置,坐标必须属于之前确定的国家/省份。

  • 纬度必须在(-90, 90)范围内

  • 必须以谷歌坐标标准提供

例子:1.523123

Devices[n].Longitude (required) decimal(3,6)

The co-ordinates must demonstrate the location of the device or device. These co-ordinates must belong in the country/province identified previously.

* Must be in range -180 <= Longitude <= 180

* Must be provided in Google coordinates standard.

Sample: 110.523123

Devices[n].Longitude (required) decimal(3,6)

设备经度(必填)(整数位最多3位,小数位最多6位

坐标必须正确显示设备的位置,坐标必须属于之前确定的国家/省份。

  • 经度必须在(-180, 180)范围内

  • 必须以谷歌坐标标准提供

例子:110.523123

Devices[n].GridConnectionDate (required) text - format YYYY-MM-DD

The date when the device connected to the electrical grid and was commissioned. The grid connection date must not be in the future.

Devices[n].GridConnectionDate (required) text - format YYYY-MM-DD

设备的并网时间(必填)

格式:YYYY-MM-DD

代表设备连接到电网并投入使用的日期,这个日期不能是未来的日期。

Devices[n].OwnersDeclarationStartDate (required) text - format YYYY-MM-DD

Owner's Declaration Start Date: The date when permission begins for requesting issuance on behalf of a device owner. This date must be on or before the issuance request date.

Datetime in format: YYYY-MM-DD

Devices[n].OwnersDeclarationStartDate (required) text - format YYYY-MM-DD

设备的业主声明开始时间(必填)

格式:YYYY-MM-DD

业主声明开始发行电量的日期,必须等于或在实际发行电量的开始日期之前。

Devices[n].OwnersDeclarationEndDate (optional) text - format YYYY-MM-DD

Owner's Declaration End Date

Business rules:

  • The date when permission ends for requesting issuance on behalf of a device owner. This date must be on or after the issuance request date.

  • When “Owner’s Declaration End Date” is null means there is no limitation for issuance from the start date onwards.

  • The value must be after the Devices[n].OwnersDeclarationStartDate

Datetime in format: YYYY-MM-DD

Devices[n].OwnersDeclarationEndDate (optional) text - format YYYY-MM-DD

设备的业主声明结束日期(可选)

业务规则

  • 代表业主声明结束发行电量的日期,必须等于或在实际发行电量的结束日期之后。

  • 当“业主声明结束日期”为空时,表示自开始日期起不存在签发限制

  • 该值必须在OwnersDeclarationStartDate之后。

格式:YYYY-MM-DD

Devices[n].Domestic (required) boolean

Indicates whether the installation is on a domestic property or not.

If this is "true", the device will be marked as Rooftop Residential.

If this is "false", the device will be marked as Commercial & Industrial.

Devices[n].Domestic (required) boolean

Domestic(必填)

代表是否户用设备。

如果为true,代表此设备为户用设备。

如果为false,代表此设备为商用设备。

Devices[n].FeedInTariff (optional) boolean - default (false)

Feed In Tariff

Business Rule: Value must be the same among the devices in the grouped device.

If the one device’s “Feed In Tariff” is true, all remaining devices in that Grouped Device must be true as well.

Devices[n].FeedInTariff (optional) boolean - default (false)

设备的上网电价补贴(可选)

业务规则:同个分组设备下的所有设备的该值必须相同。

如果有个设备的值为true,那个分组设备下的其他设备的值也要为true。

Devices[n].DeclarationFormFileId (required) uuid - max length(36)

Declaration form file’s file ID retrieved using the API.

[POST] Upload Document for Grouped Devices - PUBLIC API Documentation - Confluence (atlassian.net)

Rule:

  • The file ID must be valid file.

  • The accepted file types are not image file.

  • Can share same file id among Grouped Devices

ex: be8728c0-e7f6-4ed2-845f-63bf31a39c76

Devices[n].DeclarationFormFileId (required) uuid - max length(36)

声明函文件ID(必填)

使用以下API获得声明函文件ID:

[POST] Upload Document for Grouped Devices - PUBLIC API Documentation - Confluence (atlassian.net)

规则:

  • 声明函文件必须是合法的文件

  • 文件类型不能是图片

  • 对于分组设备下的多个设备,可以使用同个声明函文件ID。

例如:be8728c0-e7f6-4ed2-845f-63bf31a39c76

Devices[n].PercentageRenewable (optional) decimal(3,6) - default (0)

Device’s Percentage Renewable

Must be in range 0 <= value <= 100

Default value: 100

Devices[n].PercentageRenewable (optional) decimal(3,6) - default (0)

设备的可再生百分比(可选)

该值必须介于0到100之间。

Devices[n].Inverters (required) array of objects

The device’s inverters

Code Block
languagejson
{
  "RemoteInvId": "RM1000020003386274014",
  "ElectronicSerialNumber": "HW2343243244414",
  "BrandCode": "HW21",
  "OtherBrandName": "",
  "InstalledCapacity": 10.9
}

Devices[n].Inverters (required) array of objects

设备的逆变器(必填)

该值是一个列表,可放入多个逆变器

一个逆变器的示例:

Code Block
languagejson
{
  "RemoteInvId": "RM1000020003386274014",
  "ElectronicSerialNumber": "HW2343243244414",
  "BrandCode": "HW21",
  "OtherBrandName": "",
  "InstalledCapacity": 10.9
}

Devices[n].Inverters[m].RemoteInvId (required) - text - max length (100)

Remote Inverter Id

Rule: Inverters must not have duplicate entries

ex: INV1000000033862740

Devices[n].Inverters[m].RemoteInvId (required) - text - max length (100)

远程逆变器ID(必填)

客户创建的唯一逆变器 ID,以便用于推送电量数据。

规则:逆变器ID不可重复

例如:INV1000000033862740

Devices[n].Inverters[m].ElectronicSerialNumber (required) - text - max length (255)

Inverter Electronic Serial Number

Rule: Inverters must not have duplicate entries of Electronic Serial Numbers associated with the same Brand, identified either by Brand code or Other Brand Name.

Devices[n].Inverters[m].ElectronicSerialNumber (required) - text - max length (255)

逆变器序列号(必填)

规则:同一个品牌的逆变器的序列号不得重复。逆变器品牌以Brand code和Brand Name进行标识。

Devices[n].Inverters[m].BrandCode (required) - text - max length (20)

Inverter Brand Code. Getting the code from [GET] Query Inverter Brands

“If the Inverter Brand does not exist in the collection, please use Brand Code 'OT27' and input in Devices[n].Inverters[m].OtherBrandName below

Devices[n].Inverters[m].BrandCode (required) - text - max length (20)

逆变器品牌编码(必填)

从以下API获得品牌列表:[GET] Query Inverter Brands

如果您的逆变器不存在于列表中,请使用”OT27”作为品牌编码,并将逆变器名称输入到 Devices[n].Inverters[m].OtherBrandName字段。

Devices[n].Inverters[m].OtherBrandName (optional) - text - max length (255)

Inverter Brand Name

Leave this field as empty string

ex: Panasonic

Devices[n].Inverters[m].OtherBrandName (optional) - text - max length (255)

逆变器品牌名称(可选)

本字段默认为空。如果逆变器编码为“OT27”,则输入逆变器名称,比如:Panasonic。

Devices[n].Inverters[m].InstalledCapacity (required) - decimal(12,3)

Inverter Installed Capacity in kW. Maximum capacity 1000 kW (0.25MW)

  • Must be in range: 0 < capacity <= 1000

  • Only accepting 3 decimal places

Devices[n].Inverters[m].InstalledCapacity (required) - decimal(12,3)

逆变器安装容量(必填)

以KW为单位,最大容量为1000KW(0.25MW)

  • 该值必须介于0到1000之间

  • 最多只允许3个小数点。

Devices[n].Inverters[m].EffectiveStartDate (optional) -text - format YYYY-MM-DD

Inverter’s effective start date.

Rule:

  • If this field is null or empty, then default value equal to device’s grid connection date;

  • Must be on or after the device’s grid connection date;

  • Cannot be the day in the future.

Datetime in format: YYYY-MM-DD

ex: 2023-01-10

Devices[n].Inverters[m].EffectiveStartDate (optional) -text - format YYYY-MM-DD

逆变器生效开始日期(可选)

规则:

  • 如果此字段为空,则其默认值将等于设备的并网日期。

  • 该日期必须大于或等于并网日期。

  • 该日期不能是未来某一天。

格式:YYYY-MM-DD

例如:2023-01-10

Devices[n].Inverters[m].EffectiveEndDate (optional) - text - format YYYY-MM-DD

Inverter’s Effective End Date: The date set to indicate when the inverter has become inactive.

Rule:

  • Must be on or after the device’s grid connection date;

  • Must be after the inverter’s effective start date;

  • Cannot be the day in the future;

  • If the inverter has a value for the Effective End Date, it means the inverter is inactive; otherwise, it is active.

Datetime in format: YYYY-MM-DD

ex: 2024-01-10

Devices[n].Inverters[m].EffectiveEndDate (optional) - text - format YYYY-MM-DD

逆变器生效结束日期(可选)

逆变器的有效结束日期:一旦此字段被赋值,则表示该逆变器为已停用状态。

规则:

  • 该日期必须在设备并网日期当天或之后

  • 该日期必须在逆变器有效开始日期之后

  • 该日期不能是未来某一天

  • 如果逆变器的有效结束日期有值,则表示该逆变器是已停用状态;否则表示为使用中状态。

格式:YYYY-MM-DD

例如:2024-01-10

Devices[n].Inverters[m].ReplacedByRemoteInvId (optional) - text - max length (100)

Replaced Remote Inverter Id

Rule:

  • Inverters must not have duplicate entries;

  • The replaced by remote inverter Id and the faulty remote inverter Id must belong to the same device;

  • The Effective End Date is required if the Replaced By Remote Inverter ID has a value.

  • If replaced by remote inverter Id is empty and Effective End Date has a value, then the inverter is in an inactive status during rehash and can be replaced in the future.

  • If replaced by remote inverter Id has a value, then the inverter is in a replaced status during rehash.

ex: INV1000000033862740

For guidelines on replacing a faulty inverter, please refer to the document below.

API guideline on the Effective Period

Devices[n].Inverters[m].ReplacedByRemoteInvId (optional) - text - max length (100)

替换为新的逆变器ID(可选)

规则:

  • 逆变器ID不可重复

  • 替换后的逆变器ID与被替换的逆变器ID必须属于同一设备。

  • 如果ReplacedByRemoteInvId字段有值,则EffectiveEndDate字段为必填项

  • 如果ReplacedByRemoteInvId字段为空且EffectiveEndDate有值,则该逆变器表示为已停用状态,可在Rehash系统替换新的逆变器。

  • 如果ReplacedByRemoteInvId字段有值,则该逆变器表示为已替换状态,不可以再次替换。

    例如:INV1000000033862740

关于在接口中替换故障逆变器的指引,请参阅下面的文档。

API guideline on the Effective Period

Example Request

请求示例

Code Block
languagejson
curl -X POST 'https://uat-api.redex.eco/public/v2/device-applications/i-rec/grouped' \
-H'Content-Type: application/json' \
-d '{
  "CountryCode": "CN",
  "GroupedEnglishName": "SEASolar-Singapore-20240516001",
  "GroupedLocalName": "海电能源-新加坡-20240516001",
  "Province": "CN-AH",
  "Timezone": "UTC+08:00",
  "GenerationDataFrequency": "Daily",
  "Devices": [
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000001",
      "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
      "PostalCode": "431231",
      "Longitude": 103.90861,
      "Latitude": 1.305278,
      "GridConnectionDate": "2022-05-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": "2025-05-13",
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInvId": "RM1000020003386274014",
          "ElectronicSerialNumber": "HW2343243244414",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 10.9
        },
        {
          "RemoteInvId": "RM1000020898439275847",
          "ElectronicSerialNumber": "HW8984392758437",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 9.9
        }
      ]
    }
  ]
}'

More sample request payload below

下面是更多的请求示例

Expand
titleDevice has inverter's Brand that not existed in the Inverter Brands

设备的逆变器品牌不存在于逆变器品牌列表

Code Block
languagejson
{
  "CountryCode": "CN",
  "GroupedEnglishName": "SEASolar-Singapore-20240516001",
  "GroupedLocalName": "海电能源-新加坡-20240516001",
  "Province": "CN-AH",
  "Timezone": "UTC+08:00",
  "GenerationDataFrequency": "Daily",
  "Devices": [
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000004",
      "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
      "PostalCode": "431231",
      "Longitude": 103.90861,
      "Latitude": 1.305278,
      "GridConnectionDate": "2022-05-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": "2025-05-13",
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInverterId": "RM100002000338634980432",
          "ElectronicSerialNumber": "PA2343221343414",
          "BrandCode": "OT27",
          "OtherBrandName": "Panasonic",
          "InstalledCapacity": 9.9
        }
      ]
    }
  ]
}
Expand
title2 Devices uses same Declaration Form File Id

使用相同声明函文件ID的2个设备

Code Block
languagejson
{
  "CountryCode": "CN",
  "GroupedEnglishName": "SEASolar-Singapore-20240516001",
  "GroupedLocalName": "海电能源-新加坡-20240516001",
  "Province": "CN-AH",
  "Timezone": "UTC+08:00",
  "GenerationDataFrequency": "Daily",
  "Devices": [
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000002",
      "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
      "PostalCode": "431231",
      "Longitude": 103.90861,
      "Latitude": 1.305278,
      "GridConnectionDate": "2022-05-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": "2025-05-13",
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInverterId": "RM1000020003386274024",
          "ElectronicSerialNumber": "HW2343243244414",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 11.9
        }
      ]
    },
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000003",
      "Address": "Anhui Sheng, Festival Jango FH62 Jumpy Avenue",
      "PostalCode": "431231",
      "Longitude": 53.90861,
      "Latitude": 2.305278,
      "GridConnectionDate": "2022-04-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": "2030-05-13",
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInverterId": "RM100003386220007476764",
          "ElectronicSerialNumber": "HW342546474323983",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 55.9
        }
      ]
    }
  ]
}
Expand
titleDevice has no Owners Declaration End Date

没有业主声明结束时间的设备

Code Block
languagejson
{
  "CountryCode": "CN",
  "GroupedEnglishName": "SEASolar-Singapore-20240516001",
  "GroupedLocalName": "海电能源-新加坡-20240516001",
  "Province": "CN-AH",
  "Timezone": "UTC+08:00",
  "GenerationDataFrequency": "Daily",
  "Devices": [
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000005",
      "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
      "PostalCode": "431231",
      "Longitude": 103.90861,
      "Latitude": 1.305278,
      "GridConnectionDate": "2022-05-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": null,
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInverterId": "RM100002000338634980432",
          "ElectronicSerialNumber": "PA2343221343414",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 9.9
        }
      ]
    }
  ]
}
Expand
titleGroup Device has Monthly Generation Data Frequency

按每月维度传送发电量的分组设备

Code Block
languagejson
{
  "CountryCode": "CN",
  "GroupedEnglishName": "SEASolar-Singapore-20240516001",
  "GroupedLocalName": "海电能源-新加坡-20240516001",
  "Province": "CN-AH",
  "Timezone": "UTC+08:00",
  "GenerationDataFrequency": "Monthly",
  "Devices": [
    {
      "InstallationName": "ChinaSolarDeveloper-AnhuiSheng-000005",
      "Address": "Anhui Sheng Parade Jago Cl62 Jago Cl",
      "PostalCode": "431231",
      "Longitude": 103.90861,
      "Latitude": 1.305278,
      "GridConnectionDate": "2022-05-13",
      "OwnersDeclarationStartDate": "2022-05-13",
      "OwnersDeclarationEndDate": null,
      "Domestic": true,
      "FeedInTariff": false,
      "DeclarationFormFileId": "94584c27-518d-45b5-1d2b-08dc6a99c86e",
      "PercentageRenewable": 100,
      "Inverters": [
        {
          "RemoteInverterId": "RM100002000338634980432",
          "ElectronicSerialNumber": "PA2343221343414",
          "BrandCode": "HW21",
          "OtherBrandName": "",
          "InstalledCapacity": 9.9
        }
      ]
    }
  ]
}
Expand
titleReplacing the faulty inverter

替换故障逆变器

Code Block
languagejson
"Inverters": [
  // the faulty inverter
  {
    "RemoteInvId": "OldRM1000020003386274014",
    "ElectronicSerialNumber": "HW2343243244414",
    "BrandCode": "HW21",
    "OtherBrandName": "",
    "InstalledCapacity": 10.9,
    "EffectiveStartDate": "2022-01-01", 
    "EffectiveEndDate": "2024-02-01",   
    "ReplacedByRemoteInvId": "NewRM1000020898439275847"
  },
  // the replaced by inverter
  {
    "RemoteInvId": "NewRM1000020898439275847",
    "ElectronicSerialNumber": "HW8984392758437",
    "BrandCode": "HW21",
    "OtherBrandName": "",
    "InstalledCapacity": 9.9,
    "EffectiveStartDate": "2024-02-02"
  }
]

Response

Response Body

Data object

Application object with Id

具有设备注册 ID 的对象

Data.Id uuid

Object with application Id

Code Block
languagejson
{
  "Id": "56861cc4-0ab8-4a5f-c574-08dc5a883338"
}

设备注册ID

Errors list of error objects

Please see "Getting Started - #Error Object" for more details

错误对象,请查看Getting Started - #Error Object获取更多信息。

Meta pagination resource

Return Pagination Resource

返回分页信息

StatusCode integer

Http Status codes standard. Example 200, 201, 404.

http状态码,如200,201,404

Message text

Response message: Success or error message.

返回成功或错误的信息。

Example response

Info

201 Success

Code Block
languagejson
{
    "StatusCode": 201,
    "Errors": [],
    "Meta": null,
    "Data": {
        "Id": "56861cc4-0ab8-4a5f-c574-08dc5a883338"
    },
    "Message": "Create new grouped device successfully"
}

Warning

400 Bad Request

Code Block
languagejson
{
  "Data": null,
  "Meta": null,
  "Errors": [
    {
      "Key": "Devices[0].InstallationName",
      "Message": "Installation Name is Required",
      "Messages": [
        "Installation Name is Required"
      ]
    },
    {
      "Key": "Devices[0].Inverters[0].RemoteInvId",
      "Message": "Remote Inverter Id is Required",
      "Messages": [
        "Remote Inverter Id is Required"
      ]
    }
  ],
  "StatusCode": 400,
  "Message": "Request Validation failed"
}

Warning

422 Unprocessable Entity

Code Block
languagejson
{
  "Data": null,
  "Meta": null,
  "Errors": [
    {
      "Key": "CountryCode",
      "Message": "Country Code is invalid",
      "Messages": [
        "Country Code is invalid"
      ]
    }
  ],
  "StatusCode": 422,
  "Message": "Unprocessable Entity: Country Code is invalid"
}

Rate limit

Rate Limit Algorithm: Fixed Window

In fixed window rate limiting, a fixed time window (e.g., one minute, one hour) is used to track the number of requests or actions allowed within that window. Requests exceeding the limit are either rejected or throttled until the window resets.

Rate Limiting Overview

Our API employs rate limiting to ensure fair usage and protect the performance and availability of the service. Combination of Global Policy and Operation Policy

Global Policy

  • Rate Limit: 3000 requests per 5 minute(s)

  • Renewal Period: 300 second(s)

  • Key: IP Address

  • Increment Condition: Any Request

Operation Policy

  • Rate Limit: 50 requests per 1 minute(s)

  • Renewal Period: 60 second(s)

  • Key: accound-id business account Id.

  • Increment Condition: Success Request

Rate Limit Details

  1. Rate Limit by Key:

    1. Key: This ensures that rate limits are applied uniquely for each business account id.

    2. Request Limit: Each key is allowed to make up to 50 requests per minute.

    3. Reset Interval: The limit resets every 60 seconds.

  2. Response Headers:

    1. Retry-After: Sent when the rate limit is exceeded, indicating how long to wait before making another request.

Exceeding the Rate Limit

When the rate limit is exceeded, the API will return a 429 Too Many Requests status code. The response will include a Retry-After header specifying the number of seconds to wait before making a new request.

Example Response When Rate Limit is Exceeded

Code Block
languagejson
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json

{
    "Data": null,
    "Errors": null,
    "StatusCode": 429,
    "Message": "Rate limit exceeded",
    "Meta": null
}