Lune Docs Logo
Log inContact us

By document

Create emission estimate(s) via receipt or invoice data.

HTTP POST to /v1/estimates/transaction-documents
Query parameters

Use this property to set the maximum allowed difference between the sum of line items and the total amount processed in the document.

Expressed as a decimal (e.g., 0.05 allows up to 5% difference). Set to 0 to require an exact match. Defaults 0.1 (10% difference).

Request body

Add unstructured JSON data representing the document to calculate its emission estimate.

An arbitrary dictionary (key-value pairs).

Lune attempts to extract valuable information from here.

Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

Provide the date and time that the document is processed, as an RFC 3339 timestamp.

If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

A name to reference this calculation.

Bundle selection percentages.

The sum of all percentages must equal 100.

If not specified, the preconfigured allocation ratios are going to be used.

If, for each selection, percentage is not provided, the selection is divided equally (best effort) between bundles. percentage must be provided for all or none of the bundles.

Maps a bundle id to an allocation ratio

The bundle's unique identifier

Selects to which precision to truncate quantities specific to carbon offsetting.

g
kg
t

An arbitrary dictionary (key-value pairs) to store application-specific information.

Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

Account-unique identifier provided by the client.

idempotency_key has two purposes:

  1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
  2. Clients can use idempotency_key to reconcile estimates with entities on their system.

Pattern: ^[0-9]+(\.[0-9]+)?$

Specify the monetary value in the currency defined by the currency_code property in the request. If no currency_code is provided, the currency will default to that of the associated account.

ISO 4217 3 character currency code.

Note: Lune supports most but not all currency codes.

AED
AFN
ALL
AMD
ANG

The merchant from whom the goods or services were purchased.

Specify individual dietary preferences to improve estimates for food-related purchases.

high_meat_eater
medium_meat_eater
low_meat_eater
fish_eater
vegetarian

Specify how geographical constraints (e.g., country_code, region) should be handled when matching emission factors, and if fallbacks should be used.

Defaults to never, meaning only emission factors that exactly match the specified geography are used. No fallbacks are applied.

never
always

Perform the estimate request on behalf of a client account.

The client account is identfied by the handle or idempotency_key.

The client account is created if it does not exist.

For existing client accounts, if both handle and idempotency_key are provided, they must be consistent with the existing client account. Other properties are ignored.

  • Sample request
  • Response

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Unit, t for tonne, kg for kilogram, g for gram, mg for milligram

    mg
    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    The emission calculation unique identifier

    Add unstructured JSON data representing the document to calculate its emission estimate.

    An arbitrary dictionary (key-value pairs).

    Lune attempts to extract valuable information from here.

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

    A name to reference this calculation.

    Bundle selection percentages.

    The sum of all percentages must equal 100.

    If not specified, the preconfigured allocation ratios are going to be used.

    If, for each selection, percentage is not provided, the selection is divided equally (best effort) between bundles. percentage must be provided for all or none of the bundles.

    Maps a bundle id to an allocation ratio

    The bundle's unique identifier

    Selects to which precision to truncate quantities specific to carbon offsetting.

    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Specify the monetary value in the currency defined by the currency_code property in the request. If no currency_code is provided, the currency will default to that of the associated account.

    ISO 4217 3 character currency code.

    Note: Lune supports most but not all currency codes.

    AED
    AFN
    ALL
    AMD
    ANG

    The merchant from whom the goods or services were purchased.

    Specify individual dietary preferences to improve estimates for food-related purchases.

    high_meat_eater
    medium_meat_eater
    low_meat_eater
    fish_eater
    vegetarian

    Specify how geographical constraints (e.g., country_code, region) should be handled when matching emission factors, and if fallbacks should be used.

    Defaults to never, meaning only emission factors that exactly match the specified geography are used. No fallbacks are applied.

    never
    always

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

  • Sample response
  • Errors
    This API operation can return the following errors:
    HTTP status codeError code
    400
    api_version_invalid
    400
    bundle_selection_ratios_invalid
    400
    bundle_selection_bundle_invalid
    400
    order_value_invalid
    400
    bundle_id_invalid
    400
    id_invalid
    400
    distance_invalid
    400
    test_account_name_update_disallowed
    400
    bundle_selection_ratios_invalid_format
    400
    address_not_found

    Asynchronously create emission estimate(s) via receipt or invoice data.

    HTTP POST to /v1/estimates/transaction-documents/asyncThis endpoint processes requests asynchronously. Once complete, the results are sent to your configured webhook.It's recommended to include a correlation_id to help reconcile requests with their corresponding responses.
    Query parameters

    Use this property to set the maximum allowed difference between the sum of line items and the total amount processed in the document.

    Expressed as a decimal (e.g., 0.05 allows up to 5% difference). Set to 0 to require an exact match. Defaults 0.1 (10% difference).

    Request body

    Add unstructured JSON data representing the document to calculate its emission estimate.

    An arbitrary dictionary (key-value pairs).

    Lune attempts to extract valuable information from here.

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

    A name to reference this calculation.

    Bundle selection percentages.

    The sum of all percentages must equal 100.

    If not specified, the preconfigured allocation ratios are going to be used.

    If, for each selection, percentage is not provided, the selection is divided equally (best effort) between bundles. percentage must be provided for all or none of the bundles.

    Maps a bundle id to an allocation ratio

    The bundle's unique identifier

    Selects to which precision to truncate quantities specific to carbon offsetting.

    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Specify the monetary value in the currency defined by the currency_code property in the request. If no currency_code is provided, the currency will default to that of the associated account.

    ISO 4217 3 character currency code.

    Note: Lune supports most but not all currency codes.

    AED
    AFN
    ALL
    AMD
    ANG

    The merchant from whom the goods or services were purchased.

    Specify individual dietary preferences to improve estimates for food-related purchases.

    high_meat_eater
    medium_meat_eater
    low_meat_eater
    fish_eater
    vegetarian

    Specify how geographical constraints (e.g., country_code, region) should be handled when matching emission factors, and if fallbacks should be used.

    Defaults to never, meaning only emission factors that exactly match the specified geography are used. No fallbacks are applied.

    never
    always

    Provide an ID to reconcile requests and responses. This value is returned in webhook events.

  • Sample request
  • Errors
    This API operation can return the following errors:
    HTTP status codeError code
    204
    400
    api_version_invalid
    400
    bundle_selection_ratios_invalid
    400
    bundle_selection_bundle_invalid
    400
    order_value_invalid
    400
    bundle_id_invalid
    400
    id_invalid
    400
    distance_invalid
    400
    test_account_name_update_disallowed
    400
    bundle_selection_ratios_invalid_format

    Get a transaction document emission estimate

    HTTP GET to /v1/estimates/transaction-documents/{id}
    Query parameters

    The estimate's unique identifier

  • Sample request
  • Response

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Unit, t for tonne, kg for kilogram, g for gram, mg for milligram

    mg
    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    The emission calculation unique identifier

    Add unstructured JSON data representing the document to calculate its emission estimate.

    An arbitrary dictionary (key-value pairs).

    Lune attempts to extract valuable information from here.

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

    A name to reference this calculation.

    Bundle selection percentages.

    The sum of all percentages must equal 100.

    If not specified, the preconfigured allocation ratios are going to be used.

    If, for each selection, percentage is not provided, the selection is divided equally (best effort) between bundles. percentage must be provided for all or none of the bundles.

    Maps a bundle id to an allocation ratio

    The bundle's unique identifier

    Selects to which precision to truncate quantities specific to carbon offsetting.

    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Specify the monetary value in the currency defined by the currency_code property in the request. If no currency_code is provided, the currency will default to that of the associated account.

    ISO 4217 3 character currency code.

    Note: Lune supports most but not all currency codes.

    AED
    AFN
    ALL
    AMD
    ANG

    The merchant from whom the goods or services were purchased.

    Specify individual dietary preferences to improve estimates for food-related purchases.

    high_meat_eater
    medium_meat_eater
    low_meat_eater
    fish_eater
    vegetarian

    Specify how geographical constraints (e.g., country_code, region) should be handled when matching emission factors, and if fallbacks should be used.

    Defaults to never, meaning only emission factors that exactly match the specified geography are used. No fallbacks are applied.

    never
    always

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

  • Sample response
  • Errors
    This API operation can return the following errors:
    HTTP status codeError code
    401
    404
    429
    503
    service_unavailable

    Update a transaction document emission estimate's annotations

    HTTP PATCH to /v1/estimates/transaction-documents/{id}/annotationsThis method allows updating a selection of estimate annotations without going through a full estimate update (with all the necessary inputs).Only properties included in the input data are updated.
    Query parameters

    The estimate's unique identifier

    Request body

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

  • Sample request
  • Response

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Unit, t for tonne, kg for kilogram, g for gram, mg for milligram

    mg
    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    The emission calculation unique identifier

    Add unstructured JSON data representing the document to calculate its emission estimate.

    An arbitrary dictionary (key-value pairs).

    Lune attempts to extract valuable information from here.

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

    A name to reference this calculation.

    Bundle selection percentages.

    The sum of all percentages must equal 100.

    If not specified, the preconfigured allocation ratios are going to be used.

    If, for each selection, percentage is not provided, the selection is divided equally (best effort) between bundles. percentage must be provided for all or none of the bundles.

    Maps a bundle id to an allocation ratio

    The bundle's unique identifier

    Selects to which precision to truncate quantities specific to carbon offsetting.

    g
    kg
    t

    An arbitrary dictionary (key-value pairs) to store application-specific information.

    Lune doesn't use this information for order processing. Its purpose is for the API clients to be able to attach arbitrary information (to an order for example) and then retrieve it.

    Account-unique identifier provided by the client.

    idempotency_key has two purposes:

    1. Clients can safely retry estimate requests without accidentally performing the same operation multiple times.
    2. Clients can use idempotency_key to reconcile estimates with entities on their system.

    Pattern: ^[0-9]+(\.[0-9]+)?$

    Specify the monetary value in the currency defined by the currency_code property in the request. If no currency_code is provided, the currency will default to that of the associated account.

    ISO 4217 3 character currency code.

    Note: Lune supports most but not all currency codes.

    AED
    AFN
    ALL
    AMD
    ANG

    The merchant from whom the goods or services were purchased.

    Specify individual dietary preferences to improve estimates for food-related purchases.

    high_meat_eater
    medium_meat_eater
    low_meat_eater
    fish_eater
    vegetarian

    Specify how geographical constraints (e.g., country_code, region) should be handled when matching emission factors, and if fallbacks should be used.

    Defaults to never, meaning only emission factors that exactly match the specified geography are used. No fallbacks are applied.

    never
    always

    Use to distinguish confirmed transaction documents from quotes or forecasts. Defaults to false when omitted. Can be updated at any point.

    When true, the estimate represents an actual transaction document for purchased goods and services and will be included in Lune analytics.

    Provide the date and time that the document is processed, as an RFC 3339 timestamp.

    If omitted, the property defaults to the time of request. Used only for analytics, with no impact on the actual estimate calculation.

  • Sample response
  • Errors
    This API operation can return the following errors:
    HTTP status codeError code
    400
    api_version_invalid
    400
    bundle_selection_ratios_invalid
    400
    bundle_selection_bundle_invalid
    400
    order_value_invalid
    400
    bundle_id_invalid
    400
    id_invalid
    400
    distance_invalid
    400
    test_account_name_update_disallowed
    400
    bundle_selection_ratios_invalid_format
    400
    address_not_found