Skip to content

Xpansiv Connect API (1.0.0-beta)

This is the OpenAPI spec for Xpansiv Connect API. Documentation: https://developer.xpansiv.com/developer-portal/

Languages
Servers
SANDBOX
https://sandbox.preprod.connect.xpansiv.com/app/api/v1/
UAT
https://uat.preprod.connect.xpansiv.com/app/api/v1/
PROD
https://connect.xpansiv.com/app/api/v1/

Account

The Account API allows uses of Xpansiv Connect to pull a list of their registry sub-accounts. As related to the retirement activity, the list reflects the retirement sub-accounts which are required when executing retirements in specific registries or when searching retirement history. The registries with data to return for this call are NEPOOL, M_RETS, NAR, MIRECS, NCRETS, NYGATS, TIGR, CAR, VCS, ACR, RMS AND TERCS.

Operations

Exchange

The Exchange APIs allow users to take various actions, both read and write, for their interactions with execution venues, such as the CBL platform. The Search Deposits API allows the user to search the current deposits placed on execution venues. The Deposit Creation API allows the user to place inventory on deposit on a target execution venue. The Deposit Withdraw API allows the user to withdraw and place back into inventory deposits held on an execution venue. The Deposit Withdraw and Create Retirements API allows the user to withdraw and retire deposits held on an execution venue. The Deposit Settlement API call would be used to settle executed trades on an execution venue by an execution venue operator.

Operations

Forward Deals

The Forward Deals API allows the user to search The Forward Deals associated with their Xpansiv Connect account and/or other Xpansiv Connect accounts that have granted their user that access. Forward Deal information is returned based on a Deal's last updated date. Note that this call has a number of optional fields that the users needs to include if desired in the output.

Operations

Issuances

The Issuance API allows the user to pull information on any Issuances associated with their account, or permissioned account, for the various registries they are linked with. The Instrument details on the Issuance will be returned in the format of a Carbon Instrument (type CARBON) or a REC Instrument (type REC) as appropriate. Each of the types are returned with data specific to the Carbon or REC attributes.

Operations

Portfolio

The Portfolio API allows the user to search their credit inventory (tax lot) data on active positions across all registry accounts linked to their Xpansiv Connect account and/or other Xpansiv Connect accounts that have granted their user that access. Note that This call has a number of optional fields that the user needs to include if desired in the output.

Operations

Projects

The Project API allows the user to pull publicly available information about carbon projects registered in the registries that are integrated with Xpansiv Connect. Note - this call has a number of optional fields that the user needs to include if desired in the output.

Operations

ReferenceData

The Reference Data API enables discovering Xpansiv Connect reference data types and values.

Operations

Reports

The Reports API allows the user to retrieve a comprehensive credit inventory (aka Tax Lot by Program Report) on all active positions with a single call across all registry accounts linked to their Xpansiv Connect account or other Xpansiv Connect accounts that have granted their user that access. Note - this call has a number of optional fields that the user needs to include if desired in the output.

Operations

Retirements

The Retirements APIs allow users to take various actions, both read and write, for their retirement activity. The Create Retirements API allows users of Xpansiv Connect to retire one or more positions from their linked registry accounts and/or other Xpansiv Connect accounts that have granted their API user with that access. The Get Registry Rules API call provides the user with the information required to pass the correct rule attributes specific to each registry with each retirement attempt. The Check Retirement Status API allows users to query the status of their retirements. The Search retirements API allows users search their retirement history. Note - this call has a number of optional fields that the user needs to include if desired in the output.

Operations

Split Lots

The Split Lots API allows the user to search split lot data on their Xpansiv Connect account and/or other Xpansiv Connect accounts that have granted your user that access.

Operations

Transfers

The Transfers APIs allow users to take various actions, both read and write, for their bilateral transaction activity. The Search Transfers API allows the user to search registry transfer data for their Xpansiv Connect account and/or other Xpansiv Connect accounts that have granted your user that access. Note - this call has a number of optional fields that the user needs to include if desired in the output. The Create Transfers API allows the user to create new bilateral transfers. The Cancel Transfers API allows the user to cancel/withdrawal any pending outgoing transfers. The Reject Transfers API allows the user to reject any pending incoming transfer. The Accept Transfers API allows the user to accept any pending incoming transfer.

Operations

Users

The Users APIs allow account administrators to search and edit users on their Xpansiv Connect account, and to create users (including bulk create) under a specified account.

Operations

Search users

Request

Search users scoped to the caller's active account. Requires EM_ACCOUNT.USER edit permission on the active account. If accountIdentifier is supplied it must match the active account.

Security
bearerToken
Query
pageinteger(int32)
sizeinteger(int32)
includestring

Comma-separated values from optional response fields

Bodyapplication/jsonrequired
accountIdentifierstring

Account identifier. Callers are scoped to their active account; a mismatched value returns forbidden.

emailstring(email)

User's email address

firstNamestring

User's first name

lastNamestring

User's last name

authSubstring

Authentication subject identifier

loginstring

User's login name

statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

lastLoginFromstring(date-time)

Lower bound of last login timestamp range (inclusive).

lastLoginTostring(date-time)

Upper bound of last login timestamp range (inclusive).

curl -i -X POST \
  'https://sandbox.preprod.connect.xpansiv.com/app/api/v1/users/action/search?page=0&size=0&include=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "accountIdentifier": "string",
    "email": "user@example.com",
    "firstName": "string",
    "lastName": "string",
    "authSub": "string",
    "login": "string",
    "status": "string",
    "lastLoginFrom": "2019-08-24T14:15:22Z",
    "lastLoginTo": "2019-08-24T14:15:22Z"
  }'

Responses

Paginated list of users matching criteria

Bodyapplication/json
pageinteger(int32)required
sizeinteger(int32)required
totalPagesinteger(int32)required
totalElementsinteger(int64)required
contentArray of objects(User)required
content[].​firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
content[].​middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
content[].​lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
content[].​emailstring(email)required
Example: "john.doe@example.com"
content[].​jobTitlestringrequired
Example: "Portfolio Manager"
content[].​telephonestring
Example: "555-123-4567"
content[].​authSubjectstring
Example: "auth0|asdfghjkl1234567890"
content[].​loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
content[].​addressobject(Address)required
content[].​address.​postalCodestringnon-emptyrequired
Example: "12345"
content[].​address.​citystringnon-emptyrequired
Example: "New York"
content[].​address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

content[].​address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
content[].​address.​addressLineTwostring
Example: "5th floor"
content[].​address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

content[].​organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

content[].​rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
content[].​accountobjectread-only
content[].​statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

content[].​lastLoginstring(date-time)read-only

Last login timestamp

content[].​isAdminbooleanread-only
Response
application/json
{ "page": 0, "size": 0, "totalPages": 0, "totalElements": 0, "content": [ { … } ] }

Edit user details

Request

Updates user details on the caller's active account. Requires EM_ACCOUNT.USER edit permission. The target user is identified by login and must belong to the active account. Required fields: login, firstName, lastName, and status.

Security
bearerToken
Bodyapplication/jsonrequired
firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
emailstring(email)required
Example: "john.doe@example.com"
jobTitlestringrequired
Example: "Portfolio Manager"
telephonestring
Example: "555-123-4567"
authSubjectstring
Example: "auth0|asdfghjkl1234567890"
loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
addressobject(Address)required
address.​postalCodestringnon-emptyrequired
Example: "12345"
address.​citystringnon-emptyrequired
Example: "New York"
address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
address.​addressLineTwostring
Example: "5th floor"
address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

curl -i -X POST \
  https://sandbox.preprod.connect.xpansiv.com/app/api/v1/users/action/edit \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName": "John",
    "middleName": "Jackson",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "jobTitle": "Portfolio Manager",
    "telephone": "555-123-4567",
    "authSubject": "auth0|asdfghjkl1234567890",
    "login": "johndoe",
    "address": {
      "postalCode": "12345",
      "city": "New York",
      "country": "string",
      "addressLineOne": "5 Broadway",
      "addressLineTwo": "5th floor",
      "stateProvince": "string"
    },
    "organizationRelationship": "string",
    "roles": [
      "ACCOUNT_ADMIN"
    ],
    "status": "string"
  }'

Responses

Updated user

Bodyapplication/json
firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
emailstring(email)required
Example: "john.doe@example.com"
jobTitlestringrequired
Example: "Portfolio Manager"
telephonestring
Example: "555-123-4567"
authSubjectstring
Example: "auth0|asdfghjkl1234567890"
loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
addressobject(Address)required
address.​postalCodestringnon-emptyrequired
Example: "12345"
address.​citystringnon-emptyrequired
Example: "New York"
address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
address.​addressLineTwostring
Example: "5th floor"
address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
accountobjectread-only
statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

lastLoginstring(date-time)read-only

Last login timestamp

isAdminbooleanread-only
Response
application/json
{ "firstName": "John", "middleName": "Jackson", "lastName": "Doe", "email": "john.doe@example.com", "jobTitle": "Portfolio Manager", "telephone": "555-123-4567", "authSubject": "auth0|asdfghjkl1234567890", "login": "johndoe", "address": { "postalCode": "12345", "city": "New York", "country": "string", "addressLineOne": "5 Broadway", "addressLineTwo": "5th floor", "stateProvince": "string" }, "organizationRelationship": "string", "roles": [ "ACCOUNT_ADMIN" ], "account": { "id": 0, "identifier": "0980A123", "noOfUsers": 0, "status": "APPROVED", "maxUsers": 0, "childAccounts": [ … ], "registryLinks": [ … ], "organization": { … }, "services": [ … ] }, "status": "string", "lastLogin": "2019-08-24T14:15:22Z", "isAdmin": true }

Create a user under the specified account

Request

Creates a user on the account identified by AccountIdentifier. Requires EM_ACCOUNT.USER edit permission on that account.

Security
bearerToken
Path
AccountIdentifierstringrequired

Account identifier

Example: 098B0A25
Bodyapplication/jsonrequired
firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
emailstring(email)required
Example: "john.doe@example.com"
jobTitlestringrequired
Example: "Portfolio Manager"
telephonestring
Example: "555-123-4567"
authSubjectstring
Example: "auth0|asdfghjkl1234567890"
loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
addressobject(Address)required
address.​postalCodestringnon-emptyrequired
Example: "12345"
address.​citystringnon-emptyrequired
Example: "New York"
address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
address.​addressLineTwostring
Example: "5th floor"
address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

curl -i -X POST \
  https://sandbox.preprod.connect.xpansiv.com/app/api/v1/accounts/098B0A25/users/action/create \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName": "John",
    "middleName": "Jackson",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "jobTitle": "Portfolio Manager",
    "telephone": "555-123-4567",
    "authSubject": "auth0|asdfghjkl1234567890",
    "login": "johndoe",
    "address": {
      "postalCode": "12345",
      "city": "New York",
      "country": "string",
      "addressLineOne": "5 Broadway",
      "addressLineTwo": "5th floor",
      "stateProvince": "string"
    },
    "organizationRelationship": "string",
    "roles": [
      "ACCOUNT_ADMIN"
    ],
    "status": "string"
  }'

Responses

Created user

Bodyapplication/json
firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
emailstring(email)required
Example: "john.doe@example.com"
jobTitlestringrequired
Example: "Portfolio Manager"
telephonestring
Example: "555-123-4567"
authSubjectstring
Example: "auth0|asdfghjkl1234567890"
loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
addressobject(Address)required
address.​postalCodestringnon-emptyrequired
Example: "12345"
address.​citystringnon-emptyrequired
Example: "New York"
address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
address.​addressLineTwostring
Example: "5th floor"
address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
accountobjectread-only
statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

lastLoginstring(date-time)read-only

Last login timestamp

isAdminbooleanread-only
Response
application/json
{ "firstName": "John", "middleName": "Jackson", "lastName": "Doe", "email": "john.doe@example.com", "jobTitle": "Portfolio Manager", "telephone": "555-123-4567", "authSubject": "auth0|asdfghjkl1234567890", "login": "johndoe", "address": { "postalCode": "12345", "city": "New York", "country": "string", "addressLineOne": "5 Broadway", "addressLineTwo": "5th floor", "stateProvince": "string" }, "organizationRelationship": "string", "roles": [ "ACCOUNT_ADMIN" ], "account": { "id": 0, "identifier": "0980A123", "noOfUsers": 0, "status": "APPROVED", "maxUsers": 0, "childAccounts": [ … ], "registryLinks": [ … ], "organization": { … }, "services": [ … ] }, "status": "string", "lastLogin": "2019-08-24T14:15:22Z", "isAdmin": true }

Create multiple users under the specified account

Request

Creates multiple users in a single request. The maximum batch size is enforced server-side (see ema.api.account.users.bulk-create.max). Each item is processed independently; partial success is reported when some users are created and others fail. Requires EM_ACCOUNT.USER edit permission on the account.

Security
bearerToken
Path
AccountIdentifierstringrequired

Account identifier

Example: 098B0A25
Bodyapplication/jsonrequired
usersArray of objects(User)non-emptyrequired
users[].​firstNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "John"
users[].​middleNamestring[ 0 .. 100 ] characters^[^0-9]*$

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Jackson"
users[].​lastNamestring[ 1 .. 100 ] characters^[^0-9]*$required

Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI.

Example: "Doe"
users[].​emailstring(email)required
Example: "john.doe@example.com"
users[].​jobTitlestringrequired
Example: "Portfolio Manager"
users[].​telephonestring
Example: "555-123-4567"
users[].​authSubjectstring
Example: "auth0|asdfghjkl1234567890"
users[].​loginstring

User login name. Required when editing an existing user.

Example: "johndoe"
users[].​addressobject(Address)required
users[].​address.​postalCodestringnon-emptyrequired
Example: "12345"
users[].​address.​citystringnon-emptyrequired
Example: "New York"
users[].​address.​countrystring(Ref.Country)required

Ref.Data.COUNTRY

users[].​address.​addressLineOnestringnon-emptyrequired
Example: "5 Broadway"
users[].​address.​addressLineTwostring
Example: "5th floor"
users[].​address.​stateProvincestring(Ref.StateProvince)

Ref.Data.STATE_PROVINCE

users[].​organizationRelationshipstring(Ref.OrganizationRelationship)

Ref.Data.USER_ORGANIZATION_RELATIONSHIP

users[].​rolesArray of strings(UserRole)

Account-scoped entitlement roles only.

Items Enum"ACCOUNT_ADMIN""ACCOUNT_MANAGER""EXCHANGE_READ""EXCHANGE_WRITE""PORTFOLIO_READ""PORTFOLIO_WRITE"
users[].​statusstring(Ref.UserStatus)

Ref.Data.USER_STATUS

curl -i -X POST \
  https://sandbox.preprod.connect.xpansiv.com/app/api/v1/accounts/098B0A25/users/action/bulk-create \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "users": [
      {
        "firstName": "John",
        "middleName": "Jackson",
        "lastName": "Doe",
        "email": "john.doe@example.com",
        "jobTitle": "Portfolio Manager",
        "telephone": "555-123-4567",
        "authSubject": "auth0|asdfghjkl1234567890",
        "login": "johndoe",
        "address": {
          "postalCode": "12345",
          "city": "New York",
          "country": "string",
          "addressLineOne": "5 Broadway",
          "addressLineTwo": "5th floor",
          "stateProvince": "string"
        },
        "organizationRelationship": "string",
        "roles": [
          "ACCOUNT_ADMIN"
        ],
        "status": "string"
      }
    ]
  }'

Responses

Bulk user creation completed

Bodyapplication/json
codestringrequired

Aggregate outcome based on all items in the request.

Enum"SUCCESS""PARTIAL_SUCCESS""FAILURE"
messagestring
resultsArray of objects(BulkCreateAccountUsersResult)required
results[].​indexinteger(int32)required

Zero-based index of the user in the request users array.

results[].​codestringrequired

Result for the single user create attempt.

Enum"CREATED""FAILED"
results[].​messagestring

Error message when code is FAILED.

results[].​userobject(User)
Response
application/json
{ "code": "SUCCESS", "message": "string", "results": [ { … } ] }

AccountHolders

Operations

Generators

Operations

Instruments

Operations