Origin Energy Business Import API

APIs for importing businesses with business contracts

Operations 1

POST /v1/data-import/business/ Import business to Kraken #

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/origin-energy-business-import-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 email required.

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

OpenAPI Specification

origin-energy-business-import-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kraken Business Import API
  version: v1
  description: APIs for importing businesses with business contracts
servers:
- url: https://api.origin-kraken.energy/v1
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: business_import
  x-title: Business Import
  description: APIs for importing businesses with business contracts
  x-documentation-order: 2
paths:
  /v1/data-import/business/:
    post:
      operationId: V1 Create Business
      description: Use this endpoint to import business to Kraken.
      summary: Import business to Kraken
      tags:
      - business_import
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessImportProcess'
        required: true
      security:
      - DataImportViewerAPIKeyAuthentication: []
      - DRFKrakenTokenAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessImportProcessCreation'
              examples:
                SuccessfulBusinessImport:
                  value:
                    kraken_business_id: Business ID
                  summary: Successful business import
          description: The business has been successfully imported in Kraken.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DRFError'
          description: '

            If there are validation errors, they will be detailed in the body

            of the response. To resolve these errors, refer to the field definitions

            and validation rules.


            '
      x-doc-alerts: []
components:
  schemas:
    ProductRateOverrideItemByRateBand:
      type: object
      properties:
        price_per_unit:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,5})?$
          description: <p>The price per unit of the item.</p>
        product_code:
          type: string
          description: <p>The product code of the item.</p>
          x-validators:
          - name: Validate product code exists
            description: Validate that the product code exists in Kraken.
            possible_errors:
            - product_code_does_not_exist
        rate_band:
          type: string
          description: <p>The override rate of the item.</p>
      required:
      - price_per_unit
      - product_code
      - rate_band
      x-validators:
      - name: Validate that the rate band is valid for the product code
        description: Validate that the rate band provided matches the rate band for the product's rates with the provided product code.
        possible_errors:
        - rate_band_not_found_for_product
    BespokeRateSchedule:
      type: object
      properties:
        identifier:
          type:
          - string
          - 'null'
          description: <p>A unique identifier for the bespoke rate schedule.</p>
        items:
          type: array
          items:
            $ref: '#/components/schemas/BespokeRateItem'
          description: <p>A list of bespoke rates.</p>
          minItems: 1
          x-validators:
          - name: Validate bespoke rate items are unique
            description: Validate that no two bespoke rate items in a schedule share the same rate specification code, rate specification type, and variant profile.
            possible_errors:
            - duplicate_bespoke_rate_items
        product_code:
          type: string
          description: <p>A product code for the schedule of bespoke rate.</p>
          x-validators:
          - name: Validate product code exists
            description: Validate that the product code exists in Kraken.
            possible_errors:
            - product_code_does_not_exist
        supply_point_identifier:
          type:
          - string
          - 'null'
          description: <p>The external identifier of the supply point that this bespoke rate schedule targets.</p>
          minLength: 1
        valid_from:
          type: string
          format: date-time
          description: <p>The date the schedule of bespoke rates is valid from (inclusive).</p>
        valid_to:
          type:
          - string
          - 'null'
          format: date-time
          description: <p>The date the schedule of bespoke rates is valid to (exclusive).</p>
      required:
      - items
      - product_code
      - valid_from
      x-validators:
      - name: Validate <code>⁨valid_to⁩</code> not before or equal to <code>⁨valid_from⁩</code>
        description: Validates that <code>⁨valid_to⁩</code>, if given, is strictly later than ⁨valid_from⁩.
        possible_errors:
        - start_date_same_as_end_date
      - name: Validate each item represents a possible rate for the product
        description: Validate each item's rate specification, characteristic values, and scheme labels represent a rate defned on the product.
        possible_errors:
        - characteristic_code_not_found
        - invalid_characteristic_value
        - invalid_profile_variant_for_specification
        - product_specification_not_found_for_product
        - rate_specification_not_found_for_product
        - shared_rate_not_found
        - shared_rate_not_found_for_product
      - name: Validate that all required bespoke rates are present and no non-overridable rates are supplied
        description: Validates that bespoke rate schedules include all rate specifications marked as must-be-overridden and mandatory, and do not include any rate specifications marked as cannot-be-overridden.
        possible_errors:
        - bespoke_rate_cannot_be_overridden
        - missing_required_bespoke_rate
    AusPropertyRichAddress:
      type: object
      properties:
        administrative_area:
          enum:
          - ACT
          - NSW
          - NT
          - QLD
          - SA
          - TAS
          - VIC
          - WA
          type: string
          x-spec-enum-id: 0083aa6c13849f88
          description: <p>Australian state.</p>
          x-enum-descriptions:
            ACT: ACT
            NSW: NSW
            NT: NT
            QLD: QLD
            SA: SA
            TAS: TAS
            VIC: VIC
            WA: WA
        country:
          type: string
          description: <p>The ISO 3166-1-alpha-2 code of the country that this address belongs to, for example AU (Australia) or GB (Great Britain).</p>
          maxLength: 2
        delivery_point_identifier:
          type: string
          description: <p>The unique country specific identifier for an address. For example the UPRN in the UK or G-NAF ID in Australia.</p>
          maxLength: 11
          x-validators:
          - name: Validate delivery point identifier
            description: Validate that the delivery point identifier contains only capital letters and numbers.
            possible_errors:
            - invalid_delivery_point_identifier
        dependent_locality:
          type: string
          default: ''
          description: <p>Dependent localities, neighbourhoods or boroughs. These are sometimes included in an address when the delivery point is outside the boundary of the main postal town that serves it.</p>
          maxLength: 512
        locality:
          type: string
          description: <p>Australian suburb or town.</p>
          maxLength: 46
        name:
          type: string
          default: ''
          description: <p>The recipient's name.</p>
          deprecated: true
        organization:
          type: string
          default: ''
          description: <p>The company or organization to which the address belongs.</p>
          deprecated: true
        postal_code:
          type: string
          description: <p>Australian postal code.</p>
          maxLength: 4
          x-validators:
          - name: Validate and normalize postcode
            description: Validate the postal code and normalize it to a standard format.
            possible_errors:
            - invalid_postcode
        sorting_code:
          type: string
          default: ''
          description: <p>This is a non-geographic code used for recipients of large quantities of post, such as companies or government departments. An example is the French CEDEX code.</p>
          maxLength: 512
        street_address:
          type: string
          default: ''
          description: <p>Free text field for the address. Either this field or the <code>structured_address</code> field should be provided, not both.</p>
        structured_street_address:
          allOf:
          - $ref: '#/components/schemas/AusStructuredStreetAddress'
          description: <p>Structured address object. Fields for this object are territory dependent. Please speak to the tech team about uses of this field. Either this field or the <code>street_address</code> should be provided, not both.</p>
      required:
      - administrative_area
      - country
      - locality
      - postal_code
      - structured_street_address
      x-validators:
      - name: Validate and normalize postcode
        description: Validate the postal code and normalize it to a standard format.
        possible_errors:
        - invalid_postcode
      - name: Validate address
        description: Validate that the address is in the correct format.
        possible_errors:
        - invalid_address
    ContractSalesRecord:
      type: object
      properties:
        affiliate_organisation_name:
          type: string
          description: <p>The affiliate organisation name associated with the contract.</p>
          maxLength: 128
          x-validators:
          - name: Validate affiliate organisation exists
            description: Validate that an affiliate organisation exists in Kraken for the given name.
            possible_errors:
            - affiliate_organisation_does_not_exist
        sales_channel:
          enum:
          - DIRECT
          - PRICE_COMPARISON
          - TELESALES
          - DIGI_TELESALES
          - EVENTS
          - FIELD_SALES
          - AGGREGATOR
          - PARTNERSHIPS
          - NEW_TENANT
          - MOVE_IN
          - WORKPLACE_POP_UP
          - BROKER
          - PARENT_POWER
          - PEOPLE_POWER
          - GIFT_OF_KIT
          - HIGH_REFERRER
          - SUPPLIER_OF_LAST_RESORT
          - ACQUISITION
          - WORKS_WITH_OCTOPUS
          - LANDLORD
          - DEBT_COLLECTION_AGENCY
          type: string
          x-spec-enum-id: f4ccf4dcda60c174
          description: <p>The sales channel associated with the contract</p>
          x-enum-descriptions:
            DIRECT: Direct
            PRICE_COMPARISON: Price comparison
            TELESALES: Telesales
            DIGI_TELESALES: Digital telesales
            EVENTS: Events
            FIELD_SALES: Field sales
            AGGREGATOR: Aggregator
            PARTNERSHIPS: Partnerships
            NEW_TENANT: New tenant
            MOVE_IN: Move in
            WORKPLACE_POP_UP: Workplace pop-up
            BROKER: Broker
            PARENT_POWER: Parent power
            PEOPLE_POWER: People power
            GIFT_OF_KIT: Gift of kit
            HIGH_REFERRER: High referrer
            SUPPLIER_OF_LAST_RESORT: Supplier of last resort
            ACQUISITION: Acquisition
            WORKS_WITH_OCTOPUS: Works with octopus
            LANDLORD: Landlord
            DEBT_COLLECTION_AGENCY: Debt collection agency
      x-validators:
      - name: Sales channel matches affiliate organisation
        description: Validates that when an affiliate_organisation_name is provided, the sales_channel is in the set of channels configured for that organisation.
        possible_errors:
        - sales_channel_does_not_match_affiliate_organisation
    PartnerCommissionConfig:
      type: object
      properties:
        apply_uplift:
          type: boolean
          default: false
          description: <p>Whether to apply a product uplift for this partner commission. Defaults to <code>false</code>.</p>
        override_trailing_percentage:
          type:
          - string
          - 'null'
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
          description: <p>Optional override for the trailing commission percentage. Overrides the default percentage on the partner commission.</p>
        override_unit_amount:
          type:
          - string
          - 'null'
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,8})?$
          description: <p>Optional override for the unit-based commission rate. Overrides the default unit amount on the partner commission.</p>
        partner_commission_number:
          type: string
          description: <p>The unique identifier of the partner commission (e.g. <code>OPC-XXXXXXXX</code> or <code>TPC-XXXXXXXX</code>).</p>
          maxLength: 20
      required:
      - partner_commission_number
    VariantProfile:
      type: object
      properties:
        characteristic_values:
          type: object
          description: <p>A dictionary of characteristic values which the rate applies to.</p>
          x-validators:
          - name: Validate provided dictionary content types
            description: Validates that provided dictionary contents are of the specified key type and value type.
            possible_errors: []
        scheme_labels:
          type: object
          description: <p>A dictionary of scheme labels which the rate applies to.</p>
          x-validators:
          - name: Validate provided dictionary content types
            description: Validates that provided dictionary contents are of the specified key type and value type.
            possible_errors: []
          - name: Validate that scheme labels have the correct format
            description: Validate that scheme labels have the the following format 'scheme-type:identifier' where 'scheme-type' is one of 'time_of_use', 'register'.
            possible_errors:
            - invalid_scheme_label_format
    CorrectivePeriodMarketConfig:
      type: object
      properties:
        length:
          type: integer
          minimum: 1
          description: <p>Length of the corrective period.</p>
        length_unit:
          enum:
          - DAY
          - WEEK
          - MONTH
          - YEAR
          type: string
          x-spec-enum-id: aaeac18e78076e3b
          description: <p>Unit of time for the corrective period length (DAY, WEEK, MONTH, YEAR).</p>
          x-enum-descriptions:
            DAY: DAY
            WEEK: WEEK
            MONTH: MONTH
            YEAR: YEAR
        market_name:
          enum:
          - AUS_EMBEDDED_GAS
          - AUS_EMBEDDED_UNMETERED_ELECTRICITY
          - AUS_SOLAR_PPA
          - AUS_EMBEDDED_UNMETERED_GAS
          - AUS_EMBEDDED_ELECTRICITY
          - SIMPLE_SERVICES
          - AUS_ELECTRICITY
          - AUS_EMBEDDED_WATER
          - AUS_GAS
          type: string
          x-spec-enum-id: 2efb600dcd89ea97
          description: <p>Market name (e.g., ELECTRICITY, GAS) the corrective period applies to.</p>
          x-enum-descriptions:
            AUS_EMBEDDED_GAS: AUS_EMBEDDED_GAS
            AUS_EMBEDDED_UNMETERED_ELECTRICITY: AUS_EMBEDDED_UNMETERED_ELECTRICITY
            AUS_SOLAR_PPA: AUS_SOLAR_PPA
            AUS_EMBEDDED_UNMETERED_GAS: AUS_EMBEDDED_UNMETERED_GAS
            AUS_EMBEDDED_ELECTRICITY: AUS_EMBEDDED_ELECTRICITY
            SIMPLE_SERVICES: SIMPLE_SERVICES
            AUS_ELECTRICITY: AUS_ELECTRICITY
            AUS_EMBEDDED_WATER: AUS_EMBEDDED_WATER
            AUS_GAS: AUS_GAS
        supply_point_ids:
          type:
          - array
          - 'null'
          items:
            type: integer
            minimum: 1
          description: <p>Supply Point IDs the corrective period applies to.</p>
          minItems: 1
      required:
      - length
      - length_unit
      - market_name
    AusEEPAExportContractedVolumePeriod:
      type: object
      properties:
        supply_point_external_identifiers:
          type:
          - array
          - 'null'
          items:
            type: string
          description: <p>The external identifiers (NMIs) of the supply points this period applies to. Leave null to apply to all supply points not covered by a more specific period; when provided the list must not be empty.</p>
          minItems: 1
        unit:
          type: string
          description: <p>The unit for the contracted export volume (e.g. kWh).</p>
        valid_from_date:
          type: string
          format: date
          description: <p>The date the period is valid from (inclusive).</p>
        valid_to_date:
          type: string
          format: date
          description: <p>The date the period is valid to (exclusive; the period ends before this date).</p>
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,7}(?:\.\d{0,4})?$
          description: <p>The contracted export volume cap for the period.</p>
      required:
      - supply_point_external_identifiers
      - unit
      - valid_from_date
      - valid_to_date
      - value
      x-validators:
      - name: Convert supply point external identifiers to IDs
        description: Convert each supply point external identifier (NMI) to the internal supply point ID by looking up the supply point in the database. A null value is left unchanged and applies the period to all supply points.
        possible_errors:
        - supply_point_not_found
      - name: Validate <code>⁨valid_to⁩</code> not before <code>⁨valid_from⁩</code>
        description: Validates that <code>⁨valid_to⁩</code>, if given, is on or later than <code>⁨valid_from⁩</code>.
        possible_errors:
        - start_date_later_than_end_date
    ProductRateOverrideSchedule:
      type: object
      properties:
        effective_from:
          type: string
          format: date-time
          description: '<p>The date on which the schedule goes into effect. This is an inclusive date. Example: If the <code>effective_from</code> is October 1, 2024, then the schedule is valid on October 1, 2024 and following dates.</p>'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ProductRateOverrideItemByRateBand'
          description: <p>The items specified by rate band affected by the override during this schedule.</p>
        variant_items:
          type: array
          items:
            $ref: '#/components/schemas/ProductRateOverrideItemByVariantProfile'
          description: <p>The items specified by characteristic values affected by the override during this schedule.</p>
      required:
      - effective_from
      x-validators:
      - name: Validate that rate override schedule item must include rate overrides.
        description: Validate that rate override schedule item must include at least 'items' or 'characteristic_items' values.
        possible_errors:
        - rate_override_items_required
    CardAndBankAccountPaymentInstruction:
      type: object
      properties:
        bank_account:
          allOf:
          - $ref: '#/components/schemas/PaymentInstructionBankAccount'
          description: <p>Bank account payment instruction details.</p>
        card:
          allOf:
          - $ref: '#/components/schemas/PaymentInstructionCard'
          description: <p>Card payment instruction details.</p>
        customer_reference:
          type: string
          description: <p>The customer reference of the payment instruction.</p><p>Although not required for payment instructions to take payments, if provided it keeps Kraken's data in sync with the customer's account in the payment vendor's systems.</p>
          maxLength: 512
        instruction_identifier:
          type: string
          description: <p>Unique identifier for the payment instruction. Used for cross referencing the payment instruction within other parts of the payload.</p>
        ledger_code:
          type: string
          description: <p>The code of the relevant Kraken ledger type for the payment instruction. This code must exist in Kraken.</p>
          x-validators:
          - name: Validate ledger code
            description: Validates that the ledger code provided in the payload matches an available ledger type in Kraken.
            possible_errors:
            - ledger_code_does_not_exist
        reference:
          type: string
          description: <p>The reference of the mandate as known by the vendor.</p>
          maxLength: 512
        type:
          enum:
          - BPAY
          - CARD
          - CUSTOM
          - DIRECT_DEBIT
          - GMO_REFUND
          - PAYMENT_SLIP
          type: string
          x-spec-enum-id: 601d0b035869d4dd
          description: <p>The payment type of the payment instruction.</p>
          x-enum-descriptions:
            BPAY: BPAY
            CARD: Card
            CUSTOM: Custom
            DIRECT_DEBIT: Direct Debit
            GMO_REFUND: GMO Refund
            PAYMENT_SLIP: Payment slip
        use_for_scheduled_payments:
          type: boolean
          description: <p>Whether this payment instruction should be used for scheduled payments on a given ledger. If true, this instruction will be set as the payment method for the account's payment schedule.</p>
        valid_from:
          type:
          - string
          - 'null'
          format: date
          description: <p>The date from which the payment instruction is valid.</p>
        vendor:
          enum:
          - WESTPAC
          type: string
          x-spec-enum-id: 19baa89b6ef9d00c
          description: <p>The vendor for the payment instruction.</p>
          x-enum-descriptions:
            WESTPAC: Westpac
      required:
      - reference
      - type
      - vendor
      x-validators:
      - name: null
        description: null
        possible_errors:
        - incomplete_payments_not_enabled
      - name: Validate card details are provided for card payment instruction
        description: Validate that if the payment instruction is of type CARD then card payment details are provided in the payload. This may not be enforced if client is using cashflow instructions as card details are obtained from the vendor in this case.
        possible_errors:
        - card_details_not_provided_for_card_payment_instruction
    TrancheTargetResidualFeeMarket:
      type: object
      properties:
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,8})?$
          description: <p>Residual fee amount</p>
        market_name:
          type: string
          description: <p>The market the residual fee applies to</p>
        unit:
          type: string
          description: <p>Residual fee unit</p>
      required:
      - amount
      - market_name
      - unit
    BusinessImportProcess:
      type: object
      properties:
        business:
          allOf:
          - $ref: '#/components/schemas/BusinessWithContracts'
          description: <p>The business's information</p>
        external_business_identifier:
          type: string
          description: <p>The unique identifier of a business in the external system. This id is used to link an imported business in Kraken to the external system</p>
          maxLength: 128
        import_supplier_code:
          enum:
          - ORIGIN_SOLARFLEX_INACTIVE
          - ORIGIN
          - WIN_CONNECT_PARENT
          - ORIGIN_CNI
          - ORIGIN_BUSINESS
          - WIN_CONNECT
          - ORIGIN_SOLARFLEX
          - ORIGIN_BUSINESS_NO_CONTRACT
          type: string
          x-spec-enum-id: 9572ea198e3a9787
          description: The code of an existing ImportSupplier in the database.
          x-enum-descriptions:
            ORIGIN_SOLARFLEX_INACTIVE: Origin SolarFlex Inactive
            ORIGIN: Origin
            WIN_CONNECT_PARENT: Win Connect Parent
            ORIGIN_CNI: Origin CNI
            ORIGIN_BUSINESS: Origin Zero Business Import Supplier
            WIN_CONNECT: WinConnect
            ORIGIN_SOLARFLEX: Origin SolarFlex
            ORIGIN_BUSINESS_NO_CONTRACT: Origin Business - No Contracts e.g. trustee
      required:
      - business
      - external_business_identifier
      - import_supplier_code
    PromotionAssignmentSchedule:
      type: object
      properties:
        discount_targets:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/PromotionAssignmentTarget'
          description: <p>Mapping of discount code to a list of targets the discount applies to.</p>
        params:
          type: object
          description: '<p>Optional parameters for the promotion assignment schedule. Supports the following keys: <code>promotion_start_date</code> — an ISO 8601 datetime string (e.g. <code>2024-01-15T00:00:00+00:00</code>) that overrides the date used when calculating promotion eligibility (e.g. months since sign-up). If omitted, the date is derived from the customer''s agreement.</p>'
        promotion_code:
          type: string
          description: <p>The promotion code to apply.</p>
      required:
      - discount_targets
      - promotion_code
      x-validators:
      - name: Promotion assignment discount targets are valid
        description: Validates that the promotion exists, discounts are defined in the promotion, target types match the discount target type, and target identifiers are valid.
        possible_errors:
        - discount_not_in_promotion
        - invalid_input_data
        - promotion_not_registered
        - rate_source_provider_not_registered
        - source_data_not_supported_for_fixed_rate
        - source_data_reference_mismatch
        - target_identifier_invalid
        - target_type_mismatch
        - target_type_not_registered
      - name: Promotion assignment params are valid
        description: Validates that the params field contains only valid values. If promotion_start_date is provided, it must be a valid ISO 8601 datetime string.
        possible_errors:
        - invalid_promotion_start_date
    PartnerCommission:
      type: object
      properties:
        term_type:
          type: string
          description: <p>The type of the contract term.</p>
        configurations:
          type: array
          items:
            $ref: '#/components/schemas/PartnerCommissionConfig'
          description: <p>List of partner commission configurations to associate with this contract term.</p>
          minItems: 1
          x-validators:
          - name: Validate partner commission numbers exist
            description: Validate that all partner commission numbers in the term configurations exist in Kraken.
            possible_errors:
            - not_found
        is_variable:
          type: boolean
          default: true
          description: <p>Whether the contract term is variable in Kraken or not. If not, it must be amended by a new contract.</p>
      required:
      - configurations
      - term_type
    Address:
      type: object
      properties:
        administrative_area:
          type: string
          default: ''
          description: <p>The top-level administrative subdivision. For example a US state, Australian state/territory, Italian region, UK constituent nation or Japanese prefecture.</p>
          maxLength: 512
        country:
          type: string
          description: <p>The ISO 3166-1-alpha-2 code of the country that this address belongs to, for example AU (Australia) or GB (Great Britain).</p>
          maxLength: 2
        delivery_point_identifier:
          type: string
          description: <p>The unique country specific identifier for an address. For example the UPRN in the UK or G-NAF ID in Australia.</p>
          maxLength: 11
          x-validators:
          - name: Validate delivery point identifier
            description: Validate that the delivery point identifier contains only capital letters and numbers.
            possible_errors:
            - invalid_delivery_point_identifier
        dependent_locality:
          type: string
          default: ''
          description: <p>Dependent localities, neighbourhoods or boroughs. These are sometimes included in an address when the delivery point is outside the boundary of the main postal town that serves it.</p>
          maxLength: 512
        locality:
          type: string
          default: ''
          description: <p>The city/town portion of an address. For example a US city, Australian suburb/town, Italian comune or UK postal town.</p>
          maxLength: 512
        name:
          type: string
          default: ''
          description: <p>The recipient's name.</p>
          deprecated: true
        organization:
          type: string
          default: ''
          description: <p>The company or organization to which the address belongs.</p>
          deprecated: true
        postal_code:
          type: string
          default: ''
          description: <p>The code assigned to a geographical area representing a group of addresses. For example a US ZIP code, Australian postcode, Italian CAP code or UK postcode.</p>
          maxLength: 512
        sorting_code:
          type: string
          default: ''
          description: <p>This is a non-geographic code used for recipients of large quantities of post, such as companies or government departments. An example is the French CEDEX code.</p>
          maxLength: 512
        street_address:
          type: string
          default: ''
          description: <p>Free text field for the address. Either this field or the <code>structured_address</code> field should be provided, not both.</p>
        structured_street_address:
          type:
          - object
          - 'null'
          description: <p>Structured address object. Fields for this object are territory dependent. Please speak to the tech team about uses of this field. Either this field or the <code>street_address</code> should be provided, not both.</p>
      required:
      - country
      x-validators:
      - name: Validate and normalize postcode
        description: Validate the postal code and normalize it to a standard format.
        possible_errors:
        - invalid_postcode
      - name: Validate address
        description: Validate that the address is in the correct format.
        possible_errors:
        - invalid_address
    PaymentInstructionCard:
      type: object
      properties:
        card_payment_network:
          enum:
          - MASTERCARD
          - VISA
          - AMEX
          - JCB
          - DISCOVER
          - DANKORT
          type: string
          x-spec-enum-id: c8ed471949510265
          description: <p>The card payment network for the payment instruction.</p>
          x-enum-descriptions:
            MASTERCARD: Mastercard
            VISA: Visa
            AMEX: American Express
            JCB: JCB
            DISCOVER: Discover
            DANKORT: Dankort
        card_type:
          enum:
          - CREDIT
          - DEBIT
          - PREPAID
          type: string
          x-spec-enum-id: 90bbc4bed8c0c0e8
          description: <p>The card type for the payment instruction.</p>
          x-enum-descriptions:
            CREDIT: Credit
            DEBIT: Debit
            PREPAID: Prepaid
        expiry_month:
          type: integer
          maximum: 12
          minimum: 1
          description: <p>The expiry month of the card in MM format.</p>
        expiry_year:
          type: integer
          minimum: 1000
          description: <p>The expiry year of the card in YYYY format.</p>
        last_digits:
          type: string
          description: <p>The last 3 or 4 digits of the card number.</p>
          pattern: ^[0-9]{3,4}$
      required:
      - card_payment_network
      - card_type
    Terms:
      oneOf:
      - $ref: '#/components/schemas/BespokeRateConfiguration'
      - $ref: '#/components/schemas/BillDueDate'
      - $ref: '#/components/schemas/BillingDocumentIssuanceFrequencyTerm'
      - $ref: '#/components/schemas/CharacteristicOverrideConfiguration'
      - $ref: '#/components/schemas/CollateralRequired'
      - $ref: '#/components/schemas/ContractMetaData'
      - $ref: '#/components/schemas/ContractedVolumeConfiguration'
      - $ref: '#/components/schemas/CorrectivePeriod'
      - $ref: '#/components/schemas/

# --- truncated at 32 KB (119 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/origin-energy/refs/heads/main/openapi/origin-energy-business-import-api-openapi.yml