NAV Navbar
Shell HTTP JavaScript Node.JS Ruby Python Java Go

Introduction

Last Updated: September 22, 2021

The Urjanet API allows you to interact programmatically with the Urjanet Utility Data Platform. Through this REST API you can perform a variety of actions, from requesting utility data from providers to managing your users and organization.

This document refers to a few different personas:

Base URL: https://api.urjanet.com

Rate Limiting

The Urjanet API's rate limits are the following:

API Rate Limits

Sandbox API Rate Limits

Error Responses

Error responses are served with a non-200-series HTTP code. Usually a JSON response will be attached, but some errors will respond with different kinds of body. In these circumstances where a response structure cannot be parsed, consider the HTTP code’s core meaning to take precedence. For instance, you may occasionally see a HTTP 404 along with a HTML response. In this case, it’s safe to assume that the content cannot be found (HTTP 404 means “Not Found”).

HTTP Status Codes and Messages

Code Text Description Troubleshooting tips
200 OK The request was successful!
304 Not Modified There was no new data to return.
400 Bad Request The request was invalid or cannot be otherwise served. An accompanying error message will explain further. Double check the format of your JSON request body.
401 Unauthorized There was a problem authenticating your request. This could be due to missing or incorrect authentication credentials. This may also be returned in other undefined circumstances. Check that you are using the correct authentication method and that your credentials are correct.
403 Forbidden The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. Check that your account has the necessary permission to perform the operation.
404 Not Found The URI requested is invalid or the resource requested, such as an account or provider, does not exist. Check that you are using valid parameters and the correct URI for the endpoint you’re using.
406 Not Acceptable Returned when an invalid format is specified in the request. Generally, this occurs where your client fails to properly include the headers to accept the response type. Check that you are correctly passing expected query parameters, including expected headers, in your request.
409 Conflict Returned when the resource cannot be modified in the requested way as it would conflict with another resource. Usually this occurs when trying to name a resource with a name that is already in use, or when trying to delete a resource which is linked via other resources.
410 Gone This resource is gone. Used to indicate that an API endpoint has been turned off.
422 Unprocessable Entity Returned when the data is unable to be processed. Check that the data you are sending in your request is valid. For example, this data could be the JSON body of your request or an image.
429 Too Many Requests Returned when a request cannot be served due to the App's rate limit having been exhausted for the resource. See Rate Limiting. Check the number of requests per timeframe allowed with the endpoint you’re using. Wait for the timeframe to reset. Space out your requests to ensure you don’t hit rate limits.
500 Internal Server Error Something is broken. This is usually a temporary error, for example in a high load situation or if an endpoint is temporarily having issues. Check the Urjanet Status Page or simply wait and try again later.
502 Bad Gateway Urjanet API is down, or being upgraded Check the Urjanet Status Page or simply wait and try again later.
503 Service Unavailable The Urjanet servers are up, but overloaded with requests. Try again later. Check the Urjanet Status Page or simply wait and try again later.
504 Gateway Timeout The Urjanet servers are up, but the request couldn’t be serviced due to some failure within the internal stack. Try again later. Check the Urjanet Status Page or simply wait and try again later.

When an error occurs during a request, detailed information about the error is returned in the response body to aid in diagnosing the problem.

{
    "error": "Entity Not Found",
    "message": [
        "No UtilityProvider found at 8888888"
    ],
    "path": "/api/public/v1/identity/providers/8888888",
    "status": 404,
    "timestamp": 1632319685942
}

Response Details

On-Demand Data Webhooks

Webhook Response

{
   "requestUri":"https://api.urjanet.com/credit/requests/3579",
   "correlationId":"test-urjanet-test2018",
   "completionStatus":"SUCCESS",
   "completionStatusDetail":"MULTIPLE_ACCOUNTS_ON_SITE"
}

Urjanet can send webhook events that notify you whenever there is a significant status update to a data request. This includes notification when data is ready for download or when a login failure occurs.

When an update occurs, Urjanet sends an event containing the new status via an HTTP POST to the webhookUrl specified on the data request. Urjanet expects a 2XX response from your server to indicate that you received the response. If we do not receive a 2XX response or are unable to deliver it for any other reason, we will attempt to resend the webhook every hour for up to seven days.

See below for a complete list of statuses

Completion Status Completion Status Detail Description
SUCCESS null Successfully found and delivered statements
SUCCESS NO_STATEMENTS_IN_PERIOD Credentials were valid, but no statements were found in the given date range
SUCCESS MULTIPLE_ACCOUNTS_ON_SITE Credentials were valid, multiple accounts are available on the site. Statements for multiple accounts will be returned
PENDING RETRYING_UNTIL_EXPIRATION When a request errors out with GENERAL_FAILURE, we retry it until it succeeds or expires
FAILURE ACCOUNT_NOT_FOUND Credentials were valid, but no statements were found with the given account number
FAILURE CREDENTIALS_INVALID Confirmed login failure
FAILURE MISSING_REQUIRED_PARAMETER Additional parameters are required to complete the request. The supplied credentials most likely have extra security requiring password2
FAILURE MISSING_REQUIRED_DATA The utility company failed to provide critical data for this account
FAILURE MULTI_FACTOR_AUTH_FAILURE Confirmed login failure due to unsupported multi factor authentication
FAILURE MULTI_FACTOR_AUTH_TIMEOUT User input for MFA response was not provided soon enough, so the navigation timed out.
FAILURE UNSUPPORTED_ACCOUNT_PREPAID Account not supported due to prepaid status
FAILURE UNSUPPORTED_CAPTCHA We encountered an unsupported captcha
FAILURE USER_ACTION_REQUIRED Some form of input is required that Urjanet cannot perform on behalf of the owner
FAILURE WEBSITE_DOWN The website is currently down for maintenance. The customer can resubmit the job at a later time when the website is up.
FAILURE LIMITED_ACCESS Credentials were valid, but user does not have access to billing data
FAILURE GENERAL_FAILURE Covers all other failures outside those described above
FAILURE PROVIDER_NOT_CURRENTLY_SUPPORTED Provider was marked as unsupported after request was submitted
FAILURE LOGIN_ATTEMPTS_EXCEEDED User has exceeded the maximum number of login attempts allowed. Try again later.
TIMEOUT null Request did not complete within the given timeout (Deprecated; may be present in older data)
CANCELLED null Request was successfully submitted but later cancelled by the user

Recurring Data Webhooks

Webhook Response

{
   "eventType": "RECURRING_REQUEST_COMPLETE",
   "created": "2021-02-05T16:32:16+00:00",
   "subject": "CREDENTIAL",
   "entityId":"https://api.urjanet.com/apautomation/credentials/3579",
   "correlationId":"test-urjanet-test2018",
   "status":"OK",
   "statusDetail":"NO_ACTION_REQUIRED"
}

Urjanet can also send webhook events for any notable events for recurring requests. For example, this could include if a new statement is available or we notice a credential is now resulting in login failure.

To specify the webhook URI that you would like the events to be POSTed to, you can update it in the Urjanet Console from the Configurations tab on the My Account page.

When sending a webhook, Urjanet looks for a 2xx response. If such a response is not received, it will be assumed that the webhook failed to deliver and the Urjanet platform will continue to send the webhook response 4 times every 6 hours for a total of 1 day. Urjanet assumes the webhook failed to deliver if there isn’t a 2xx response.

See below for a complete list of statuses:

Event Types

Event Type Subject Types Description
RECURRING_REQUEST_COMPLETE ACCOUNT / CREDENTIAL This event is sent when an attempted extraction is completed for an account or credential.
STATUS_CHANGE ACCOUNT / CREDENTIAL This event is sent for any status changes outside of a scheduled extraction. Generally, this is because of an Urjanet employee investigating unknown issues and updating the status to reflect what the problem is. Any statuses may be sent with this event type except for PENDING (and the associated status details).
MODIFIED_STATEMENT STATEMENT Indicates that an existing statement has been updated with modified data. Generally, this is because of updates to the extraction logic that are minor enough not to affect passing data quality audits
NEW_STATEMENT STATEMENT Indicates that a new statement has been initially stored for the first time.

Credential Events

Status Status Detail Description
OK NO_ACTION_REQUIRED Login was successful and statements were extracted
ACTION_REQUIRED UNSUPPORTED_CAPTCHA Confirmed login failure due to unsupported captcha image
ACTION_REQUIRED MULTI_FACTOR_AUTH_FAILURE Confirmed login failure due to unsupported multi factor authentication
ACTION_REQUIRED MULTI_FACTOR_AUTH_TIMEOUT This indicates that the last attempted extraction timed out while waiting for interactive user input for MFA.
ACTION_REQUIRED MULTI_FACTOR_AUTH_REFRESH_REQUIRED This is only applicable for credentials that require one-time passwords or other forms of MFA. This indicates the credential is ready to be refreshed (See example here).
ACTION_REQUIRED E_BILL_REQUIRED Requested account requires E-bill enrollment to be processed
ACTION_REQUIRED NO_ACCOUNTS_FOUND Login was successful, but no accounts were found behind this credential
ACTION_REQUIRED USER_ACTION_REQUIRED Some form of input is required that Urjanet cannot perform on behalf of the owner
ACTION_REQUIRED ACCOUNT_SETUP_REQUIRED The credentials need more setup before data can be acquired
ACTION_REQUIRED LOGIN_FAILURE Confirmed login failure
ACTION_REQUIRED SECURITY_QUESTIONS Confirmed login failure due to unspecified security question answers
ACTION_REQUIRED ACCOUNT_LOCKED Login was unsuccessful because the account has been locked
ACTION_REQUIRED LOGIN_ATTEMPTS_EXCEEDED User has exceeded the maximum number of login attempts allowed. Try again later.

Account Events

Status Status Detail Description
OK NO_ACTION_REQUIRED Login was successful and statements were extracted
ACCESS_ISSUE E_BILL_REQUIRED Requested account requires E-bill enrollment to be processed
ACCESS_ISSUE ACCOUNT_NUMBER_CHANGE The number for this account number has been changed by the provider
ACCESS_ISSUE INVALID_SOURCE The source type retrieved from the website cannot be processed by Urjanet
ACCESS_ISSUE UNDER_REVIEW All credentials for this account are either disabled or experiencing access issues
ACCESS_ISSUE ACCOUNT_NOT_FOUND Credentials were valid, but no statements were found with the given account number
ACCESS_ISSUE ACCOUNT_SETUP_REQUIRED The account needs more setup before data can be acquired
OLD DORMANT A new statement for this account has not posted in at least 45 days
OLD ACCOUNT_CLOSED This account is confirmed to be closed by our system

Multi Factor Authentication

MFA Challenge

{
   "requestUri":"https://api.urjanet.com/credit/requests/3579",
   "correlationId":"test-urjanet-test2018",
   "eventType": "MFA_CHALLENGE",
   "responseCode": "MFA_RESPONSE_ONE_TIME_PASS",
   "metaData": {
     "MFA_CHALLENGE_CODE_METHOD": "XXX-XXXX-2434"
   }
}

MFA Challenge Response

{
   "responseCode": "MFA_RESPONSE_ONE_TIME_PASS",
   "value": "12345"
}

Login Success

{
   "requestUri":"https://api.urjanet.com/credit/requests/3579",
   "correlationId":"test-urjanet-test2018",
   "eventType": "LOGIN_SUCCESS"
}

Some utility providers may require multi-factor authentication (MFA) to sign in to the website before being able to extract data. These providers are flagged in our system with the hasMultiFactorAuthentication boolean (see here). To support this workflow, our system can send out webhook callbacks while the data extraction is running, and pause for asynchronous user input before continuing. It will also send along any useful metadata for responding to the challenge if available. These are expanded upon below. Each step that is blocked by user action will wait for approximately 2 minutes before timing out.

After receiving an MFA_CHALLENGE request, your system needs to respond with the user input to the challengeResponse endpoint (see here for example). The message body will contain the input value as well as the challenge type that it corresponds to (example on the right). Webhooks will also be sent once the navigation has completed logging in - whether that failed or succeeded. This can be used to mark the end of any necessary user input, and we will continue on to extract any data we find.

To indicate that your system is set up to integrate with this workflow, there is an optional interactive boolean flag when submitting new requests. If this is set to true, then a webhookUrl is required and the system will attempt to handle MFA as described. If the request is not marked as interactive and the extraction encounters an MFA challenge, it will exit immediately and, if possible, not trigger any code to be sent via text, email, etc.

Event Type Description
MFA_CHALLENGE This event indicates that an MFA challenge has been encountered, and we are waiting on user input to continue. See below for possible challenges and descriptions of each.
LOGIN_SUCCESS This event signifies that login was successful, and no further user input is required.
LOGIN_FAILURE This event signifies that login has failed, and no further user input is required.
Response Code Description
MFA_RESPONSE_ONE_TIME_PASS A one time password or PIN is required from the user. This was likely texted or e-mailed to them.
MFA_RESPONSE_CODE_METHOD The user must select the communication method they prefer for receiving the one time pass code.
MFA_RESPONSE_SECURITY_ANSWER The user must provide the answer for the corresponding security question provided as metadata.
MFA_RESPONSE_CAPTCHA_ANSWER The user must provider the correct value for the corresponding CAPTCHA image.
MFA_RESPONSE_MOBILE_NOTIFICATION This represents that a user must verify access through an external application (e.g. mobile app notification). No direct response is required; the user just needs to interact through that external app.
MFA_RESPONSE_PASS_CODE The user must offer a pass code that has already been set up with the utility provider (e.g. similar to a PIN)
Metadata Key Description
MFA_CHALLENGE_CODE_METHOD If known, this will specify the method that a one time pass code should have been sent to
MFA_CHALLENGE_CODE_METHOD_OPTIONS An array of possible methods for communicating a one time pass code - the user must select which option to use
MFA_CHALLENGE_SECURITY_QUESTION This is the question that a user must answer to verify access
MFA_CHALLENGE_CAPTCHA_IMAGE This is the BASE-64 encoded String for the CAPTCHA image that the user must answer

Credential Validation

Each solution has an endpoint which will validate credentials in less than 45 seconds. For a submission to be accepted, the provider must 1) support the specific solution (i.e. Solar, Credit, Identity, AP Automation) and 2) support credential validation.

Credential validation is enabled on a provider-wise basis. This feature's status can be seen in the supportsCredentialValidation field on the Provider object.

The responses returned via the credential validation endpoints are listed below:

Status Status Detail Description
SUCCESS null Credentials have been successfully identified as valid
TIMEOUT null We were not able to confirm the validity of credentials within the 45 second window
FAILURE CREDENTIALS_INVALID Credentials have been identified as invalid
FAILURE UNSUPPORTED_CAPTCHA Website requires a captcha to login
FAILURE WEBSITE_DOWN Provider website is down
FAILURE GENERAL_FAILURE Covers all other failures outside those described above

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Authentication

Users must be authenticated before they can interact with the Urjanet API.

Authentication is performed by submitting your credentials via an HTTP POST request to the login endpoint. This returns a JWT-encoded bearer token, which you then submit in the header of any subsequent request.

All requests must be made over HTTPS.

Login

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/auth/login \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.urjanet.com/auth/login HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.urjanet.com/auth/login',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "password": "string",
  "username": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.urjanet.com/auth/login',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.urjanet.com/auth/login',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.urjanet.com/auth/login', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/auth/login");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/auth/login", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /auth/login

Exchange username and password for a JWT token

Body parameter

{
  "password": "string",
  "username": "string"
}

Parameters

Parameter In Type Required Description
password body string false Your password to access Urjanet services
username body string false Your username to access Urjanet services

Example responses

200 Response

{
  "expires": "string",
  "message": "string",
  "status": 0,
  "token": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK AuthUserResponse
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Credit and Lending

The Credit & Lending API is designed to leverage utility data for credit risk assessment. The data Urjanet collects is formatted here to show the full transaction history for a given customer.

List Providers

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/providers \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/providers HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/providers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/providers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/providers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/providers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/providers

Search for a list of utility providers

Providers are the utility companies that Urjanet supports. You will query the list for your end users or select a specific provider to submit a data request.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Provider

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/providers/{providerId} \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/providers/{providerId} HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/providers/{providerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/providers/{providerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/providers/{providerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/providers/{providerId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/providers/{providerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/providers/{providerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/providers/{providerId}

Retrieve the details of a specific provider

Parameters

Parameter In Type Required Description
providerId path string true providerId

Example responses

200 Response

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Submit Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/credit/requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/credit/requests HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "interactive": true,
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/credit/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/credit/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/credit/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /credit/requests

Create credit request

To pull utility data for a customer you submit a data request object. After submitting a data request, Urjanet will work on the request in the background. Updates to the data request will be reflected in the completionStatus.

Real-time Credential Validation (RTCV)

The submit request endpoint is capable of testing the provided credential within 45 seconds of submission. In order to enable this functionality, the provider must support RTCV (indicated in the response of the list providers and retrieve provider endpoints) and the “interactive” parameter must be set to true. The credential validation response will be sent via webhook. These responses are listed here.

Body parameter

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "interactive": true,
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

Parameters

Parameter In Type Required Description
accountNumber body string false If provided, only data for this account will be extracted
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2
periodEnd body string false End date of statements to include; formatted YYYY-MM-DD
periodStart body string false Start date of statements to include; formatted YYYY-MM-DD
providerId body string true The primary key used to represent this provider
interactive body boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username body string true A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCreditRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Requests

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests

Search for a list of your previous submitted data requests

Click here for completion status details.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "periodEnd": "string",
        "periodStart": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCreditRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/credit/requests/downloads/consent \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/credit/requests/downloads/consent HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/downloads/consent',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/downloads/consent',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/credit/requests/downloads/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/credit/requests/downloads/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/downloads/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/credit/requests/downloads/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /credit/requests/downloads/consent

Initiate a download of all CREDIT request consents for a search

Body parameter

{
  "search": "string"
}
Parameter In Type Required Description
search body string false An rsql search string

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Request

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}

Retrieve the details of a specific data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCreditRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

MFA Challenge

Code samples

# You can also use wget
curl -X PUT https://api.urjanet.com/credit/requests/{requestId}/challengeResponse \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.urjanet.com/credit/requests/{requestId}/challengeResponse HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/challengeResponse',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/challengeResponse',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.urjanet.com/credit/requests/{requestId}/challengeResponse',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.urjanet.com/credit/requests/{requestId}/challengeResponse', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/challengeResponse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.urjanet.com/credit/requests/{requestId}/challengeResponse", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /credit/requests/{requestId}/challengeResponse

Submit the requested MFA information provided by a user

Body parameter

{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
value body string false The requested value from the user for MFA input
challenge body string false The particular challenge that this value corresponds to (e.g. one time pass, security question, etc)

Enumerated Values

Parameter Value
challenge MFA_RESPONSE_ONE_TIME_PASS
challenge MFA_RESPONSE_CODE_METHOD
challenge MFA_RESPONSE_CAPTCHA_ANSWER

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Cancel Request

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/credit/requests/{requestId}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/credit/requests/{requestId}/cancel HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/cancel',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/cancel',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/credit/requests/{requestId}/cancel',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/credit/requests/{requestId}/cancel', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/credit/requests/{requestId}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /credit/requests/{requestId}/cancel

Cancel a previously submitted data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

OK

{
  "_links": [
    {
      "href": "string",
      "rel": "string"
    }
  ],
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "CANCELLED",
  "completionStatusDetail": null,
  "correlationId": "string",
  "createdDate": "2018-08-23T17:31:03Z",
  "expirationDate": "2018-08-23T17:31:03Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string"
}

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCreditRequestResource
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

List Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts

Get a list of the account objects returned as part of a data request

An account is a single line of activity for a customer. Each data request can return one or many accounts.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "prepaid": true,
        "_links": {
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Account

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts/{accountId}

Retrieve a single account object returned as part of a data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "prepaid": true,
  "_links": {
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK AccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts/{accountId}/statements

Get a list of the statement objects returned as part of a data request

A statement is a unique invoice for a particular account. It represents the account's activity over a specific period of time. A data request may return one or many monthly statements depending on the submitted start/end dates and the amount of data made available by the utility provider.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "currency": "string",
        "totalBill": 0,
        "balanceAdjustments": 0,
        "dueDate": "string",
        "statementDate": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedCreditStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Statement Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: string'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*
Authorization: string

var headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'string'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'string'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"string"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source

Get the source document for a specific statement. This is usually a PDF version of the actual bill.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId
statementId path integer(int64) true statementId
Authorization header string false none

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none

List Payments

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts/{accountId}/payments

Get a list of the payment objects returned as part of a data request

A payment is a transaction made by the account holder to decrease the balance of the account. A data request may return one or many payments for each account.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "_embedded": {
    "payments": [
      {
        "_links": {
          "viewpaymentsource": "string",
          "self": "string"
        },
        "amount": 0,
        "paymentDate": "string",
        "currency": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedCreditPaymentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Payment Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: string'

GET https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*
Authorization: string

var headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'string'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'string'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"string"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/accounts/{accountId}/payments/{paymentId}/source

Get the source document showing the details of a specific payment

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId
paymentId path integer(int64) true paymentId
Authorization header string false none

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none

Submit Clone Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/credit/requests/{requestId}/clones \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/credit/requests/{requestId}/clones HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/clones',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/clones',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/credit/requests/{requestId}/clones',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/credit/requests/{requestId}/clones', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/clones");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/credit/requests/{requestId}/clones", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /credit/requests/{requestId}/clones

Create a copy of a previous credit request

Using a clone to create a credit request allows you to submit a new credit request without needing account credentials. See /credit/requests

Body parameter

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
periodEnd body string false End date of statements to include; formatted YYYY-MM-DD
periodStart body string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events
accountNumber body string false If provided, only data for this account will be extracted
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCreditRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/credit/requests/{requestId}/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/credit/requests/{requestId}/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/credit/requests/{requestId}/consent',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/credit/requests/{requestId}/consent',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/credit/requests/{requestId}/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/credit/requests/{requestId}/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/credit/requests/{requestId}/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/credit/requests/{requestId}/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credit/requests/{requestId}/consent

Get the consent data for a request

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:51Z",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:51Z",
  "termsOfServiceUrl": "string"
}

401 Response

Status Meaning Description Schema
200 OK OK ConsentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Solar

The Solar API enables accurate system sizing and ROI calculations for prospective solar buyers. Data returned here provides a full historical view of a customer's monthly usage and cost.

List Providers

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/providers \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/providers HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/providers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/providers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/providers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/providers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/providers

Search for a list of utility providers

Providers are the utility companies that Urjanet supports. You will query the list for your end users or select a specific provider to submit a data request.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Provider

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/providers/{providerId} \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/providers/{providerId} HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/providers/{providerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/providers/{providerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/providers/{providerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/providers/{providerId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/providers/{providerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/providers/{providerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/providers/{providerId}

Retrieve the details of a single provider

Parameters

Parameter In Type Required Description
providerId path string true providerId

Example responses

200 Response

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Submit Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/solar/requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/solar/requests HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/solar/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/solar/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/solar/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /solar/requests

Create solar request

To pull utility data for a customer you submit a data request object. After submitting a data request, Urjanet will work on the request in the background. Updates to the data request will be reflected in the completionStatus.

Real-time Credential Validation (RTCV)

The submit request endpoint is capable of testing the provided credential within 45 seconds of submission. In order to enable this functionality, the provider must support RTCV (indicated in the response of the list providers and retrieve provider endpoints) and the “interactive” parameter must be set to true. The credential validation response will be sent via webhook. These responses are listed here.

Body parameter

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

Parameters

Parameter In Type Required Description
accountNumber body string false If provided, only data for this account will be extracted
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2
interactive body boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
periodEnd body string false End date of statements to include; formatted YYYY-MM-DD
periodStart body string false Start date of statements to include; formatted YYYY-MM-DD
providerId body string true The primary key used to represent this provider
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username body string true A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicSolarRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Requests

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests

Search for a list of your previous submitted data requests

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "periodEnd": "string",
        "periodStart": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicSolarRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/solar/requests/downloads/consent \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/solar/requests/downloads/consent HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/downloads/consent',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/downloads/consent',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/solar/requests/downloads/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/solar/requests/downloads/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/downloads/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/solar/requests/downloads/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /solar/requests/downloads/consent

Initiate a download of all CREDIT request consents for a search

Body parameter

{
  "search": "string"
}
Parameter In Type Required Description
search body string false An rsql search string

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

MFA Challenge

Code samples

# You can also use wget
curl -X PUT https://api.urjanet.com/solar/requests/{requestId}/challengeResponse \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.urjanet.com/solar/requests/{requestId}/challengeResponse HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/challengeResponse',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/challengeResponse',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.urjanet.com/solar/requests/{requestId}/challengeResponse',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.urjanet.com/solar/requests/{requestId}/challengeResponse', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/challengeResponse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.urjanet.com/solar/requests/{requestId}/challengeResponse", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /solar/requests/{requestId}/challengeResponse

Submit the requested MFA information provided by a user

Body parameter

{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
value body string false The requested value from the user for MFA input
challenge body string false The particular challenge that this value corresponds to (e.g. one time pass, security question, etc)

Enumerated Values

Parameter Value
challenge MFA_RESPONSE_ONE_TIME_PASS
challenge MFA_RESPONSE_CODE_METHOD
challenge MFA_RESPONSE_CAPTCHA_ANSWER

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Cancel Solar Request

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/solar/requests/{requestId}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/solar/requests/{requestId}/cancel HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/cancel',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/cancel',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/solar/requests/{requestId}/cancel',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/solar/requests/{requestId}/cancel', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/solar/requests/{requestId}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /solar/requests/{requestId}/cancel

Cancel a previously submitted data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

OK

{
  "_links": [
    {
      "href": "string",
      "rel": "string"
    }
  ],
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "CANCELLED",
  "completionStatusDetail": null,
  "correlationId": "string",
  "createdDate": "2018-08-23T17:31:03Z",
  "expirationDate": "2018-08-23T17:31:03Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string"
}

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicSolarRequestResource
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Retrieve Request

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests/{requestId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}

Retrieve the details of a specific data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicSolarRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests/{requestId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}/accounts

Get a list of the account objects returned as part of a data request

An account is a single line of activity for a customer. Each data request can return one or many accounts.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "prepaid": true,
        "_links": {
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Account

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}/accounts/{accountId}

Retrieve a single account object returned as part of a data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "prepaid": true,
  "_links": {
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK AccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}/accounts/{accountId}/statements

Get a list of the statement objects returned as part of a data request

A statement is a unique invoice for a particular account. It represents the account's activity over a specific period of time. A data request may return one or many monthly statements depending on the submitted start/end dates and the amount of data made available by the utility provider.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "currency": "string",
        "totalBill": 0,
        "electricCost": 0,
        "consumption": 0,
        "demand": 0,
        "tariff": "string",
        "statementMessages": "string",
        "statementIntervalStart": "string",
        "statementIntervalEnd": "string",
        "usageIntervalStart": "string",
        "usageIntervalEnd": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedSolarStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Statement Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: string'

GET https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*
Authorization: string

var headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'string'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'string'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"string"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source

Get the source document for a specific statement. This is usually a PDF version of the actual bill.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId
statementId path integer(int64) true statementId
Authorization header string false none

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none

Submit Clone Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/solar/requests/{requestId}/clones \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/solar/requests/{requestId}/clones HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/clones',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/clones',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/solar/requests/{requestId}/clones',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/solar/requests/{requestId}/clones', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/clones");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/solar/requests/{requestId}/clones", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /solar/requests/{requestId}/clones

Create a copy of a previous solar request

Using a clone to create a solar request allows you to submit a new solar request without needing account credentials. See /solar/requests

Body parameter

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
periodEnd body string false End date of statements to include; formatted YYYY-MM-DD
periodStart body string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events
accountNumber body string false If provided, only data for this account will be extracted
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicSolarRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/solar/requests/{requestId}/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/solar/requests/{requestId}/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/solar/requests/{requestId}/consent',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/solar/requests/{requestId}/consent',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/solar/requests/{requestId}/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/solar/requests/{requestId}/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/solar/requests/{requestId}/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/solar/requests/{requestId}/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /solar/requests/{requestId}/consent

Get the consent data for a request

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:51Z",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:51Z",
  "termsOfServiceUrl": "string"
}

401 Response

Status Meaning Description Schema
200 OK OK ConsentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Identity Verification

The Identity API provides utility data for address verification. Data requests made here will return name and address data for the most recent utility bill.

List Providers

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/providers \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/providers HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/providers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/providers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/providers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/providers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/providers

Search for a list of utility providers

Providers are the utility companies that Urjanet supports. You will query the list for your end users or select a specific provider to submit a data request.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Provider

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/providers/{providerId} \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/providers/{providerId} HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/providers/{providerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/providers/{providerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/providers/{providerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/providers/{providerId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/providers/{providerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/providers/{providerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/providers/{providerId}

Retrieve the details of a single provider

Parameters

Parameter In Type Required Description
providerId path string true providerId

Example responses

200 Response

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Submit Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/identity/requests \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/identity/requests HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/identity/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/identity/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/identity/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /identity/requests

Create identity request

To pull utility data for a customer you submit a data request object. After submitting a data request, Urjanet will work on the request in the background. Updates to the data request will be reflected in the completionStatus.

Real-time Credential Validation (RTCV)

The submit request endpoint is capable of testing the provided credential within 45 seconds of submission. In order to enable this functionality, the provider must support RTCV (indicated in the response of the list providers and retrieve provider endpoints) and the “interactive” parameter must be set to true. The credential validation response will be sent via webhook. These responses are listed here.

Body parameter

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

Parameters

Parameter In Type Required Description
accountNumber body string false If provided, only data for this account will be extracted
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2
interactive body boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
providerId body string true The primary key used to represent this provider
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username body string true A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicIdentityRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Requests

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests

Search for a list of your previous submitted data requests

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicIdentityRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Download Requests

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/identity/requests/downloads/consent \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/identity/requests/downloads/consent HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/downloads/consent',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/downloads/consent',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/identity/requests/downloads/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/identity/requests/downloads/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/downloads/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/identity/requests/downloads/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /identity/requests/downloads/consent

Initiate a download of all CREDIT request consents for a search

Body parameter

{
  "search": "string"
}

Parameters

Parameter In Type Required Description
search body string false An rsql search string

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

MFA Challenge

Code samples

# You can also use wget
curl -X PUT https://api.urjanet.com/identity/requests/{requestId}/challengeResponse \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.urjanet.com/identity/requests/{requestId}/challengeResponse HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/challengeResponse',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/challengeResponse',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.urjanet.com/identity/requests/{requestId}/challengeResponse',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.urjanet.com/identity/requests/{requestId}/challengeResponse', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/challengeResponse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.urjanet.com/identity/requests/{requestId}/challengeResponse", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /identity/requests/{requestId}/challengeResponse

Submit the requested MFA information provided by a user

Body parameter

{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
value body string false The requested value from the user for MFA input
challenge body string false The particular challenge that this value corresponds to (e.g. one time pass, security question, etc)

Enumerated Values

Parameter Value
challenge MFA_RESPONSE_ONE_TIME_PASS
challenge MFA_RESPONSE_CODE_METHOD
challenge MFA_RESPONSE_CAPTCHA_ANSWER

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Cancel Identity Request

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/identity/requests/{requestId}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/identity/requests/{requestId}/cancel HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/cancel',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/cancel',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/identity/requests/{requestId}/cancel',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/identity/requests/{requestId}/cancel', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/identity/requests/{requestId}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /identity/requests/{requestId}/cancel

Cancel a previously submitted data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

OK

{
  "_links": [
    {
      "href": "string",
      "rel": "string"
    }
  ],
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "CANCELLED",
  "completionStatusDetail": null,
  "correlationId": "string",
  "createdDate": "2018-08-23T17:31:03Z",
  "expirationDate": "2018-08-23T17:31:03Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicIdentityRequestResource
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Retrieve Request

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests/{requestId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}

Retrieve the details of a specific data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicIdentityRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests/{requestId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}/accounts

Get a list of the account objects returned as part of a data request

An account is a single line of activity for a customer. Each data request can return one or many accounts.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "prepaid": true,
        "_links": {
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Account

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}/accounts/{accountId}

Retrieve a single account object returned as part of a data request

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "prepaid": true,
  "_links": {
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK AccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}/accounts/{accountId}/statements

Get a list of the statement objects returned as part of a data request

A statement is a unique invoice for a particular account. It represents the account's activity over a specific period of time. A data request may return one or many monthly statements depending on the submitted start/end dates and the amount of data made available by the utility provider.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "statementDate": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedIdentityStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Statement Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: string'

GET https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*
Authorization: string

var headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'string'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'string'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'string'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"string"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}/accounts/{accountId}/statements/{statementId}/source

Get the source document for a specific statement. This is usually a PDF version of the actual bill.

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
accountId path integer(int64) true accountId
statementId path integer(int64) true statementId
Authorization header string false none

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none

Submit Clone Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/identity/requests/{requestId}/clones \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/identity/requests/{requestId}/clones HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/clones',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/clones',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/identity/requests/{requestId}/clones',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/identity/requests/{requestId}/clones', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/clones");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/identity/requests/{requestId}/clones", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /identity/requests/{requestId}/clones

Create a copy of a previous identity request

Using a clone to create a identity request allows you to submit a new identity request without needing account credentials. See /identity/requests

Body parameter

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Parameters

Parameter In Type Required Description
requestId path integer(int64) true requestId
periodEnd body string false End date of statements to include; formatted YYYY-MM-DD
periodStart body string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl body string false Urjanet will send status updates to this URL via HTTP events
accountNumber body string false If provided, only data for this account will be extracted
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
timeout body integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

Example responses

200 Response

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicIdentityRequestResource
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/identity/requests/{requestId}/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/identity/requests/{requestId}/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/identity/requests/{requestId}/consent',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/identity/requests/{requestId}/consent',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/identity/requests/{requestId}/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/identity/requests/{requestId}/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/identity/requests/{requestId}/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/identity/requests/{requestId}/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /identity/requests/{requestId}/consent

Get the consent data for a request

Parameter In Type Required Description
requestId path integer(int64) true requestId

Example responses

200 Response

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:51Z",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:51Z",
  "termsOfServiceUrl": "string"
}

401 Response

Status Meaning Description Schema
200 OK OK ConsentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Bill Payment/AP Automation

The Bill Payment API (formerly known as AP Automation) is designed to provide access to utility data for enabling automated bill payment. The data Urjanet collects is formatted to show the utility bill details that are relevant for processing and paying.

Credential Status

Urjanet provides credential status in Console and through the API’s credential level endpoints. When the credential job is complete, the credential’s status and status detail display the credential's current state. For example, if a credential status is OK - No Action Required, the credential’s login was successful and statements were extracted.

See below for a complete list of credential statuses.

Completion Status Completion Status Detail Description
OK NO_ACTION_REQUIRED No action required
PENDING WEBSITE_DOWN Temporary problem in accessing the website
PENDING UNDER_REVIEW Urjanet is reviewing the issue and will update the status shortly
PENDING STATEMENT_UNAVAILABLE Temporary problem in accessing bills within this credential
PENDING NAVIGATION_FAILURE No action required
ACTION_REQUIRED LOGIN_FAILURE Login attempt failed. Update your credentials, and the system will try again
ACTION_REQUIRED NO_ACCOUNTS_FOUND No accounts found within this credential
ACTION_REQUIRED UNSUPPORTED_CAPTCHA Login failed due to a captcha required by the utility. In some cases, captcha can be disabled in the utility's website settings.
ACTION_REQUIRED MULTI_FACTOR_AUTH_FAILURE Login failed due to PIN or Access Code required by the utility for login.
ACTION_REQUIRED USER_ACTION_REQUIRED Login attempt passed, but unable to reach to the account information
ACTION_REQUIRED SECURITY_QUESTIONS Login attempt failed due to security questions posed by the utility. Add security questions & answers using the additional login fields.
ACTION_REQUIRED ACCOUNT_LOCKED Login failed due to account lockout. Please unlock the account.
ACTION_REQUIRED E_BILL_REQUIRED Enrollment in electronic billing is required to access online statements.

Account Status

Urjanet provides account status in Console and through the API’s account level endpoints. When the account job is complete, the account’s status and status detail display the account’s current state. For example, if an account status is OK - No Action Required, the account’s credential login was successful and statements were extracted.

See below for a complete list of account statuses.

Completion Status Completion Status Detail Description
OK NO_ACTION_REQUIRED No action required
PENDING EXTRACTION FAILURE Pending an Urjanet fix
PENDING WEBSITE_DOWN Temporary problem in accessing the website
PENDING UNDER_REVIEW Urjanet is reviewing the issue and will update the status shortly
PENDING STATEMENT_UNAVAILABLE Temporary problem in accessing bills within this credential
PENDING NAVIGATION_FAILURE No action required
ACCESS_ISSUE ACCOUNT_NOT_FOUND Account not found in site
ACCESS_ISSUE E_BILL_REQUIRED Enrollment in electronic billing is required to access online statements.
ACCESS_ISSUE INVALID_SOURCE The data source available is in a format rejected by your organization.
ACCESS_ISSUE ACCOUNT_NUMBER_CHANGE Account number changed and this is no longer valid. Unsubscribe it.
OLD DORMANT Account has not seen a new bill for 45 days
OLD ACCOUNT_CLOSED This account has received a Final Bill notice or has been marked inactive on the provider's website.

List Providers

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/providers \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/providers HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/providers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/providers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/providers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/providers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/providers

Search for a list of utility providers

Providers are the utility companies that Urjanet supports. In order to submit a request to Urjanet, you will need a providerID. List Providers allows you to query the providers endpoint to find a list of providers that meet specific criteria or to search for a specific provider.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Provider

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/providers/{providerId} \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/providers/{providerId} HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/providers/{providerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/providers/{providerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/providers/{providerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/providers/{providerId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/providers/{providerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/providers/{providerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/providers/{providerId}

Retrieve the details of a specific provider

Once you have found a specific provider that you would like to submit a request for, you can see the details of that provider using the Retrieve Provider endpoint. This allows you to understand specific details of a utility provider like the required login fields, what solutions are enabled for this provider and the service type.

Parameters

Parameter In Type Required Description
providerId path string true providerId

Example responses

200 Response

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create Credential

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/providers/{providerId}/credentials \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/providers/{providerId}/credentials HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/providers/{providerId}/credentials',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/providers/{providerId}/credentials',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/providers/{providerId}/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/providers/{providerId}/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/providers/{providerId}/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/providers/{providerId}/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/providers/{providerId}/credentials

Create a credential

The credentials endpoint can also be used to create a new credential in the system. In order to create a new credential in the system, you must use the provider Id in the path and submit the required username and password as defined by the providers endpoint, and an organizationId.

Body parameter

{
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}

Parameters

Parameter In Type Required Description
providerId path string true providerId
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
username body string false A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials

Get all credentials

A credential is defined as a set of login requirements needed for Urjanet to access data from utility providers. The credentials endpoints allows you to get a list of all the credentials that are in the Urjanet system.

Parameters

Parameter In Type Required Description
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentials": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "refreshUrl": "string",
          "download": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:51Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credential Deletion Logs

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/deleted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/deleted HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/deleted',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/deleted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/deleted

Search deletion logs

Criteria recognized: operation, created, createdBy

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "deletionLogs": [
      {
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:51Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Credentials

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/deleted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/deleted HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/deleted',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/deleted',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/deleted

Create a count of credentials/accounts/statements that would be deleted for the given Credential IDs

Before deleting a credential, it is recommended that you understand the impact of the deletion. To do this, the credentials/deleted endpoint can be used. This will return a list of credentials, accounts, and statements that will be impacted by the deletion.

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
ids body [string] false none

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Resend Credential webhooks

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/lastWebhook \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/lastWebhook HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/lastWebhook',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "resourceIds": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/lastWebhook',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/lastWebhook',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/lastWebhook', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/lastWebhook");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/lastWebhook", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/lastWebhook

Submit a request to resend webhooks for credentials and the associated accounts

Resend webhooks for list of credentials and the accounts associated with each credential. Make sure that webhook is set for your organization.

Body parameter

{
  "resourceIds": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
resourceIds body [string] true List of credential IDs

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Accepted None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get A Credential Deletion Log

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/deleted/{deletionLogId}

Get a specific existing DeletionLog row

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Credentials By Deletion Log

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/deleted/{deletionLogId}

Delete the given Credential IDs and update the deletion log

After understanding the impact of a deletion using the credentials/deleted endpoint, you can execute the deletion using this endpoint. This will also update the deletion log.

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Credential

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}

Retrieve a single credential

If you have the credentialId for a specific credential, you can get the details of that credential.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Credential

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/apautomation/credentials/{credentialId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/apautomation/credentials/{credentialId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "enabled": true,
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "runHistory": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/apautomation/credentials/{credentialId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/apautomation/credentials/{credentialId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/apautomation/credentials/{credentialId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /apautomation/credentials/{credentialId}

Update a credential

To make updates to a credential, make a PATCH call to the credentials endpoint with a specific credentialId. For a list of fields that can be updated look here.

Body parameter

{
  "enabled": true,
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "runHistory": true
}

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
enabled body boolean false Controls whether data will continue to be extracted behind this credential.
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
username body string false A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2
interactive body boolean false none
runHistory body boolean false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

List Credential's Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/accounts

Get all Accounts for a Credential

If you would like to find all the accounts that exist behind a credential, you can use this credentials endpoint.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Generate Update Password URL

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/updateUrl", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/updateUrl

Generate a link to Connect that allows a user to update their password

This endpoint generates a URL that allows a user to update their password for a specified credential. The URL generated will only work for 72 hours after it is generated.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "updateUrl": "string",
  "expiration": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialUrlResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credential Events

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/events \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/events HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/events',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/events',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/events', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/events

Get all credential events

This endpoint allows you to view the event history for a credential. For example, you query this endpoint to find out when a credential was created and who it was created by.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentialEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "eventType": "CREDENTIAL_CREATED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialEventResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/consent',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/consent',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/consent

Get credential consent information

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:51Z",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:51Z",
  "termsOfServiceUrl": "string"
}

401 Response

Status Meaning Description Schema
200 OK OK ConsentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Sensitive Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/passwords", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/passwords

Get the sensitive information for a credential

This endpoint allows you to retrieve the passwords for a given credential.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK CredentialSecretsResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Credentials Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/downloads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/downloads HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "credentialCriteria": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/downloads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/downloads

Submit a download request for all the credentials

Downloading a CSV file with credentials and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "credentialCriteria": "string"
}

Parameters

Parameter In Type Required Description
credentialCriteria body string false An RSQL search string for a list of credentials

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/downloads/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/downloads/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/downloads/consent',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/downloads/consent',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/downloads/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/downloads/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/downloads/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/downloads/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/downloads/consent

Submit a DownloadRequest for Consent Information as CSV

The contents of the file will follow this schema.

Parameter In Type Required Description
search query string false search

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Credential Sample File Download

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/providers/{providerId}/credentials/bulkuploads/sample", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/providers/{providerId}/credentials/bulkuploads/sample

Get the CSV credential upload sample for a particular provider

Each provider has the potential of having distinct input fields as login credentials. To ensure that you have the correct fields for a provider before submitting bulk credentials, you can download a CSV that lists the required fields. In addition to credential fields, the correlation and custom data fields are also included as optional fields.

Parameters

Parameter In Type Required Description
providerId path string true request

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Accepted None
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

Statements Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/statements/downloads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/statements/downloads HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/statements/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/statements/downloads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/statements/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/statements/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/statements/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/statements/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/statements/downloads

Submit a download request for all the statements for selected search criteria

Downloading a CSV file with accounts, statements, and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "search": "string"
}

Parameters

Parameter In Type Required Description
search body string false An RSQL search string for a list of statements

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/statements

Get a list of statements in the Urjanet system

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "accounts": "string",
          "source": "string",
          "meters": "string",
          "charges": "string",
          "self": "string"
        },
        "serviceAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "billingAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "paymentAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "amountDue": 0,
        "balance": 0,
        "lateFees": 0,
        "dueDate": "2022-04-27",
        "endDate": "2022-04-27",
        "invoiceNumber": "string",
        "createdDate": "2022-04-27",
        "modifiedDate": "2022-04-27",
        "startDate": "2022-04-27",
        "statementDate": "2022-04-27",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create Account

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/accounts HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/accounts

Create a new account in the Urjanet system

The Urjanet system does not require you to provide an expected account in order to start receiving data. If you know which specific accounts you would like Urjanet to retrieve, you can use this Accounts endpoint.

Body parameter

{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}

Parameters

Parameter In Type Required Description
accountNumber body string false none
enabled body boolean false Controls whether data will continue to be extracted for this account.
providerId body string false The primary key used to represent this provider

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts

Get a list of accounts in the Urjanet system

Urjanet retrieves Accounts from utility providers using the credentials that are submitted. There can be multiple accounts behind a credential. The Accounts endpoint allows you to query for a list of accounts that are currently in the Urjanet system.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Account

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/{accountId}

Retrieve a single account from the Urjanet system

If you already know the accountId for an account, you can use the Accounts endpoint to retrieve the details of that specific account.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Account

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/apautomation/accounts/{accountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/apautomation/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "enabled": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/apautomation/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/apautomation/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/apautomation/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /apautomation/accounts/{accountId}

Update an Account

To make updates to a specific account, you can make a PATCH call to the accounts endpoint. A list of specific fields that can be updated can be found here.

Body parameter

{
  "enabled": true
}

Parameters

Parameter In Type Required Description
accountId path string true accountId
enabled body boolean false Controls whether data will continue to be extracted for this account.

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

List Account Deletion Logs

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/deleted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/deleted HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/deleted',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/deleted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/deleted

Search deletion logs

Criteria recognized: operation, created, createdBy

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "deletionLogs": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:51Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Accounts

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/accounts/deleted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/accounts/deleted HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/deleted',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/deleted',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/accounts/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/accounts/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/accounts/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/accounts/deleted

Create a count of credentials/accounts/statements that would be deleted for the given Credential IDs

Before deleting an account, it is recommended that you understand the impact of the deletion. To do this, the accounts/deleted endpoint can be used. This will return a list of credentials, accounts, and statements that will be impacted by the deletion.

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
ids body [string] false none

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get An Account Deletion Log

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/deleted/{deletionLogId}

Get a specific existing DeletionLog row

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Accounts By Deletion Log

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/accounts/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/accounts/deleted/{deletionLogId}

Delete the given Account IDs and update the deletion log

Delete the given Account IDs and update the deletion log

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Account Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/accounts/{accountId}/downloads \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/accounts/{accountId}/downloads HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/downloads',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/accounts/{accountId}/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/accounts/{accountId}/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/accounts/{accountId}/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/accounts/{accountId}/downloads

Submit a download request for an account, its statements, and the associate metadata

Downloading a CSV file with accounts and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Accounts Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/accounts/downloads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/accounts/downloads HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountIds": "string",
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/downloads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/accounts/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/accounts/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/accounts/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/accounts/downloads

Submit a download request for all the statements for selected accounts

Downloading a CSV file with accounts, statements, and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "accountIds": "string",
  "search": "string"
}

Parameters

Parameter In Type Required Description
accountIds body string false A comma-separated list of account IDs
search body string false An RSQL search string for a list of accounts

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Sub-Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/{accountId}/subAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/{accountId}/subAccounts

List all sub-accounts of a summary account

With the subAccounts endpoint, you can get a list of sub accounts associated with a summary account. This allows you to understand the relationship between summary accounts and sub accounts.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/{accountId}/credentials \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/{accountId}/credentials HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/credentials',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/credentials',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/{accountId}/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/{accountId}/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/{accountId}/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/{accountId}/credentials

Get all Credentials for an Account

For a specific account, you can list all credentials that have access to this account. This allows you to manage access to a specific account.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentials": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "refreshUrl": "string",
          "download": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:51Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Events

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/{accountId}/events \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/{accountId}/events HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/events',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/{accountId}/events',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/{accountId}/events', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/{accountId}/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/{accountId}/events

Get all Events for an Account

This endpoint allows you to view the event history for an account. For example, you query this endpoint to find out when an account was created and who it was created by.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accountEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "eventType": "ACCOUNT_REQUESTED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountEventResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/accounts/{accountId}/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/accounts/{accountId}/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/accounts/{accountId}/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/accounts/{accountId}/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/accounts/{accountId}/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/accounts/{accountId}/statements

List all Statements for a given Account

If you have a specific accountId and you would like to get all statements for that account, you can use the Accounts, Statements endpoint.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "accounts": "string",
          "source": "string",
          "meters": "string",
          "charges": "string",
          "self": "string"
        },
        "serviceAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "billingAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "paymentAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "amountDue": 0,
        "balance": 0,
        "lateFees": 0,
        "dueDate": "2022-04-27",
        "endDate": "2022-04-27",
        "invoiceNumber": "string",
        "createdDate": "2022-04-27",
        "modifiedDate": "2022-04-27",
        "startDate": "2022-04-27",
        "statementDate": "2022-04-27",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Statement

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/statements/{statementId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/statements/{statementId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/statements/{statementId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/statements/{statementId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/statements/{statementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/statements/{statementId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/statements/{statementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/statements/{statementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/statements/{statementId}

Get a single Statement

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

200 Response

{
  "_links": {
    "accounts": "string",
    "source": "string",
    "meters": "string",
    "charges": "string",
    "self": "string"
  },
  "serviceAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "billingAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "paymentAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "amountDue": 0,
  "balance": 0,
  "lateFees": 0,
  "dueDate": "2022-04-27",
  "endDate": "2022-04-27",
  "invoiceNumber": "string",
  "createdDate": "2022-04-27",
  "modifiedDate": "2022-04-27",
  "startDate": "2022-04-27",
  "statementDate": "2022-04-27",
  "statementType": "BILL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statement Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/statements/{statementId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/statements/{statementId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/statements/{statementId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/statements/{statementId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/statements/{statementId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/statements/{statementId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/statements/{statementId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/statements/{statementId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/statements/{statementId}/accounts

Get a list of accounts that are on a given statement

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Download Statement Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/statements/{statementId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/statements/{statementId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/statements/{statementId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/statements/{statementId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/statements/{statementId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/statements/{statementId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/statements/{statementId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/statements/{statementId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/statements/{statementId}/source

Download a Statement's source file

Urjanet provides a copy of the source file for where the system retrieved data. In most cases this is a copy of the structured PDF. In some cases this may be a PDF rendering of a portion of the website. This endpoint allows you to retrieve the source files for a specific statement.

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

Retrieve Custom Data Labels

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/organization \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/organization HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/organization',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/organization',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/organization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/organization

Get the current user's Organization

An organization is used to define a specific customer within the Urjanet system. Each Urjanet customer has an organizationId and 10 custom data fields that can be defined for each organization.

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicOrganizationCustomDataResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Custom Data Labels

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/apautomation/organization \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/apautomation/organization HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/organization',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/organization',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/apautomation/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/apautomation/organization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/apautomation/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /apautomation/organization

Update the current user's organization custom data names

Custom data labels are defined at the organization level. Each organization can have up to 10 custom data labels defined. Use the organization endpoint to set labels for each custom data field. You do not need to define all custom data labels up front, but Urjanet will only store values for custom data fields with defined labels.

Body parameter

{
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string"
}

Parameters

Parameter In Type Required Description
customData1Name body string false none
customData2Name body string false none
customData3Name body string false none
customData4Name body string false none
customData5Name body string false none
customData6Name body string false none
customData7Name body string false none
customData8Name body string false none
customData9Name body string false none
customData10Name body string false none

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicOrganizationCustomDataResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Update Account Custom Data

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/apautomation/accounts/{accountId}/customData \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/apautomation/accounts/{accountId}/customData HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/accounts/{accountId}/customData',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "property1": "string",
  "property2": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/accounts/{accountId}/customData',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/apautomation/accounts/{accountId}/customData',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/apautomation/accounts/{accountId}/customData', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/accounts/{accountId}/customData");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/apautomation/accounts/{accountId}/customData", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /apautomation/accounts/{accountId}/customData

Update account custom data

Each account can have 10 custom data fields associated. Custom data allows you to organize accounts and tie them back to records in your system. To update a Custom data field, the field must already have a defined label. To define a Custom Data label, you must use the Organization endpoint.

Body parameter

{
  "property1": "string",
  "property2": "string"
}

Parameters

Parameter In Type Required Description
accountId path string true accountId
additionalProperties body string false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Update Credential Custom Data

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/apautomation/credentials/{credentialId}/customData \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/apautomation/credentials/{credentialId}/customData HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/customData',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "property1": "string",
  "property2": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/customData',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/apautomation/credentials/{credentialId}/customData',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/apautomation/credentials/{credentialId}/customData', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/customData");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/apautomation/credentials/{credentialId}/customData", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /apautomation/credentials/{credentialId}/customData

Update credential custom data

Each credential can have 10 custom data fields associated. Custom data allows you to organize accounts and tie them back to records in your system. To update a Custom data field, the field must already have a defined label. To define a Custom Data label, you must use the Organization endpoint.

Body parameter

{
  "property1": "string",
  "property2": "string"
}

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
additionalProperties body string false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Refresh Interactive Credentials

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/apautomation/credentials/{credentialId}/refresh", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /apautomation/credentials/{credentialId}/refresh

Initiate interactive refresh

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Generate Refresh Credential URL

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/apautomation/credentials/{credentialId}/refreshUrl", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /apautomation/credentials/{credentialId}/refreshUrl

Get a URL to initiate interactive refresh

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "refreshUrl": "string",
  "expiration": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialRefreshUrlResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Stream Download

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/downloads/{downloadRequestWebhookId} \
  -H 'Accept: */*'

GET https://api.urjanet.com/downloads/{downloadRequestWebhookId} HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*'

};

$.ajax({
  url: 'https://api.urjanet.com/downloads/{downloadRequestWebhookId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*'

};

fetch('https://api.urjanet.com/downloads/{downloadRequestWebhookId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*'
}

result = RestClient.get 'https://api.urjanet.com/downloads/{downloadRequestWebhookId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*'
}

r = requests.get('https://api.urjanet.com/downloads/{downloadRequestWebhookId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/downloads/{downloadRequestWebhookId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/downloads/{downloadRequestWebhookId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /downloads/{downloadRequestWebhookId}

Download a CSV file of requested data

Downloading data as a CSV file is actually a 2 step process. The first step prepares the download and provides a URL where the download can be found. The next step (this one) is to download the file using this endpoint. With this endpoint, you can download the credentials, accounts, statements, or associated metadata when it is ready.

Parameters

Parameter In Type Required Description
downloadRequestWebhookId path string true downloadRequestWebhookId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Accepted None
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

Credit Building

The Credit Building API is designed to use utility and telecom payment data for building credit profiles over time. The data Urjanet collects is formatted here to show the full transaction history for a given customer. It pulls history first and then continues to extract the latest statement and payment data as they become available.

Credential Status

Urjanet provides credential status in Console and through the API’s credential level endpoints. When the credential job is complete, the credential’s status and status detail display the credential's current state. For example, if a credential status is OK - No Action Required, the credential’s login was successful and statements were extracted.

See below for a complete list of credential statuses.

Completion Status Completion Status Detail Description
OK NO_ACTION_REQUIRED No action required
PENDING WEBSITE_DOWN Temporary problem in accessing the website
PENDING UNDER_REVIEW Urjanet is reviewing the issue and will update the status shortly
PENDING STATEMENT_UNAVAILABLE Temporary problem in accessing bills within this credential
PENDING NAVIGATION_FAILURE No action required
ACTION_REQUIRED LOGIN_FAILURE Login attempt failed. Update your credentials, and the system will try again
ACTION_REQUIRED NO_ACCOUNTS_FOUND No accounts found within this credential
ACTION_REQUIRED UNSUPPORTED_CAPTCHA Login failed due to a captcha required by the utility. In some cases, captcha can be disabled in the utility's website settings.
ACTION_REQUIRED MULTI_FACTOR_AUTH_FAILURE Login failed due to PIN or Access Code required by the utility for login.
ACTION_REQUIRED USER_ACTION_REQUIRED Login attempt passed, but unable to reach to the account information
ACTION_REQUIRED SECURITY_QUESTIONS Login attempt failed due to security questions posed by the utility. Add security questions & answers using the additional login fields.
ACTION_REQUIRED ACCOUNT_LOCKED Login failed due to account lockout. Please unlock the account.
ACTION_REQUIRED E_BILL_REQUIRED Enrollment in electronic billing is required to access online statements.

Account Status

Urjanet provides account status in Console and through the API’s account level endpoints. When the account job is complete, the account’s status and status detail display the account’s current state. For example, if an account status is OK - No Action Required, the account’s credential login was successful and statements were extracted.

See below for a complete list of account statuses.

Completion Status Completion Status Detail Description
OK NO_ACTION_REQUIRED No action required
PENDING EXTRACTION FAILURE Pending an Urjanet fix
PENDING WEBSITE_DOWN Temporary problem in accessing the website
PENDING UNDER_REVIEW Urjanet is reviewing the issue and will update the status shortly
PENDING STATEMENT_UNAVAILABLE Temporary problem in accessing bills within this credential
PENDING NAVIGATION_FAILURE No action required
ACCESS_ISSUE ACCOUNT_NOT_FOUND Account not found in site
ACCESS_ISSUE E_BILL_REQUIRED Enrollment in electronic billing is required to access online statements.
ACCESS_ISSUE INVALID_SOURCE The data source available is in a format rejected by your organization.
ACCESS_ISSUE ACCOUNT_NUMBER_CHANGE Account number changed and this is no longer valid. Unsubscribe it.
OLD DORMANT Account has not seen a new bill for 45 days
OLD ACCOUNT_CLOSED This account has received a Final Bill notice or has been marked inactive on the provider's website.

List Providers

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/providers \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/providers HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/providers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/providers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/providers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/providers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/providers

Search for a list of utility providers

Providers are the utility companies that Urjanet supports. In order to submit a request to Urjanet, you will need a providerID. List Providers allows you to query the providers endpoint to find a list of providers that meet specific criteria or to search for a specific provider.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string. See here for examples. Searchable fields are listed here.

Example responses

200 Response

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Provider

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/providers/{providerId} \
  -H 'Accept: application/hal+json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/providers/{providerId} HTTP/1.1
Host: api.urjanet.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/providers/{providerId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/providers/{providerId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/providers/{providerId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/providers/{providerId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/providers/{providerId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/providers/{providerId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/providers/{providerId}

Retrieve the details of a specific provider

Once you have found a specific provider that you would like to submit a request for, you can see the details of that provider using the Retrieve Provider endpoint. This allows you to understand specific details of a utility provider like the required login fields, what solutions are enabled for this provider and the service type.

Parameters

Parameter In Type Required Description
providerId path string true providerId

Example responses

200 Response

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicProviderResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create Credential

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/providers/{providerId}/credentials

Create a credential

The credentials endpoint can also be used to create a new credential in the system. In order to create a new credential in the system, you must use the provider Id in the path and submit the required username and password as defined by the providers endpoint, and an organizationId.

Real-time Credential Validation (RTCV)

The create credential endpoint is capable of testing the provided credential within 45 seconds of submission. In order to enable this functionality, the provider must support RTCV (indicated in the response of the list providers and retrieve provider endpoints). The credential validation response will be sent via webhook. These responses are listed here.

Body parameter

{
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}

Parameters

Parameter In Type Required Description
providerId path string true providerId
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
username body string false A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials

Get all credentials

A credential is defined as a set of login requirements needed for Urjanet to access data from utility providers. The credentials endpoints allows you to get a list of all the credentials that are in the Urjanet system.

Parameters

Parameter In Type Required Description
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentials": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "refreshUrl": "string",
          "download": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:51Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credential Deletion Logs

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/deleted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/deleted HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/deleted',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/deleted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/deleted

Search deletion logs

Criteria recognized: operation, created, createdBy

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "deletionLogs": [
      {
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:51Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Credentials

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/deleted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/deleted HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/deleted',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/deleted',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/deleted

Create a count of credentials/accounts/statements that would be deleted for the given Credential IDs

Before deleting a credential, it is recommended that you understand the impact of the deletion. To do this, the credentials/deleted endpoint can be used. This will return a list of credentials, accounts, and statements that will be impacted by the deletion.

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
ids body [string] false none

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get A Credential Deletion Log

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/deleted/{deletionLogId}

Get a specific existing DeletionLog row

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Credentials By Deletion Log ID

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/deleted/{deletionLogId}

Delete the given Credential IDs and update the deletion log

After understanding the impact of a deletion using the credentials/deleted endpoint, you can execute the deletion using this endpoint. This will also update the deletion log.

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Credential

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}

Retrieve a single credential

If you have the credentialId for a specific credential, you can get the details of that credential.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Credential

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/creditbuilding/credentials/{credentialId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/creditbuilding/credentials/{credentialId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "enabled": true,
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "runHistory": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditbuilding/credentials/{credentialId}

Update a credential

To make updates to a credential, make a PATCH call to the credentials endpoint with a specific credentialId. For a list of fields that can be updated look here.

Body parameter

{
  "enabled": true,
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "runHistory": true
}

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
enabled body boolean false Controls whether data will continue to be extracted behind this credential.
correlationId body string false An ID used to match the utility data pulled for this request back to users in your system
username body string false A login input required to access the customer's utility data
username2 body string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 body string false See username2
username4 body string false See username2
password body string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 body string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 body string false See password2
password4 body string false See password2
interactive body boolean false none
runHistory body boolean false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

List Credential's Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/accounts

Get all Accounts for a Credential

If you would like to find all the accounts that exist behind a credential, you can use this credentials endpoint.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Credential Events

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/events

Get all credential events

This endpoint allows you to view the event history for a credential. For example, you query this endpoint to find out when a credential was created and who it was created by.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentialEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "eventType": "CREDENTIAL_CREATED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialEventResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Generate Update Password URL

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/updateUrl", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/updateUrl

Generate a link to Connect that allows a user to update their password

This endpoint generates a URL that allows a user to update their password for a specified credential. The URL generated will only work for 72 hours after it is generated.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "updateUrl": "string",
  "expiration": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialUrlResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/consent

Get credential consent information

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:51Z",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:51Z",
  "termsOfServiceUrl": "string"
}

401 Response

Status Meaning Description Schema
200 OK OK ConsentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Sensitive Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/passwords", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/passwords

Get the sensitive information for a credential

This endpoint allows you to retrieve the passwords for a given credential.

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK CredentialSecretsResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Credentials Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/downloads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/downloads HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "credentialCriteria": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/downloads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/downloads

Submit a download request for all the credentials

Downloading a CSV file with credentials and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "credentialCriteria": "string"
}

Parameters

Parameter In Type Required Description
credentialCriteria body string false An RSQL search string for a list of credentials

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/downloads/consent \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/downloads/consent HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/downloads/consent',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/downloads/consent',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/downloads/consent',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/downloads/consent', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/downloads/consent");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/downloads/consent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/downloads/consent

Submit a DownloadRequest for Consent Information as CSV

The contents of the file will follow this schema.

Parameter In Type Required Description
search query string false search

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Credential Sample File Download

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/providers/{providerId}/credentials/bulkuploads/sample", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/providers/{providerId}/credentials/bulkuploads/sample

Get the CSV credential upload sample for a particular provider

Each provider has the potential of having distinct input fields as login credentials. To ensure that you have the correct fields for a provider before submitting bulk credentials, you can download a CSV that lists the required fields. In addition to credential fields, the correlation and custom data fields are also included as optional fields.

Parameters

Parameter In Type Required Description
providerId path string true request

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Accepted None
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

Create Account

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/accounts HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/accounts

Create a new account in the Urjanet system

The Urjanet system does not require you to provide an expected account in order to start receiving data. If you know which specific accounts you would like Urjanet to retrieve, you can use this Accounts endpoint.

Body parameter

{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}

Parameters

Parameter In Type Required Description
accountNumber body string false none
enabled body boolean false Controls whether data will continue to be extracted for this account.
providerId body string false The primary key used to represent this provider

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts

Get a list of accounts in the Urjanet system

Urjanet retrieves Accounts from utility providers using the credentials that are submitted. There can be multiple accounts behind a credential. The Accounts endpoint allows you to query for a list of accounts that are currently in the Urjanet system.

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Account

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}

Retrieve a single account from the Urjanet system

If you already know the accountId for an account, you can use the Accounts endpoint to retrieve the details of that specific account.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Account

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/creditbuilding/accounts/{accountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/creditbuilding/accounts/{accountId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "enabled": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/creditbuilding/accounts/{accountId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/creditbuilding/accounts/{accountId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/creditbuilding/accounts/{accountId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditbuilding/accounts/{accountId}

Update an Account

To make updates to a specific account, you can make a PATCH call to the accounts endpoint. A list of specific fields that can be updated can be found here.

Body parameter

{
  "enabled": true
}

Parameters

Parameter In Type Required Description
accountId path string true accountId
enabled body boolean false Controls whether data will continue to be extracted for this account.

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

List Account Deletion Logs

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/deleted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/deleted HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/deleted',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/deleted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/deleted

Search deletion logs

Criteria recognized: operation, created, createdBy

Parameters

Parameter In Type Required Description
search query string false An RSQL query string

Example responses

200 Response

{
  "_embedded": {
    "deletionLogs": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:51Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Accounts

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/accounts/deleted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/accounts/deleted HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/deleted',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/deleted',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/accounts/deleted',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/accounts/deleted', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/deleted");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/accounts/deleted", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/accounts/deleted

Create a count of credentials/accounts/statements that would be deleted for the given Credential IDs

Before deleting an account, it is recommended that you understand the impact of the deletion. To do this, the accounts/deleted endpoint can be used. This will return a list of credentials, accounts, and statements that will be impacted by the deletion.

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
ids body [string] false none

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Resend Credential webhooks

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/lastWebhook \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/lastWebhook HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/lastWebhook',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "resourceIds": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/lastWebhook',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/lastWebhook',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/lastWebhook', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/lastWebhook");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/lastWebhook", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/lastWebhook

Submit a request to resend webhooks for credentials and the associated accounts

Resending webhooks for list of credentials and the accounts associated with each credential. Make sure that webhook is set for your organization.

Body parameter

{
  "resourceIds": [
    "string"
  ]
}

Parameters

Parameter In Type Required Description
resourceIds body [string] true List of credential IDs

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Accepted None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get An Account Deletion Log

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/deleted/{deletionLogId}

Get a specific existing DeletionLog row

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Delete Accounts By Deletion Log

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/accounts/deleted/{deletionLogId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/accounts/deleted/{deletionLogId}

Delete the given Account IDs and update the deletion log

Delete the given Account IDs and update the deletion log

Parameters

Parameter In Type Required Description
deletionLogId path string true deletionLogId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:51Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountDeleteLogResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Account Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/accounts/{accountId}/downloads

Submit a download request for an account, its statements, and the associate metadata

Downloading a CSV file with accounts and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Accounts Download Request

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/accounts/downloads \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/accounts/downloads HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/downloads',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountIds": "string",
  "search": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/downloads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/accounts/downloads',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/accounts/downloads', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/downloads");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/accounts/downloads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/accounts/downloads

Submit a download request for all the statements for selected accounts

Downloading a CSV file with accounts, statements, and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "accountIds": "string",
  "search": "string"
}

Parameters

Parameter In Type Required Description
accountIds body string false A comma-separated list of account IDs
search body string false An RSQL search string for a list of accounts

Example responses

200 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Sub-Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/subAccounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/subAccounts

List all sub-accounts of a summary account

With the subAccounts endpoint, you can get a list of sub accounts associated with a summary account. This allows you to understand the relationship between summary accounts and sub accounts.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Credentials

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/credentials", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/credentials

Get all Credentials for an Account

For a specific account, you can list all credentials that have access to this account. This allows you to manage access to a specific account.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "credentials": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "refreshUrl": "string",
          "download": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:51Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicCredentialResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Events

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/events \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/events HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/events',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/events',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/events', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/events");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/events

Get all Events for an Account

This endpoint allows you to view the event history for an account. For example, you query this endpoint to find out when an account was created and who it was created by.

Parameters

Parameter In Type Required Description
accountId path string true accountId
search query string false search

Example responses

200 Response

{
  "_embedded": {
    "accountEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "eventType": "ACCOUNT_REQUESTED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountEventResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Account's Payments

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/payments

Get a list of the payment objects returned as part of an account

A payment is a transaction made by the account holder to decrease the balance of the account. An account may return one or many payments for each account.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_embedded": {
    "payments": [
      {
        "amount": 0,
        "currency": "string",
        "paymentDate": "2022-04-27"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicPaymentResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Download Payment Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/payments/{paymentId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/payments/{paymentId}/source

Download a Payment's source file

Urjanet provides a copy of the source file for where the system retrieved data. In most cases this is a copy of the structured PDF. In some cases this may be a PDF rendering of a portion of the website. This endpoint allows you to retrieve the source files for a specific payment.

Parameters

Parameter In Type Required Description
accountId path string true accountId
paymentId path string true paymentId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

List Account's Statements

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/statements", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/accounts/{accountId}/statements

List all Statements for a given Account

If you have a specific accountId and you would like to get all statements for that account, you can use the Accounts, Statements endpoint.

Parameters

Parameter In Type Required Description
accountId path string true accountId

Example responses

200 Response

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "accounts": "string",
          "source": "string",
          "meters": "string",
          "charges": "string",
          "self": "string"
        },
        "serviceAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "billingAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "paymentAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "amountDue": 0,
        "balance": 0,
        "lateFees": 0,
        "dueDate": "2022-04-27",
        "endDate": "2022-04-27",
        "invoiceNumber": "string",
        "createdDate": "2022-04-27",
        "modifiedDate": "2022-04-27",
        "startDate": "2022-04-27",
        "statementDate": "2022-04-27",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Retrieve Statement

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/statements/{statementId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/statements/{statementId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/statements/{statementId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/statements/{statementId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/statements/{statementId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/statements/{statementId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/statements/{statementId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/statements/{statementId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/statements/{statementId}

Get a single Statement

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

200 Response

{
  "_links": {
    "accounts": "string",
    "source": "string",
    "meters": "string",
    "charges": "string",
    "self": "string"
  },
  "serviceAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "billingAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "paymentAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "amountDue": 0,
  "balance": 0,
  "lateFees": 0,
  "dueDate": "2022-04-27",
  "endDate": "2022-04-27",
  "invoiceNumber": "string",
  "createdDate": "2022-04-27",
  "modifiedDate": "2022-04-27",
  "startDate": "2022-04-27",
  "statementDate": "2022-04-27",
  "statementType": "BILL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicStatementResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Statement Accounts

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/statements/{statementId}/accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/statements/{statementId}/accounts

Get a list of accounts that are on a given statement

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

200 Response

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicAccountResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Download Statement Source

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/statements/{statementId}/source \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/statements/{statementId}/source HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/statements/{statementId}/source',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/statements/{statementId}/source',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/statements/{statementId}/source',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/statements/{statementId}/source', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/statements/{statementId}/source");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/statements/{statementId}/source", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/statements/{statementId}/source

Download a Statement's source file

Urjanet provides a copy of the source file for where the system retrieved data. In most cases this is a copy of the structured PDF. In some cases this may be a PDF rendering of a portion of the website. This endpoint allows you to retrieve the source files for a specific statement.

Parameters

Parameter In Type Required Description
statementId path string true statementId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Response Headers

Status Header Type Format Description
200 Access-Control-Allow-Headers string none
200 Access-Control-Allow-Methods string none
200 Access-Control-Allow-Origin string none
200 Content-Disposition string none

Retrieve Custom Data Labels

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/organization \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/organization HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/organization',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/organization',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/organization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/organization

Get the current user's Organization

An organization is used to define a specific customer within the Urjanet system. Each Urjanet customer has an organizationId and 10 custom data fields that can be defined for each organization.

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicOrganizationCustomDataResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Custom Data Labels

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/creditbuilding/organization \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/creditbuilding/organization HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/organization',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/organization',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/creditbuilding/organization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/creditbuilding/organization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/organization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/creditbuilding/organization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditbuilding/organization

Update the current user's organization custom data names

Custom data labels are defined at the organization level. Each organization can have up to 10 custom data labels defined. Use the organization endpoint to set labels for each custom data field. You do not need to define all custom data labels up front, but Urjanet will only store values for custom data fields with defined labels.

Body parameter

{
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string"
}

Parameters

Parameter In Type Required Description
customData1Name body string false none
customData2Name body string false none
customData3Name body string false none
customData4Name body string false none
customData5Name body string false none
customData6Name body string false none
customData7Name body string false none
customData8Name body string false none
customData9Name body string false none
customData10Name body string false none

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicOrganizationCustomDataResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Update Account Custom Data

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "property1": "string",
  "property2": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/creditbuilding/accounts/{accountId}/customData", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditbuilding/accounts/{accountId}/customData

Update account custom data

Each account can have 10 custom data fields associated. Custom data allows you to organize accounts and tie them back to records in your system. To update a Custom data field, the field must already have a defined label. To define a Custom Data label, you must use the Organization endpoint.

Body parameter

{
  "property1": "string",
  "property2": "string"
}

Parameters

Parameter In Type Required Description
accountId path string true accountId
additionalProperties body string false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicAccountResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Update Credential Custom Data

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "property1": "string",
  "property2": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/customData", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /creditbuilding/credentials/{credentialId}/customData

Update credential custom data

Each credential can have 10 custom data fields associated. Custom data allows you to organize accounts and tie them back to records in your system. To update a Custom data field, the field must already have a defined label. To define a Custom Data label, you must use the Organization endpoint.

Body parameter

{
  "property1": "string",
  "property2": "string"
}

Parameters

Parameter In Type Required Description
credentialId path string true credentialId
additionalProperties body string false none

Example responses

200 Response

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:51Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialResource
204 No Content none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse

Refresh Interactive Credentials

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh HTTP/1.1
Host: api.urjanet.com
Accept: */*

var headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refresh", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /creditbuilding/credentials/{credentialId}/refresh

Initiate interactive refresh

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

401 Response

Responses

Status Meaning Description Schema
200 OK OK None
201 Created none None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Generate Refresh Credential URL

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/creditbuilding/credentials/{credentialId}/refreshUrl", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /creditbuilding/credentials/{credentialId}/refreshUrl

Get a URL to initiate interactive refresh

Parameters

Parameter In Type Required Description
credentialId path string true credentialId

Example responses

200 Response

{
  "refreshUrl": "string",
  "expiration": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicCredentialRefreshUrlResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

User Management

Get Current Organization

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/currentOrganization \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/currentOrganization HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/currentOrganization',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/currentOrganization',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/currentOrganization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/currentOrganization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/currentOrganization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/currentOrganization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currentOrganization

Get your current organization

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "allowedEmailDomains": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "defaultDataCapturePeriodMonths": "string",
  "defaultTimeout": "string",
  "defaultWebhookUrl": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "sourceToken": "string",
  "termsOfService": "string",
  "uniqueId": "string",
  "useSourceToken": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK CurrentOrganizationResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Current Organization

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/currentOrganization \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/currentOrganization HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/currentOrganization',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "allowedEmailDomains": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/currentOrganization',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/currentOrganization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/currentOrganization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/currentOrganization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/currentOrganization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /currentOrganization

Update your current organization

Body parameter

{
  "allowedEmailDomains": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

Parameters

Parameter In Type Required Description
allowedEmailDomains body string false Comma-separated list of allowed e-mail domains for users within this organization
connectShowBeta body boolean false show Beta providers in connect
connectShowMfa body boolean false show MFA providers in connect
connectShowMock body boolean false show Mock providers in connect outside of sandbox mode
connectShowNonRtcv body boolean false show non-RTCV enabled providers in connect
name body string true Name of this organization
privacyPolicy body string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey body string false N/A
termsOfService body string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

Example responses

401 Response

Responses

Status Meaning Description Schema
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Current User

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/currentUser \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/currentUser HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/currentUser',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/currentUser',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/currentUser',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/currentUser', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/currentUser");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/currentUser", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currentUser

Get current user detail

Example responses

200 Response

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "self": "string"
  },
  "email": "string",
  "externalSource": "string",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK CurrentUserResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Password

Code samples

# You can also use wget
curl -X PUT https://api.urjanet.com/currentUser/password \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.urjanet.com/currentUser/password HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/currentUser/password',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "currentPassword": "string",
  "email": "string",
  "name": "string",
  "password": "string",
  "passwordConfirm": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/currentUser/password',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.urjanet.com/currentUser/password',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.urjanet.com/currentUser/password', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/currentUser/password");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.urjanet.com/currentUser/password", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /currentUser/password

Update current user's password

Body parameter

{
  "currentPassword": "string",
  "email": "string",
  "name": "string",
  "password": "string",
  "passwordConfirm": "string"
}

Parameters

Parameter In Type Required Description
currentPassword body string false Your current password used to access Urjanet
email body string true Your current e-mail address associated with Urjanet
name body string true Your current name
password body string false Your desired password used to access Urjanet
passwordConfirm body string false Confirm your current password used to access Urjanet

Example responses

401 Response

Responses

Status Meaning Description Schema
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update User Profile

Code samples

# You can also use wget
curl -X PUT https://api.urjanet.com/currentUser/profile \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.urjanet.com/currentUser/profile HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/currentUser/profile',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "currentPassword": "string",
  "email": "string",
  "name": "string",
  "password": "string",
  "passwordConfirm": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/currentUser/profile',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.urjanet.com/currentUser/profile',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.urjanet.com/currentUser/profile', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/currentUser/profile");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.urjanet.com/currentUser/profile", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /currentUser/profile

Update the current user's profile attributes

Body parameter

{
  "currentPassword": "string",
  "email": "string",
  "name": "string",
  "password": "string",
  "passwordConfirm": "string"
}

Parameters

Parameter In Type Required Description
currentPassword body string false Your current password used to access Urjanet
email body string true Your current e-mail address associated with Urjanet
name body string true Your current name
password body string false Your desired password used to access Urjanet
passwordConfirm body string false Confirm your current password used to access Urjanet

Example responses

401 Response

Responses

Status Meaning Description Schema
204 No Content No Content None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Parent Organization

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/parentOrganization \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/parentOrganization HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/parentOrganization',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/parentOrganization',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/parentOrganization',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/parentOrganization', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/parentOrganization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/parentOrganization", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /parentOrganization

Get your parent organization

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK ParentOrganizationResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Roles

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/roles \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/roles HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/roles',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/roles',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/roles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/roles', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/roles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /roles

Get a list of the Roles

Example responses

200 Response

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicRoleResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Role

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/roles/{roleId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/roles/{roleId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/roles/{roleId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/roles/{roleId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/roles/{roleId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/roles/{roleId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/roles/{roleId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /roles/{roleId}

Get a specific Role

Parameters

Parameter In Type Required Description
roleId path integer(int64) true roleId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicRoleResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Organizations

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/organizations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/organizations HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizations',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/organizations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/organizations', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/organizations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organizations

Get a list of the current User's Organization and any Sub Organizations

Example responses

200 Response

{
  "_embedded": {
    "organizations": [
      {
        "_links": {
          "self": "string"
        },
        "allowedEmailDomains": "string",
        "connectEnabled": true,
        "connectParentWindowAddress": "string",
        "connectParentWindowAddressAllowLocalhost": true,
        "connectPrimaryColor": "string",
        "connectShowBeta": true,
        "connectShowMfa": true,
        "connectShowMock": true,
        "connectShowNonRtcv": true,
        "createdDate": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "defaultDataCapturePeriodMonths": "string",
        "defaultSolution": "string",
        "defaultTimeout": "string",
        "defaultWebhookUrl": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "isEnabled": true,
        "name": "string",
        "privacyPolicy": "string",
        "publicKey": "string",
        "sourceToken": "string",
        "termsOfService": "string",
        "uniqueId": "string",
        "useSourceToken": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicOrganizationResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create Sub Organization

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/organizations \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/organizations HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizations',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "allowedEmailDomains": "string",
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/organizations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/organizations', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/organizations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /organizations

Create a Sub Organization

Body parameter

{
  "allowedEmailDomains": "string",
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

Parameters

Parameter In Type Required Description
allowedEmailDomains body string false Comma-separated list of allowed e-mail domains for users within this organization
defaultDataCapturePeriodMonths body integer false none
defaultTimeout body integer false none
defaultWebhookUrl body string false none
name body string true Name of this organization
privacyPolicy body string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey body string false N/A
termsOfService body string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

Example responses

401 Response

Responses

Status Meaning Description Schema
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Get Organization

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/organizations/{organizationId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/organizations/{organizationId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizations/{organizationId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizations/{organizationId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/organizations/{organizationId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/organizations/{organizationId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizations/{organizationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/organizations/{organizationId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organizations/{organizationId}

Get a specific Organization

Parameters

Parameter In Type Required Description
organizationId path integer(int64) true organizationId

Example responses

200 Response

{
  "_links": {
    "self": "string"
  },
  "allowedEmailDomains": "string",
  "connectEnabled": true,
  "connectParentWindowAddress": "string",
  "connectParentWindowAddressAllowLocalhost": true,
  "connectPrimaryColor": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "createdDate": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "defaultDataCapturePeriodMonths": "string",
  "defaultSolution": "string",
  "defaultTimeout": "string",
  "defaultWebhookUrl": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "isEnabled": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "sourceToken": "string",
  "termsOfService": "string",
  "uniqueId": "string",
  "useSourceToken": true
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicOrganizationResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update Organization

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/organizations/{organizationId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/organizations/{organizationId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizations/{organizationId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "allowedEmailDomains": "string",
  "connectEnabled": true,
  "connectParentWindowAddress": "string",
  "connectParentWindowAddressAllowLocalhost": true,
  "connectPrimaryColor": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "isEnabled": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizations/{organizationId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/organizations/{organizationId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/organizations/{organizationId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizations/{organizationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/organizations/{organizationId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /organizations/{organizationId}

Update an Organization

Body parameter

{
  "allowedEmailDomains": "string",
  "connectEnabled": true,
  "connectParentWindowAddress": "string",
  "connectParentWindowAddressAllowLocalhost": true,
  "connectPrimaryColor": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "isEnabled": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

Parameters

Parameter In Type Required Description
organizationId path integer(int64) true organizationId
allowedEmailDomains body string false Comma-separated list of allowed e-mail domains for users within this organization
connectEnabled body boolean false none
connectParentWindowAddress body string false none
connectParentWindowAddressAllowLocalhost body boolean false none
connectPrimaryColor body string false none
connectShowBeta body boolean false none
connectShowMfa body boolean false none
connectShowMock body boolean false none
connectShowNonRtcv body boolean false none
defaultDataCapturePeriodMonths body integer false none
defaultTimeout body integer false none
defaultWebhookUrl body string false none
isEnabled body boolean false none
name body string false Name of this organization
privacyPolicy body string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey body string false N/A
termsOfService body string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

Example responses

403 Response

Responses

Status Meaning Description Schema
204 No Content No Content None
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

List Organization Users

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/organizations/{organizationId}/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/organizations/{organizationId}/users HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizations/{organizationId}/users',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizations/{organizationId}/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/organizations/{organizationId}/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/organizations/{organizationId}/users', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizations/{organizationId}/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/organizations/{organizationId}/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /organizations/{organizationId}/users

Get a list of Users in the given Organization

Parameters

Parameter In Type Required Description
organizationId path integer(int64) true organizationId

Example responses

200 Response

{
  "_embedded": {
    "users": [
      {
        "_embedded": {
          "roles": [
            {
              "_links": {
                "self": "string"
              },
              "createdBy": "string",
              "createdDate": "2022-04-27T17:18:51Z",
              "lastModifiedBy": "string",
              "lastModifiedDate": "2022-04-27T17:18:51Z",
              "name": "string"
            }
          ]
        },
        "_links": {
          "self": "string"
        },
        "accountEnabled": true,
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "credentialsExpired": true,
        "email": "string",
        "externalSource": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string",
        "username": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicUserResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create Organization and User

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/organizationsWithUsers \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/organizationsWithUsers HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/organizationsWithUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "organization": {
    "allowedEmailDomains": "string",
    "connectEnabled": true,
    "connectParentWindowAddress": "string",
    "connectParentWindowAddressAllowLocalhost": true,
    "connectPrimaryColor": "string",
    "connectShowBeta": true,
    "connectShowMfa": true,
    "connectShowMock": true,
    "connectShowNonRtcv": true,
    "defaultDataCapturePeriodMonths": 0,
    "defaultTimeout": 0,
    "defaultWebhookUrl": "string",
    "isEnabled": true,
    "name": "string",
    "privacyPolicy": "string",
    "publicKey": "string",
    "termsOfService": "string"
  },
  "user": {
    "accountEnabled": true,
    "autoGeneratePassword": true,
    "credentialsExpired": true,
    "email": "string",
    "name": "string",
    "organization": "string",
    "password": "stringst",
    "passwordConfirm": "string",
    "roles": [
      "string"
    ],
    "username": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/organizationsWithUsers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/organizationsWithUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/organizationsWithUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/organizationsWithUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/organizationsWithUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /organizationsWithUsers

Create a Sub Organization and a User in a single request

Body parameter

{
  "organization": {
    "allowedEmailDomains": "string",
    "connectEnabled": true,
    "connectParentWindowAddress": "string",
    "connectParentWindowAddressAllowLocalhost": true,
    "connectPrimaryColor": "string",
    "connectShowBeta": true,
    "connectShowMfa": true,
    "connectShowMock": true,
    "connectShowNonRtcv": true,
    "defaultDataCapturePeriodMonths": 0,
    "defaultTimeout": 0,
    "defaultWebhookUrl": "string",
    "isEnabled": true,
    "name": "string",
    "privacyPolicy": "string",
    "publicKey": "string",
    "termsOfService": "string"
  },
  "user": {
    "accountEnabled": true,
    "autoGeneratePassword": true,
    "credentialsExpired": true,
    "email": "string",
    "name": "string",
    "organization": "string",
    "password": "stringst",
    "passwordConfirm": "string",
    "roles": [
      "string"
    ],
    "username": "string"
  }
}

Parameters

Parameter In Type Required Description
organization body PublicOrganizationUpdateRequest true none
» allowedEmailDomains body string false Comma-separated list of allowed e-mail domains for users within this organization
» connectEnabled body boolean false none
» connectParentWindowAddress body string false none
» connectParentWindowAddressAllowLocalhost body boolean false none
» connectPrimaryColor body string false none
» connectShowBeta body boolean false none
» connectShowMfa body boolean false none
» connectShowMock body boolean false none
» connectShowNonRtcv body boolean false none
» defaultDataCapturePeriodMonths body integer false none
» defaultTimeout body integer false none
» defaultWebhookUrl body string false none
» isEnabled body boolean false none
» name body string false Name of this organization
» privacyPolicy body string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
» publicKey body string false N/A
» termsOfService body string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI
user body PublicUserRequest true none
» accountEnabled body boolean true Indicates whether this user's account is enabled
» autoGeneratePassword body boolean false If true, password will be automatically set and user will have to reset it using associated e-mail address
» credentialsExpired body boolean true If true, this user needs to rotate their password
» email body string true E-mail address to associate with this user
» name body string true Full name of this user
» organization body string false ID of the Organization to which this user belongs. If left blank, user will be assigned to the current organization.
» password body string false Password used to authenticate with Urjanet
» passwordConfirm body string false Confirm password used to authentica with Urjanet
» roles body [string] true List of IDs of the roles to assign to this user
» username body string true Username used to authenticate with Urjanet; cannot contain spaces

Example responses

401 Response

Responses

Status Meaning Description Schema
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse
409 Conflict Conflict None

List Users

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/users HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/users',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/users', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /users

Get a list of Users in the current User's Organization or Sub Organiations

Example responses

200 Response

{
  "_embedded": {
    "users": [
      {
        "_embedded": {
          "roles": [
            {
              "_links": {
                "self": "string"
              },
              "createdBy": "string",
              "createdDate": "2022-04-27T17:18:51Z",
              "lastModifiedBy": "string",
              "lastModifiedDate": "2022-04-27T17:18:51Z",
              "name": "string"
            }
          ]
        },
        "_links": {
          "self": "string"
        },
        "accountEnabled": true,
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "credentialsExpired": true,
        "email": "string",
        "externalSource": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string",
        "username": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PagedPublicUserResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Create User

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/users HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/users',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountEnabled": true,
  "autoGeneratePassword": true,
  "credentialsExpired": true,
  "email": "string",
  "name": "string",
  "organization": "string",
  "password": "stringst",
  "passwordConfirm": "string",
  "roles": [
    "string"
  ],
  "username": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/users',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/users',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/users', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /users

Create a User

Body parameter

{
  "accountEnabled": true,
  "autoGeneratePassword": true,
  "credentialsExpired": true,
  "email": "string",
  "name": "string",
  "organization": "string",
  "password": "stringst",
  "passwordConfirm": "string",
  "roles": [
    "string"
  ],
  "username": "string"
}

Parameters

Parameter In Type Required Description
accountEnabled body boolean true Indicates whether this user's account is enabled
autoGeneratePassword body boolean false If true, password will be automatically set and user will have to reset it using associated e-mail address
credentialsExpired body boolean true If true, this user needs to rotate their password
email body string true E-mail address to associate with this user
name body string true Full name of this user
organization body string false ID of the Organization to which this user belongs. If left blank, user will be assigned to the current organization.
password body string false Password used to authenticate with Urjanet
passwordConfirm body string false Confirm password used to authentica with Urjanet
roles body [string] true List of IDs of the roles to assign to this user
username body string true Username used to authenticate with Urjanet; cannot contain spaces

Example responses

401 Response

Responses

Status Meaning Description Schema
201 Created Created None
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse
409 Conflict Conflict None

Get User

Code samples

# You can also use wget
curl -X GET https://api.urjanet.com/users/{userId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.urjanet.com/users/{userId} HTTP/1.1
Host: api.urjanet.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/users/{userId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/users/{userId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.urjanet.com/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.urjanet.com/users/{userId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.urjanet.com/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /users/{userId}

Get a specific User in the current User's Organization or Sub Organizations

Parameters

Parameter In Type Required Description
userId path integer(int64) true userId

Example responses

200 Response

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "self": "string"
  },
  "accountEnabled": true,
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "credentialsExpired": true,
  "email": "string",
  "externalSource": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string",
  "username": "string"
}

401 Response

Responses

Status Meaning Description Schema
200 OK OK PublicUserResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Update User

Code samples

# You can also use wget
curl -X PATCH https://api.urjanet.com/users/{userId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.urjanet.com/users/{userId} HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: */*

var headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/users/{userId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "accountEnabled": true,
  "autoGeneratePassword": true,
  "credentialsExpired": true,
  "email": "string",
  "name": "string",
  "organization": "string",
  "password": "stringst",
  "passwordConfirm": "string",
  "roles": [
    "string"
  ],
  "username": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/users/{userId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => '*/*',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.urjanet.com/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '*/*',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.urjanet.com/users/{userId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"*/*"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.urjanet.com/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /users/{userId}

Update a User in the current User's Organization

Body parameter

{
  "accountEnabled": true,
  "autoGeneratePassword": true,
  "credentialsExpired": true,
  "email": "string",
  "name": "string",
  "organization": "string",
  "password": "stringst",
  "passwordConfirm": "string",
  "roles": [
    "string"
  ],
  "username": "string"
}

Parameters

Parameter In Type Required Description
userId path integer(int64) true userId
accountEnabled body boolean true Indicates whether this user's account is enabled
autoGeneratePassword body boolean false If true, password will be automatically set and user will have to reset it using associated e-mail address
credentialsExpired body boolean true If true, this user needs to rotate their password
email body string true E-mail address to associate with this user
name body string true Full name of this user
organization body string false ID of the Organization to which this user belongs. If left blank, user will be assigned to the current organization.
password body string false Password used to authenticate with Urjanet
passwordConfirm body string false Confirm password used to authentica with Urjanet
roles body [string] true List of IDs of the roles to assign to this user
username body string true Username used to authenticate with Urjanet; cannot contain spaces

Example responses

403 Response

Responses

Status Meaning Description Schema
204 No Content No Content None
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse
409 Conflict Conflict None

Utility

Download Meter Usage

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/utility/meters/downloads/usages \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/utility/meters/downloads/usages HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/utility/meters/downloads/usages',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "meterIds": "string",
  "startDate": null,
  "endDate": null
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/utility/meters/downloads/usages',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/utility/meters/downloads/usages',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/utility/meters/downloads/usages', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/utility/meters/downloads/usages");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/utility/meters/downloads/usages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /utility/meters/downloads/usages

Submit a DownloadRequest for all the Statements for selected meters

Downloading a CSV file with statements, sites, meterdata, and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "meterIds": "string",
  "startDate": null,
  "endDate": null
}

Parameters

Parameter In Type Required Description
meterIds body string true A comma-separated list of site IDs
startDate body date-time true Start date for meter usage statements
endDate body date-time true End date for meter usage statements

Example responses

202 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
202 Accepted Accepted PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Download Site Usage

Code samples

# You can also use wget
curl -X POST https://api.urjanet.com/utility/sites/downloads/usages \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.urjanet.com/utility/sites/downloads/usages HTTP/1.1
Host: api.urjanet.com
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.urjanet.com/utility/sites/downloads/usages',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "siteIds": "string",
  "startDate": null,
  "endDate": null
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.urjanet.com/utility/sites/downloads/usages',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.urjanet.com/utility/sites/downloads/usages',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.urjanet.com/utility/sites/downloads/usages', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.urjanet.com/utility/sites/downloads/usages");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.urjanet.com/utility/sites/downloads/usages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /utility/sites/downloads/usages

Submit a DownloadRequest for all the Statements for selected sites

Downloading a CSV file with statements, sites, meterdata, and associated metadata is actually a 2 step process. The first step (this one) prepares the download and provides a URL that can be used for downloading the CSV file. The next step is to download the file using the returned URL. The contents of the file will follow this schema.

Body parameter

{
  "siteIds": "string",
  "startDate": null,
  "endDate": null
}

Parameters

Parameter In Type Required Description
siteIds body string true A comma-separated list of site IDs
startDate body date-time true Start date for site usage statements
endDate body date-time true End date for site usage statements

Example responses

202 Response

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:51Z"
}

401 Response

Responses

Status Meaning Description Schema
202 Accepted Accepted PublicDownloadRequestResource
401 Unauthorized Unauthorized ErrorResponse
403 Forbidden Forbidden ErrorResponse
404 Not Found NotFound ErrorResponse

Schemas

ErrorResponse

{
  "message": "string",
  "error": "string",
  "exception": "string",
  "path": "string",
  "timestamp": null,
  "status": 0
}

Properties

Name Type Required Description
message string false none
error string false none
exception string false none
path string false none
timestamp date-time false none
status integer false none

PageMetadata

{
  "number": 0,
  "size": 0,
  "totalElements": 0,
  "totalPages": 0
}

PageMetadata

Properties

Name Type Required Description
number integer(int64) false none
size integer(int64) false none
totalElements integer(int64) false none
totalPages integer(int64) false none

HealthCheckResource

{
  "status": "string"
}

HealthCheckResource

Properties

Name Type Required Description
status string false The current status of the service (UP or DOWN)

AuthUserRequest

{
  "password": "string",
  "username": "string"
}

Properties

Name Type Required Description
password string false Your password to access Urjanet services
username string false Your username to access Urjanet services

AuthUserResponse

{
  "expires": "string",
  "message": "string",
  "status": 0,
  "token": "string"
}

Properties

Name Type Required Description
expires string false The time of expiration of this authentication token in number of seconds since the epoch (1970-01-1)
message string false Brief summary of authentication event
status integer false HTTP status of the request
token string false The bearer token to pass along with requests to Urjanet services

CurrentOrganizationRequest

{
  "allowedEmailDomains": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

CurrentOrganizationRequest

Properties

Name Type Required Description
allowedEmailDomains string false Comma-separated list of allowed e-mail domains for users within this organization
connectShowBeta boolean false show Beta providers in connect
connectShowMfa boolean false show MFA providers in connect
connectShowMock boolean false show Mock providers in connect outside of sandbox mode
connectShowNonRtcv boolean false show non-RTCV enabled providers in connect
name string true Name of this organization
privacyPolicy string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey string false N/A
termsOfService string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

CurrentOrganizationResource

{
  "_links": {
    "self": "string"
  },
  "allowedEmailDomains": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "defaultDataCapturePeriodMonths": "string",
  "defaultTimeout": "string",
  "defaultWebhookUrl": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "sourceToken": "string",
  "termsOfService": "string",
  "uniqueId": "string",
  "useSourceToken": true
}

CurrentOrganizationResource

Properties

Name Type Required Description
_links object false none
» self string false none
allowedEmailDomains string false Comma-separated list of allowed e-mail domains for users within this organization
connectShowBeta boolean false show Beta providers in connect
connectShowMfa boolean false show MFA providers in connect
connectShowMock boolean false show Mock providers in connect outside of sandbox mode
connectShowNonRtcv boolean false show non-RTCV enabled providers in connect
createdBy string false User who created this organization
createdDate string(date-time) false Date this organization was created
defaultDataCapturePeriodMonths string false The number of months of data that will be extracted with Urjanet Connect integration
defaultTimeout string false The timeout value used with Urjanet Connect integration
defaultWebhookUrl string false The webhook URL used with Urjanet Connect integration
lastModifiedBy string false Most recent user to modify this organization
lastModifiedDate string(date-time) false Date this organization was most recently modified
name string false Name of this organization
privacyPolicy string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey string false N/A
sourceToken string false N/A
termsOfService string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI
uniqueId string false N/A
useSourceToken boolean false N/A

CurrentUserRequest

{
  "currentPassword": "string",
  "email": "string",
  "name": "string",
  "password": "string",
  "passwordConfirm": "string"
}

CurrentUserRequest

Properties

Name Type Required Description
currentPassword string false Your current password used to access Urjanet
email string true Your current e-mail address associated with Urjanet
name string true Your current name
password string false Your desired password used to access Urjanet
passwordConfirm string false Confirm your current password used to access Urjanet

CurrentUserResource

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "self": "string"
  },
  "email": "string",
  "externalSource": "string",
  "name": "string"
}

CurrentUserResource

Properties

Name Type Required Description
_embedded object false none
» roles [PublicRoleResource] false none
_links object false none
» self string false none
email string false Your current e-mail address associated with Urjanet
externalSource string false none
name string false Your current name

PagedPublicOrganizationResource

{
  "_embedded": {
    "organizations": [
      {
        "_links": {
          "self": "string"
        },
        "allowedEmailDomains": "string",
        "connectEnabled": true,
        "connectParentWindowAddress": "string",
        "connectParentWindowAddressAllowLocalhost": true,
        "connectPrimaryColor": "string",
        "connectShowBeta": true,
        "connectShowMfa": true,
        "connectShowMock": true,
        "connectShowNonRtcv": true,
        "createdDate": "2022-04-27T17:18:51Z",
        "createdBy": "string",
        "defaultDataCapturePeriodMonths": "string",
        "defaultSolution": "string",
        "defaultTimeout": "string",
        "defaultWebhookUrl": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "isEnabled": true,
        "name": "string",
        "privacyPolicy": "string",
        "publicKey": "string",
        "sourceToken": "string",
        "termsOfService": "string",
        "uniqueId": "string",
        "useSourceToken": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicOrganizationResource

Properties

Name Type Required Description
_embedded object false none
» organizations [PublicOrganizationResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedProjectResource

{
  "_embedded": {
    "projects": [
      {
        "_links": {
          "self": "string"
        },
        "alias": "string",
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expectedAccountStrategy": "CUSTOMER_SUPPLIED",
        "id2": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedProjectResource

Properties

Name Type Required Description
_embedded object false none
» projects [ProjectResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicRoleResource

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicRoleResource

Properties

Name Type Required Description
_embedded object false none
» roles [PublicRoleResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicUserResource

{
  "_embedded": {
    "users": [
      {
        "_embedded": {
          "roles": [
            {
              "_links": {
                "self": "string"
              },
              "createdBy": "string",
              "createdDate": "2022-04-27T17:18:51Z",
              "lastModifiedBy": "string",
              "lastModifiedDate": "2022-04-27T17:18:51Z",
              "name": "string"
            }
          ]
        },
        "_links": {
          "self": "string"
        },
        "accountEnabled": true,
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "credentialsExpired": true,
        "email": "string",
        "externalSource": "string",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string",
        "username": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicUserResource

Properties

Name Type Required Description
_embedded object false none
» users [PublicUserResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

ParentOrganizationResource

{
  "_links": {
    "self": "string"
  },
  "name": "string"
}

ParentOrganizationResource

Properties

Name Type Required Description
_links object false none
» self string false none
name string false Name of this organization

ProjectResource

{
  "_links": {
    "self": "string"
  },
  "alias": "string",
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expectedAccountStrategy": "CUSTOMER_SUPPLIED",
  "id2": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string"
}

ProjectResource

Properties

Name Type Required Description
_links object false none
» self string false none
alias string false Shortened name for the project; cannot contain spaces.
createdBy string false User that created this project
createdDate string(date-time) false Date that this project was created
expectedAccountStrategy string false none
id2 string false none
lastModifiedBy string false User that most recently modified this project
lastModifiedDate string(date-time) false Date that this project was most recently modified
name string false Longer-form name of this project

Enumerated Values

Property Value
expectedAccountStrategy CUSTOMER_SUPPLIED
expectedAccountStrategy AUTO_CREATE
expectedAccountStrategy AUTO_CREATE_DISABLED

PublicOrganizationCreateRequest

{
  "allowedEmailDomains": "string",
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

PublicOrganizationCreateRequest

Properties

Name Type Required Description
allowedEmailDomains string false Comma-separated list of allowed e-mail domains for users within this organization
defaultDataCapturePeriodMonths integer false none
defaultTimeout integer false none
defaultWebhookUrl string false none
name string true Name of this organization
privacyPolicy string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey string false N/A
termsOfService string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

PublicOrganizationUpdateRequest

{
  "allowedEmailDomains": "string",
  "connectEnabled": true,
  "connectParentWindowAddress": "string",
  "connectParentWindowAddressAllowLocalhost": true,
  "connectPrimaryColor": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "defaultDataCapturePeriodMonths": 0,
  "defaultTimeout": 0,
  "defaultWebhookUrl": "string",
  "isEnabled": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "termsOfService": "string"
}

PublicOrganizationUpdateRequest

Properties

Name Type Required Description
allowedEmailDomains string false Comma-separated list of allowed e-mail domains for users within this organization
connectEnabled boolean false none
connectParentWindowAddress string false none
connectParentWindowAddressAllowLocalhost boolean false none
connectPrimaryColor string false none
connectShowBeta boolean false none
connectShowMfa boolean false none
connectShowMock boolean false none
connectShowNonRtcv boolean false none
defaultDataCapturePeriodMonths integer false none
defaultTimeout integer false none
defaultWebhookUrl string false none
isEnabled boolean false none
name string false Name of this organization
privacyPolicy string false A URL for your company's privacy policy. This will be linked in the Urjanet Connect UI
publicKey string false N/A
termsOfService string false A URL for your company's terms of service. This will be linked in the Urjanet Connect UI

PublicOrganizationResource

{
  "_links": {
    "self": "string"
  },
  "allowedEmailDomains": "string",
  "connectEnabled": true,
  "connectParentWindowAddress": "string",
  "connectParentWindowAddressAllowLocalhost": true,
  "connectPrimaryColor": "string",
  "connectShowBeta": true,
  "connectShowMfa": true,
  "connectShowMock": true,
  "connectShowNonRtcv": true,
  "createdDate": "2022-04-27T17:18:51Z",
  "createdBy": "string",
  "defaultDataCapturePeriodMonths": "string",
  "defaultSolution": "string",
  "defaultTimeout": "string",
  "defaultWebhookUrl": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "isEnabled": true,
  "name": "string",
  "privacyPolicy": "string",
  "publicKey": "string",
  "sourceToken": "string",
  "termsOfService": "string",
  "uniqueId": "string",
  "useSourceToken": true
}

PublicOrganizationResource

Properties

Name Type Required Description
_links object false none
» self string false none
allowedEmailDomains string false none
connectEnabled boolean false none
connectParentWindowAddress string false none
connectParentWindowAddressAllowLocalhost boolean false none
connectPrimaryColor string false none
connectShowBeta boolean false none
connectShowMfa boolean false none
connectShowMock boolean false none
connectShowNonRtcv boolean false none
createdDate string(date-time) false none
createdBy string false none
defaultDataCapturePeriodMonths string false none
defaultSolution string false none
defaultTimeout string false none
defaultWebhookUrl string false none
lastModifiedBy string false none
lastModifiedDate string(date-time) false none
isEnabled boolean false none
name string false none
privacyPolicy string false none
publicKey string false none
sourceToken string false none
termsOfService string false none
uniqueId string false none
useSourceToken boolean false none

PublicOrganizationsWithUserRequest

{
  "organization": {
    "allowedEmailDomains": "string",
    "connectEnabled": true,
    "connectParentWindowAddress": "string",
    "connectParentWindowAddressAllowLocalhost": true,
    "connectPrimaryColor": "string",
    "connectShowBeta": true,
    "connectShowMfa": true,
    "connectShowMock": true,
    "connectShowNonRtcv": true,
    "defaultDataCapturePeriodMonths": 0,
    "defaultTimeout": 0,
    "defaultWebhookUrl": "string",
    "isEnabled": true,
    "name": "string",
    "privacyPolicy": "string",
    "publicKey": "string",
    "termsOfService": "string"
  },
  "user": {
    "accountEnabled": true,
    "autoGeneratePassword": true,
    "credentialsExpired": true,
    "email": "string",
    "name": "string",
    "organization": "string",
    "password": "stringst",
    "passwordConfirm": "string",
    "roles": [
      "string"
    ],
    "username": "string"
  }
}

PublicOrganizationsWithUserRequest

Properties

Name Type Required Description
organization PublicOrganizationUpdateRequest true The organization to create
user PublicUserRequest true The user to create

PublicRoleResource

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string"
}

PublicRoleResource

Properties

Name Type Required Description
_links object false none
» self string false none
createdBy string false User that created this role
createdDate string(date-time) false Date that this role was created
lastModifiedBy string false User that most recently modified this role
lastModifiedDate string(date-time) false Date this role was most recently modified
name string false Name of the role

PublicUserRequest

{
  "accountEnabled": true,
  "autoGeneratePassword": true,
  "credentialsExpired": true,
  "email": "string",
  "name": "string",
  "organization": "string",
  "password": "stringst",
  "passwordConfirm": "string",
  "roles": [
    "string"
  ],
  "username": "string"
}

PublicUserRequest

Properties

Name Type Required Description
accountEnabled boolean true Indicates whether this user's account is enabled
autoGeneratePassword boolean false If true, password will be automatically set and user will have to reset it using associated e-mail address
credentialsExpired boolean true If true, this user needs to rotate their password
email string true E-mail address to associate with this user
name string true Full name of this user
organization string false ID of the Organization to which this user belongs. If left blank, user will be assigned to the current organization.
password string false Password used to authenticate with Urjanet
passwordConfirm string false Confirm password used to authentica with Urjanet
roles [string] true List of IDs of the roles to assign to this user
username string true Username used to authenticate with Urjanet; cannot contain spaces

PublicUserResource

{
  "_embedded": {
    "roles": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "lastModifiedBy": "string",
        "lastModifiedDate": "2022-04-27T17:18:51Z",
        "name": "string"
      }
    ]
  },
  "_links": {
    "self": "string"
  },
  "accountEnabled": true,
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "credentialsExpired": true,
  "email": "string",
  "externalSource": "string",
  "lastModifiedBy": "string",
  "lastModifiedDate": "2022-04-27T17:18:51Z",
  "name": "string",
  "username": "string"
}

PublicUserResource

Properties

Name Type Required Description
_embedded object false none
» roles [PublicRoleResource] false none
_links object false none
» self string false none
accountEnabled boolean false Indicates whether this user's account is enabled
createdBy string false User that created this user
createdDate string(date-time) false Date the user was created
credentialsExpired boolean false If true, this user needs to rotate their password
email string false E-mail address associated with the user
externalSource string false N/A
lastModifiedBy string false User that most recently made changes
lastModifiedDate string(date-time) false Date the user was most recently modified
name string false Name of the user
username string false Username used to authenticate with Urjanet; cannot contain spaces

UserProjectRequest

{
  "projects": [
    "string"
  ]
}

UserProjectRequest

Properties

Name Type Required Description
projects [string] false List of project names to associate with the user

PagedPublicProviderResource

{
  "_embedded": {
    "providers": [
      {
        "_links": {
          "serviceTypes": "string",
          "parentProvider": "string",
          "self": "string"
        },
        "providerName": "string",
        "hasMultiFactorAuthentication": true,
        "requiredFields": [
          "string"
        ],
        "requiredFieldMetadata": [
          {
            "fieldName": "string",
            "fieldLabel": "string",
            "fieldNumber": 0,
            "fieldPart": 0,
            "fieldLength": 0
          }
        ],
        "supportsCredentialValidation": true,
        "country": "string",
        "enabledSolutions": [
          "CREDIT"
        ],
        "serviceTypes": [
          "string"
        ],
        "providerId": "string",
        "website": "string",
        "hasPrepaid": true,
        "hasPostpaid": true,
        "mock": true,
        "beta": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicProviderResource

Properties

Name Type Required Description
_embedded object false none
» providers [PublicProviderResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicServiceTypeResource

{
  "_embedded": {
    "serviceTypes": [
      {
        "_links": {
          "providers": "string",
          "self": "string"
        },
        "created": "2022-04-27T17:18:51Z",
        "modified": "2022-04-27T17:18:51Z",
        "name": "string",
        "uuid": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicServiceTypeResource

Properties

Name Type Required Description
_embedded object false none
» serviceTypes [PublicServiceTypeResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PublicProviderResource

{
  "_links": {
    "serviceTypes": "string",
    "parentProvider": "string",
    "self": "string"
  },
  "providerName": "string",
  "hasMultiFactorAuthentication": true,
  "requiredFields": [
    "string"
  ],
  "requiredFieldMetadata": [
    {
      "fieldName": "string",
      "fieldLabel": "string",
      "fieldNumber": 0,
      "fieldPart": 0,
      "fieldLength": 0
    }
  ],
  "supportsCredentialValidation": true,
  "country": "string",
  "enabledSolutions": [
    "CREDIT"
  ],
  "serviceTypes": [
    "string"
  ],
  "providerId": "string",
  "website": "string",
  "hasPrepaid": true,
  "hasPostpaid": true,
  "mock": true,
  "beta": true
}

PublicProviderResource

Properties

Name Type Required Description
_links object false none
» serviceTypes string false none
» parentProvider string false none
» self string false none
providerName string false A human readable name for the utility company. This field is searchable.
hasMultiFactorAuthentication boolean false Indicates that a provider's website may require multi-factor authentication. See here for more details.
requiredFields [string] false The inputs needed to submit a request for this provider
requiredFieldMetadata [object] false Detailed information about the required input fields for this provider
» fieldName string false none
» fieldLabel string false none
» fieldNumber number false none
» fieldPart number false none
» fieldLength number false none
supportsCredentialValidation boolean false Whether this provider supports Real-Time validation of credentials. If enabled, credentials can be checked for validity in less than 30 seconds. This field is searchable.
country string false The primary country of operation for this provider. This field is searchable.
enabledSolutions [string] false A list of the solutions supported by this provider
serviceTypes [string] false A list of the service types that this provider supports. This field is not searchable.
providerId string false The primary key used to represent this provider
website string false The link Urjanet will use to access the provider's website. This field is searchable.
hasPrepaid boolean false Indicates that a provider supports prepaid statements.
hasPostpaid boolean false Indicates that a provider supports postpaid statements.
mock boolean false Indicates that a provider is a mock provider
beta boolean false Indicates that a provider is a beta provider

PublicServiceTypeResource

{
  "_links": {
    "providers": "string",
    "self": "string"
  },
  "created": "2022-04-27T17:18:51Z",
  "modified": "2022-04-27T17:18:51Z",
  "name": "string",
  "uuid": "string"
}

PublicServiceTypeResource

Properties

Name Type Required Description
_links object false none
» providers string false none
» self string false none
created string(date-time) false none
modified string(date-time) false none
name string false Name of this service type (e.g. 'Electric'). This field is searchable.
uuid string false The primary key used to represent this service type

CreditRequestDTO

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "interactive": true,
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

CreditRequestDTO

Properties

Name Type Required Description
accountNumber string false If provided, only data for this account will be extracted
webhookUrl string false Urjanet will send status updates to this URL via HTTP events
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
providerId string true The primary key used to represent this provider
interactive boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username string true A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

ChallengeResponseResource

{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}

Properties

Name Type Required Description
value string false The requested value from the user for MFA input
challenge string false The particular challenge that this value corresponds to (e.g. one time pass, security question, etc)

Enumerated Values

Property Value
challenge MFA_RESPONSE_ONE_TIME_PASS
challenge MFA_RESPONSE_CODE_METHOD
challenge MFA_RESPONSE_CAPTCHA_ANSWER

SolarRequestDTO

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "periodEnd": "string",
  "periodStart": "string",
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

SolarRequestDTO

Properties

Name Type Required Description
accountNumber string false If provided, only data for this account will be extracted
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
interactive boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
providerId string true The primary key used to represent this provider
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username string true A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

IdentityRequestDTO

{
  "accountNumber": "string",
  "webhookUrl": "string",
  "correlationId": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "providerId": "string",
  "timeout": 3600,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

IdentityRequestDTO

Properties

Name Type Required Description
accountNumber string false If provided, only data for this account will be extracted
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
interactive boolean false Indicates that your system can handle a challenge-response workflow (notably MFA). See here for more details. If set to true, webhookUrl is a required field.
providerId string true The primary key used to represent this provider
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request
username string true A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

PublicRequestResource

{
  "_links": {
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

PublicRequestResource

Properties

Name Type Required Description
_links object false none
» consent string false none
» self string false none
accountNumber string false If provided, only data for this account will be extracted. This field is searchable.
providerId string false The primary key used to represent this provider
providerName string false This field is searchable.
webhookResult integer(int32) false Result of posting the completed result to the webhook URL.
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
completionStatus string false A high-level status for the request. See this table for more information. This field is searchable.
completionStatusDetail string false A detailed status for the request. See this table for more information. This field is searchable.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system. This field is searchable.
createdDate string(date-time) false The date-time the request was registered in Urjanet's system
expirationDate string(date-time) false The date that this request will expire, based on the value given to the initial request
statementCount integer(int32) false If completed, the number of statements that were retrieved for this request
username string false A login input required to access the customer's utility data. This field is searchable.
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider. This field is searchable.
username3 string false See username2
username4 string false See username2
mock boolean false Whether or not the request was submitted to a mock provider

Enumerated Values

Property Value
completionStatus SUCCESS
completionStatus PENDING
completionStatus FAILURE
completionStatus CANCELLED
completionStatusDetail NO_STATEMENTS_IN_PERIOD
completionStatusDetail MULTIPLE_ACCOUNTS_ON_SITE
completionStatusDetail RETRYING_UNTIL_EXPIRATION
completionStatusDetail ACCOUNT_NOT_FOUND
completionStatusDetail CREDENTIALS_INVALID
completionStatusDetail MISSING_REQUIRED_PARAMETER
completionStatusDetail MISSING_REQUIRED_DATA
completionStatusDetail MULTI_FACTOR_AUTH_FAILURE
completionStatusDetail UNSUPPORTED_ACCOUNT_PREPAID
completionStatusDetail UNSUPPORTED_CAPTCHA
completionStatusDetail USER_ACTION_REQUIRED
completionStatusDetail WEBSITE_DOWN
completionStatusDetail LIMITED_ACCESS
completionStatusDetail GENERAL_FAILURE

CreditStatementResource

{
  "_links": {
    "viewstatementsource": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "billingAddressCity": "string",
  "billingAddressCountry": "string",
  "billingAddressName": "string",
  "billingAddressPostalCode": "string",
  "billingAddressRaw": "string",
  "billingAddressState": "string",
  "billingAddressStreet1": "string",
  "billingAddressStreet2": "string",
  "serviceAddressCity": "string",
  "serviceAddressCountry": "string",
  "serviceAddressName": "string",
  "serviceAddressPostalCode": "string",
  "serviceAddressRaw": "string",
  "serviceAddressState": "string",
  "serviceAddressStreet1": "string",
  "serviceAddressStreet2": "string",
  "currency": "string",
  "totalBill": 0,
  "balanceAdjustments": 0,
  "dueDate": "string",
  "statementDate": "string",
  "statementType": "BILL"
}

CreditStatementResource

Properties

Name Type Required Description
_links object false none
» viewstatementsource string false none
» self string false none
accountNumber string false none
billingAddressCity string false none
billingAddressCountry string false none
billingAddressName string false none
billingAddressPostalCode string false none
billingAddressRaw string false none
billingAddressState string false none
billingAddressStreet1 string false none
billingAddressStreet2 string false none
serviceAddressCity string false none
serviceAddressCountry string false none
serviceAddressName string false none
serviceAddressPostalCode string false none
serviceAddressRaw string false none
serviceAddressState string false none
serviceAddressStreet1 string false none
serviceAddressStreet2 string false none
currency string false none
totalBill number false none
balanceAdjustments number false none
dueDate string false none
statementDate string false none
statementType string false none

Enumerated Values

Property Value
statementType BILL
statementType PREPAID

PagedCreditStatementResource

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "currency": "string",
        "totalBill": 0,
        "balanceAdjustments": 0,
        "dueDate": "string",
        "statementDate": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedCreditStatementResource

Properties

Name Type Required Description
_embedded object false none
» statements [CreditStatementResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

CreditPaymentResource

{
  "_links": {
    "viewpaymentsource": "string",
    "self": "string"
  },
  "amount": 0,
  "paymentDate": "string",
  "currency": "string"
}

CreditPaymentResource

Properties

Name Type Required Description
_links object false none
» viewpaymentsource string false none
» self string false none
amount number false none
paymentDate string false none
currency string false none

PagedCreditPaymentResource

{
  "_embedded": {
    "payments": [
      {
        "_links": {
          "viewpaymentsource": "string",
          "self": "string"
        },
        "amount": 0,
        "paymentDate": "string",
        "currency": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedCreditPaymentResource

Properties

Name Type Required Description
_embedded object false none
» payments [CreditPaymentResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

AccountResource

{
  "prepaid": true,
  "_links": {
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string"
}

CreditAccountResource

Properties

Name Type Required Description
prepaid boolean false Indicates that an account is prepaid.
_links object false none
» statements string false none
» self string false none
accountNumber string false none

PagedAccountResource

{
  "_embedded": {
    "accounts": [
      {
        "prepaid": true,
        "_links": {
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedAccountResource

Properties

Name Type Required Description
_embedded object false none
» accounts [AccountResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PublicCreditRequestResource

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

PublicCreditRequestResource

Properties

Name Type Required Description
_links object false none
» cloneCredit string false none
» cloneSolar string false none
» cloneIdentity string false none
» consent string false none
» self string false none
accountNumber string false If provided, only data for this account will be extracted. This field is searchable.
providerId string false The primary key used to represent this provider
providerName string false This field is searchable.
webhookResult integer(int32) false Result of posting the completed result to the webhook URL.
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
completionStatus string false A high-level status for the request. See this table for more information. This field is searchable.
completionStatusDetail string false A detailed status for the request. See this table for more information. This field is searchable.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system. This field is searchable.
createdDate string(date-time) false The date-time the request was registered in Urjanet's system
expirationDate string(date-time) false The date that this request will expire, based on the value given to the initial request
statementCount integer(int32) false If completed, the number of statements that were retrieved for this request
username string false A login input required to access the customer's utility data. This field is searchable.
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider. This field is searchable.
username3 string false See username2
username4 string false See username2
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
mock boolean false Whether or not the request was submitted to a mock provider

Enumerated Values

Property Value
completionStatus SUCCESS
completionStatus PENDING
completionStatus FAILURE
completionStatus TIMEOUT (Deprecated; may be present on older data)
completionStatus CANCELLED
completionStatusDetail NO_STATEMENTS_IN_PERIOD
completionStatusDetail MULTIPLE_ACCOUNTS_ON_SITE
completionStatusDetail RETRYING_UNTIL_EXPIRATION
completionStatusDetail ACCOUNT_NOT_FOUND
completionStatusDetail CREDENTIALS_INVALID
completionStatusDetail MISSING_REQUIRED_PARAMETER
completionStatusDetail MISSING_REQUIRED_DATA
completionStatusDetail MULTI_FACTOR_AUTH_FAILURE
completionStatusDetail UNSUPPORTED_ACCOUNT_PREPAID
completionStatusDetail UNSUPPORTED_CAPTCHA
completionStatusDetail USER_ACTION_REQUIRED
completionStatusDetail WEBSITE_DOWN
completionStatusDetail LIMITED_ACCESS
completionStatusDetail GENERAL_FAILURE

PublicSolarRequestResource

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "periodEnd": "string",
  "periodStart": "string",
  "mock": true
}

PublicSolarRequestResource

Properties

Name Type Required Description
_links object false none
» cloneCredit string false none
» cloneSolar string false none
» cloneIdentity string false none
» consent string false none
» self string false none
accountNumber string false If provided, only data for this account will be extracted. This field is searchable.
providerId string false The primary key used to represent this provider
providerName string false This field is searchable.
webhookResult integer(int32) false Result of posting the completed result to the webhook URL.
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
completionStatus string false A high-level status for the request. See this table for more information. This field is searchable.
completionStatusDetail string false A detailed status for the request. See this table for more information. This field is searchable.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system. This field is searchable.
createdDate string(date-time) false The date-time the request was registered in Urjanet's system
expirationDate string(date-time) false The date that this request will expire, based on the value given to the initial request
statementCount integer(int32) false If completed, the number of statements that were retrieved for this request
username string false A login input required to access the customer's utility data. This field is searchable.
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider. This field is searchable.
username3 string false See username2
username4 string false See username2
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
mock boolean false Whether or not the request was submitted to a mock provider

Enumerated Values

Property Value
completionStatus SUCCESS
completionStatus PENDING
completionStatus FAILURE
completionStatus TIMEOUT (Deprecated; may be present on older data)
completionStatus CANCELLED
completionStatusDetail NO_STATEMENTS_IN_PERIOD
completionStatusDetail MULTIPLE_ACCOUNTS_ON_SITE
completionStatusDetail RETRYING_UNTIL_EXPIRATION
completionStatusDetail ACCOUNT_NOT_FOUND
completionStatusDetail CREDENTIALS_INVALID
completionStatusDetail MISSING_REQUIRED_PARAMETER
completionStatusDetail MISSING_REQUIRED_DATA
completionStatusDetail MULTI_FACTOR_AUTH_FAILURE
completionStatusDetail UNSUPPORTED_ACCOUNT_PREPAID
completionStatusDetail UNSUPPORTED_CAPTCHA
completionStatusDetail USER_ACTION_REQUIRED
completionStatusDetail WEBSITE_DOWN
completionStatusDetail LIMITED_ACCESS
completionStatusDetail GENERAL_FAILURE

PublicIdentityRequestResource

{
  "_links": {
    "cloneCredit": "string",
    "cloneSolar": "string",
    "cloneIdentity": "string",
    "consent": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "providerId": "string",
  "providerName": "string",
  "webhookResult": 0,
  "webhookUrl": "string",
  "completionStatus": "SUCCESS",
  "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
  "correlationId": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationDate": "2022-04-27T17:18:51Z",
  "statementCount": 0,
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "mock": true
}

PublicIdentityRequestResource

Properties

Name Type Required Description
_links object false none
» cloneCredit string false none
» cloneSolar string false none
» cloneIdentity string false none
» consent string false none
» self string false none
accountNumber string false If provided, only data for this account will be extracted. This field is searchable.
providerId string false The primary key used to represent this provider
providerName string false This field is searchable.
webhookResult integer(int32) false Result of posting the completed result to the webhook URL.
webhookUrl string false Urjanet will send status updates to this URL via HTTP events. See here for more information.
completionStatus string false A high-level status for the request. See this table for more information. This field is searchable.
completionStatusDetail string false A detailed status for the request. See this table for more information. This field is searchable.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system. This field is searchable.
createdDate string(date-time) false The date-time the request was registered in Urjanet's system
expirationDate string(date-time) false The date that this request will expire, based on the value given to the initial request
statementCount integer(int32) false If completed, the number of statements that were retrieved for this request
username string false A login input required to access the customer's utility data. This field is searchable.
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider. This field is searchable.
username3 string false See username2
username4 string false See username2
mock boolean false Whether or not the request was submitted to a mock provider

Enumerated Values

Property Value
completionStatus SUCCESS
completionStatus PENDING
completionStatus FAILURE
completionStatus TIMEOUT (Deprecated; may be present on older data)
completionStatus CANCELLED
completionStatusDetail NO_STATEMENTS_IN_PERIOD
completionStatusDetail MULTIPLE_ACCOUNTS_ON_SITE
completionStatusDetail RETRYING_UNTIL_EXPIRATION
completionStatusDetail ACCOUNT_NOT_FOUND
completionStatusDetail CREDENTIALS_INVALID
completionStatusDetail MISSING_REQUIRED_PARAMETER
completionStatusDetail MISSING_REQUIRED_DATA
completionStatusDetail MULTI_FACTOR_AUTH_FAILURE
completionStatusDetail UNSUPPORTED_ACCOUNT_PREPAID
completionStatusDetail UNSUPPORTED_CAPTCHA
completionStatusDetail USER_ACTION_REQUIRED
completionStatusDetail WEBSITE_DOWN
completionStatusDetail LIMITED_ACCESS
completionStatusDetail GENERAL_FAILURE

PagedPublicRequestResource

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicRequestResource

Properties

Name Type Required Description
_embedded object false none
» requests [PublicRequestResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

SolarStatementResource

{
  "_links": {
    "viewstatementsource": "string",
    "self": "string"
  },
  "billingAddressCity": "string",
  "billingAddressCountry": "string",
  "billingAddressName": "string",
  "billingAddressPostalCode": "string",
  "billingAddressRaw": "string",
  "billingAddressState": "string",
  "billingAddressStreet1": "string",
  "billingAddressStreet2": "string",
  "serviceAddressCity": "string",
  "serviceAddressCountry": "string",
  "serviceAddressName": "string",
  "serviceAddressPostalCode": "string",
  "serviceAddressRaw": "string",
  "serviceAddressState": "string",
  "serviceAddressStreet1": "string",
  "serviceAddressStreet2": "string",
  "currency": "string",
  "totalBill": 0,
  "electricCost": 0,
  "consumption": 0,
  "demand": 0,
  "tariff": "string",
  "statementMessages": "string",
  "statementIntervalStart": "string",
  "statementIntervalEnd": "string",
  "usageIntervalStart": "string",
  "usageIntervalEnd": "string",
  "statementType": "BILL"
}

SolarStatementResource

Properties

Name Type Required Description
_links object false none
» viewstatementsource string false none
» self string false none
billingAddressCity string false none
billingAddressCountry string false none
billingAddressName string false none
billingAddressPostalCode string false none
billingAddressRaw string false none
billingAddressState string false none
billingAddressStreet1 string false none
billingAddressStreet2 string false none
serviceAddressCity string false none
serviceAddressCountry string false none
serviceAddressName string false none
serviceAddressPostalCode string false none
serviceAddressRaw string false none
serviceAddressState string false none
serviceAddressStreet1 string false none
serviceAddressStreet2 string false none
currency string false none
totalBill number false none
electricCost number false none
consumption number false none
demand number false none
tariff string false none
statementMessages string false none
statementIntervalStart string false none
statementIntervalEnd string false none
usageIntervalStart string false none
usageIntervalEnd string false none
statementType string false none

Enumerated Values

Property Value
statementType BILL
statementType PREPAID

PagedSolarStatementResource

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "currency": "string",
        "totalBill": 0,
        "electricCost": 0,
        "consumption": 0,
        "demand": 0,
        "tariff": "string",
        "statementMessages": "string",
        "statementIntervalStart": "string",
        "statementIntervalEnd": "string",
        "usageIntervalStart": "string",
        "usageIntervalEnd": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedSolarStatementResource

Properties

Name Type Required Description
_embedded object false none
» statements [SolarStatementResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

IdentityStatementResource

{
  "_links": {
    "viewstatementsource": "string",
    "self": "string"
  },
  "billingAddressCity": "string",
  "billingAddressCountry": "string",
  "billingAddressName": "string",
  "billingAddressPostalCode": "string",
  "billingAddressRaw": "string",
  "billingAddressState": "string",
  "billingAddressStreet1": "string",
  "billingAddressStreet2": "string",
  "serviceAddressCity": "string",
  "serviceAddressCountry": "string",
  "serviceAddressName": "string",
  "serviceAddressPostalCode": "string",
  "serviceAddressRaw": "string",
  "serviceAddressState": "string",
  "serviceAddressStreet1": "string",
  "serviceAddressStreet2": "string",
  "statementDate": "string",
  "statementType": "BILL"
}

IdentityStatementResource

Properties

Name Type Required Description
_links object false none
» viewstatementsource string false none
» self string false none
billingAddressCity string false none
billingAddressCountry string false none
billingAddressName string false none
billingAddressPostalCode string false none
billingAddressRaw string false none
billingAddressState string false none
billingAddressStreet1 string false none
billingAddressStreet2 string false none
serviceAddressCity string false none
serviceAddressCountry string false none
serviceAddressName string false none
serviceAddressPostalCode string false none
serviceAddressRaw string false none
serviceAddressState string false none
serviceAddressStreet1 string false none
serviceAddressStreet2 string false none
statementDate string false none
statementType string false none

Enumerated Values

Property Value
statementType BILL
statementType PREPAID

PagedIdentityStatementResource

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "viewstatementsource": "string",
          "self": "string"
        },
        "billingAddressCity": "string",
        "billingAddressCountry": "string",
        "billingAddressName": "string",
        "billingAddressPostalCode": "string",
        "billingAddressRaw": "string",
        "billingAddressState": "string",
        "billingAddressStreet1": "string",
        "billingAddressStreet2": "string",
        "serviceAddressCity": "string",
        "serviceAddressCountry": "string",
        "serviceAddressName": "string",
        "serviceAddressPostalCode": "string",
        "serviceAddressRaw": "string",
        "serviceAddressState": "string",
        "serviceAddressStreet1": "string",
        "serviceAddressStreet2": "string",
        "statementDate": "string",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedIdentityStatementResource

Properties

Name Type Required Description
_embedded object false none
» statements [IdentityStatementResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicCreditRequestResource

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "periodEnd": "string",
        "periodStart": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicCreditRequestResource

Properties

Name Type Required Description
_embedded object false none
» requests [PublicCreditRequestResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicSolarRequestResource

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "periodEnd": "string",
        "periodStart": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicSolarRequestResource

Properties

Name Type Required Description
_embedded object false none
» requests [PublicSolarRequestResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicIdentityRequestResource

{
  "_embedded": {
    "requests": [
      {
        "_links": {
          "cloneCredit": "string",
          "cloneSolar": "string",
          "cloneIdentity": "string",
          "consent": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "providerId": "string",
        "providerName": "string",
        "webhookResult": 0,
        "webhookUrl": "string",
        "completionStatus": "SUCCESS",
        "completionStatusDetail": "NO_STATEMENTS_IN_PERIOD",
        "correlationId": "string",
        "createdDate": "2022-04-27T17:18:51Z",
        "expirationDate": "2022-04-27T17:18:51Z",
        "statementCount": 0,
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string",
        "mock": true
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicIdentityRequestResource

Properties

Name Type Required Description
_embedded object false none
» requests [PublicIdentityRequestResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

CreditCloneRequestDTO

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Properties

Name Type Required Description
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl string false Urjanet will send status updates to this URL via HTTP events
accountNumber string false If provided, only data for this account will be extracted
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

IdentityCloneRequestDTO

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Properties

Name Type Required Description
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl string false Urjanet will send status updates to this URL via HTTP events
accountNumber string false If provided, only data for this account will be extracted
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

SolarCloneRequestDTO

{
  "periodEnd": "string",
  "periodStart": "string",
  "webhookUrl": "string",
  "accountNumber": "string",
  "correlationId": "string",
  "timeout": 3600
}

Properties

Name Type Required Description
periodEnd string false End date of statements to include; formatted YYYY-MM-DD
periodStart string false Start date of statements to include; formatted YYYY-MM-DD
webhookUrl string false Urjanet will send status updates to this URL via HTTP events
accountNumber string false If provided, only data for this account will be extracted
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
timeout integer(int32) false The length of time, in seconds, which Urjanet will continue to fulfill this request

DownloadRequestDTO

{
  "search": "string"
}

Properties

Name Type Required Description
search string false An rsql search string

CurrentOrganizationPaymentRequest

{
  "paymentToken": "string"
}

CurrentOrganizationPaymentRequest

Properties

Name Type Required Description
paymentToken string false none

PagedPrepaidPricingResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string"
      },
      "amount": 0,
      "discount": 0,
      "solution": "CREDIT",
      "totalPrice": 0
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPrepaidPricingResource

Properties

Name Type Required Description
_embedded [PrepaidPricingResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedProductResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string"
      },
      "basePrice": 0,
      "solution": "CREDIT"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedProductResource

Properties

Name Type Required Description
_embedded [ProductResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedUsageCreditResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string"
      },
      "amount": 0,
      "amountRemaining": 0,
      "expirationDate": "2022-04-27T17:18:51Z",
      "solution": "CREDIT"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedUsageCreditResource

Properties

Name Type Required Description
_embedded [UsageCreditResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PaymentSourceResource

{
  "_links": {
    "self": "string"
  },
  "billingEmail": "string",
  "createdBy": "string",
  "createdDate": "2022-04-27T17:18:51Z",
  "expirationMonth": 0,
  "expirationYear": 0,
  "last4": "string",
  "lastModified": "2022-04-27T17:18:51Z",
  "lastModifiedBy": "string"
}

PaymentSourceResource

Properties

Name Type Required Description
_links object false none
» self string false none
billingEmail string false none
createdBy string false none
createdDate string(date-time) false none
expirationMonth integer(int64) false none
expirationYear integer(int64) false none
last4 string false none
lastModified string(date-time) false none
lastModifiedBy string false none

InvoiceList

{
  "_embedded": [
    {
      "statementDate": "2022-04-27T17:18:51Z",
      "dueDate": "2022-04-27T17:18:51Z",
      "invoiceType": "string",
      "isSubscription": true,
      "quantity": 0,
      "amountDue": 0,
      "isPaid": true,
      "pdfUrl": "string"
    }
  ],
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

InvoiceList

Properties

Name Type Required Description
_embedded [InvoiceResource] false none
page PageMetadata false none

InvoiceResource

{
  "statementDate": "2022-04-27T17:18:51Z",
  "dueDate": "2022-04-27T17:18:51Z",
  "invoiceType": "string",
  "isSubscription": true,
  "quantity": 0,
  "amountDue": 0,
  "isPaid": true,
  "pdfUrl": "string"
}

InvoiceResource

Properties

Name Type Required Description
statementDate string(date-time) false none
dueDate string(date-time) false none
invoiceType string false none
isSubscription boolean false none
quantity integer(int64) false none
amountDue number false none
isPaid boolean false none
pdfUrl string false none

PrepaidPricingResource

{
  "_links": {
    "self": "string"
  },
  "amount": 0,
  "discount": 0,
  "solution": "CREDIT",
  "totalPrice": 0
}

PrepaidPricingResource

Properties

Name Type Required Description
_links object false none
» self string false none
amount integer(int32) false none
discount number false none
solution string false none
totalPrice number false none

Enumerated Values

Property Value
solution CREDIT
solution SOLAR
solution IDENTITY
solution RECURRING_STANDARD

ProductResource

{
  "_links": {
    "self": "string"
  },
  "basePrice": 0,
  "solution": "CREDIT"
}

ProductResource

Properties

Name Type Required Description
_links object false none
» self string false none
basePrice number false none
solution string false none

Enumerated Values

Property Value
solution CREDIT
solution SOLAR
solution IDENTITY
solution RECURRING_STANDARD

TotalUsageCreditResource

{
  "_links": {
    "self": "string"
  },
  "totalUsageCredits": {
    "property1": 0,
    "property2": 0
  }
}

TotalUsageCreditResource

Properties

Name Type Required Description
_links object false none
» self string false none
totalUsageCredits object false none
» additionalProperties integer(int32) false none

UsageCreditRequest

{
  "prepaidPricing": "string"
}

UsageCreditRequest

Properties

Name Type Required Description
prepaidPricing string false none

UsageCreditResource

{
  "_links": {
    "self": "string"
  },
  "amount": 0,
  "amountRemaining": 0,
  "expirationDate": "2022-04-27T17:18:51Z",
  "solution": "CREDIT"
}

UsageCreditResource

Properties

Name Type Required Description
_links object false none
» self string false none
amount integer(int32) false none
amountRemaining integer(int32) false none
expirationDate string(date-time) false none
solution string false none

Enumerated Values

Property Value
solution CREDIT
solution SOLAR
solution IDENTITY
solution RECURRING_STANDARD

BulkCredentialUploadStatus

{
  "invalidRows": 0,
  "rowsStatus": [
    "string"
  ],
  "successful": true,
  "validRows": 0
}

BulkCredentialUploadStatus

Properties

Name Type Required Description
invalidRows integer(int32) false none
rowsStatus [string] false none
successful boolean false none
validRows integer(int32) false none

CredentialSecretsResource

{
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

CredentialSecretsResource

Properties

Name Type Required Description
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

PagedPublicAccountDeleteLogResource

{
  "_embedded": {
    "deletionLogs": [
      {
        "_links": {
          "self": "string"
        },
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:52Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicAccountDeleteLogResource

Properties

Name Type Required Description
_embedded object false none
» deletionLogs [PublicAccountDeleteLogResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicAccountEventResource

{
  "_embedded": {
    "accountEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "eventType": "ACCOUNT_REQUESTED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicAccountEventResource

Properties

Name Type Required Description
_embedded object false none
» accountEvents [PublicAccountEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicAccountResource

{
  "_embedded": {
    "accounts": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "events": "string",
          "customData": "string",
          "payments": "string",
          "download": "string",
          "credentials": "string",
          "statements": "string",
          "self": "string"
        },
        "accountNumber": "string",
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "lastModified": "2022-04-27T17:18:52Z",
        "lastModifiedBy": "string",
        "enabled": true,
        "prepaid": true,
        "normalizedAccountNumber": "string",
        "latestNewStatement": null,
        "latestStatementDate": null,
        "numberOfStatements": 0,
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_CLOSED",
        "type": "NORMAL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicAccountResource

Properties

Name Type Required Description
_embedded object false none
» accounts [PublicAccountResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicCredentialDeleteLogResource

{
  "_embedded": {
    "deletionLogs": [
      {
        "createdBy": "string",
        "createdOn": "2022-04-27T17:18:52Z",
        "numberOfAccounts": 0,
        "numberOfCredentials": 0,
        "numberOfStatements": 0
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicCredentialDeleteLogResource

Properties

Name Type Required Description
_embedded object false none
» deletionLogs [PublicCredentialDeleteLogResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicCredentialEventResource

{
  "_embedded": {
    "credentialEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "eventType": "CREDENTIAL_CREATED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicCredentialEventResource

Properties

Name Type Required Description
_embedded object false none
» credentialEvents [PublicCredentialEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicCredentialResource

{
  "_embedded": {
    "credentials": [
      {
        "_embedded": {
          "customData": {}
        },
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "refreshUrl": "string",
          "download": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:52Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:52Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicCredentialResource

Properties

Name Type Required Description
_embedded object false none
» credentials [PublicCredentialResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicStatementResource

{
  "_embedded": {
    "statements": [
      {
        "_links": {
          "accounts": "string",
          "source": "string",
          "meters": "string",
          "charges": "string",
          "self": "string"
        },
        "serviceAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "billingAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "paymentAddress": {
          "recipient": "string",
          "city": "string",
          "country": "string",
          "postalCode": "string",
          "rawAddress": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        },
        "amountDue": 0,
        "balance": 0,
        "lateFees": 0,
        "dueDate": "2022-04-27",
        "endDate": "2022-04-27",
        "invoiceNumber": "string",
        "createdDate": "2022-04-27",
        "modifiedDate": "2022-04-27",
        "startDate": "2022-04-27",
        "statementDate": "2022-04-27",
        "statementType": "BILL"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicStatementResource

Properties

Name Type Required Description
_embedded object false none
» statements [PublicStatementResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PublicPaymentResource

{
  "amount": 0,
  "currency": "string",
  "paymentDate": "2022-04-27"
}

PublicPaymentResource

Properties

Name Type Required Description
amount number false This field is searchable
currency string false none
paymentDate string(date) false This field is searchable

PagedPublicPaymentResource

{
  "_embedded": {
    "payments": [
      {
        "amount": 0,
        "currency": "string",
        "paymentDate": "2022-04-27"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicPaymentResource

Properties

Name Type Required Description
_embedded object false none
» payments [PublicPaymentResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PublicAccountCustomDataRequest

{
  "property1": "string",
  "property2": "string"
}

PublicAccountCustomDataRequest

Properties

Name Type Required Description
additionalProperties string false none

PublicAccountDeleteLogResource

{
  "_links": {
    "self": "string"
  },
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:52Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

PublicAccountDeleteLogResource

Properties

Name Type Required Description
_links object false none
» self string false none
createdBy string false none
createdOn string(date-time) false none
numberOfAccounts integer(int32) false none
numberOfCredentials integer(int32) false none
numberOfStatements integer(int32) false none

PublicAccountEventResource

{
  "_links": {
    "self": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "ACCOUNT_REQUESTED",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

PublicAccountEventResource

Properties

Name Type Required Description
_links object false none
» self string false none
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType ACCOUNT_REQUESTED
eventType ACCOUNT_ENABLED
eventType ACCOUNT_DISABLED
eventType ACCOUNT_UPDATED
eventType ACCOUNT_CUSTOM_DATA_UPDATED
eventType ACCOUNT_CREATED
eventType ACCOUNT_AGING

PublicAccountResource

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "events": "string",
    "customData": "string",
    "payments": "string",
    "download": "string",
    "credentials": "string",
    "statements": "string",
    "self": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "enabled": true,
  "prepaid": true,
  "normalizedAccountNumber": "string",
  "latestNewStatement": null,
  "latestStatementDate": null,
  "numberOfStatements": 0,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

PublicAccountResource

Properties

Name Type Required Description
_embedded object false none
» customData object false none
_links object false none
» provider string false none
» events string false none
» customData string false none
» payments string false none
» download string false none
» credentials string false none
» statements string false none
» self string false none
accountNumber string false This field is searchable.
created string(date-time) false none
createdBy string false none
lastModified string(date-time) false none
lastModifiedBy string false none
enabled boolean false Controls whether data will continue to be extracted for this account.
prepaid boolean false Indicates that an account is prepaid.
normalizedAccountNumber string false Leading zeroes and non-word characters (e.g. dashes, underscores, etc.) are removed in this field.
latestNewStatement any false This represents when we've most recently stored any newly extracted data for this account
latestStatementDate any false This is the most recent statement date among all statements extracted for this account
numberOfStatements integer(int32) false none
providerName string false This field is searchable.
status string false A high-level status for the account. See this table for more information. This field is searchable.
statusDetail string false A detailed status for the account. See this table for more information. This field is searchable.
type string false Represents

Enumerated Values

Property Value
status OK
status PENDING
status ACCESS_ISSUE
status OLD
statusDetail ACCOUNT_CLOSED
statusDetail ACCOUNT_NOT_FOUND
statusDetail ACCOUNT_NUMBER_CHANGE
statusDetail DORMANT
statusDetail E_BILL_REQUIRED
statusDetail EXTRACTION_FAILURE
statusDetail INVALID_SOURCE
statusDetail NO_ACTION_REQUIRED
statusDetail STATEMENT_UNAVAILABLE
statusDetail UNDER_REVIEW
statusDetail ACCOUNT_SETUP_REQUIRED
statusDetail INSUFFICIENT_DATA
type NORMAL
type SUMMARY
type SUB_ACCOUNT

PublicAccountsCountResource

{
  "_links": {
    "self": "string"
  },
  "newAccounts": 0,
  "oldAccounts": 0,
  "subscribedAccounts": 0,
  "totalAccounts": 0,
  "unsubscribedAccounts": 0
}

PublicAccountsCountResource

Properties

Name Type Required Description
_links object false none
» self string false none
newAccounts integer(int64) false none
oldAccounts integer(int64) false none
subscribedAccounts integer(int64) false none
totalAccounts integer(int64) false none
unsubscribedAccounts integer(int64) false none

PublicCreateAccountRequest

{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}

PublicCreateAccountRequest

Properties

Name Type Required Description
accountNumber string false none
enabled boolean false Controls whether data will continue to be extracted for this account.
providerId string false The primary key used to represent this provider

PublicCredentialCountResource

{
  "_links": {
    "self": "string"
  },
  "active": 0,
  "inactive": 0,
  "issues": 0,
  "total": 0
}

PublicCredentialCountResource

Properties

Name Type Required Description
_links object false none
» self string false none
active integer(int64) false none
inactive integer(int64) false none
issues integer(int64) false none
total integer(int64) false none

PublicCredentialCustomDataRequest

{
  "property1": "string",
  "property2": "string"
}

PublicCredentialCustomDataRequest

Properties

Name Type Required Description
additionalProperties string false none

PublicCredentialDeleteLogResource

{
  "createdBy": "string",
  "createdOn": "2022-04-27T17:18:52Z",
  "numberOfAccounts": 0,
  "numberOfCredentials": 0,
  "numberOfStatements": 0
}

PublicCredentialDeleteLogResource

Properties

Name Type Required Description
createdBy string false none
createdOn string(date-time) false none
numberOfAccounts integer(int32) false none
numberOfCredentials integer(int32) false none
numberOfStatements integer(int32) false none

PublicCredentialEventResource

{
  "_links": {
    "self": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "CREDENTIAL_CREATED",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

PublicCredentialEventResource

Properties

Name Type Required Description
_links object false none
» self string false none
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType CREDENTIAL_CREATED
eventType CREDENTIAL_ENABLED
eventType CREDENTIAL_DISABLED
eventType CREDENTIAL_UPDATED
eventType CREDENTIAL_CUSTOM_DATA_UPDATED
eventType CREDENTIAL_ACQ_TEMPLATE_UPDATED

PublicCredentialRequest

{
  "correlationId": "string",
  "providerId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}

PublicCredentialRequest

Properties

Name Type Required Description
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
providerId string false The primary key used to represent this provider
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2

PublicProviderCredentialRequest

{
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}

PublicProviderCredentialRequest

Properties

Name Type Required Description
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2

PublicCredentialResource

{
  "_embedded": {
    "customData": {}
  },
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "refreshUrl": "string",
    "download": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:52Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

PublicCredentialResource

Properties

Name Type Required Description
_embedded object false none
» customData object false none
_links object false none
» provider string false none
» passwords string false none
» events string false none
» customData string false none
» consent string false none
» updateUrl string false none
» refreshUrl string false none
» download string false none
» accounts string false none
» self string false none
runHistory boolean false none
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
created string(date-time) false The date-time the credential was registered in Urjanet's system
createdBy string false none
enabled boolean false Controls whether data will continue to be extracted behind this credential.
lastModified string(date-time) false none
lastModifiedBy string false none
nextScheduledRun string(date-time) false The time that this credential is next scheduled to be ran in our system
providerName string false This field is searchable.
status string false A high-level status for the credential. See this table for more information. This field is searchable.
statusDetail string false A detailed status for the credential. See this table for more information. This field is searchable.
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

Enumerated Values

Property Value
status OK
status PENDING
status ACTION_REQUIRED
statusDetail ACCOUNT_LOCKED
statusDetail E_BILL_REQUIRED
statusDetail LOGIN_FAILURE
statusDetail MULTI_FACTOR_AUTH_FAILURE
statusDetail NAVIGATION_FAILURE
statusDetail NO_ACCOUNTS_FOUND
statusDetail NO_ACTION_REQUIRED
statusDetail SECURITY_QUESTIONS
statusDetail STATEMENT_UNAVAILABLE
statusDetail UNDER_REVIEW
statusDetail UNSUPPORTED_CAPTCHA
statusDetail USER_ACTION_REQUIRED
statusDetail WEBSITE_DOWN
statusDetail ACCOUNT_SETUP_REQUIRED

PublicDeleteRequest

{
  "ids": [
    "string"
  ]
}

PublicDeleteRequest

Properties

Name Type Required Description
ids [string] false none

PublicDownloadAccountsRequest

{
  "accountIds": "string",
  "search": "string"
}

PublicDownloadAccountsRequest

Properties

Name Type Required Description
accountIds string false A comma-separated list of account IDs
search string false An RSQL search string for a list of accounts

PublicDownloadCredentialsRequest

{
  "credentialCriteria": "string"
}

PublicDownloadCredentialsRequest

Properties

Name Type Required Description
credentialCriteria string false An RSQL search string for a list of credentials

PublicDownloadStatementsRequest

{
  "search": "string"
}

PublicDownloadStatementsRequest

Properties

Name Type Required Description
search string false An RSQL search string for a list of statements

PublicDownloadRequestResource

{
  "_links": {
    "download": "string"
  },
  "createdDate": "2022-04-27T17:18:52Z"
}

PublicDownloadRequestResource

Properties

Name Type Required Description
_links object false none
» download string false none
createdDate string(date-time) false none

PublicFileResource

{
  "_links": {
    "self": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "lastModified": "2022-04-27T17:18:52Z",
  "sourceType": "TAG_NAME",
  "status": "NEW"
}

PublicFileResource

Properties

Name Type Required Description
_links object false none
» self string false none
created string(date-time) false none
createdBy string false none
lastModified string(date-time) false none
sourceType string false none
status string false none

Enumerated Values

Property Value
sourceType TAG_NAME
sourceType UNCLASSIFIED
sourceType HTML
sourceType CSS
sourceType PNG
sourceType JPG
sourceType GIF
sourceType TIFF
sourceType SVG
sourceType PDF
sourceType JSON
sourceType CSV
sourceType XML
sourceType XLS
sourceType XLSX
sourceType TXT
sourceType ZIP
sourceType MSOTF
sourceType OTF
sourceType SFNT
sourceType TTF
sourceType WOFF
sourceType WOFF2
sourceType URJA_NODE_LIST
sourceType URJA_NAV_HISTORY
sourceType INSERT_BILL
sourceType EDI
sourceType X12
sourceType WOOT
status NEW
status PENDING
status SUCCESS
status REJECTED

PublicOrganizationCustomDataRequest

{
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string"
}

PublicOrganizationCustomDataRequest

Properties

Name Type Required Description
customData1Name string false none
customData2Name string false none
customData3Name string false none
customData4Name string false none
customData5Name string false none
customData6Name string false none
customData7Name string false none
customData8Name string false none
customData9Name string false none
customData10Name string false none

PublicOrganizationCustomDataResource

{
  "_links": {
    "self": "string"
  },
  "customData1Name": "string",
  "customData2Name": "string",
  "customData3Name": "string",
  "customData4Name": "string",
  "customData5Name": "string",
  "customData6Name": "string",
  "customData7Name": "string",
  "customData8Name": "string",
  "customData9Name": "string",
  "customData10Name": "string",
  "name": "string"
}

PublicOrganizationCustomDataResource

Properties

Name Type Required Description
_links object false none
» self string false none
customData1Name string false none
customData2Name string false none
customData3Name string false none
customData4Name string false none
customData5Name string false none
customData6Name string false none
customData7Name string false none
customData8Name string false none
customData9Name string false none
customData10Name string false none
name string false none

PublicStatementCountRequest

{
  "accountIds": "string",
  "search": "string"
}

PublicStatementCountRequest

Properties

Name Type Required Description
accountIds string false none
search string false none

PublicStatementCountResource

{
  "numberOfStatements": 0
}

PublicStatementCountResource

Properties

Name Type Required Description
numberOfStatements integer(int64) false none

PublicStatementResource

{
  "_links": {
    "accounts": "string",
    "source": "string",
    "meters": "string",
    "charges": "string",
    "self": "string"
  },
  "serviceAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "billingAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "paymentAddress": {
    "recipient": "string",
    "city": "string",
    "country": "string",
    "postalCode": "string",
    "rawAddress": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "amountDue": 0,
  "balance": 0,
  "lateFees": 0,
  "dueDate": "2022-04-27",
  "endDate": "2022-04-27",
  "invoiceNumber": "string",
  "createdDate": "2022-04-27",
  "modifiedDate": "2022-04-27",
  "startDate": "2022-04-27",
  "statementDate": "2022-04-27",
  "statementType": "BILL"
}

PublicStatementResource

Properties

Name Type Required Description
_links object false none
» accounts string false none
» source string false none
» meters string false none
» charges string false none
» self string false none
serviceAddress SimpleAddress false May not be populated at this level for solutions that present meter-level data
billingAddress SimpleAddress false none
paymentAddress SimpleAddress false none
amountDue number false none
balance number false none
lateFees number false none
dueDate string(date) false none
endDate string(date) false none
invoiceNumber string false none
createdDate string(date) false none
modifiedDate string(date) false none
startDate string(date) false none
statementDate string(date) false none
statementType string false none

Enumerated Values

Property Value
statementType BILL
statementType NOTICE
statementType ADJUSTMENT
statementType PREPAID

PublicUpdateAccountRequest

{
  "enabled": true
}

PublicUpdateAccountRequest

Properties

Name Type Required Description
enabled boolean false Controls whether data will continue to be extracted for this account.

PublicUpdateCredentialRequest

{
  "enabled": true,
  "correlationId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "interactive": true,
  "runHistory": true
}

PublicUpdateCredentialRequest

Properties

Name Type Required Description
enabled boolean false Controls whether data will continue to be extracted behind this credential.
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
interactive boolean false none
runHistory boolean false none

SimpleAddress

{
  "recipient": "string",
  "city": "string",
  "country": "string",
  "postalCode": "string",
  "rawAddress": "string",
  "state": "string",
  "streetLine1": "string",
  "streetLine2": "string"
}

SimpleAddress

Properties

Name Type Required Description
recipient string false none
city string false none
country string false none
postalCode string false none
rawAddress string false none
state string false none
streetLine1 string false none
streetLine2 string false none

ConsentResource

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:52Z",
  "lastModifiedDate": "2022-04-27T17:18:52Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:52Z",
  "termsOfServiceUrl": "string"
}

ConsentResource

Properties

Name Type Required Description
consentStatus string false none
credentialCreatedDate string(date-time) false none
lastModifiedDate string(date-time) false none
origin string false none
privacyPolicyUrl string false none
revokeDate string(date-time) false none
termsOfServiceUrl string false none

Enumerated Values

Property Value
origin API
origin CONNECT

PublicCredentialUrlResource

{
  "updateUrl": "string",
  "expiration": "2022-04-27T17:18:52Z"
}

PublicCredentialUrlResource

Properties

Name Type Required Description
updateUrl string false none
expiration string(date-time) false none

PublicCredentialRefreshUrlResource

{
  "refreshUrl": "string",
  "expiration": "2022-04-27T17:18:52Z"
}

PublicCredentialRefreshUrlResource

Properties

Name Type Required Description
refreshUrl string false none
expiration string(date-time) false none

PublicCredentialsResendWebhookRequest

{
  "resourceIds": [
    "string"
  ]
}

PublicCredentialsResendWebhookRequest

Properties

Name Type Required Description
resourceIds [string] true List of credential IDs

CredentialDownloadResource

{
  "credentialId": "string",
  "username": "string",
  "userame2": "string",
  "username3": "string",
  "username4": "string",
  "providerName": "string",
  "correlationId": "string",
  "status": "string",
  "statusDetail": "string",
  "created": "2022-04-27T17:18:52Z",
  "modified": "2022-04-27T17:18:52Z"
}

Properties

Name Type Required Description
credentialId string false none
username string false none
userame2 string false none
username3 string false none
username4 string false none
providerName string false none
correlationId string false none
status string false none
statusDetail string false none
created string(date-time) false none
modified string(date-time) false none

ConsentDownloadResource

{
  "credentialId": "string",
  "correlationId": "string",
  "status": "string",
  "solution": "string",
  "privacyPolicyURL": "string",
  "termsOfServiceURL": "string",
  "origin": "string",
  "credentialURL": "string",
  "createdDate": "2022-04-27T17:18:52Z",
  "provider ID": "string",
  "username": "string",
  "lastModifiedDate": "2022-04-27T17:18:52Z"
}

Properties

Name Type Required Description
credentialId string false none
correlationId string false none
status string false none
solution string false none
privacyPolicyURL string false none
termsOfServiceURL string false none
origin string false none
credentialURL string false none
createdDate string(date-time) false none
provider ID string false none
username string false none
lastModifiedDate string(date-time) false none

AccountDownloadResource

{
  "logicalAccountId": "string",
  "createdDate": "string",
  "accountType": "string",
  "normalizedAccountNumber": "string",
  "rawAccountNumber": "string",
  "utilityProviderId": "string",
  "providerName": "string",
  "summaryAccountNumber": "string",
  "statementId": "string",
  "invoiceNumber": "string",
  "transactionType": "string",
  "date": "2022-04-27",
  "dueDate": "2022-04-27",
  "startDate": "2022-04-27",
  "endDate": "2022-04-27",
  "totalAmount": 0,
  "outstandingBalance": 0,
  "lateFee": 0,
  "balanceAdjustments": 0,
  "paymentCurrency": "string",
  "rawServiceAddress": "string",
  "serviceRecipientName": "string",
  "serviceStreet": "string",
  "serviceStreet2": "string",
  "serviceCity": "string",
  "serviceState": "string",
  "serviceZipCode": "string",
  "rawBillingAddress": "string",
  "billingRecipientName": "string",
  "billingStreet": "string",
  "billingStreet2": "string",
  "billingCity": "string",
  "billingState": "string",
  "billingZipCode": "string",
  "correlationId": "string"
}

Properties

Name Type Required Description
logicalAccountId string false none
createdDate string false none
accountType string false none
normalizedAccountNumber string false none
rawAccountNumber string false none
utilityProviderId string false none
providerName string false none
summaryAccountNumber string false none
statementId string false none
invoiceNumber string false none
transactionType string false none
date string(date) false none
dueDate string(date) false none
startDate string(date) false none
endDate string(date) false none
totalAmount number false none
outstandingBalance number false none
lateFee number false none
balanceAdjustments number false none
paymentCurrency string false none
rawServiceAddress string false none
serviceRecipientName string false none
serviceStreet string false none
serviceStreet2 string false none
serviceCity string false none
serviceState string false none
serviceZipCode string false none
rawBillingAddress string false none
billingRecipientName string false none
billingStreet string false none
billingStreet2 string false none
billingCity string false none
billingState string false none
billingZipCode string false none
correlationId string false none

ConsoleZendeskTicket

{
  "team": "string",
  "description": "string"
}

ConsoleZendeskTicket

Properties

Name Type Required Description
team string true The team associated with the ticket
description string true Description of your request

PagedUtilityPaymentResource

{
  "_embedded": {
    "payments": [
      {
        "amount": 0,
        "currency": "string",
        "paymentDate": "2022-04-27"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedUtilityPaymentResource

Properties

Name Type Required Description
_embedded object false none
» payments [UtilityPaymentResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedUtilityCredentialEventResource

{
  "_embedded": {
    "credentialEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "eventType": "CREDENTIAL_CREATED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedUtilityCredentialEventResource

Properties

Name Type Required Description
_embedded object false none
» credentialEvents [UtilityCredentialEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedUtilityAccountEventResource

{
  "_embedded": {
    "accountEvents": [
      {
        "_links": {
          "self": "string"
        },
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "eventType": "ACCOUNT_REQUESTED",
        "fieldName": "string",
        "newValue": "string",
        "oldValue": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedUtilityAccountEventResource

Properties

Name Type Required Description
_embedded object false none
» accountEvents [UtilityAccountEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedUtilityCredentialResource

{
  "_embedded": {
    "credentials": [
      {
        "_links": {
          "provider": "string",
          "passwords": "string",
          "events": "string",
          "customData": "string",
          "consent": "string",
          "updateUrl": "string",
          "accounts": "string",
          "self": "string"
        },
        "runHistory": true,
        "correlationId": "string",
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "enabled": true,
        "lastModified": "2022-04-27T17:18:52Z",
        "lastModifiedBy": "string",
        "nextScheduledRun": "2022-04-27T17:18:52Z",
        "providerName": "string",
        "status": "OK",
        "statusDetail": "ACCOUNT_LOCKED",
        "username": "string",
        "username2": "string",
        "username3": "string",
        "username4": "string"
      }
    ]
  },
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedUtilityCredentialResource

Properties

Name Type Required Description
_embedded object false none
» credentials [UtilityCredentialResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicUtilityAccountDataResource

{
  "_embedded": [
    {
      "_links": {
        "account": "string",
        "statement": "string"
      },
      "accountName1": "string",
      "accountName2": "string",
      "accountNumber": "string",
      "additionalProviderAlias": "string",
      "amountDue": 0,
      "amountDueAfterDueDate": 0,
      "amountDueBeforeDueDate": 0,
      "amountDueByDate": "2022-04-27T17:18:52Z",
      "billingAddress": {
        "addressType": "FULL",
        "city": "string",
        "country": "string",
        "fullAddress": "string",
        "postalCode": "string",
        "recipient": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "charges": [
        {
          "additionalRateMultiplier": 0,
          "averageUnitCost": 0,
          "chargeActualName": "string",
          "chargeAmount": 0,
          "chargeAmountCurrency": "string",
          "chargeGroupHeading": "string",
          "chargeName": "string",
          "chargeRate": 0,
          "chargeRateAdder": 0,
          "chargeRateBase": 0,
          "chargeRateCurrency": "string",
          "chargeType": "DEBIT",
          "chargeUnitsUsed": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "lifecycleStage": "string",
          "measurementType": "string",
          "tariff": {
            "created": "2022-04-27T17:18:52Z",
            "providerAlias": "string",
            "providerName": "string",
            "tariffName": "string"
          },
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "unitsPerRate": 0,
          "usageUnit": "string"
        }
      ],
      "created": "2022-04-27T17:18:52Z",
      "customerNumber": "string",
      "cycleNumber": "string",
      "disconnectDate": "2022-04-27T17:18:52Z",
      "discountBeforeDueDate": 0,
      "facilityName": "string",
      "facilityNumber": "string",
      "finalBillNotice": "string",
      "insallmentOutstanding": 0,
      "installmentDue": 0,
      "mapNumber": "string",
      "meterData": [
        {
          "_links": {
            "meter": "string",
            "statement": "string"
          },
          "amountDue": 0,
          "amountDueAfterDueDate": 0,
          "amountDueBeforeDueDate": 0,
          "amountDueByDate": "2022-04-27T17:18:52Z",
          "bulbQuantity": 0,
          "bulbType": "string",
          "charges": [
            {
              "additionalRateMultiplier": 0,
              "averageUnitCost": 0,
              "chargeActualName": "string",
              "chargeAmount": 0,
              "chargeAmountCurrency": "string",
              "chargeGroupHeading": "string",
              "chargeName": "string",
              "chargeRate": 0,
              "chargeRateAdder": 0,
              "chargeRateBase": 0,
              "chargeRateCurrency": "string",
              "chargeType": "DEBIT",
              "chargeUnitsUsed": 0,
              "contributionStatus": "CONTRIBUTING",
              "created": "2022-04-27T17:18:52Z",
              "lifecycleStage": "string",
              "measurementType": "string",
              "tariff": {
                "created": "2022-04-27T17:18:52Z",
                "providerAlias": "string",
                "providerName": "string",
                "tariffName": "string"
              },
              "tariffRateComponents": [
                {
                  "tariffName": "string",
                  "tariffRateComponentType": "string"
                }
              ],
              "unitsPerRate": 0,
              "usageUnit": "string"
            }
          ],
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "customerNumber": "string",
          "cycleNumber": "string",
          "deregulationStatus": "string",
          "disconnectDate": "2022-04-27T17:18:52Z",
          "discountBeforeDueDate": 0,
          "energyAnniversaryDate": "2022-04-27T17:18:52Z",
          "energyCarryForward": 0,
          "energyNewCarryForward": 0,
          "facilityName": "string",
          "facilityNumber": "string",
          "finalBillNotice": "string",
          "gridPointLineLoss": 0,
          "lineLoss": 0,
          "mapNumber": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterNumber": "string",
          "meterReadDate": "2022-04-27T17:18:52Z",
          "newCharges": 0,
          "nextReadDate": "2022-04-27T17:18:52Z",
          "normalizedMeterNumber": "string",
          "normalizedPodNumber": "string",
          "normalizedPreviousMeterNumber": "string",
          "outstandingBalance": 0,
          "pipeType": "string",
          "podNumber": "string",
          "powerFactor": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousBalance": 0,
          "previousMeterConstantMultiplier": 0,
          "previousMeterNumber": "string",
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "serviceDescription": "string",
          "serviceType": "string",
          "totalCharges": 0,
          "usages": [
            {
              "calorificValue": 0,
              "citedUsage": 0,
              "contractUsage": 0,
              "contributionStatus": "CONTRIBUTING",
              "created": "2022-04-27T17:18:52Z",
              "hoursOfUse": 0,
              "loadFactor": 0,
              "loadType": "string",
              "measuredUsage": 0,
              "measurementType": "string",
              "meterConstantMultiplier": 0,
              "meterConversionMultiplier": 0,
              "meterReadDate": "2022-04-27T17:18:52Z",
              "meterReadType": "string",
              "meterReadingDelta": 0,
              "meterReadingDeltaPrevious": 0,
              "meterReadingDeltaUsageUnit": "string",
              "meterReadingRaw": 0,
              "meterReadingRawPrevious": 0,
              "noncoincidentalUsage": 0,
              "numberOfDaysInPeriod": 0,
              "outageBlock": "string",
              "powerFactor": 0,
              "pressureMultiplier": 0,
              "prevReadDate": "2022-04-27T17:18:52Z",
              "previousMeterReadType": "string",
              "previousReadTypeAsPrinted": "string",
              "previousUsage": 0,
              "rateOrTariffActualName": "string",
              "readTypeAsPrinted": "string",
              "readingSchedule": "string",
              "tariffRateComponents": [
                {
                  "tariffName": "string",
                  "tariffRateComponentType": "string"
                }
              ],
              "usageActualName": "string",
              "usageUnit": "string"
            }
          ]
        }
      ],
      "newCharges": 0,
      "normalizedAccountNumber": "string",
      "outstandingBalance": 0,
      "paymentAddress": {
        "addressType": "FULL",
        "city": "string",
        "country": "string",
        "fullAddress": "string",
        "postalCode": "string",
        "recipient": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "previousBalance": 0,
      "providerClassification": "PRIMARY",
      "totalCharges": 0,
      "usages": [
        {
          "calorificValue": 0,
          "citedUsage": 0,
          "contractUsage": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "hoursOfUse": 0,
          "loadFactor": 0,
          "loadType": "string",
          "measuredUsage": 0,
          "measurementType": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterReadDate": "2022-04-27T17:18:52Z",
          "meterReadType": "string",
          "meterReadingDelta": 0,
          "meterReadingDeltaPrevious": 0,
          "meterReadingDeltaUsageUnit": "string",
          "meterReadingRaw": 0,
          "meterReadingRawPrevious": 0,
          "noncoincidentalUsage": 0,
          "numberOfDaysInPeriod": 0,
          "outageBlock": "string",
          "powerFactor": 0,
          "pressureMultiplier": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousMeterReadType": "string",
          "previousReadTypeAsPrinted": "string",
          "previousUsage": 0,
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "readingSchedule": "string",
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "usageActualName": "string",
          "usageUnit": "string"
        }
      ]
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicUtilityAccountDataResource

Properties

Name Type Required Description
_embedded [PublicUtilityAccountDataResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicUtilityAccountResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string",
        "subAccounts": "string",
        "summaryAccount": "string",
        "provider": "string",
        "credentials": "string",
        "statement": "string",
        "events": "string",
        "meters": "string",
        "sites": "string",
        "payments": "string"
      },
      "accountNumber": "string",
      "created": "2022-04-27T17:18:52Z",
      "createdBy": "string",
      "customData": {
        "property1": "string",
        "property2": "string"
      },
      "enabled": true,
      "lastModified": "2022-04-27T17:18:52Z",
      "lastModifiedBy": "string",
      "latestNewStatement": "2022-04-27T17:18:52Z",
      "latestStatementDate": "2022-04-27T17:18:52Z",
      "normalizedAccountNumber": "string",
      "prepaid": true,
      "providerName": "string",
      "status": "OK",
      "statusDetail": "ACCOUNT_CLOSED",
      "type": "NORMAL"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicUtilityAccountResource

Properties

Name Type Required Description
_embedded [PublicUtilityAccountResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicChargeResource

{
  "_embedded": [
    {
      "additionalRateMultiplier": 0,
      "averageUnitCost": 0,
      "chargeActualName": "string",
      "chargeAmount": 0,
      "chargeAmountCurrency": "string",
      "chargeGroupHeading": "string",
      "chargeName": "string",
      "chargeRate": 0,
      "chargeRateAdder": 0,
      "chargeRateBase": 0,
      "chargeRateCurrency": "string",
      "chargeType": "DEBIT",
      "chargeUnitsUsed": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "lifecycleStage": "string",
      "measurementType": "string",
      "tariff": {
        "created": "2022-04-27T17:18:52Z",
        "providerAlias": "string",
        "providerName": "string",
        "tariffName": "string"
      },
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "unitsPerRate": 0,
      "usageUnit": "string"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicChargeResource

Properties

Name Type Required Description
_embedded [PublicChargeResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicMeterDataResource

{
  "_embedded": [
    {
      "_links": {
        "meter": "string",
        "statement": "string"
      },
      "amountDue": 0,
      "amountDueAfterDueDate": 0,
      "amountDueBeforeDueDate": 0,
      "amountDueByDate": "2022-04-27T17:18:52Z",
      "bulbQuantity": 0,
      "bulbType": "string",
      "charges": [
        {
          "additionalRateMultiplier": 0,
          "averageUnitCost": 0,
          "chargeActualName": "string",
          "chargeAmount": 0,
          "chargeAmountCurrency": "string",
          "chargeGroupHeading": "string",
          "chargeName": "string",
          "chargeRate": 0,
          "chargeRateAdder": 0,
          "chargeRateBase": 0,
          "chargeRateCurrency": "string",
          "chargeType": "DEBIT",
          "chargeUnitsUsed": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "lifecycleStage": "string",
          "measurementType": "string",
          "tariff": {
            "created": "2022-04-27T17:18:52Z",
            "providerAlias": "string",
            "providerName": "string",
            "tariffName": "string"
          },
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "unitsPerRate": 0,
          "usageUnit": "string"
        }
      ],
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "customerNumber": "string",
      "cycleNumber": "string",
      "deregulationStatus": "string",
      "disconnectDate": "2022-04-27T17:18:52Z",
      "discountBeforeDueDate": 0,
      "energyAnniversaryDate": "2022-04-27T17:18:52Z",
      "energyCarryForward": 0,
      "energyNewCarryForward": 0,
      "facilityName": "string",
      "facilityNumber": "string",
      "finalBillNotice": "string",
      "gridPointLineLoss": 0,
      "lineLoss": 0,
      "mapNumber": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterNumber": "string",
      "meterReadDate": "2022-04-27T17:18:52Z",
      "newCharges": 0,
      "nextReadDate": "2022-04-27T17:18:52Z",
      "normalizedMeterNumber": "string",
      "normalizedPodNumber": "string",
      "normalizedPreviousMeterNumber": "string",
      "outstandingBalance": 0,
      "pipeType": "string",
      "podNumber": "string",
      "powerFactor": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousBalance": 0,
      "previousMeterConstantMultiplier": 0,
      "previousMeterNumber": "string",
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "serviceDescription": "string",
      "serviceType": "string",
      "totalCharges": 0,
      "usages": [
        {
          "calorificValue": 0,
          "citedUsage": 0,
          "contractUsage": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "hoursOfUse": 0,
          "loadFactor": 0,
          "loadType": "string",
          "measuredUsage": 0,
          "measurementType": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterReadDate": "2022-04-27T17:18:52Z",
          "meterReadType": "string",
          "meterReadingDelta": 0,
          "meterReadingDeltaPrevious": 0,
          "meterReadingDeltaUsageUnit": "string",
          "meterReadingRaw": 0,
          "meterReadingRawPrevious": 0,
          "noncoincidentalUsage": 0,
          "numberOfDaysInPeriod": 0,
          "outageBlock": "string",
          "powerFactor": 0,
          "pressureMultiplier": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousMeterReadType": "string",
          "previousReadTypeAsPrinted": "string",
          "previousUsage": 0,
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "readingSchedule": "string",
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "usageActualName": "string",
          "usageUnit": "string"
        }
      ]
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicMeterDataResource

Properties

Name Type Required Description
_embedded [PublicMeterDataResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicMeterResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string",
        "accounts": "string",
        "provider": "string",
        "site": "string",
        "statements": "string",
        "credentials": "string",
        "customData": "string"
      },
      "bulbType": "string",
      "created": "2022-04-27T17:18:52Z",
      "createdBy": "string",
      "customData": {
        "property1": "string",
        "property2": "string"
      },
      "currentTariffs": [
        {
          "created": "2022-04-27T17:18:52Z",
          "providerAlias": "string",
          "providerName": "string",
          "tariffName": "string"
        }
      ],
      "lastModified": "2022-04-27T17:18:52Z",
      "lastModifiedBy": "string",
      "meterConstantMultiplier": 0,
      "meterNumber": "string",
      "meterStatus": "CURRENT",
      "nextExpectedPostDate": "2022-04-27T17:18:52Z",
      "normalizedMeterNumber": "string",
      "normalizedPodNumber": "string",
      "normalizedPreviousMeterNumber": "string",
      "pipeType": "string",
      "podNumber": "string",
      "previousMeterConstantMultiplier": 0,
      "previousMeterNumber": "string",
      "serviceDescription": "string",
      "serviceType": "string",
      "site": {
        "_links": {
          "self": "string",
          "accounts": "string",
          "statements": "string",
          "meters": "string",
          "credentials": "string",
          "events": "string"
        },
        "created": "2022-04-27T17:18:52Z",
        "createdBy": "string",
        "siteCode": "string",
        "siteName": "string",
        "siteNumber": "string",
        "region": "string",
        "subRegion": "string",
        "facilityType": "string",
        "lastModified": "2022-04-27T17:18:52Z",
        "lastModifiedBy": "string",
        "serviceAddress": {
          "addressType": "FULL",
          "city": "string",
          "country": "string",
          "fullAddress": "string",
          "postalCode": "string",
          "recipient": "string",
          "state": "string",
          "streetLine1": "string",
          "streetLine2": "string"
        }
      }
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicMeterResource

Properties

Name Type Required Description
_embedded [PublicMeterResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicSiteResource

{
  "_embedded": [
    {
      "_links": {
        "self": "string",
        "accounts": "string",
        "statements": "string",
        "meters": "string",
        "credentials": "string",
        "events": "string"
      },
      "created": "2022-04-27T17:18:52Z",
      "createdBy": "string",
      "siteCode": "string",
      "siteName": "string",
      "siteNumber": "string",
      "region": "string",
      "subRegion": "string",
      "facilityType": "string",
      "lastModified": "2022-04-27T17:18:52Z",
      "lastModifiedBy": "string",
      "serviceAddress": {
        "addressType": "FULL",
        "city": "string",
        "country": "string",
        "fullAddress": "string",
        "postalCode": "string",
        "recipient": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      }
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicSiteResource

Properties

Name Type Required Description
_embedded [PublicSiteResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicSiteEventResource

{
  "_embedded": [
    {
      "created": "2022-04-27T17:18:52Z",
      "createdBy": "string",
      "eventType": "SITE_CREATED",
      "fieldName": "string",
      "newValue": "string",
      "oldValue": "string"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicSiteEventResource

Properties

Name Type Required Description
_embedded [PublicSiteEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicMeterEventResource

{
  "_embedded": [
    {
      "created": "2022-04-27T17:18:52Z",
      "createdBy": "string",
      "eventType": "METER_CREATION",
      "fieldName": "string",
      "newValue": "string",
      "oldValue": "string"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicMeterEventResource

Properties

Name Type Required Description
_embedded [PublicMeterEventResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicUtilityStatementResource

{
  "_embedded": [
    {
      "_links": {
        "accounts": "string",
        "source": "string",
        "meters": "string",
        "charges": "string",
        "self": "string"
      },
      "serviceAddress": {
        "recipient": "string",
        "city": "string",
        "country": "string",
        "postalCode": "string",
        "rawAddress": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "billingAddress": {
        "recipient": "string",
        "city": "string",
        "country": "string",
        "postalCode": "string",
        "rawAddress": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "paymentAddress": {
        "recipient": "string",
        "city": "string",
        "country": "string",
        "postalCode": "string",
        "rawAddress": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "amountDue": 0,
      "balance": 0,
      "lateFees": 0,
      "dueDate": "2022-04-27",
      "endDate": "2022-04-27",
      "invoiceNumber": "string",
      "createdDate": "2022-04-27",
      "modifiedDate": "2022-04-27",
      "startDate": "2022-04-27",
      "statementDate": "2022-04-27",
      "statementType": "BILL"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicUtilityStatementResource

Properties

Name Type Required Description
_embedded [PublicStatementResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicTariffResource

{
  "_embedded": [
    {
      "created": "2022-04-27T17:18:52Z",
      "providerAlias": "string",
      "providerName": "string",
      "tariffName": "string"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicTariffResource

Properties

Name Type Required Description
_embedded [PublicTariffResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PagedPublicUsageResource

{
  "_embedded": [
    {
      "calorificValue": 0,
      "citedUsage": 0,
      "contractUsage": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "hoursOfUse": 0,
      "loadFactor": 0,
      "loadType": "string",
      "measuredUsage": 0,
      "measurementType": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterReadDate": "2022-04-27T17:18:52Z",
      "meterReadType": "string",
      "meterReadingDelta": 0,
      "meterReadingDeltaPrevious": 0,
      "meterReadingDeltaUsageUnit": "string",
      "meterReadingRaw": 0,
      "meterReadingRawPrevious": 0,
      "noncoincidentalUsage": 0,
      "numberOfDaysInPeriod": 0,
      "outageBlock": "string",
      "powerFactor": 0,
      "pressureMultiplier": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousMeterReadType": "string",
      "previousReadTypeAsPrinted": "string",
      "previousUsage": 0,
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "readingSchedule": "string",
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "usageActualName": "string",
      "usageUnit": "string"
    }
  ],
  "_links": {
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
  },
  "page": {
    "number": 0,
    "size": 0,
    "totalElements": 0,
    "totalPages": 0
  }
}

PagedPublicUsageResource

Properties

Name Type Required Description
_embedded [PublicUsageResource] false none
_links object false none
» last string false none
» next string false none
» prev string false none
» self string false none
page PageMetadata false none

PublicAccountDataResource

{
  "_links": {
    "account": "string",
    "statement": "string"
  },
  "accountName1": "string",
  "accountName2": "string",
  "accountNumber": "string",
  "additionalProviderAlias": "string",
  "amountDue": 0,
  "amountDueAfterDueDate": 0,
  "amountDueBeforeDueDate": 0,
  "amountDueByDate": "2022-04-27T17:18:52Z",
  "billingAddress": {
    "addressType": "FULL",
    "city": "string",
    "country": "string",
    "fullAddress": "string",
    "postalCode": "string",
    "recipient": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "charges": [
    {
      "additionalRateMultiplier": 0,
      "averageUnitCost": 0,
      "chargeActualName": "string",
      "chargeAmount": 0,
      "chargeAmountCurrency": "string",
      "chargeGroupHeading": "string",
      "chargeName": "string",
      "chargeRate": 0,
      "chargeRateAdder": 0,
      "chargeRateBase": 0,
      "chargeRateCurrency": "string",
      "chargeType": "DEBIT",
      "chargeUnitsUsed": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "lifecycleStage": "string",
      "measurementType": "string",
      "tariff": {
        "created": "2022-04-27T17:18:52Z",
        "providerAlias": "string",
        "providerName": "string",
        "tariffName": "string"
      },
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "unitsPerRate": 0,
      "usageUnit": "string"
    }
  ],
  "created": "2022-04-27T17:18:52Z",
  "customerNumber": "string",
  "cycleNumber": "string",
  "disconnectDate": "2022-04-27T17:18:52Z",
  "discountBeforeDueDate": 0,
  "facilityName": "string",
  "facilityNumber": "string",
  "finalBillNotice": "string",
  "insallmentOutstanding": 0,
  "installmentDue": 0,
  "mapNumber": "string",
  "meterData": [
    {
      "_links": {
        "meter": "string",
        "statement": "string"
      },
      "amountDue": 0,
      "amountDueAfterDueDate": 0,
      "amountDueBeforeDueDate": 0,
      "amountDueByDate": "2022-04-27T17:18:52Z",
      "bulbQuantity": 0,
      "bulbType": "string",
      "charges": [
        {
          "additionalRateMultiplier": 0,
          "averageUnitCost": 0,
          "chargeActualName": "string",
          "chargeAmount": 0,
          "chargeAmountCurrency": "string",
          "chargeGroupHeading": "string",
          "chargeName": "string",
          "chargeRate": 0,
          "chargeRateAdder": 0,
          "chargeRateBase": 0,
          "chargeRateCurrency": "string",
          "chargeType": "DEBIT",
          "chargeUnitsUsed": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "lifecycleStage": "string",
          "measurementType": "string",
          "tariff": {
            "created": "2022-04-27T17:18:52Z",
            "providerAlias": "string",
            "providerName": "string",
            "tariffName": "string"
          },
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "unitsPerRate": 0,
          "usageUnit": "string"
        }
      ],
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "customerNumber": "string",
      "cycleNumber": "string",
      "deregulationStatus": "string",
      "disconnectDate": "2022-04-27T17:18:52Z",
      "discountBeforeDueDate": 0,
      "energyAnniversaryDate": "2022-04-27T17:18:52Z",
      "energyCarryForward": 0,
      "energyNewCarryForward": 0,
      "facilityName": "string",
      "facilityNumber": "string",
      "finalBillNotice": "string",
      "gridPointLineLoss": 0,
      "lineLoss": 0,
      "mapNumber": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterNumber": "string",
      "meterReadDate": "2022-04-27T17:18:52Z",
      "newCharges": 0,
      "nextReadDate": "2022-04-27T17:18:52Z",
      "normalizedMeterNumber": "string",
      "normalizedPodNumber": "string",
      "normalizedPreviousMeterNumber": "string",
      "outstandingBalance": 0,
      "pipeType": "string",
      "podNumber": "string",
      "powerFactor": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousBalance": 0,
      "previousMeterConstantMultiplier": 0,
      "previousMeterNumber": "string",
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "serviceDescription": "string",
      "serviceType": "string",
      "totalCharges": 0,
      "usages": [
        {
          "calorificValue": 0,
          "citedUsage": 0,
          "contractUsage": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "hoursOfUse": 0,
          "loadFactor": 0,
          "loadType": "string",
          "measuredUsage": 0,
          "measurementType": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterReadDate": "2022-04-27T17:18:52Z",
          "meterReadType": "string",
          "meterReadingDelta": 0,
          "meterReadingDeltaPrevious": 0,
          "meterReadingDeltaUsageUnit": "string",
          "meterReadingRaw": 0,
          "meterReadingRawPrevious": 0,
          "noncoincidentalUsage": 0,
          "numberOfDaysInPeriod": 0,
          "outageBlock": "string",
          "powerFactor": 0,
          "pressureMultiplier": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousMeterReadType": "string",
          "previousReadTypeAsPrinted": "string",
          "previousUsage": 0,
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "readingSchedule": "string",
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "usageActualName": "string",
          "usageUnit": "string"
        }
      ]
    }
  ],
  "newCharges": 0,
  "normalizedAccountNumber": "string",
  "outstandingBalance": 0,
  "paymentAddress": {
    "addressType": "FULL",
    "city": "string",
    "country": "string",
    "fullAddress": "string",
    "postalCode": "string",
    "recipient": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "previousBalance": 0,
  "providerClassification": "PRIMARY",
  "totalCharges": 0,
  "usages": [
    {
      "calorificValue": 0,
      "citedUsage": 0,
      "contractUsage": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "hoursOfUse": 0,
      "loadFactor": 0,
      "loadType": "string",
      "measuredUsage": 0,
      "measurementType": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterReadDate": "2022-04-27T17:18:52Z",
      "meterReadType": "string",
      "meterReadingDelta": 0,
      "meterReadingDeltaPrevious": 0,
      "meterReadingDeltaUsageUnit": "string",
      "meterReadingRaw": 0,
      "meterReadingRawPrevious": 0,
      "noncoincidentalUsage": 0,
      "numberOfDaysInPeriod": 0,
      "outageBlock": "string",
      "powerFactor": 0,
      "pressureMultiplier": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousMeterReadType": "string",
      "previousReadTypeAsPrinted": "string",
      "previousUsage": 0,
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "readingSchedule": "string",
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "usageActualName": "string",
      "usageUnit": "string"
    }
  ]
}

PublicAccountDataResource

Properties

Name Type Required Description
_links object false none
» account string false none
» statement string false none
accountName1 string false none
accountName2 string false none
accountNumber string false none
additionalProviderAlias string false none
amountDue number false none
amountDueAfterDueDate number false none
amountDueBeforeDueDate number false none
amountDueByDate string(date-time) false none
billingAddress PublicUtilityAddressResource false none
charges [PublicChargeResource] false none
created string(date-time) false none
customerNumber string false none
cycleNumber string false none
disconnectDate string(date-time) false none
discountBeforeDueDate number false none
facilityName string false none
facilityNumber string false none
finalBillNotice string false none
insallmentOutstanding number false none
installmentDue number false none
mapNumber string false none
meterData [PublicMeterDataResource] false none
newCharges number false none
normalizedAccountNumber string false none
outstandingBalance number false none
paymentAddress PublicUtilityAddressResource false none
previousBalance number false none
providerClassification string false none
totalCharges number false none
usages [PublicUsageResource] false none

Enumerated Values

Property Value
providerClassification PRIMARY
providerClassification SECONDARY

PublicUtilityAddressResource

{
  "addressType": "FULL",
  "city": "string",
  "country": "string",
  "fullAddress": "string",
  "postalCode": "string",
  "recipient": "string",
  "state": "string",
  "streetLine1": "string",
  "streetLine2": "string"
}

PublicUtilityAddressResource

Properties

Name Type Required Description
addressType string false none
city string false none
country string false none
fullAddress string false none
postalCode string false none
recipient string false none
state string false none
streetLine1 string false none
streetLine2 string false none

Enumerated Values

Property Value
addressType FULL
addressType PARTIAL

PublicChargeResource

{
  "additionalRateMultiplier": 0,
  "averageUnitCost": 0,
  "chargeActualName": "string",
  "chargeAmount": 0,
  "chargeAmountCurrency": "string",
  "chargeGroupHeading": "string",
  "chargeName": "string",
  "chargeRate": 0,
  "chargeRateAdder": 0,
  "chargeRateBase": 0,
  "chargeRateCurrency": "string",
  "chargeType": "DEBIT",
  "chargeUnitsUsed": 0,
  "contributionStatus": "CONTRIBUTING",
  "created": "2022-04-27T17:18:52Z",
  "lifecycleStage": "string",
  "measurementType": "string",
  "tariff": {
    "created": "2022-04-27T17:18:52Z",
    "providerAlias": "string",
    "providerName": "string",
    "tariffName": "string"
  },
  "tariffRateComponents": [
    {
      "tariffName": "string",
      "tariffRateComponentType": "string"
    }
  ],
  "unitsPerRate": 0,
  "usageUnit": "string"
}

PublicChargeResource

Properties

Name Type Required Description
additionalRateMultiplier number false none
averageUnitCost number false none
chargeActualName string false none
chargeAmount number false none
chargeAmountCurrency string false none
chargeGroupHeading string false none
chargeName string false none
chargeRate number false none
chargeRateAdder number false none
chargeRateBase number false none
chargeRateCurrency string false none
chargeType string false none
chargeUnitsUsed number false none
contributionStatus string false none
created string(date-time) false none
lifecycleStage string false none
measurementType string false none
tariff PublicTariffResource false none
tariffRateComponents [PublicTariffRateComponentResource] false none
unitsPerRate number false none
usageUnit string false none

Enumerated Values

Property Value
chargeType DEBIT
chargeType CREDIT
contributionStatus CONTRIBUTING
contributionStatus NON_CONTRIBUTING
contributionStatus REDUNDANT
contributionStatus REDUNDANT_OUTSTANDING_BALANCE

PublicCustomDataResource

{
  "property1": "string",
  "property2": "string"
}

PublicCustomDataResource

Properties

Name Type Required Description
additionalProperties string false none

PublicDownloadSiteUsagesRequest

{
  "siteIds": "string",
  "startDate": null,
  "endDate": null
}

PublicDownloadSiteUsagesRequest

Properties

Name Type Required Description
siteIds string true A comma-separated list of site IDs
startDate date-time true Start date for site usage statements
endDate date-time true End date for site usage statements

PublicDownloadMeterUsagesRequest

{
  "meterIds": "string",
  "startDate": null,
  "endDate": null
}

PublicDownloadMeterUsagesRequest

Properties

Name Type Required Description
meterIds string true A comma-separated list of site IDs
startDate date-time true Start date for meter usage statements
endDate date-time true End date for meter usage statements

PublicUtilityAccountResource

{
  "_links": {
    "self": "string",
    "subAccounts": "string",
    "summaryAccount": "string",
    "provider": "string",
    "credentials": "string",
    "statement": "string",
    "events": "string",
    "meters": "string",
    "sites": "string",
    "payments": "string"
  },
  "accountNumber": "string",
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "customData": {
    "property1": "string",
    "property2": "string"
  },
  "enabled": true,
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "latestNewStatement": "2022-04-27T17:18:52Z",
  "latestStatementDate": "2022-04-27T17:18:52Z",
  "normalizedAccountNumber": "string",
  "prepaid": true,
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_CLOSED",
  "type": "NORMAL"
}

PublicUtilityAccountResource

Properties

Name Type Required Description
_links object false none
» self string false none
» subAccounts string false none
» summaryAccount string false none
» provider string false none
» credentials string false none
» statement string false none
» events string false none
» meters string false none
» sites string false none
» payments string false none
accountNumber string false none
created string(date-time) false none
createdBy string false none
customData PublicCustomDataResource false none
enabled boolean false none
lastModified string(date-time) false none
lastModifiedBy string false none
latestNewStatement string(date-time) false none
latestStatementDate string(date-time) false none
normalizedAccountNumber string false none
prepaid boolean false none
providerName string false none
status string false none
statusDetail string false none
type string false none

Enumerated Values

Property Value
status OK
status PENDING
status ACCESS_ISSUE
status OLD
statusDetail ACCOUNT_CLOSED
statusDetail ACCOUNT_NOT_FOUND
statusDetail ACCOUNT_NUMBER_CHANGE
statusDetail ACCOUNT_SETUP_REQUIRED
statusDetail DORMANT
statusDetail E_BILL_REQUIRED
statusDetail EXTRACTION_FAILURE
statusDetail INVALID_SOURCE
statusDetail NO_ACTION_REQUIRED
statusDetail STATEMENT_UNAVAILABLE
statusDetail UNDER_REVIEW
statusDetail INSUFFICIENT_DATA
type NORMAL
type SUMMARY
type SUB_ACCOUNT

PublicMeterDataResource

{
  "_links": {
    "meter": "string",
    "statement": "string"
  },
  "amountDue": 0,
  "amountDueAfterDueDate": 0,
  "amountDueBeforeDueDate": 0,
  "amountDueByDate": "2022-04-27T17:18:52Z",
  "bulbQuantity": 0,
  "bulbType": "string",
  "charges": [
    {
      "additionalRateMultiplier": 0,
      "averageUnitCost": 0,
      "chargeActualName": "string",
      "chargeAmount": 0,
      "chargeAmountCurrency": "string",
      "chargeGroupHeading": "string",
      "chargeName": "string",
      "chargeRate": 0,
      "chargeRateAdder": 0,
      "chargeRateBase": 0,
      "chargeRateCurrency": "string",
      "chargeType": "DEBIT",
      "chargeUnitsUsed": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "lifecycleStage": "string",
      "measurementType": "string",
      "tariff": {
        "created": "2022-04-27T17:18:52Z",
        "providerAlias": "string",
        "providerName": "string",
        "tariffName": "string"
      },
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "unitsPerRate": 0,
      "usageUnit": "string"
    }
  ],
  "contributionStatus": "CONTRIBUTING",
  "created": "2022-04-27T17:18:52Z",
  "customerNumber": "string",
  "cycleNumber": "string",
  "deregulationStatus": "string",
  "disconnectDate": "2022-04-27T17:18:52Z",
  "discountBeforeDueDate": 0,
  "energyAnniversaryDate": "2022-04-27T17:18:52Z",
  "energyCarryForward": 0,
  "energyNewCarryForward": 0,
  "facilityName": "string",
  "facilityNumber": "string",
  "finalBillNotice": "string",
  "gridPointLineLoss": 0,
  "lineLoss": 0,
  "mapNumber": "string",
  "meterConstantMultiplier": 0,
  "meterConversionMultiplier": 0,
  "meterNumber": "string",
  "meterReadDate": "2022-04-27T17:18:52Z",
  "newCharges": 0,
  "nextReadDate": "2022-04-27T17:18:52Z",
  "normalizedMeterNumber": "string",
  "normalizedPodNumber": "string",
  "normalizedPreviousMeterNumber": "string",
  "outstandingBalance": 0,
  "pipeType": "string",
  "podNumber": "string",
  "powerFactor": 0,
  "prevReadDate": "2022-04-27T17:18:52Z",
  "previousBalance": 0,
  "previousMeterConstantMultiplier": 0,
  "previousMeterNumber": "string",
  "rateOrTariffActualName": "string",
  "readTypeAsPrinted": "string",
  "serviceDescription": "string",
  "serviceType": "string",
  "totalCharges": 0,
  "usages": [
    {
      "calorificValue": 0,
      "citedUsage": 0,
      "contractUsage": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "hoursOfUse": 0,
      "loadFactor": 0,
      "loadType": "string",
      "measuredUsage": 0,
      "measurementType": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterReadDate": "2022-04-27T17:18:52Z",
      "meterReadType": "string",
      "meterReadingDelta": 0,
      "meterReadingDeltaPrevious": 0,
      "meterReadingDeltaUsageUnit": "string",
      "meterReadingRaw": 0,
      "meterReadingRawPrevious": 0,
      "noncoincidentalUsage": 0,
      "numberOfDaysInPeriod": 0,
      "outageBlock": "string",
      "powerFactor": 0,
      "pressureMultiplier": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousMeterReadType": "string",
      "previousReadTypeAsPrinted": "string",
      "previousUsage": 0,
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "readingSchedule": "string",
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "usageActualName": "string",
      "usageUnit": "string"
    }
  ]
}

PublicMeterDataResource

Properties

Name Type Required Description
_links object false none
» meter string false none
» statement string false none
amountDue number false none
amountDueAfterDueDate number false none
amountDueBeforeDueDate number false none
amountDueByDate string(date-time) false none
bulbQuantity number false none
bulbType string false none
charges [PublicChargeResource] false none
contributionStatus string false none
created string(date-time) false none
customerNumber string false none
cycleNumber string false none
deregulationStatus string false none
disconnectDate string(date-time) false none
discountBeforeDueDate number false none
energyAnniversaryDate string(date-time) false none
energyCarryForward number false none
energyNewCarryForward number false none
facilityName string false none
facilityNumber string false none
finalBillNotice string false none
gridPointLineLoss number false none
lineLoss number false none
mapNumber string false none
meterConstantMultiplier number false none
meterConversionMultiplier number false none
meterNumber string false none
meterReadDate string(date-time) false none
newCharges number false none
nextReadDate string(date-time) false none
normalizedMeterNumber string false none
normalizedPodNumber string false none
normalizedPreviousMeterNumber string false none
outstandingBalance number false none
pipeType string false none
podNumber string false none
powerFactor number false none
prevReadDate string(date-time) false none
previousBalance number false none
previousMeterConstantMultiplier number false none
previousMeterNumber string false none
rateOrTariffActualName string false none
readTypeAsPrinted string false none
serviceDescription string false none
serviceType string false none
totalCharges number false none
usages [PublicUsageResource] false none

Enumerated Values

Property Value
contributionStatus CONTRIBUTING
contributionStatus NON_CONTRIBUTING
contributionStatus REDUNDANT
contributionStatus REDUNDANT_OUTSTANDING_BALANCE

PublicMeterCustomDataRequest

{
  "property1": "string",
  "property2": "string"
}

PublicMeterCustomDataRequest

Properties

Name Type Required Description
additionalProperties string false none

PublicMeterRequest

{
  "site": "string"
}

PublicMeterRequest

Properties

Name Type Required Description
site string true none

PublicMeterResource

{
  "_links": {
    "self": "string",
    "accounts": "string",
    "provider": "string",
    "site": "string",
    "statements": "string",
    "credentials": "string",
    "customData": "string"
  },
  "bulbType": "string",
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "customData": {
    "property1": "string",
    "property2": "string"
  },
  "currentTariffs": [
    {
      "created": "2022-04-27T17:18:52Z",
      "providerAlias": "string",
      "providerName": "string",
      "tariffName": "string"
    }
  ],
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "meterConstantMultiplier": 0,
  "meterNumber": "string",
  "meterStatus": "CURRENT",
  "nextExpectedPostDate": "2022-04-27T17:18:52Z",
  "normalizedMeterNumber": "string",
  "normalizedPodNumber": "string",
  "normalizedPreviousMeterNumber": "string",
  "pipeType": "string",
  "podNumber": "string",
  "previousMeterConstantMultiplier": 0,
  "previousMeterNumber": "string",
  "serviceDescription": "string",
  "serviceType": "string",
  "site": {
    "_links": {
      "self": "string",
      "accounts": "string",
      "statements": "string",
      "meters": "string",
      "credentials": "string",
      "events": "string"
    },
    "created": "2022-04-27T17:18:52Z",
    "createdBy": "string",
    "siteCode": "string",
    "siteName": "string",
    "siteNumber": "string",
    "region": "string",
    "subRegion": "string",
    "facilityType": "string",
    "lastModified": "2022-04-27T17:18:52Z",
    "lastModifiedBy": "string",
    "serviceAddress": {
      "addressType": "FULL",
      "city": "string",
      "country": "string",
      "fullAddress": "string",
      "postalCode": "string",
      "recipient": "string",
      "state": "string",
      "streetLine1": "string",
      "streetLine2": "string"
    }
  }
}

PublicMeterResource

Properties

Name Type Required Description
_links object false none
» self string false none
» accounts string false none
» provider string false none
» site string false none
» statements string false none
» credentials string false none
» customData string false none
bulbType string false none
created string(date-time) false none
createdBy string false none
customData PublicCustomDataResource false none
currentTariffs [PublicTariffResource] false none
lastModified string(date-time) false none
lastModifiedBy string false none
meterConstantMultiplier number false none
meterNumber string false none
meterStatus string false none
nextExpectedPostDate string(date-time) false none
normalizedMeterNumber string false none
normalizedPodNumber string false none
normalizedPreviousMeterNumber string false none
pipeType string false none
podNumber string false none
previousMeterConstantMultiplier number false none
previousMeterNumber string false none
serviceDescription string false none
serviceType string false none
site PublicSiteResource false none

Enumerated Values

Property Value
meterStatus CURRENT
meterStatus NOT_CURRENT
meterStatus INACTIVE
meterStatus FIX

PublicSiteRequest

{
  "siteCode": "string",
  "siteName": "string",
  "siteNumber": "string",
  "region": "string",
  "subRegion": "string",
  "facilityType": "string",
  "city": "string",
  "country": "string",
  "postalCode": "string",
  "state": "string",
  "streetLine1": "string",
  "streetLine2": "string"
}

PublicSiteRequest

Properties

Name Type Required Description
siteCode string false none
siteName string false none
siteNumber string false none
region string false none
subRegion string false none
facilityType string false none
city string false none
country string false none
postalCode string false none
state string false none
streetLine1 string false none
streetLine2 string false none

PublicSiteResource

{
  "_links": {
    "self": "string",
    "accounts": "string",
    "statements": "string",
    "meters": "string",
    "credentials": "string",
    "events": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "siteCode": "string",
  "siteName": "string",
  "siteNumber": "string",
  "region": "string",
  "subRegion": "string",
  "facilityType": "string",
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "serviceAddress": {
    "addressType": "FULL",
    "city": "string",
    "country": "string",
    "fullAddress": "string",
    "postalCode": "string",
    "recipient": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  }
}

PublicSiteResource

Properties

Name Type Required Description
_links object false none
» self string false none
» accounts string false none
» statements string false none
» meters string false none
» credentials string false none
» events string false none
created string(date-time) false none
createdBy string false none
siteCode string false none
siteName string false none
siteNumber string false none
region string false none
subRegion string false none
facilityType string false none
lastModified string(date-time) false none
lastModifiedBy string false none
serviceAddress PublicUtilityAddressResource false none

PublicSiteEventResource

{
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "SITE_CREATED",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

PublicSiteEventResource

Properties

Name Type Required Description
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType SITE_CREATED
eventType SITE_CUSTOM_DATA_CHANGE

PublicMeterEventResource

{
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "METER_CREATION",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

PublicMeterEventResource

Properties

Name Type Required Description
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType METER_CREATION
eventType METER_INACTIVE
eventType METER_ACTIVE
eventType METER_SITE_CHANGE
eventType METER_ACCOUNT_CHANGE
eventType METER_TARIFF_CHANGE
eventType METER_CUSTOM_DATA_CHANGE

PublicUtilityOrganizationCustomDataRequest

{
  "accountCustomData1Name": "string",
  "accountCustomData2Name": "string",
  "accountCustomData3Name": "string",
  "accountCustomData4Name": "string",
  "accountCustomData5Name": "string",
  "accountCustomData6Name": "string",
  "accountCustomData7Name": "string",
  "accountCustomData8Name": "string",
  "accountCustomData9Name": "string",
  "accountCustomData10Name": "string",
  "meterCustomData1Name": "string",
  "meterCustomData2Name": "string",
  "meterCustomData3Name": "string",
  "meterCustomData4Name": "string",
  "meterCustomData5Name": "string",
  "meterCustomData6Name": "string",
  "meterCustomData7Name": "string",
  "meterCustomData8Name": "string",
  "meterCustomData9Name": "string",
  "meterCustomData10Name": "string"
}

PublicUtilityOrganizationCustomDataRequest

Properties

Name Type Required Description
accountCustomData1Name string false none
accountCustomData2Name string false none
accountCustomData3Name string false none
accountCustomData4Name string false none
accountCustomData5Name string false none
accountCustomData6Name string false none
accountCustomData7Name string false none
accountCustomData8Name string false none
accountCustomData9Name string false none
accountCustomData10Name string false none
meterCustomData1Name string false none
meterCustomData2Name string false none
meterCustomData3Name string false none
meterCustomData4Name string false none
meterCustomData5Name string false none
meterCustomData6Name string false none
meterCustomData7Name string false none
meterCustomData8Name string false none
meterCustomData9Name string false none
meterCustomData10Name string false none

PublicUtilityOrganizationCustomDataResource

{
  "accountCustomData1Name": "string",
  "accountCustomData2Name": "string",
  "accountCustomData3Name": "string",
  "accountCustomData4Name": "string",
  "accountCustomData5Name": "string",
  "accountCustomData6Name": "string",
  "accountCustomData7Name": "string",
  "accountCustomData8Name": "string",
  "accountCustomData9Name": "string",
  "accountCustomData10Name": "string",
  "meterCustomData1Name": "string",
  "meterCustomData2Name": "string",
  "meterCustomData3Name": "string",
  "meterCustomData4Name": "string",
  "meterCustomData5Name": "string",
  "meterCustomData6Name": "string",
  "meterCustomData7Name": "string",
  "meterCustomData8Name": "string",
  "meterCustomData9Name": "string",
  "meterCustomData10Name": "string",
  "name": "string"
}

PublicUtilityOrganizationCustomDataResource

Properties

Name Type Required Description
accountCustomData1Name string false none
accountCustomData2Name string false none
accountCustomData3Name string false none
accountCustomData4Name string false none
accountCustomData5Name string false none
accountCustomData6Name string false none
accountCustomData7Name string false none
accountCustomData8Name string false none
accountCustomData9Name string false none
accountCustomData10Name string false none
meterCustomData1Name string false none
meterCustomData2Name string false none
meterCustomData3Name string false none
meterCustomData4Name string false none
meterCustomData5Name string false none
meterCustomData6Name string false none
meterCustomData7Name string false none
meterCustomData8Name string false none
meterCustomData9Name string false none
meterCustomData10Name string false none
name string false none

PublicUtilityStatementResource

{
  "_links": {
    "self": "string",
    "accounts": "string",
    "source": "string"
  },
  "accountData": [
    {
      "_links": {
        "account": "string",
        "statement": "string"
      },
      "accountName1": "string",
      "accountName2": "string",
      "accountNumber": "string",
      "additionalProviderAlias": "string",
      "amountDue": 0,
      "amountDueAfterDueDate": 0,
      "amountDueBeforeDueDate": 0,
      "amountDueByDate": "2022-04-27T17:18:52Z",
      "billingAddress": {
        "addressType": "FULL",
        "city": "string",
        "country": "string",
        "fullAddress": "string",
        "postalCode": "string",
        "recipient": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "charges": [
        {
          "additionalRateMultiplier": 0,
          "averageUnitCost": 0,
          "chargeActualName": "string",
          "chargeAmount": 0,
          "chargeAmountCurrency": "string",
          "chargeGroupHeading": "string",
          "chargeName": "string",
          "chargeRate": 0,
          "chargeRateAdder": 0,
          "chargeRateBase": 0,
          "chargeRateCurrency": "string",
          "chargeType": "DEBIT",
          "chargeUnitsUsed": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "lifecycleStage": "string",
          "measurementType": "string",
          "tariff": {
            "created": "2022-04-27T17:18:52Z",
            "providerAlias": "string",
            "providerName": "string",
            "tariffName": "string"
          },
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "unitsPerRate": 0,
          "usageUnit": "string"
        }
      ],
      "created": "2022-04-27T17:18:52Z",
      "customerNumber": "string",
      "cycleNumber": "string",
      "disconnectDate": "2022-04-27T17:18:52Z",
      "discountBeforeDueDate": 0,
      "facilityName": "string",
      "facilityNumber": "string",
      "finalBillNotice": "string",
      "insallmentOutstanding": 0,
      "installmentDue": 0,
      "mapNumber": "string",
      "meterData": [
        {
          "_links": {
            "meter": "string",
            "statement": "string"
          },
          "amountDue": 0,
          "amountDueAfterDueDate": 0,
          "amountDueBeforeDueDate": 0,
          "amountDueByDate": "2022-04-27T17:18:52Z",
          "bulbQuantity": 0,
          "bulbType": "string",
          "charges": [
            {
              "additionalRateMultiplier": 0,
              "averageUnitCost": 0,
              "chargeActualName": "string",
              "chargeAmount": 0,
              "chargeAmountCurrency": "string",
              "chargeGroupHeading": "string",
              "chargeName": "string",
              "chargeRate": 0,
              "chargeRateAdder": 0,
              "chargeRateBase": 0,
              "chargeRateCurrency": "string",
              "chargeType": "DEBIT",
              "chargeUnitsUsed": 0,
              "contributionStatus": "CONTRIBUTING",
              "created": "2022-04-27T17:18:52Z",
              "lifecycleStage": "string",
              "measurementType": "string",
              "tariff": {
                "created": "2022-04-27T17:18:52Z",
                "providerAlias": "string",
                "providerName": "string",
                "tariffName": "string"
              },
              "tariffRateComponents": [
                {
                  "tariffName": "string",
                  "tariffRateComponentType": "string"
                }
              ],
              "unitsPerRate": 0,
              "usageUnit": "string"
            }
          ],
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "customerNumber": "string",
          "cycleNumber": "string",
          "deregulationStatus": "string",
          "disconnectDate": "2022-04-27T17:18:52Z",
          "discountBeforeDueDate": 0,
          "energyAnniversaryDate": "2022-04-27T17:18:52Z",
          "energyCarryForward": 0,
          "energyNewCarryForward": 0,
          "facilityName": "string",
          "facilityNumber": "string",
          "finalBillNotice": "string",
          "gridPointLineLoss": 0,
          "lineLoss": 0,
          "mapNumber": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterNumber": "string",
          "meterReadDate": "2022-04-27T17:18:52Z",
          "newCharges": 0,
          "nextReadDate": "2022-04-27T17:18:52Z",
          "normalizedMeterNumber": "string",
          "normalizedPodNumber": "string",
          "normalizedPreviousMeterNumber": "string",
          "outstandingBalance": 0,
          "pipeType": "string",
          "podNumber": "string",
          "powerFactor": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousBalance": 0,
          "previousMeterConstantMultiplier": 0,
          "previousMeterNumber": "string",
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "serviceDescription": "string",
          "serviceType": "string",
          "totalCharges": 0,
          "usages": [
            {
              "calorificValue": 0,
              "citedUsage": 0,
              "contractUsage": 0,
              "contributionStatus": "CONTRIBUTING",
              "created": "2022-04-27T17:18:52Z",
              "hoursOfUse": 0,
              "loadFactor": 0,
              "loadType": "string",
              "measuredUsage": 0,
              "measurementType": "string",
              "meterConstantMultiplier": 0,
              "meterConversionMultiplier": 0,
              "meterReadDate": "2022-04-27T17:18:52Z",
              "meterReadType": "string",
              "meterReadingDelta": 0,
              "meterReadingDeltaPrevious": 0,
              "meterReadingDeltaUsageUnit": "string",
              "meterReadingRaw": 0,
              "meterReadingRawPrevious": 0,
              "noncoincidentalUsage": 0,
              "numberOfDaysInPeriod": 0,
              "outageBlock": "string",
              "powerFactor": 0,
              "pressureMultiplier": 0,
              "prevReadDate": "2022-04-27T17:18:52Z",
              "previousMeterReadType": "string",
              "previousReadTypeAsPrinted": "string",
              "previousUsage": 0,
              "rateOrTariffActualName": "string",
              "readTypeAsPrinted": "string",
              "readingSchedule": "string",
              "tariffRateComponents": [
                {
                  "tariffName": "string",
                  "tariffRateComponentType": "string"
                }
              ],
              "usageActualName": "string",
              "usageUnit": "string"
            }
          ]
        }
      ],
      "newCharges": 0,
      "normalizedAccountNumber": "string",
      "outstandingBalance": 0,
      "paymentAddress": {
        "addressType": "FULL",
        "city": "string",
        "country": "string",
        "fullAddress": "string",
        "postalCode": "string",
        "recipient": "string",
        "state": "string",
        "streetLine1": "string",
        "streetLine2": "string"
      },
      "previousBalance": 0,
      "providerClassification": "PRIMARY",
      "totalCharges": 0,
      "usages": [
        {
          "calorificValue": 0,
          "citedUsage": 0,
          "contractUsage": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "hoursOfUse": 0,
          "loadFactor": 0,
          "loadType": "string",
          "measuredUsage": 0,
          "measurementType": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterReadDate": "2022-04-27T17:18:52Z",
          "meterReadType": "string",
          "meterReadingDelta": 0,
          "meterReadingDeltaPrevious": 0,
          "meterReadingDeltaUsageUnit": "string",
          "meterReadingRaw": 0,
          "meterReadingRawPrevious": 0,
          "noncoincidentalUsage": 0,
          "numberOfDaysInPeriod": 0,
          "outageBlock": "string",
          "powerFactor": 0,
          "pressureMultiplier": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousMeterReadType": "string",
          "previousReadTypeAsPrinted": "string",
          "previousUsage": 0,
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "readingSchedule": "string",
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "usageActualName": "string",
          "usageUnit": "string"
        }
      ]
    }
  ],
  "amountDue": 0,
  "amountDueAfterDueDate": 0,
  "amountDueBeforeDueDate": 0,
  "amountDueByDate": "2022-04-27T17:18:52Z",
  "charges": [
    {
      "additionalRateMultiplier": 0,
      "averageUnitCost": 0,
      "chargeActualName": "string",
      "chargeAmount": 0,
      "chargeAmountCurrency": "string",
      "chargeGroupHeading": "string",
      "chargeName": "string",
      "chargeRate": 0,
      "chargeRateAdder": 0,
      "chargeRateBase": 0,
      "chargeRateCurrency": "string",
      "chargeType": "DEBIT",
      "chargeUnitsUsed": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "lifecycleStage": "string",
      "measurementType": "string",
      "tariff": {
        "created": "2022-04-27T17:18:52Z",
        "providerAlias": "string",
        "providerName": "string",
        "tariffName": "string"
      },
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "unitsPerRate": 0,
      "usageUnit": "string"
    }
  ],
  "created": "2022-04-27T17:18:52Z",
  "customerNumber": "string",
  "cycleNumber": "string",
  "disconnectDate": "2022-04-27T17:18:52Z",
  "discountBeforeDueDate": 0,
  "discoveredDate": "2022-04-27T17:18:52Z",
  "facilityName": "string",
  "facilityNumber": "string",
  "finalBillNotice": "string",
  "invoiceNumber": "string",
  "lastModified": "2022-04-27T17:18:52Z",
  "mapNumber": "string",
  "newCharges": 0,
  "outstandingBalance": 0,
  "periodEnd": "2022-04-27T17:18:52Z",
  "periodStart": "2022-04-27T17:18:52Z",
  "previousBalance": 0,
  "previousStatementDate": "2022-04-27T17:18:52Z",
  "providerAlias": "string",
  "providerName": "string",
  "sourceType": "TAG_NAME",
  "statementDate": "2022-04-27T17:18:52Z",
  "statementType": "BILL",
  "totalCharges": 0,
  "usages": [
    {
      "calorificValue": 0,
      "citedUsage": 0,
      "contractUsage": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "hoursOfUse": 0,
      "loadFactor": 0,
      "loadType": "string",
      "measuredUsage": 0,
      "measurementType": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterReadDate": "2022-04-27T17:18:52Z",
      "meterReadType": "string",
      "meterReadingDelta": 0,
      "meterReadingDeltaPrevious": 0,
      "meterReadingDeltaUsageUnit": "string",
      "meterReadingRaw": 0,
      "meterReadingRawPrevious": 0,
      "noncoincidentalUsage": 0,
      "numberOfDaysInPeriod": 0,
      "outageBlock": "string",
      "powerFactor": 0,
      "pressureMultiplier": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousMeterReadType": "string",
      "previousReadTypeAsPrinted": "string",
      "previousUsage": 0,
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "readingSchedule": "string",
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "usageActualName": "string",
      "usageUnit": "string"
    }
  ]
}

PublicUtilityStatementResource

Properties

Name Type Required Description
_links object false none
» self string false none
» accounts string false none
» source string false none
accountData [PublicAccountDataResource] false none
amountDue number false none
amountDueAfterDueDate number false none
amountDueBeforeDueDate number false none
amountDueByDate string(date-time) false none
charges [PublicChargeResource] false none
created string(date-time) false none
customerNumber string false none
cycleNumber string false none
disconnectDate string(date-time) false none
discountBeforeDueDate number false none
discoveredDate string(date-time) false none
facilityName string false none
facilityNumber string false none
finalBillNotice string false none
invoiceNumber string false none
lastModified string(date-time) false none
mapNumber string false none
newCharges number false none
outstandingBalance number false none
periodEnd string(date-time) false none
periodStart string(date-time) false none
previousBalance number false none
previousStatementDate string(date-time) false none
providerAlias string false none
providerName string false none
sourceType string false none
statementDate string(date-time) false none
statementType string false none
totalCharges number false none
usages [PublicUsageResource] false none

Enumerated Values

Property Value
sourceType TAG_NAME
sourceType UNCLASSIFIED
sourceType HTML
sourceType CSS
sourceType PNG
sourceType JPG
sourceType GIF
sourceType TIFF
sourceType SVG
sourceType WEBP
sourceType ICO
sourceType PDF
sourceType JSON
sourceType CSV
sourceType XML
sourceType XLS
sourceType XLSX
sourceType TXT
sourceType ZIP
sourceType MSOTF
sourceType OTF
sourceType SFNT
sourceType TTF
sourceType WOFF
sourceType WOFF2
sourceType FONT_WOFF
sourceType FONT_WOFF2
sourceType FONT_XWOFF
sourceType FONT_TTF
sourceType FONT_SFNT
sourceType URJA_NODE_LIST
sourceType URJA_NAV_HISTORY
sourceType INSERT_BILL
sourceType EDI
sourceType X12
sourceType WOOT
statementType BILL
statementType NOTICE
statementType ADJUSTMENT
statementType PREPAID

PublicTariffRateComponentResource

{
  "tariffName": "string",
  "tariffRateComponentType": "string"
}

PublicTariffRateComponentResource

Properties

Name Type Required Description
tariffName string false none
tariffRateComponentType string false none

PublicUtilityAccountDataResource

{
  "_links": {
    "account": "string",
    "statement": "string"
  },
  "accountName1": "string",
  "accountName2": "string",
  "accountNumber": "string",
  "additionalProviderAlias": "string",
  "amountDue": 0,
  "amountDueAfterDueDate": 0,
  "amountDueBeforeDueDate": 0,
  "amountDueByDate": "2022-04-27T17:18:52Z",
  "billingAddress": {
    "addressType": "FULL",
    "city": "string",
    "country": "string",
    "fullAddress": "string",
    "postalCode": "string",
    "recipient": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "charges": [
    {
      "additionalRateMultiplier": 0,
      "averageUnitCost": 0,
      "chargeActualName": "string",
      "chargeAmount": 0,
      "chargeAmountCurrency": "string",
      "chargeGroupHeading": "string",
      "chargeName": "string",
      "chargeRate": 0,
      "chargeRateAdder": 0,
      "chargeRateBase": 0,
      "chargeRateCurrency": "string",
      "chargeType": "DEBIT",
      "chargeUnitsUsed": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "lifecycleStage": "string",
      "measurementType": "string",
      "tariff": {
        "created": "2022-04-27T17:18:52Z",
        "providerAlias": "string",
        "providerName": "string",
        "tariffName": "string"
      },
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "unitsPerRate": 0,
      "usageUnit": "string"
    }
  ],
  "created": "2022-04-27T17:18:52Z",
  "customerNumber": "string",
  "cycleNumber": "string",
  "disconnectDate": "2022-04-27T17:18:52Z",
  "discountBeforeDueDate": 0,
  "facilityName": "string",
  "facilityNumber": "string",
  "finalBillNotice": "string",
  "insallmentOutstanding": 0,
  "installmentDue": 0,
  "mapNumber": "string",
  "meterData": [
    {
      "_links": {
        "meter": "string",
        "statement": "string"
      },
      "amountDue": 0,
      "amountDueAfterDueDate": 0,
      "amountDueBeforeDueDate": 0,
      "amountDueByDate": "2022-04-27T17:18:52Z",
      "bulbQuantity": 0,
      "bulbType": "string",
      "charges": [
        {
          "additionalRateMultiplier": 0,
          "averageUnitCost": 0,
          "chargeActualName": "string",
          "chargeAmount": 0,
          "chargeAmountCurrency": "string",
          "chargeGroupHeading": "string",
          "chargeName": "string",
          "chargeRate": 0,
          "chargeRateAdder": 0,
          "chargeRateBase": 0,
          "chargeRateCurrency": "string",
          "chargeType": "DEBIT",
          "chargeUnitsUsed": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "lifecycleStage": "string",
          "measurementType": "string",
          "tariff": {
            "created": "2022-04-27T17:18:52Z",
            "providerAlias": "string",
            "providerName": "string",
            "tariffName": "string"
          },
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "unitsPerRate": 0,
          "usageUnit": "string"
        }
      ],
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "customerNumber": "string",
      "cycleNumber": "string",
      "deregulationStatus": "string",
      "disconnectDate": "2022-04-27T17:18:52Z",
      "discountBeforeDueDate": 0,
      "energyAnniversaryDate": "2022-04-27T17:18:52Z",
      "energyCarryForward": 0,
      "energyNewCarryForward": 0,
      "facilityName": "string",
      "facilityNumber": "string",
      "finalBillNotice": "string",
      "gridPointLineLoss": 0,
      "lineLoss": 0,
      "mapNumber": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterNumber": "string",
      "meterReadDate": "2022-04-27T17:18:52Z",
      "newCharges": 0,
      "nextReadDate": "2022-04-27T17:18:52Z",
      "normalizedMeterNumber": "string",
      "normalizedPodNumber": "string",
      "normalizedPreviousMeterNumber": "string",
      "outstandingBalance": 0,
      "pipeType": "string",
      "podNumber": "string",
      "powerFactor": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousBalance": 0,
      "previousMeterConstantMultiplier": 0,
      "previousMeterNumber": "string",
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "serviceDescription": "string",
      "serviceType": "string",
      "totalCharges": 0,
      "usages": [
        {
          "calorificValue": 0,
          "citedUsage": 0,
          "contractUsage": 0,
          "contributionStatus": "CONTRIBUTING",
          "created": "2022-04-27T17:18:52Z",
          "hoursOfUse": 0,
          "loadFactor": 0,
          "loadType": "string",
          "measuredUsage": 0,
          "measurementType": "string",
          "meterConstantMultiplier": 0,
          "meterConversionMultiplier": 0,
          "meterReadDate": "2022-04-27T17:18:52Z",
          "meterReadType": "string",
          "meterReadingDelta": 0,
          "meterReadingDeltaPrevious": 0,
          "meterReadingDeltaUsageUnit": "string",
          "meterReadingRaw": 0,
          "meterReadingRawPrevious": 0,
          "noncoincidentalUsage": 0,
          "numberOfDaysInPeriod": 0,
          "outageBlock": "string",
          "powerFactor": 0,
          "pressureMultiplier": 0,
          "prevReadDate": "2022-04-27T17:18:52Z",
          "previousMeterReadType": "string",
          "previousReadTypeAsPrinted": "string",
          "previousUsage": 0,
          "rateOrTariffActualName": "string",
          "readTypeAsPrinted": "string",
          "readingSchedule": "string",
          "tariffRateComponents": [
            {
              "tariffName": "string",
              "tariffRateComponentType": "string"
            }
          ],
          "usageActualName": "string",
          "usageUnit": "string"
        }
      ]
    }
  ],
  "newCharges": 0,
  "normalizedAccountNumber": "string",
  "outstandingBalance": 0,
  "paymentAddress": {
    "addressType": "FULL",
    "city": "string",
    "country": "string",
    "fullAddress": "string",
    "postalCode": "string",
    "recipient": "string",
    "state": "string",
    "streetLine1": "string",
    "streetLine2": "string"
  },
  "previousBalance": 0,
  "providerClassification": "PRIMARY",
  "totalCharges": 0,
  "usages": [
    {
      "calorificValue": 0,
      "citedUsage": 0,
      "contractUsage": 0,
      "contributionStatus": "CONTRIBUTING",
      "created": "2022-04-27T17:18:52Z",
      "hoursOfUse": 0,
      "loadFactor": 0,
      "loadType": "string",
      "measuredUsage": 0,
      "measurementType": "string",
      "meterConstantMultiplier": 0,
      "meterConversionMultiplier": 0,
      "meterReadDate": "2022-04-27T17:18:52Z",
      "meterReadType": "string",
      "meterReadingDelta": 0,
      "meterReadingDeltaPrevious": 0,
      "meterReadingDeltaUsageUnit": "string",
      "meterReadingRaw": 0,
      "meterReadingRawPrevious": 0,
      "noncoincidentalUsage": 0,
      "numberOfDaysInPeriod": 0,
      "outageBlock": "string",
      "powerFactor": 0,
      "pressureMultiplier": 0,
      "prevReadDate": "2022-04-27T17:18:52Z",
      "previousMeterReadType": "string",
      "previousReadTypeAsPrinted": "string",
      "previousUsage": 0,
      "rateOrTariffActualName": "string",
      "readTypeAsPrinted": "string",
      "readingSchedule": "string",
      "tariffRateComponents": [
        {
          "tariffName": "string",
          "tariffRateComponentType": "string"
        }
      ],
      "usageActualName": "string",
      "usageUnit": "string"
    }
  ]
}

PublicUtilityAccountDataResource

Properties

Name Type Required Description
_links object false none
» account string false none
» statement string false none
accountName1 string false none
accountName2 string false none
accountNumber string false none
additionalProviderAlias string false none
amountDue number false none
amountDueAfterDueDate number false none
amountDueBeforeDueDate number false none
amountDueByDate string(date-time) false none
billingAddress PublicUtilityAddressResource false none
charges [PublicChargeResource] false none
created string(date-time) false none
customerNumber string false none
cycleNumber string false none
disconnectDate string(date-time) false none
discountBeforeDueDate number false none
facilityName string false none
facilityNumber string false none
finalBillNotice string false none
insallmentOutstanding number false none
installmentDue number false none
mapNumber string false none
meterData [PublicMeterDataResource] false none
newCharges number false none
normalizedAccountNumber string false none
outstandingBalance number false none
paymentAddress PublicUtilityAddressResource false none
previousBalance number false none
providerClassification string false none
totalCharges number false none
usages [PublicUsageResource] false none

Enumerated Values

Property Value
providerClassification PRIMARY
providerClassification SECONDARY

PublicTariffResource

{
  "created": "2022-04-27T17:18:52Z",
  "providerAlias": "string",
  "providerName": "string",
  "tariffName": "string"
}

PublicTariffResource

Properties

Name Type Required Description
created string(date-time) false none
providerAlias string false none
providerName string false none
tariffName string false none

PublicUsageResource

{
  "calorificValue": 0,
  "citedUsage": 0,
  "contractUsage": 0,
  "contributionStatus": "CONTRIBUTING",
  "created": "2022-04-27T17:18:52Z",
  "hoursOfUse": 0,
  "loadFactor": 0,
  "loadType": "string",
  "measuredUsage": 0,
  "measurementType": "string",
  "meterConstantMultiplier": 0,
  "meterConversionMultiplier": 0,
  "meterReadDate": "2022-04-27T17:18:52Z",
  "meterReadType": "string",
  "meterReadingDelta": 0,
  "meterReadingDeltaPrevious": 0,
  "meterReadingDeltaUsageUnit": "string",
  "meterReadingRaw": 0,
  "meterReadingRawPrevious": 0,
  "noncoincidentalUsage": 0,
  "numberOfDaysInPeriod": 0,
  "outageBlock": "string",
  "powerFactor": 0,
  "pressureMultiplier": 0,
  "prevReadDate": "2022-04-27T17:18:52Z",
  "previousMeterReadType": "string",
  "previousReadTypeAsPrinted": "string",
  "previousUsage": 0,
  "rateOrTariffActualName": "string",
  "readTypeAsPrinted": "string",
  "readingSchedule": "string",
  "tariffRateComponents": [
    {
      "tariffName": "string",
      "tariffRateComponentType": "string"
    }
  ],
  "usageActualName": "string",
  "usageUnit": "string"
}

PublicUsageResource

Properties

Name Type Required Description
calorificValue number false none
citedUsage number false none
contractUsage number false none
contributionStatus string false none
created string(date-time) false none
hoursOfUse number false none
loadFactor number false none
loadType string false none
measuredUsage number false none
measurementType string false none
meterConstantMultiplier number false none
meterConversionMultiplier number false none
meterReadDate string(date-time) false none
meterReadType string false none
meterReadingDelta number false none
meterReadingDeltaPrevious number false none
meterReadingDeltaUsageUnit string false none
meterReadingRaw number false none
meterReadingRawPrevious number false none
noncoincidentalUsage number false none
numberOfDaysInPeriod number false none
outageBlock string false none
powerFactor number false none
pressureMultiplier number false none
prevReadDate string(date-time) false none
previousMeterReadType string false none
previousReadTypeAsPrinted string false none
previousUsage number false none
rateOrTariffActualName string false none
readTypeAsPrinted string false none
readingSchedule string false none
tariffRateComponents [PublicTariffRateComponentResource] false none
usageActualName string false none
usageUnit string false none

Enumerated Values

Property Value
contributionStatus CONTRIBUTING
contributionStatus NON_CONTRIBUTING
contributionStatus REDUNDANT
contributionStatus REDUNDANT_OUTSTANDING_BALANCE

PublicCreateUtilityAccountRequest

{
  "accountNumber": "string",
  "enabled": true,
  "providerId": "string"
}

PublicCreateUtilityAccountRequest

Properties

Name Type Required Description
accountNumber string true none
enabled boolean false Controls whether data will continue to be extracted for this account.
providerId string true The primary key used to represent this provider

PublicUtilityCredentialRequest

{
  "correlationId": "string",
  "providerId": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string",
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string"
}

PublicUtilityCredentialRequest

Properties

Name Type Required Description
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
providerId string true The primary key used to represent this provider
username string true A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2

UtilityCredentialResource

{
  "_links": {
    "provider": "string",
    "passwords": "string",
    "events": "string",
    "customData": "string",
    "consent": "string",
    "updateUrl": "string",
    "accounts": "string",
    "self": "string"
  },
  "runHistory": true,
  "correlationId": "string",
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "enabled": true,
  "lastModified": "2022-04-27T17:18:52Z",
  "lastModifiedBy": "string",
  "nextScheduledRun": "2022-04-27T17:18:52Z",
  "providerName": "string",
  "status": "OK",
  "statusDetail": "ACCOUNT_LOCKED",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

UtilityCredentialResource

Properties

Name Type Required Description
_links object false none
» provider string false none
» passwords string false none
» events string false none
» customData string false none
» consent string false none
» updateUrl string false none
» accounts string false none
» self string false none
runHistory boolean false none
correlationId string false An ID used to match the utility data pulled for this request back to users in your system
created string(date-time) false The date-time the credential was registered in Urjanet's system
createdBy string false none
enabled boolean false Controls whether data will continue to be extracted behind this credential.
lastModified string(date-time) false none
lastModifiedBy string false none
nextScheduledRun string(date-time) false The time that this credential is next scheduled to be ran in our system
providerName string false This field is searchable.
status string false A high-level status for the credential. See this table for more information. This field is searchable.
statusDetail string false A detailed status for the credential. See this table for more information. This field is searchable.
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

Enumerated Values

Property Value
status OK
status PENDING
status ACTION_REQUIRED
statusDetail ACCOUNT_LOCKED
statusDetail E_BILL_REQUIRED
statusDetail LOGIN_FAILURE
statusDetail MULTI_FACTOR_AUTH_FAILURE
statusDetail NAVIGATION_FAILURE
statusDetail NO_ACCOUNTS_FOUND
statusDetail NO_ACTION_REQUIRED
statusDetail SECURITY_QUESTIONS
statusDetail STATEMENT_UNAVAILABLE
statusDetail UNDER_REVIEW
statusDetail UNSUPPORTED_CAPTCHA
statusDetail USER_ACTION_REQUIRED
statusDetail WEBSITE_DOWN
statusDetail ACCOUNT_SETUP_REQUIRED

UtilityChallengeResponseResource

{
  "value": "string",
  "challenge": "MFA_RESPONSE_ONE_TIME_PASS"
}

Properties

Name Type Required Description
value string true The requested value from the user for MFA input
challenge string false The particular challenge that this value corresponds to (e.g. one time pass, security question, etc)

Enumerated Values

Property Value
challenge MFA_RESPONSE_ONE_TIME_PASS
challenge MFA_RESPONSE_CODE_METHOD
challenge MFA_RESPONSE_CAPTCHA_ANSWER

UtilityAccountEventResource

{
  "_links": {
    "self": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "ACCOUNT_REQUESTED",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

UtilityAccountEventResource

Properties

Name Type Required Description
_links object false none
» self string false none
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType ACCOUNT_REQUESTED
eventType ACCOUNT_ENABLED
eventType ACCOUNT_DISABLED
eventType ACCOUNT_UPDATED
eventType ACCOUNT_CUSTOM_DATA_UPDATED
eventType ACCOUNT_CREATED
eventType ACCOUNT_AGING

UtilityPaymentResource

{
  "amount": 0,
  "currency": "string",
  "paymentDate": "2022-04-27"
}

UtilityPaymentResource

Properties

Name Type Required Description
amount number false This field is searchable
currency string false none
paymentDate string(date) false This field is searchable

PublicConsentResource

{
  "consentStatus": "string",
  "credentialCreatedDate": "2022-04-27T17:18:52Z",
  "lastModifiedDate": "2022-04-27T17:18:52Z",
  "origin": "API",
  "privacyPolicyUrl": "string",
  "revokeDate": "2022-04-27T17:18:52Z",
  "termsOfServiceUrl": "string"
}

PublicConsentResource

Properties

Name Type Required Description
consentStatus string false none
credentialCreatedDate string(date-time) false none
lastModifiedDate string(date-time) false none
origin string false none
privacyPolicyUrl string false none
revokeDate string(date-time) false none
termsOfServiceUrl string false none

Enumerated Values

Property Value
origin API
origin CONNECT

UtilityCredentialEventResource

{
  "_links": {
    "self": "string"
  },
  "created": "2022-04-27T17:18:52Z",
  "createdBy": "string",
  "eventType": "CREDENTIAL_CREATED",
  "fieldName": "string",
  "newValue": "string",
  "oldValue": "string"
}

UtilityCredentialEventResource

Properties

Name Type Required Description
_links object false none
» self string false none
created string(date-time) false The date-time this event occurred.
createdBy string false The user that initiated the event
eventType string false The type of event that occurred
fieldName string false For custom data changes, represents which custom data field was modified
newValue string false For custom data changes, represents the newly assigned value of the field
oldValue string false For custom data changes, represents the previous value of the field

Enumerated Values

Property Value
eventType CREDENTIAL_CREATED
eventType CREDENTIAL_ENABLED
eventType CREDENTIAL_DISABLED
eventType CREDENTIAL_UPDATED
eventType CREDENTIAL_CUSTOM_DATA_UPDATED
eventType CREDENTIAL_ACQ_TEMPLATE_UPDATED

UtilityCredentialSecretsResource

{
  "password": "string",
  "password2": "string",
  "password3": "string",
  "password4": "string",
  "username": "string",
  "username2": "string",
  "username3": "string",
  "username4": "string"
}

UtilityCredentialSecretsResource

Properties

Name Type Required Description
password string false A sensitive input required to access the customer's utility data. This will not be returned in any GET calls for the request object.
password2 string false Optional sensitive input required by some providers to access data. The provider object will denote which fields are required for each provider. Like password, this value will not be returned in any GET calls for the request object.
password3 string false See password2
password4 string false See password2
username string false A login input required to access the customer's utility data
username2 string false Optional parameters required by some providers to access data. The provider object will denote which fields are required for each provider
username3 string false See username2
username4 string false See username2

UtilityCredentialUpdateUrlResource

{
  "updateUrl": "string",
  "expiration": "2022-04-27T17:18:52Z"
}

UtilityCredentialUpdateUrlResource

Properties

Name Type Required Description
updateUrl string false none
expiration string(date-time) false none

UtilityCredentialRefreshUrlResource

{
  "refreshUrl": "string",
  "expiration": "2022-04-27T17:18:52Z"
}

UtilityCredentialRefreshUrlResource

Properties

Name Type Required Description
refreshUrl string false none
expiration string(date-time) false none

PublicOrganizationCredentialUrlResource

{
  "addUrl": "string"
}

PublicOrganizationCredentialUrlResource

Properties

Name Type Required Description
addUrl string false none

undefined