Products

List all products of an administration

Returns a paginated list of products in the administration. Each page contains 10 products. You can use the page parameter to fetch the next page of products.

Parameters

Parameter Type Description
per_page Integer
query String

Allows filtering by product name.

page Integer

The page to fetch, starting at 1.

currency String

ISO three-character currency code, e.g. EUR or USD.

Example: returns a list of active products

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "449763677776643845",
    "administration_id": 123,
    "description": "Apple",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "449763442214044804",
    "ledger_account_id": "449763442161615988",
    "created_at": "2025-03-28T07:48:09.669Z",
    "updated_at": "2025-03-28T07:48:09.669Z"
  },
  {
    "id": "449763677756720899",
    "administration_id": 123,
    "description": "My product description",
    "title": null,
    "identifier": "SKU1234",
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "449763442214044804",
    "ledger_account_id": "449763442161615988",
    "created_at": "2025-03-28T07:48:09.649Z",
    "updated_at": "2025-03-28T07:48:09.649Z"
  },
  {
    "id": "449763677799712519",
    "administration_id": 123,
    "description": "Pie",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "449763442214044804",
    "ledger_account_id": "449763442161615988",
    "created_at": "2025-03-28T07:48:09.689Z",
    "updated_at": "2025-03-28T07:48:09.689Z"
  }
]
      

Example: allows filtering by query

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?query=apple
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "449763681565148950",
    "administration_id": 123,
    "description": "Apple",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "449763442214044804",
    "ledger_account_id": "449763442161615988",
    "created_at": "2025-03-28T07:48:13.281Z",
    "updated_at": "2025-03-28T07:48:13.281Z"
  }
]
      

Example: handles empty search result

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?query=kjashdfjksadhfjk
    

Response

Example: returns a paginated response for page 2

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?page=2&per_page=1
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "449763685246699318",
    "administration_id": 123,
    "description": "My product description",
    "title": null,
    "identifier": "SKU1234",
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "449763442214044804",
    "ledger_account_id": "449763442161615988",
    "created_at": "2025-03-28T07:48:16.793Z",
    "updated_at": "2025-03-28T07:48:16.793Z"
  }
]
      

Returns information about a product

Example: returns a single product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/449763685485774663.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "449763685485774663",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "SKU1234",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "449763442214044804",
  "ledger_account_id": "449763442161615988",
  "created_at": "2025-03-28T07:48:17.021Z",
  "updated_at": "2025-03-28T07:48:17.021Z"
}
      

Example: returns 404 when product does not exist

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/34123123.json?
    

Response

        
          
          Status: 404 Not Found
        
      
{
  "error": "record not found",
  "symbolic": {
    "id": "not_found"
  }
}
      

Returns information about a product based on the identifier

Example: returns a single product based on the identifier

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/SKU1234.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "449763685725898571",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "SKU1234",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "449763442214044804",
  "ledger_account_id": "449763442161615988",
  "created_at": "2025-03-28T07:48:17.249Z",
  "updated_at": "2025-03-28T07:48:17.249Z"
}
      

Example: returns a single product based on the identifier with dot

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/aa.bb.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "449763685850679117",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "aa.bb",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "449763442214044804",
  "ledger_account_id": "449763442161615988",
  "created_at": "2025-03-28T07:48:17.369Z",
  "updated_at": "2025-03-28T07:48:17.383Z"
}
      

Example: returns 404 when product does not exist

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/random.json?
    

Response

        
          
          Status: 404 Not Found
        
      
{
  "error": "record not found",
  "symbolic": {
    "id": "not_found"
  }
}
      

Creates a new product

Parameters

Parameter Type Description
product[title] String
product[description] String
product[checkout_description] String
product[price] Decimal

Required

Both a decimal and a string ‘10,95’ are accepted.

product[document_style_id] Integer

Should be a valid document style id.

product[ledger_account_id] Integer

Required

Should be a valid ledger account id.

product[tax_rate_id] Integer

Should be a valid tax rate id.

product[workflow_id] Integer

Should be a valid workflow id.

product[currency] String

Required

ISO three-character currency code, e.g. EUR or USD.

product[checkout_type] String

Can be product or subscription.

product[frequency_type] String

Can be day, week, month, quarter or year.

product[frequency] Integer

Should be an integer >= 1.

product[product_type] String

Can be digital_service, service or product.

product[vat_rate_type] String

Can be standard or reduced.

product[max_amount_per_order] Integer

Should be an integer 0 <= n < 2.

product[identifier] String

Should be unique for the administration.

product[frequency_preset] String

Example: creates a new product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPOST \
  -d '{"product":{"description":"Geldvogel","price":"50,50","tax_rate_id":449763686203000660,"ledger_account_id":449763686218729302}}' \
  https://moneybird.com/api/v2/123/products.json
    

Response

        
          
          Status: 201 Created
        
      
{
  "id": "449763686275352408",
  "administration_id": 123,
  "description": "Geldvogel",
  "title": null,
  "identifier": null,
  "price": "50.5",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "449763686203000660",
  "ledger_account_id": "449763686218729302",
  "created_at": "2025-03-28T07:48:17.774Z",
  "updated_at": "2025-03-28T07:48:17.774Z"
}
      

Example: returns an error when information is missing

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPOST \
  -d '{"product":{"title":"","description":"","price":"","tax_rate_id":449763686335121245,"ledger_account_id":449763686343509855}}' \
  https://moneybird.com/api/v2/123/products.json
    

Response

        
          
          Status: 422 Unprocessable Entity
        
      
{
  "error": {
    "title": [
      "can't be blank"
    ],
    "description": [
      "can't be blank"
    ],
    "base": [
      "must contain a title or description"
    ]
  }
}
      

Updates a product

Parameters

Parameter Type Description
product[title] String
product[description] String
product[checkout_description] String
product[price] Decimal

Both a decimal and a string ‘10,95’ are accepted.

product[tax_rate_id] Integer

Should be a valid tax rate id.

product[ledger_account_id] Integer

Should be a valid ledger account id.

product[currency] String

ISO three-character currency code, e.g. EUR or USD.

product[frequency_type] String

Can be day, week, month, quarter or year.

product[frequency] Integer

Should be an integer >= 1.

product[product_type] String

Can be digital_service, service or product.

product[vat_rate_type] String

Can be standard or reduced.

product[checkout_type] String

Can be product or subscription.

product[max_amount_per_order] Integer

Should be an integer 0 <= n < 2.

product[document_style_id] Integer

Should be a valid document style id.

product[workflow_id] Integer

Should be a valid workflow id.

product[identifier] String

Should be unique for the administration.

product[frequency_preset] String

Example: updates a product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPATCH \
  -d '{"product":{"description":"Updated","price":"123"}}' \
  https://moneybird.com/api/v2/123/products/449763686455707489.json
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "449763686455707489",
  "administration_id": 123,
  "description": "Updated",
  "title": null,
  "identifier": "SKU1234",
  "price": "123.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "449763442214044804",
  "ledger_account_id": "449763442161615988",
  "created_at": "2025-03-28T07:48:17.945Z",
  "updated_at": "2025-03-28T07:48:18.008Z"
}
      

Deletes a product

Example: deletes a product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XDELETE \
  -d '{}' \
  https://moneybird.com/api/v2/123/products/449763686585730916.json
    

Response

Example: deactivates the product when product has details

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XDELETE \
  -d '{}' \
  https://moneybird.com/api/v2/123/products/449763686733580136.json
    

Response