For the complete documentation index, see llms.txt. This page is also available as Markdown.

Trade Trust E BL

Mint, verify, and move a transferable record (eBL) through core-engine.

Complete and mint an eBL

post

Hand back the signed record and get the mint transaction — still unsent; see this class's javadoc.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Body

Request for POST /tradetrust/ebl/complete-mint — hand back the signed record and get the mint transaction. beneficiary and holder default to from server-side.

preparationIdstring · min: 1Required
fromstring · min: 1Required

Must hold MINTER_ROLE on the registry.

beneficiarystringOptional
holderstringOptional
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/complete-mint
POST /z2/tradetrust/ebl/complete-mint HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "preparationId": "text",
  "signedVerifiableCredential": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "from": "text",
  "beneficiary": "text",
  "holder": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "verifiableCredential": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "tokenId": "text",
    "unsignedMintTx": {
      "to": "text",
      "data": "text",
      "value": "text",
      "chainId": 1
    }
  }
}

Mint an eBL in one call

post

Mint a transferable record in one call: prepare-mint -> core-engine signs -> complete-mint. One step still to do: sign and broadcast the returned unsignedMintTx. Sends the issuer's private key to core-engine — see {@link com.myeg.z2.tradetrust.dto.req.MultikeyDto com.myeg.z2.tradetrust.dto.req.MultikeyDto}.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Body

Request for POST /tradetrust/ebl/mint — the same build as {@link EblPrepareMintReqDto EblPrepareMintReqDto}, plus the issuer's key pair for delegated signing and the minting address. One call, but from must still sign and broadcast the returned unsignedMintTx — the token does not exist until that is mined.

This sends the issuer's private key to core-engine. See {@link MultikeyDto MultikeyDto}.

issuerDidstring · min: 1Required
tokenRegistrystring · min: 1Required
chainIdinteger · int64Optional
chainstringOptional
contextstring[]Optional
expirationDatestringOptional
fromstring · min: 1Required

Must hold MINTER_ROLE on the registry.

beneficiarystringOptional

Initial owner of title to the goods (Title Escrow beneficiary). Defaults to from.

holderstringOptional

Initial holder / possessor. Defaults to from.

Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/mint
POST /z2/tradetrust/ebl/mint HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 457

{
  "issuerDid": "text",
  "credentialSubject": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "tokenRegistry": "text",
  "chainId": 1,
  "chain": "text",
  "context": [
    "text"
  ],
  "expirationDate": "text",
  "renderMethod": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "qrCode": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "from": "text",
  "beneficiary": "text",
  "holder": "text",
  "keyPair": {
    "id": "text",
    "type": "text",
    "controller": "text",
    "publicKeyMultibase": "text",
    "secretKeyMultibase": "text",
    "@context": "text"
  }
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "verifiableCredential": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "tokenId": "text",
    "unsignedMintTx": {
      "to": "text",
      "data": "text",
      "value": "text",
      "chainId": 1
    }
  }
}

Deploy a Token Registry

post

Deploy a brand-new Token Registry — where an eBL flow starts, since prepare-mint and mint both require a tokenRegistry and there is no default.

Unsigned like every other write: the paying address signs and broadcasts it, and needs gas. Afterwards read the new registry's address from /onboard-issuer/registry — it is not in the receipt's contractAddress.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Body

Request for POST /tradetrust/ebl/onboard-issuer — build the transaction that deploys a brand-new eBL Token Registry.

This is where an eBL flow starts. tokenRegistry is required on prepare-mint and mint and core-engine keeps no server-wide default, so without a registry of your own there is nothing to mint into.

Like every other eBL write this returns an unsigned transaction: admin (or whoever you choose to pay) signs and broadcasts it, so that address needs gas first. Deployment is permissionless — the registry's admin comes from an encoded parameter rather than the sender — so the paying address and the admin need not be the same.

The new registry's address is not in the transaction receipt's contractAddress field. The registry is deployed by the platform's shared deployer contract, not by this transaction directly, so that field is null. Once the transaction succeeds, read the address from GET /tradetrust/ebl/onboard-issuer/registry?hash=....

namestring · min: 1Required

The registry's ERC-721 collection name, e.g. "MYEG Bill of Lading".

symbolstring · min: 1Required

The registry's ERC-721 symbol, e.g. "MYEGBL".

adminstring · min: 1Required

Becomes the new registry's admin, holding DEFAULT_ADMIN_ROLE, MINTER_ROLE, RESTORER_ROLE and ACCEPTER_ROLE — so this is the address that will be allowed to mint. Typically the issuer's own operational address.

Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/onboard-issuer
POST /z2/tradetrust/ebl/onboard-issuer HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "name": "text",
  "symbol": "text",
  "admin": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Get the deployed registry address

get

The address of the registry an onboard-issuer transaction deployed, decoded from the receipt's Deployment event. Poll while PENDING, exactly as with /tx/status.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Query parameters
hashstring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
get/tradetrust/ebl/onboard-issuer/registry
GET /z2/tradetrust/ebl/onboard-issuer/registry?hash=text HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "transactionHash": "text",
    "status": "SUCCESS",
    "registry": "text"
  }
}

Prepare an eBL for signing

post

Build the unsigned transferable record and its signing spec. The caller signs, then calls complete-mint.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Body

Request for POST /tradetrust/ebl/prepare-mint — build the unsigned transferable record and its signing spec. issuerDid, credentialSubject and tokenRegistry are required; core-engine removed its server-wide default registry (a tokenId is only unique within one registry contract).

issuerDidstring · min: 1Required
tokenRegistrystring · min: 1Required
chainIdinteger · int64Optional
chainstringOptional
contextstring[]Optional
expirationDatestringOptional
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/prepare-mint
POST /z2/tradetrust/ebl/prepare-mint HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 274

{
  "issuerDid": "text",
  "credentialSubject": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "tokenRegistry": "text",
  "chainId": 1,
  "chain": "text",
  "context": [
    "text"
  ],
  "expirationDate": "text",
  "renderMethod": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "qrCode": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "preparationId": "text",
    "unsignedVerifiableCredential": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "signingSpec": {
      "mandatoryPointers": [
        "text"
      ],
      "cryptoSuite": "text",
      "expectedIssuerDid": "text"
    }
  }
}

Verify an eBL

post

Document integrity and on-chain state. Takes no tokenRegistry — unlike every other eBL route, it reads the registry and token id from inside the submitted credential. Read valid AND trusted — never valid alone.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Body

Request for POST /tradetrust/credentials/verify — check signature, issuer binding and (if declared) revocation. Open on core-engine's side, but this service still requires its own caller auth like every other route (no addition to SecurityConfig.PUBLIC_PATHS).

trustedIssuers is optional; when supplied, the response's trusted field reports whether the credential's issuer is on it.

trustedIssuersstring[]Optional
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/verify
POST /z2/tradetrust/ebl/verify HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "verifiableCredential": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "trustedIssuers": [
    "text"
  ]
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "valid": true,
    "issuer": "text",
    "trusted": true,
    "onChain": {
      "minted": true,
      "status": "ACTIVE",
      "registry": "text",
      "tokenId": "text",
      "titleEscrow": "text",
      "beneficiary": "text",
      "holder": "text"
    },
    "checks": [
      {
        "type": "text",
        "status": "text",
        "reason": "text"
      }
    ]
  }
}

Accept a surrender

post

The issuer finalizes a returned record; it is burned and retired.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/accept-surrender
POST /z2/tradetrust/ebl/{tokenId}/accept-surrender HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Get the endorsement chain

get

The record's full transfer history, oldest first.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Query parameters
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
get/tradetrust/ebl/{tokenId}/endorsement-chain
GET /z2/tradetrust/ebl/{tokenId}/endorsement-chain?tokenRegistry=text HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "tokenId": "text",
    "chain": [
      {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    ]
  }
}

Nominate the next beneficiary

post

The beneficiary nominates who may take title next — step 1 of the two-step title transfer.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

Request body shape shared by POST /tradetrust/ebl/{tokenId/transfer-beneficiary} (irreversible once broadcast) and POST /tradetrust/ebl/{tokenId/nominate} (step 1 of the two-step title transfer) — both are exactly newBeneficiary + the base action fields.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
newBeneficiarystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/nominate
POST /z2/tradetrust/ebl/{tokenId}/nominate HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "from": "text",
  "tokenRegistry": "text",
  "newBeneficiary": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Get the current owner

get

The Title Escrow currently owning the token (or the registry, once surrendered).

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Query parameters
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
get/tradetrust/ebl/{tokenId}/owner
GET /z2/tradetrust/ebl/{tokenId}/owner?tokenRegistry=text HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "tokenId": "text",
    "owner": "text"
  }
}

Reject a surrender

post

The issuer returns a surrendered record to the last holder, active again.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/reject-surrender
POST /z2/tradetrust/ebl/{tokenId}/reject-surrender HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Reject a beneficiary transfer

post

Decline an incoming beneficiary transfer.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/reject-transfer-beneficiary
POST /z2/tradetrust/ebl/{tokenId}/reject-transfer-beneficiary HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Reject a holder transfer

post

Decline an incoming holder transfer. Not the same as {@link com.myeg.z2.tradetrust.controller.EblController#rejectSurrender #rejectSurrender} — unrelated flows.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/reject-transfer-holder
POST /z2/tradetrust/ebl/{tokenId}/reject-transfer-holder HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Reject a combined transfer

post

Decline an incoming combined (owners) transfer.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/reject-transfer-owners
POST /z2/tradetrust/ebl/{tokenId}/reject-transfer-owners HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Surrender an eBL

post

The holder returns the record to the issuer — step 1 of 3 in the end-of-life flow.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

The two fields every eBL write that takes no extra parameter needs: surrender, accept-surrender, reject-surrender, reject-transfer-holder, reject-transfer-beneficiary, reject-transfer-owners. Extended by the writes that need more — see {@link EblTransferHolderReqDto EblTransferHolderReqDto}, {@link EblNewBeneficiaryReqDto EblNewBeneficiaryReqDto}, {@link EblTransferOwnersReqDto EblTransferOwnersReqDto}.

tokenId is not here — every eBL write takes it as a path variable, not a body field.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/surrender
POST /z2/tradetrust/ebl/{tokenId}/surrender HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "from": "text",
  "tokenRegistry": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Transfer the beneficiary

post

Transfer title to the goods. Irreversible once the returned transaction is broadcast.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

Request body shape shared by POST /tradetrust/ebl/{tokenId/transfer-beneficiary} (irreversible once broadcast) and POST /tradetrust/ebl/{tokenId/nominate} (step 1 of the two-step title transfer) — both are exactly newBeneficiary + the base action fields.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
newBeneficiarystring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/transfer-beneficiary
POST /z2/tradetrust/ebl/{tokenId}/transfer-beneficiary HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "from": "text",
  "tokenRegistry": "text",
  "newBeneficiary": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Transfer the holder

post

Hand possession of the record to another party. Irreversible once the returned transaction is broadcast.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

Request for POST /tradetrust/ebl/{tokenId/transfer-holder} — irreversible once broadcast.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
newHolderstring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/transfer-holder
POST /z2/tradetrust/ebl/{tokenId}/transfer-holder HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "from": "text",
  "tokenRegistry": "text",
  "newHolder": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Transfer beneficiary and holder

post

Move beneficiary and holder together, atomically, in one transaction.

Authorizations
X-API-KeystringRequired

AWS API Gateway key, required only on the api-sandbox and api-v2 servers. It is checked by the gateway, before the request reaches this service, so it does not substitute for the bearer token - those two headers are read by different layers. Omit it when port-forwarding to a pod.

AuthorizationstringRequired

OAuth2 bearer token from the shared BaaS auth server.

Every endpoint in this subset requires one. Note the security filter runs BEFORE routing, so an unauthenticated request to a path that does not exist also answers 401, not 404 - a 404 is only visible to an authenticated caller.

Path parameters
tokenIdstringRequired
Body

Request for POST /tradetrust/ebl/{tokenId/transfer-owners} — moves beneficiary and holder together, atomically, in one transaction.

fromstring · min: 1Required
tokenRegistrystring · min: 1Required
newBeneficiarystring · min: 1Required
newHolderstring · min: 1Required
Responses
200

OK

*/*

Standard BaaS response envelope. Mirrors the shape used across the microservices so callers get a consistent contract on L2 as on L1.

successbooleanOptional
errorCodestringOptional
messagestringOptional
post/tradetrust/ebl/{tokenId}/transfer-owners
POST /z2/tradetrust/ebl/{tokenId}/transfer-owners HTTP/1.1
Host: api-sandbox.zetrix.com
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81

{
  "from": "text",
  "tokenRegistry": "text",
  "newBeneficiary": "text",
  "newHolder": "text"
}
200

OK

{
  "success": true,
  "errorCode": "text",
  "message": "text",
  "data": {
    "to": "text",
    "data": "text",
    "value": "text",
    "chainId": 1
  }
}

Last updated