Credit

Create or update a credit

Changed on

Create a new credit or update an existing one through a single endpoint.

Omit id to create a new credit; include the id of an existing credit to update it. Updates are sparse: only the fields you send are changed, and any field you omit keeps its current value. On create, the credit_number and original_amount are assigned automatically — original_amount is frozen to the create-time amount and never changes afterward.

Credits created through the API are always manually-created (USER source) credits — the same as a credit you would add by hand in the Distru UI. Credits generated automatically (from a return, an invoice overpayment, or QuickBooks Online) cannot be created here, and only owner_id, brand_id, external_note and internal_note can be updated on them — their amount, customer and QuickBooks Online item cannot be set through the API. On a credit memo created in QuickBooks Online (QB_CREDIT_MEMO source) owner_id and brand_id are the only updatable fields: its notes live in QuickBooks Online and are re-imported from there on every sync. Sending any other field with its current value is accepted.

Constraints: on update the customer (company_id) cannot be changed. amount must be greater than 0 and, on update, cannot be set below the amount already applied to invoices by this credit (its used amount). owner_id must be an active user of your company. Once a credit has an owner it can be reassigned but not removed.

Credits do not touch inventory or state compliance (Metrc / BioTrack). They do interact with QuickBooks Online: if your account syncs credits with QuickBooks Online, updating an existing credit first pulls the latest credit and payment state from QuickBooks Online (so a stale local amount can be rejected), and any create or update is then pushed to QuickBooks Online in the background. A 200/201 confirms the credit was saved in Distru, not that it has finished syncing to QuickBooks Online — re-fetch the credit and read qb_sync_status to observe the sync result. owner_id and brand_id stay in Distru: an update that changes only those fields neither pulls from nor pushes to QuickBooks Online.

Required permission: credits_permissions_create to create, credits_permissions_edit to update. Creating requires a customer (company_id) the authenticated user can see under their team restrictions; a hidden one returns 403. Updating also requires access to the credit under those restrictions (a hidden credit returns 403), and an owner_id they can assign under the same restrictions.

post/public/v1/credits

Request

  • Base URL
    https://app.distru.com
  • Auth
    HTTP bearer

Request body

amountnumber

The credit's spendable face value. Must be greater than 0. Required when creating. On update, omitting it leaves the amount unchanged; when provided it cannot be set below the amount already applied to invoices by this credit (its used amount). Sets original_amount only at create time; original_amount never changes afterward.

brand_idstring

ID of the brand (a company) this credit is for. Informational only: it never limits which invoices the credit can be applied to. Optional; can be set or changed on any credit, including automatically-created ones. Must be a company of yours that is not deleted. Omit to leave unchanged on update; send null to clear.

company_idstring

ID of the customer (company relationship) this credit applies to. Required when creating and the customer must exist and not be deleted. Immutable on update — sending a different value is rejected; omit it when updating.

external_notestring

A note on this credit, visible to the customer. Omit to leave unchanged on update; send null to clear.

idstring

ID of the credit to update. Omit to create a new credit; include it to update an existing one. Automatically-created credits accept only some fields; see the endpoint description.

internal_notestring

An internal note on this credit, not shown to the customer. Omit to leave unchanged on update; send null to clear.

owner_idstring

ID of the user who owns this credit. Defaults to the API key's user when creating if omitted. On update, omitting it leaves the owner unchanged; the owner can be reassigned on any credit but cannot be removed once set.

quickbooks_sales_item_idstring

Optional ID of the QuickBooks Online sales item this credit maps to, used only when QuickBooks Online credit sync is enabled. Omit or send null to use the default "Distru Sales" item. When set it must reference an active QuickBooks Online sales item. Never required.

Example request

{
  "amount": 100,
  "company_id": "00000000-0000-0000-0000-00000000000a",
  "external_note": "External note",
  "internal_note": "Internal note"
}

Response

The updated credit

Example response

{
  "data": {
    "brand": {
      "id": "3f128a34-cc59-4b49-8883-23bf10e59c6c",
      "name": "Retailer 1"
    },
    "company": {
      "id": "3f128a34-cc59-4b49-8883-23bf10e59c6c",
      "name": "Retailer 1"
    },
    "credit_uses": [
      {
        "payment": {
          "company": {
            "id": "3f128a34-cc59-4b49-8883-23bf10e59c6c",
            "name": "Retailer 1"
          }
        }
      }
    ],
    "payment": {
      "company": {
        "id": "3f128a34-cc59-4b49-8883-23bf10e59c6c",
        "name": "Retailer 1"
      }
    },
    "return": {
      "company": {
        "id": "3f128a34-cc59-4b49-8883-23bf10e59c6c",
        "name": "Retailer 1"
      }
    }
  }
}

Changes

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the required property // to the response with the status

    • info

      added the new optional request property

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status