OCN Node registration

Now that you have your registration token (TOKEN_A) and have entered your service’s details into the OCN Registry, it is time to complete the connection with the OCN Node. Please note that you have to replace “qa-client.emobilify.com” with “ocnnode.elaad.io” when you are using Elaad’s Test OCN Node.

 

1. Get OCN Node versions and endpoints

We will first send a GET request to the OCN Node’s versions endpoint, using the TOKEN_A we received from the faucet. Note that curl requests can be imported into e.g. Postman or Insomnia if desired.

curl https://qa-client.emobilify.com/ocpi/versions -H 'Authorization: Token {{TOKEN_A}}'

You should see a JSON response with OCPI status code 1000. The response data will tell you that version 2.2 can be found at https://qa-client.emobilify.com/ocpi/2.2. Do the same for this endpoint:

curl https://qa-client.emobilify.com/ocpi/2.2 -H 'Authorization: Token {{TOKEN_A}}'

You should see a long list of OCPI version 2.2 endpoints implemented by the OCN Node. You will want to save these endpoints for future reference in your application’s database. For now though, we just need one endpoint. Find the endpoint URL for the module identifier “credentials”. This will be the one we use to connect to the node:

{ "identifier": "credentials", "role": "SENDER", "url": "https://qa-client.emobilify.com/ocpi/2.2/credentials" }

 

2. Ensure OCN Node can access our versions and endpoints

During the credentials handshake, the OCN Node will attempt to request our own versions and endpoints, just as we did before in step 1. The OCN Node needs to know where to contact us in case there is a message from another party that needs to be routed to us. It can also help to filter requests, in the case that we have not implemented a specific OCPI module that another party is requesting from us.

If you have not already done so, we can spin up a quick server that will display our versions and endpoints as follows (note: requires NodeJS, Express and UUID):

 

 

This will create an authorization token that the OCN Node should use to access our own endpoints. It is logged on start. Be sure to make a note of the authorization token as we will need it later. Note also the PUBLIC_IP. We want the OCN Node to be able to access these endpoints from the outside, so we should make sure that the server is reachable via the public IP we set.

 

3. Credentials handshake

Now we are ready to connect to the OCN Node. The credentials request is detailed below. Make sure to replace the variables TOKEN_A, TOKEN_B and PUBLIC_IP, PARTY_ID and COUNTRY_CODE where described. TOKEN_A should match the one generated for you by the faucet. TOKEN_B should match the authorization token that you have created. Meanwhile, PUBLIC_IP should point to your publicly accessible web service. Lastly, PARTY_ID and COUNTRY_CODE refer to the same OCPI credentials that you used when generating the registration token and entering details to the OCN Registry.

 

 

If all goes well, you should see a response with OCPI status code 1000 and the OCN Node’s credentials returned in the body.