Skip to content

Update general settings

Open .md

PUT/v1/api/store/{team_slug}/setting/general

v1Operation ID v1_public_setting_general_update

Changes the team's general settings: units and date formats, PDF options, order and quote default dates, customer portal options, approval terms, tax labels, supplier catalogs and inventory automation.

Send only the keys you change; the others keep their values. Keys not in the list are ignored. Arrays replace the saved array.

Returns the full settings object.

Permission

Needs the Manage Settings permission. The team owner always has it.

Business rules

  • pagination_per_page is 5 to 100.
  • Some settings change what customers see: enable_cust_portal_email_login makes customers who open the portal from a link enter their email, and message_use_customer_portal_link changes where message buttons point.
  • shipping_label_create_cost_line_item, when sent, must be true or false: an empty string is refused.
  • The answer's customer_portal_account_login_available, customer_portal_rollout, payment_amount_policy and payment_amount_policies are worked out by YoPrint; sending them changes nothing.

Side effects

  • Applies to everyone on the team, and to the PDFs and portal pages made from now on.
  • When the job or order approval terms change (show_job_approval_term, job_approval_term_text, show_order_approval_term, order_approval_term_text), customers with an open approval of that kind who have the customer portal open get a live update.

Path parameters

  • team_slugstringrequired

    Your team slug, shown as Team ID next to your API key in Profile.

    • Example your-team

Request body

application/json, required.

Response

200Successful response.

  • dataobjectrequired

    The team's settings: the saved general settings (the keys "Update general settings" takes, with their defaults), column (list columns), cust_msg_status (the add-on), the three payment webhook addresses, the read-only customer portal sign-in and payment minimum fields below, and the payment gateway values stored for the team, which can include secret keys (sensitive; treat as private). A team that never changed its date formats reads pdf_date_format: "std" and web_date_format: "us", values outside the list the update takes.

    Child fields (13)
    • columnobject | array

      List columns, by list name (sales_order, quote, ...). An empty array [] when none is saved.

    • Whether the customer message statuses add-on is on.

    • Read only: whether customers can sign in to your customer portal with an email account. True when your plan includes the customer portal.

    • Read only: where the customer portal's move to email-account sign-in stands for your team. YoPrint sets the dates; you can't change them here.

      Child fields (6)
      • account_onlybooleanrequired

        True when customers must sign in with an email account: a portal link alone no longer opens the portal.

      • all_teams_atstring (date-time) | nullrequired

        From when every team is account-only (UTC), or null when not set.

      • configuration_warningstring | nullrequired

        Set when YoPrint's own rollout dates are inconsistent; null normally.

        • One of: "new_teams_cutoff_not_before_all_teams_cutoff", "invalid_rollout_date"
      • legacy_access_allowedbooleanrequired

        The opposite of account_only: portal links still open the portal.

      • new_teams_atstring (date-time) | nullrequired

        From when new teams are account-only (UTC), or null when not set.

      • reasonstringrequired

        transition: links still work. new_team_cutoff: the team was created after the date for new teams. all_teams_cutoff: the date for every team has passed.

        • One of: "transition", "new_team_cutoff", "all_teams_cutoff"
    • Read only: the same for each of your currencies, deleted ones included, keyed by ISO code (orders keep the currency they were made in). [] when the team has none.

      Fields of each item (3)
    • Read only: the smallest payment YoPrint takes in your default currency, or null when the team has no default currency.

      Child fields (3)
    • paypal_webhook_urlstring (uri)

      The same for PayPal.

    • Date format on PDFs. std is the default for a team that never changed it; PDFs show it like other_1 (05 Nov 2026). A team whose saved settings have no date format reads other_1. "Update general settings" accepts only the other five values.

      • One of: "std", "default", "british_standard", "us_standard", "international", "other_1"
    • Whether "Create Shipping Cost Line Item" starts checked when someone buys a shipping label in the web app. true until changed.

    • square_webhook_urlstring (uri)

      The same for Square.

    • stripe_webhook_urlstring (uri)

      The address to give Stripe for this team's payment webhooks.

    • Date format in the web app. us is the default for a team that never changed it; the web app shows it like default (Nov 05, 2026). A team whose saved settings have no date format reads default. "Update general settings" accepts only the other five values.

      • One of: "us", "default", "british_standard", "us_standard", "international", "other_1"
  • statusintegerrequired
  • successbooleanrequired

Errors

  • 401The API key is missing or wrong (unauthenticated).

  • 403You are not allowed to do this. api_access_not_in_plan: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only {"message": "Insufficient Permission"}. Other refusals use the error envelope, with unauthorized or user_is_not_authorized.

    When
    Your role lacks Manage Settings. The body is {"message": "Insufficient Permission"}, without the error envelope.
    Fix
    Use the key of a member whose role has Manage Settings, or the owner's.
  • 404Not found. page_not_found: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. code: null, with a message that starts "No query results for": there is no record with that id.

  • 422The request was refused and changed nothing. validation_failed lists what to fix in error.fields; other codes name a business rule, explained in error.message. A few checks answer with only {"message": "..."}. An operation that calls another service (a payment provider, a carrier, an accounting app) can answer connect_timeout ("Please retry again") when that service does not answer in time: the change may or may not have happened there, so read the record back before you retry.

    When
    A value has the wrong type or is not one of the allowed values (validation_failed; error.fields names the key).
    Fix
    Check the schema for that key.

Notes

  • Treat the response as sensitive: besides your preferences it can carry the payment gateway values stored for the team. Don't log or share it.