Xpansiv Retirementbatch V1 API

View or submit a retirement request, or redemption claim, on instrument(s).

Operations 2

POST /api/ledger/{ledgerIdentifier}/retirementBatch/byIdentifier Retrieve retirement request details #
POST /api/ledger/{ledgerIdentifier}/retire Initiate a retirement request #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/xpansiv-retirementbatch-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

xpansiv-retirementbatch-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Transfer Position External Retirementbatch V1 API
  description: Use API credentials to view and manage instruments.
  version: 1.0.0
servers:
- url: https://optimalapi-ext.apx.com/transfer/v1
- url: https://optimalapi-uat-ext.apx.com/transfer/v1
tags:
- name: retirementbatch-v1
  description: View or submit a retirement request, or redemption claim, on instrument(s).
paths:
  /api/ledger/{ledgerIdentifier}/retirementBatch/byIdentifier:
    post:
      tags:
      - retirementbatch-v1
      summary: Retrieve retirement request details
      description: View retirement details using the retirement batch identifier
      operationId: getRetirementBatchesByIdentifier
      parameters:
      - name: ledgerIdentifier
        in: path
        description: Ledger identifier, can be found using /api/ledger endpoint
        required: true
        schema:
          type: string
          format: uuid
        example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
      requestBody:
        description: Populated RetirementBatchRetrieveByIdentifierRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RetirementBatchRetrieveByIdentifierRequest'
        required: true
      responses:
        '200':
          description: success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RetirementBatchRetrieveByIdentifierResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AbstractRestError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                oneOf:
                - $ref: '#/components/schemas/GeneralError'
                - $ref: '#/components/schemas/AbstractRestError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AbstractRestError'
        '404':
          description: Not Found
          content: {}
        '406':
          description: Not Acceptable
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorContainer'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralError'
  /api/ledger/{ledgerIdentifier}/retire:
    post:
      tags:
      - retirementbatch-v1
      summary: Initiate a retirement request
      description: Retire, or claim, instruments against an obligation
      operationId: initiateRetirements
      parameters:
      - name: ledgerIdentifier
        in: path
        description: Ledger identifier, can be found using /api/ledger endpoint
        required: true
        schema:
          type: string
          format: uuid
        example: 4b7375e9-79b0-4b8b-a89e-a21607f0239f
      requestBody:
        description: Populated BulkRetirementRequest
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRetirementRequest'
        required: true
      responses:
        '200':
          description: success
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BulkRetirementResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AbstractRestError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                oneOf:
                - $ref: '#/components/schemas/GeneralError'
                - $ref: '#/components/schemas/AbstractRestError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AbstractRestError'
        '404':
          description: Not Found
          content: {}
        '406':
          description: Not Acceptable
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorContainer'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GeneralError'
components:
  schemas:
    ProtocolVersion:
      type: object
      properties:
        code:
          type: string
          description: Protocol code
          example: AMS-I.D.
        version:
          type: string
          description: Version of Protocol
          example: 1.0.0
        effectiveAt:
          type: string
          description: Start date of the Protocol Version
          format: date-time
        expiresAt:
          type: string
          description: End date of the Protocol Version
          format: date-time
        issuing:
          type: boolean
          description: Issuing/Adorning flag
    ErrorContainer:
      type: object
      properties:
        submissionId:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
    RetirementBatchRetrieveByIdentifierRequest:
      type: object
      properties:
        onBehalfOfSrcAcctId:
          type: string
          description: If permitted, allows the caller to retrieve retirement batches on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.
        retirementBatchIdentifiers:
          uniqueItems: true
          type: array
          description: Identifiers associated with the retirement batch initiated by the system
          example: 3574500f-6df3-400e-abc9-e6aeb64f03c7
          items:
            type: string
    GeneralError:
      type: object
      properties:
        code:
          type: string
        ticket:
          type: string
        message:
          type: string
    ReferenceDatum:
      required:
      - code
      type: object
      properties:
        code:
          type: string
          description: The reference data's value.
        name:
          type: string
          description: The reference data's name
      description: A reference datum data object
    QuantifiedHolding:
      type: object
      properties:
        holdingIdentifier:
          type: string
          description: Holding Identifier, as returned by the holdings API
          example: '476099'
        quantity:
          type: number
          description: Quantity of holding to be used in this operation
          example: 3
      description: Quantified Holding
    ExtShadowedLedgerEntityIdentifierMappingDTO:
      type: object
      properties:
        holdingIdentifier:
          type: string
        shadowedLedgerEntityIdentifier:
          type: string
    RetirementBatchRetrieveByIdentifierResponse:
      type: object
      properties:
        retirementBatches:
          type: array
          description: Collection of retrieved retirement batches
          items:
            $ref: '#/components/schemas/RetirementBatch'
    ErrorItem:
      type: object
      properties:
        parameter:
          type: string
        correlationId:
          type: string
        path:
          type: string
        field:
          type: string
        code:
          type: string
        message:
          type: string
    Holding:
      type: object
      properties:
        identifier:
          type: string
          description: The holding's system-assigned identifier.
        resourceProgramAssignedIdentifier:
          type: string
          description: The associated resource's program assigned identifier.
          example: GHG1021
        holdingStatus:
          $ref: '#/components/schemas/ReferenceDatum'
        programPeriodBeginInclusive:
          type: string
          description: Start of program period (vintage) associated to the holding record's issuance.
          format: date-time
          example: '2022-01-01T00:00:00-05:00'
        programPeriodEndExclusive:
          type: string
          description: End of program period (vintage) associated to the holding record's issuance.
          format: date-time
          example: '2023-01-01T00:00:00-05:00'
        timeOfProductionBeginInclusive:
          type: string
          description: Start of production period associated to the holding's issuance
          format: date-time
          example: '2022-01-01T00:00:00-05:00'
        timeOfProductionEndExclusive:
          type: string
          description: End of production period associated to the holding's issuance
          format: date-time
          example: '2023-01-01T00:00:00-05:00'
        serialNumber:
          type: string
          description: The holding record's serial number.
          example: APXOPCAR-GOC-GHG1021-US-2022--46-5701-6700
        quantity:
          type: number
          description: The quantity of the holding record.
          example: 1000
        programVersions:
          type: array
          description: Associated programs and their versions.
          items:
            $ref: '#/components/schemas/ProgramVersion'
        protocolVersions:
          type: array
          description: Associated protocols and their versions.
          items:
            $ref: '#/components/schemas/ProtocolVersion'
        resourceInputTypeCodes:
          type: array
          description: A list of resource input types associated with the holding record's issuance.
          items:
            type: string
        resourceOutputTypeCodes:
          type: array
          description: A list of resource output types associated with the holding record's issuance.
          example: CARBON_REDUCTION
          items:
            type: string
        subaccountIdentifier:
          type: string
          description: The  system-assigned identifier for the subaccount.
          example: 5FF7ABAA-095D-11EF-B304-AA080FC10FFA
        subaccountName:
          type: string
          description: Subaccount name, as inputted by subaccount owner.
          example: My Linked Holdings
        subaccountNumber:
          type: string
          description: Subaccount Id displayed on the Optimal Outcomes platform's UI.
          example: '10033'
        programCertificationGroupCode:
          type: string
          description: The issuing program certification group of the holding record.
          example: NONAFOLU_GHG_MEASUREMENT_PROGRAM
        upn:
          type: string
          description: Xpansiv Connect Universal Project Number (UPN) for Resource associated to the holding's issuance, if assigned.
          example: 0999F5B4
        ein:
          type: string
          description: Xpansiv Connect Environmental Instrument Number (EIN), if assigned.
          example: 1246AFA3E2
        einDescription:
          type: string
          description: Xpansiv Connect Environmental Instrument Number (EIN) details, if assigned
          example: VCU-20120101-20121231-EDEM-3267-ZMB
        shadowedLedgerName:
          type: string
          description: If shadowing = true, the external ledger's name.
          example: Verra
        managingExternalPlatformName:
          type: string
          description: If the holding is held in an external subaccount, the name of the managing external platform associated with the external subaccount.
          example: Xpansiv Connect
        holdingGroupIdentifier:
          type: string
          description: Identifier for grouped holdings in transfer operations, if applicable.
        certificateType:
          $ref: '#/components/schemas/ReferenceDatum'
    RetirementRequest:
      type: object
      properties:
        liabilityHoldingIdentifier:
          type: string
          description: Identifier of the liability holding against which this retirement will be associated. Available liability holdings returned by GET /api/ledger/{ledgerIdentifier}/holding with asset = false.
          example: '476022'
        retirementReasonCode:
          type: string
          description: Retirement reason code to be associated with retirement
          example: COMPLIANCE_REQUIREMENTS
        holdingCriteria:
          type: array
          description: Criteria for holdings associated with the retirement batch.
          items:
            $ref: '#/components/schemas/QuantifiedHolding'
        correlationId:
          type: string
          description: Client system correlation Id – allows the caller to correlate between requests and responses
        subaccountIdentifier:
          type: string
          description: Target subaccount identifier – required if performing a retirement against a ledger that has subaccounts enabled.
        retirementParameters:
          $ref: '#/components/schemas/JsonNode'
    BulkRetirementRequest:
      type: object
      properties:
        onBehalfOfSrcAcctId:
          type: string
          description: If permitted, allows the caller to retire on behalf of another account holder, identifying that account holder by their system-assigned srcAcctId.
        requests:
          type: array
          description: retirement request
          items:
            $ref: '#/components/schemas/RetirementRequest'
        shadowedLedgerRetirementOptions:
          $ref: '#/components/schemas/ExtShadowedLedgerRetirementOptionsDTO'
    BulkRetirementResponse:
      type: object
      properties:
        responses:
          type: array
          description: responses for the bulk retirement request
          items:
            $ref: '#/components/schemas/RetirementResponse'
    ExternalPlatform:
      type: object
      properties:
        externalPlatformIdentifier:
          type: string
          description: The managing external platform's system-assigned identifier.
          format: uuid
          example: a5f8c9fa-001b-4444-b966-17b1a7871bbf
        code:
          type: string
          description: The External Platform's system code, if applicable.
        name:
          type: string
          description: The External Platform's name.
          example: Xpansiv Connect
        account:
          $ref: '#/components/schemas/Account'
        metadataConfig:
          type: string
          description: Metadata configuration (JSON) for additional fields required by the External Platform.
    RetirementBatch:
      type: object
      properties:
        identifier:
          type: string
          description: The Retirement Batch's system-assigned identifier.
        originalQuantity:
          type: number
          description: The total quantity of holdings included in the retirement batch.
        liabilityIssuanceIdentifier:
          type: string
          description: System-assigned identifier of the liability issuance associated with the retirement
        liabilityHoldingIdentifier:
          type: string
          description: System-assigned Identifier of the liability holding against which the retirement was performed.
          example: '476022'
        subaccount:
          $ref: '#/components/schemas/Subaccount'
        shadowedLedgerRetirementBatchIdentifier:
          type: string
          description: If shadowing = true, the corresponding Retirement Batch identifier from the external ledger.
        positions:
          type: array
          description: Collection of the retirement batch's associated holdings.
          items:
            $ref: '#/components/schemas/Holding'
        createdAt:
          type: string
          description: Created at timestamp for the Retirement Batch
          format: date-time
        lastUpdatedAt:
          type: string
          description: Last updated at timestamp for the Retirement Batch
          format: date-time
        retirementParameters:
          $ref: '#/components/schemas/JsonNode'
    NamedProtocolVersion:
      type: object
      properties:
        code:
          type: string
          description: Protocol code
          example: AMS-I.D.
        version:
          type: string
          description: Version of Protocol
          example: 1.0.0
        effectiveAt:
          type: string
          description: Start date of the Protocol Version
          format: date-time
        expiresAt:
          type: string
          description: End date of the Protocol Version
          format: date-time
        issuing:
          type: boolean
          description: Issuing/Adorning flag
        shortName:
          type: string
          description: Protocol's short name
          example: AMS-I.D.
    RetirementResponse:
      type: object
      properties:
        correlationId:
          type: string
          description: Matches the correlationId provided in the retirement request.
        retirementIdentifier:
          type: string
          description: Identifier associated with the retirement batch initiated by the system
          example: b24ad896-d899-478d-9513-7061375b637c
      description: Response for the balk retirement request
    AbstractRestError:
      type: object
      properties:
        code:
          type: string
        ticket:
          type: string
        message:
          type: string
    ExtShadowedLedgerRetirementOptionsDTO:
      type: object
      properties:
        suppressShadowedLedgerInteraction:
          type: boolean
        shadowedLedgerRetirementIdentifiersByHoldingIdentifier:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExtShadowedLedgerEntityIdentifierMappingDTO'
    ProgramVersion:
      type: object
      properties:
        code:
          type: string
          description: Program code
          example: GHG_MEASUREMENT_PROGRAM
        version:
          type: string
          description: Version of Program.
          example: 5.0.0
        shortName:
          type: string
          description: Program short name
          example: Carbon Measurement
        protocolVersions:
          type: array
          description: A list of Protocols associated with Program.
          items:
            $ref: '#/components/schemas/NamedProtocolVersion'
    JsonNode:
      type: object
    Account:
      type: object
      properties:
        srcAcctId:
          type: string
          description: The Account's unique system-assigned identifier used for programmatic (API) interactions.
          example: 4edse581-b97a-11ef-ea69-b61606fd520c
        identifier:
          type: string
          description: The Account's ID as displayed in the registry.
          example: '15184192'
        name:
          type: string
          description: The Account Operating Name on the registry.
          example: APXOPCAR Project Manager
      description: Account record
    Subaccount:
      required:
      - name
      type: object
      properties:
        identifier:
          type: string
          description: The sub-account's system-assigned identifier.
          readOnly: true
          example: 6192c733-bbd2-11ef-acad-b63fd176813a
        number:
          type: string
          description: Sub-account number
          readOnly: true
        account:
          $ref: '#/components/schemas/Account'
        name:
          type: string
          description: Sub-account name
          example: Allocated
        description:
          type: string
          description: Sub-account description
          example: Holdings to retired & retired
        _default:
          type: boolean
          description: If true, this is the default sub-account
          writeOnly: true
          example: true
        status:
          $ref: '#/components/schemas/ReferenceDatum'
        viableStatusTransitions:
          uniqueItems: true
          type: array
          description: Viable Sub-account transitions
          readOnly: true
          items:
            type: string
            description: Subaccount Transition
            enum:
            - edit
            - activate
            - deactivate
        managingExternalPlatform:
          $ref: '#/components/schemas/ExternalPlatform'
        managingExternalPlatformAccountId:
          type: string
          description: If this is a managed sub-account, the relevant account ID in the external platform for the account associated with this sub-account.
        managingExternalPlatformSubaccountMetadata:
          type: string
          description: Optional JSON payload of managing external platform subaccount metadata.
        default:
          type: boolean
          description: If true, this is the default sub-account
          readOnly: true
          example: true
      description: This class contains caller-visible set of sub-accounts for either the calling account or the account identified by onBehalfOfSrcAcctId