Contents

Brands

Each studio has one or more brands with ShootProof. It all depends on how they choose to organize their businesses. Some studios have a single brand, under which all their business takes place. Others like to separate the types of business they engage in under separate brands (i.e. portraits, weddings, etc.). They may use these brands to communicate with and sell to different customers.

No matter how a studio chooses to use ShootProof—whether through one brand or many—your app will manage most of a studio’s data through brands. Contacts, contracts, events, invoices, orders, and more are all handled through a brand.

List all of a studio’s brands

get
/studio/brand

Example Request

Query Parameters

Property Description
page

The page of results to return.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Brand list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
address required nullable

The mailing address for this brand.

automationSendHour

The hour during which email automations for this brand will be sent, relative to the brand's time zone.

created

The creation date of this brand.

customDomain nullable

A custom domain for this brand, if applicable.

email

The email address for this brand.

facebookFanPageUrl nullable

The URL for this brand's Facebook fan page.

galleryDomain

The domain for this brand's galleries.

homepageBrandTheme

A brand theme.

homepageBrandThemeId

The identifier for this brand's homepage brand theme.

id

The identifier for this brand.

instagramUsername nullable

The Instagram username for this brand.

isDefault

Whether this is the default brand for the logged-in user's studio.

labCatalogs

An array of lab catalogs to which this brand has access.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

locale

The locale defined for this brand.

name

The name of this brand.

phone

The phone number for this brand.

subdomain

The ShootProof subdomain for this brand.

taxIdentifier nullable

The tax ID defined for this brand.

taxMethod nullable

The tax method for this brand.

twitterHandle nullable

The Twitter username for this brand.

type

The type of resource represented.

useDefaultWatermark

Whether or not the Brand's default watermark should be applied at upload time.

website nullable

The URL for this brand's website.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/BrandCollection"
        }
      }
    },
    "description": "Brand list response."
  }
}

Get a brand

get
/studio/brand/{brandId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A brand.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
address required nullable

The mailing address for this brand.

automationSendHour

The hour during which email automations for this brand will be sent, relative to the brand's time zone.

created

The creation date of this brand.

customDomain nullable

A custom domain for this brand, if applicable.

email

The email address for this brand.

facebookFanPageUrl nullable

The URL for this brand's Facebook fan page.

galleryDomain

The domain for this brand's galleries.

homepageBrandTheme

A brand theme.

homepageBrandThemeId

The identifier for this brand's homepage brand theme.

id

The identifier for this brand.

instagramUsername nullable

The Instagram username for this brand.

isDefault

Whether this is the default brand for the logged-in user's studio.

labCatalogs

An array of lab catalogs to which this brand has access.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

locale

The locale defined for this brand.

name

The name of this brand.

phone

The phone number for this brand.

subdomain

The ShootProof subdomain for this brand.

taxIdentifier nullable

The tax ID defined for this brand.

taxMethod nullable

The tax method for this brand.

twitterHandle nullable

The Twitter username for this brand.

type

The type of resource represented.

useDefaultWatermark

Whether or not the Brand's default watermark should be applied at upload time.

website nullable

The URL for this brand's website.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Brand"
        }
      }
    },
    "description": "A brand."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a brand

patch
/studio/brand/{brandId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The brand to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
automationSendHour

The hour during which email automations for this brand will be sent, relative to the brand's time zone.

taxIdentifier nullable

The tax ID defined for this brand.

taxMethod

The tax method for this brand.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "properties": {
          "automationSendHour": {
            "description": "The hour during which email automations for this brand will be sent, relative to the brand's time zone.",
            "maximum": 23,
            "minimum": 0,
            "type": "integer"
          },
          "taxIdentifier": {
            "description": "The tax ID defined for this brand.",
            "nullable": true,
            "type": "string"
          },
          "taxMethod": {
            "description": "The tax method for this brand.",
            "enum": [
              "exclusive",
              "inclusive"
            ],
            "type": "string"
          }
        },
        "title": "Brand",
        "type": "object"
      }
    }
  },
  "description": "The brand to update. Only provide those properties that need updating.",
  "required": true
}

200 OK

The updated brand.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
address required nullable

The mailing address for this brand.

automationSendHour

The hour during which email automations for this brand will be sent, relative to the brand's time zone.

created

The creation date of this brand.

customDomain nullable

A custom domain for this brand, if applicable.

email

The email address for this brand.

facebookFanPageUrl nullable

The URL for this brand's Facebook fan page.

galleryDomain

The domain for this brand's galleries.

homepageBrandTheme

A brand theme.

homepageBrandThemeId

The identifier for this brand's homepage brand theme.

id

The identifier for this brand.

instagramUsername nullable

The Instagram username for this brand.

isDefault

Whether this is the default brand for the logged-in user's studio.

labCatalogs

An array of lab catalogs to which this brand has access.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

locale

The locale defined for this brand.

name

The name of this brand.

phone

The phone number for this brand.

subdomain

The ShootProof subdomain for this brand.

taxIdentifier nullable

The tax ID defined for this brand.

taxMethod nullable

The tax method for this brand.

twitterHandle nullable

The Twitter username for this brand.

type

The type of resource represented.

useDefaultWatermark

Whether or not the Brand's default watermark should be applied at upload time.

website nullable

The URL for this brand's website.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Brand"
        }
      }
    },
    "description": "The updated brand."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List all of a brand’s themes

get
/studio/brand/{brandId}/brand-theme

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
page

The page of results to return.

rows

The number of rows to return on each page of results.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Brand themes list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
colorScheme

The color scheme for this brand theme.

ShootProof Identifier Description
dark A "dark" color scheme should be used when displaying this brand theme.
light A "light" color scheme should be used when displaying this brand theme.
created read-only

The date on which the entity was created.

emailBrandLogo nullable

The brand logo for use in email messages (and any other place using a white/neutral background such as contracts and invoices).

eventBrandLogo nullable

The brand logo for use in event presentation.

fontSet

The font set for this brand theme.

ShootProof Identifier Primary Font Name Secondary Font Name Body Font Name
brandon Brandon Brandon Baskerville
freeland ProximaNova Freeland ProximaNova
baskerville Baskerville Baskerville OpenSans-Regular
blooming-elegant BloomingElegant-Regular BloomingElegant-Regular Brandon
bambusa-pro-regular BambusaPro-Regular BambusaPro-Regular OpenSans-Regular
scandiebox-one SBOne SBOne OpenSans-Regular
id

The identifier of this brand theme.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this brand theme.

primaryColor

The primary hex color code for this brand theme.

secondaryColor

The secondary hex color code for this brand theme.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/BrandThemeCollection"
        }
      }
    },
    "description": "Brand themes list response."
  }
}

Get a brand theme

get
/studio/brand/{brandId}/brand-theme/{brandThemeId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

brandThemeId required

The brand theme identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A brand theme.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
colorScheme

The color scheme for this brand theme.

ShootProof Identifier Description
dark A "dark" color scheme should be used when displaying this brand theme.
light A "light" color scheme should be used when displaying this brand theme.
created read-only

The date on which the entity was created.

emailBrandLogo nullable

The brand logo for use in email messages (and any other place using a white/neutral background such as contracts and invoices).

eventBrandLogo nullable

The brand logo for use in event presentation.

fontSet

The font set for this brand theme.

ShootProof Identifier Primary Font Name Secondary Font Name Body Font Name
brandon Brandon Brandon Baskerville
freeland ProximaNova Freeland ProximaNova
baskerville Baskerville Baskerville OpenSans-Regular
blooming-elegant BloomingElegant-Regular BloomingElegant-Regular Brandon
bambusa-pro-regular BambusaPro-Regular BambusaPro-Regular OpenSans-Regular
scandiebox-one SBOne SBOne OpenSans-Regular
id

The identifier of this brand theme.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this brand theme.

primaryColor

The primary hex color code for this brand theme.

secondaryColor

The secondary hex color code for this brand theme.

type

The type of object represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/BrandTheme"
        }
      }
    },
    "description": "A brand theme."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a brand theme

put
/studio/brand/{brandId}/brand-theme/{brandThemeId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

brandThemeId required

The brand theme identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

The attachment parts of the multipart/mixed request MUST be named event-brand-logo and email-brand-logo. Other attachment names will not be accepted.

application/vnd.shootproof+json
Property Description
colorScheme

The color scheme for this brand theme.

ShootProof Identifier Description
dark A "dark" color scheme should be used when displaying this brand theme.
light A "light" color scheme should be used when displaying this brand theme.
emailBrandLogo nullable

The brand logo for use in email messages (and any other place using a white/neutral background such as contracts and invoices).

eventBrandLogo nullable

The brand logo for use in event presentation.

fontSet

The font set for this brand theme.

ShootProof Identifier Primary Font Name Secondary Font Name Body Font Name
brandon Brandon Brandon Baskerville
freeland ProximaNova Freeland ProximaNova
baskerville Baskerville Baskerville OpenSans-Regular
blooming-elegant BloomingElegant-Regular BloomingElegant-Regular Brandon
bambusa-pro-regular BambusaPro-Regular BambusaPro-Regular OpenSans-Regular
scandiebox-one SBOne SBOne OpenSans-Regular
id

The identifier of this brand theme.

name

The name of this brand theme.

primaryColor

The primary hex color code for this brand theme.

secondaryColor

The secondary hex color code for this brand theme.

type

The type of object represented.

multipart/mixed
Property Description
colorScheme

The color scheme for this brand theme.

ShootProof Identifier Description
dark A "dark" color scheme should be used when displaying this brand theme.
light A "light" color scheme should be used when displaying this brand theme.
emailBrandLogo nullable

The brand logo for use in email messages (and any other place using a white/neutral background such as contracts and invoices).

eventBrandLogo nullable

The brand logo for use in event presentation.

fontSet

The font set for this brand theme.

ShootProof Identifier Primary Font Name Secondary Font Name Body Font Name
brandon Brandon Brandon Baskerville
freeland ProximaNova Freeland ProximaNova
baskerville Baskerville Baskerville OpenSans-Regular
blooming-elegant BloomingElegant-Regular BloomingElegant-Regular Brandon
bambusa-pro-regular BambusaPro-Regular BambusaPro-Regular OpenSans-Regular
scandiebox-one SBOne SBOne OpenSans-Regular
id

The identifier of this brand theme.

name

The name of this brand theme.

primaryColor

The primary hex color code for this brand theme.

secondaryColor

The secondary hex color code for this brand theme.

type

The type of object represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/BrandTheme"
      }
    },
    "multipart/mixed": {
      "example": "--SP_BOUNDARY\nContent-Type: application/vnd.shootproof+json\n\n{\n    \"id\": 12345,\n    \"type\": \"brand-theme\",\n    \"name\": \"Test\",\n    \"primaryColor\": \"4fc12a\",\n    \"secondaryColor\": \"8a3b52\",\n    \"colorScheme\": \"light\",\n    \"fontSet\": \"brandon\"\n}\n\n--SP_BOUNDARY\nContent-Disposition: attachment; name=event-brand-logo; filename=image.jpg\nContent-Type: image/jpeg\n\n[binary data]\n\n--SP_BOUNDARY\nContent-Disposition: attachment; name=email-brand-logo; filename=image2.jpg\nContent-Type: image/jpeg\n\n[binary data]\n\n--SP_BOUNDARY--",
      "schema": {
        "$ref": "#/components/schemas/BrandTheme"
      }
    }
  },
  "description": "The attachment parts of the `multipart/mixed` request MUST be named\n`event-brand-logo` and `email-brand-logo`. Other attachment names\nwill not be accepted."
}

200 OK

The updated brand theme.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
colorScheme

The color scheme for this brand theme.

ShootProof Identifier Description
dark A "dark" color scheme should be used when displaying this brand theme.
light A "light" color scheme should be used when displaying this brand theme.
created read-only

The date on which the entity was created.

emailBrandLogo nullable

The brand logo for use in email messages (and any other place using a white/neutral background such as contracts and invoices).

eventBrandLogo nullable

The brand logo for use in event presentation.

fontSet

The font set for this brand theme.

ShootProof Identifier Primary Font Name Secondary Font Name Body Font Name
brandon Brandon Brandon Baskerville
freeland ProximaNova Freeland ProximaNova
baskerville Baskerville Baskerville OpenSans-Regular
blooming-elegant BloomingElegant-Regular BloomingElegant-Regular Brandon
bambusa-pro-regular BambusaPro-Regular BambusaPro-Regular OpenSans-Regular
scandiebox-one SBOne SBOne OpenSans-Regular
id

The identifier of this brand theme.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this brand theme.

primaryColor

The primary hex color code for this brand theme.

secondaryColor

The secondary hex color code for this brand theme.

type

The type of object represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/BrandTheme"
        }
      }
    },
    "description": "The updated brand theme."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

List a brand's tax profiles

get
/studio/brand/{brandId}/tax-profile

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
page

The page of results to return.

rows

The number of rows to return on each page of results.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Brand tax profiles list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

created read-only

The date on which the entity was created.

id read-only

The identifier for the tax profile.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/List"
            },
            {
              "properties": {
                "items": {
                  "items": {
                    "$ref": "#/components/schemas/TaxProfile"
                  },
                  "title": "Tax Profile",
                  "type": "array"
                },
                "type": {
                  "enum": [
                    "tax-profile-collection"
                  ]
                }
              }
            }
          ]
        }
      }
    },
    "description": "Brand tax profiles list response."
  }
}

Create a tax profile

A tax profile represents a set of options for collecting tax on orders and invoices. For example, the tax rate, its application to shipping and digital charges, and an optional breakdown can be specified. These options work in conjunction with the taxMethod on a brand to calculate tax for an order or invoice line item.

post
/studio/brand/{brandId}/tax-profile

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

application/vnd.shootproof+json
Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/TaxProfile"
      }
    }
  }
}

201 Created

The new tax profile.

Headers
Header Description
Location

The URL to the new tax profile.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

created read-only

The date on which the entity was created.

id read-only

The identifier for the tax profile.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "201": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/TaxProfile"
        }
      }
    },
    "description": "The new tax profile.",
    "headers": {
      "Location": {
        "description": "The URL to the new tax profile.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Delete a tax profile

delete
/studio/brand/{brandId}/tax-profile/{taxProfileId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

taxProfileId required

The tax profile identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

204 No Content

Successful deletion response.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "204": {
    "description": "Successful deletion response."
  }
}

Get a tax profile

get
/studio/brand/{brandId}/tax-profile/{taxProfileId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

taxProfileId required

The tax profile identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

A tax profile

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

created read-only

The date on which the entity was created.

id read-only

The identifier for the tax profile.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

Error Response

API errors come in two kinds of varieties: 400s and 500s.

Any error with a status code of 400 to 499 is considered a client error. This means it’s usually an error you can handle in your app, and then resend a modified request to the ShootProof API to get a successful response.

An error in the range of 500 to 599, on the other hand, is a different story. These errors usually mean that a problem occured on the server and resending the request with modifications will not fix the issue.

Pay careful attention to the status codes. We try to stick as close as possible to their defined semantics. For a complete list of HTTP status codes, take a look at the official HTTP Status Code Registry.

Check out our errors guide for more information.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

Validation Error Example
{
  "detail": "There was a problem with your request. Please see `info` for more information.",
  "info": {
    "errors": {
      "type": {
        "isEmpty": "Value is required and can't be empty"
      }
    }
  },
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.shootproof.com/errors#error-bad-request"
}
Forbidden Error Example
{
  "detail": "You do not have permission to access the requested resource.",
  "status": 403,
  "title": "Forbidden",
  "type": "https://developer.shootproof.com/errors#error-forbidden"
}
Not Found Error Example
{
  "detail": "The requested resource could not be found.",
  "status": 404,
  "title": "Not Found",
  "type": "https://developer.shootproof.com/errors#error-not-found"
}
Server Error Example
{
  "detail": "An error occurred on the server. If this error continues to occur, please contact support.",
  "status": 500,
  "title": "Internal Server Error",
  "type": "https://developer.shootproof.com/errors#error-server-error"
}
Unauthorized Error Example
{
  "detail": "No authorization credentials provided. You must provide an authorization token for this request.",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.shootproof.com/errors#error-unauthorized"
}

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/TaxProfile"
        }
      }
    },
    "description": "A tax profile"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Update a tax profile

Updates the specified tax profile using the provided data with the entire tax profile being overwritten.

put
/studio/brand/{brandId}/tax-profile/{taxProfileId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

taxProfileId required

The tax profile identifier.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

Request Body

application/vnd.shootproof+json
Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "content": {
    "application/vnd.shootproof+json": {
      "schema": {
        "$ref": "#/components/schemas/TaxProfile"
      }
    }
  }
}

200 OK

The tax profile.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
applyToDigitals

If set to true, the profile will apply to digital items.

applyToShipping

If set to true, the profile will apply to shipping charges.

countryCode nullable

Two-character ISO-3166 code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all countries where products are offered.

This field is required if stateCode is provided.

created read-only

The date on which the entity was created.

id read-only

The identifier for the tax profile.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

Name of the Tax Profile

stateCode nullable

Two-character state/province code identifying the destination country where this tax profile option is available. If not provided, the profile will apply to all states/provinces within the countryCode.

The property countryCode is required for this property, and the region identified by the stateCode must be located within the country identified by the countryCode.

taxBreakdownName1 nullable

Tax breakdowns allow a user to split the tax rate (taxPercentage) value above into 2 pieces for more granularity on what the taxes represent that are being charged. If set, this breakdown will display in the shopping cart and on invoices.

Name of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the name of the first percentage in the breakdown.

This property is required if taxBreakdownPercentage1 is provided.

taxBreakdownName2 nullable

Name of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the name of the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownPercentage2 is provided.

taxBreakdownPercentage1 nullable

Percentage of the 1st tax breakdown. If the taxPercentage should be broken down, this specifies the first percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName1 is provided.

taxBreakdownPercentage2 nullable

Percentage of the 2nd tax breakdown. If the taxPercentage should be broken down, this specifies the second percentage in the breakdown. Refer to the taxBreakdownName1 documentation for more information about tax breakdowns.

This property is required if taxBreakdownName2 is provided.

taxPercentage

Tax percentage

type

The type of resource represented.

400 Bad Request

Validation error response. Check the info.errors property in the response for more details.

Response Body

When the Content-Type of the response is application/problem+json, the following properties will be available in the response body.

Properties
Property Description
detail

A longer description of of the error encountered.

info

Additional information that may be provided to aid in error resolution.

Property Description
errors

If the error response is a result of validation errors, it will most likely be a 400 Bad Request response and contain this info.errors property. Each property name in the errors object is a property that failed validation. These properties contain objects with property names in the form of internal validation error message slugs paired with human-readable string values describing the validation failure. Each property may have multiple validation failure messages.

reason

An optional reason for the error response.

In some cases, more information is required to convey information about the error to the client. In these cases, one of the following reason slugs may be used.

Reason Slug Description
contract-not-ready-to-countersign The contract is in a state that does not allow countersigning. Its status must be ready-to-countersign to perform this action.
event-photo-count-limit The event has reached the maximum number of photos allowed.
plan-does-not-allow-uploads The studio is in a plan that does not allow uploads or they have reached the limit of photos the plan allows.
status

The HTTP status code associated with this error.

title

A short description of the error encountered.

type

A namespace URI uniquely identifying the error type.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/TaxProfile"
        }
      }
    },
    "description": "The tax profile."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Lists all watermarks for the brand.

Returns a list of all watermarks for the brand. Query string parameters may be used to affect the response, including pagination, sorting, and filtering.

get
/studio/brand/{brandId}/watermark

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
page

The page of results to return.

rows

The number of rows to return on each page of results.

searchName

A string with which to filter watermarks by name.

sortBy

The property by which items returned should be sorted.

sortType

The direction in which sorting should occur.

Header Parameters

Property Description
Authentication required

The bearer token used to make authenticated requests to the ShootProof Studio API. See the authorization guide for more information on how to obtain and use bearer tokens.

200 OK

Watermarks list response.

Response Body

When the Content-Type of the response is application/vnd.shootproof+json, the following properties will be available in the response body.

Properties
Property Description
items

A collection of resources returned in the current result set.

Property Description
created

The creation date of this watermark.

displayUrl read-only

An object of display demo URLs, identified by demo image ID.

Property Description
demoImage1

A URL indicating a demo image depicting the watermark.

demoImage2

A URL indicating a demo image depicting the watermark.

id

The identifier for this watermark.

isDefault

Whether this watermark is the brand's default watermark.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

name

The name of this watermark.

type

The type of object represented.

links required read-only

Each property defines a hypertext link relationship as indicated by a link object or array of link objects. The target URL of each hypertext link relationship is related to the current resource according to the defined semantics of the link relationship property name.

meta read-only

Metadata describing the current result set.

Property Description
currentPage

The current page of results returned.

rows

The number of rows returned per page for the current result set.

totalItems

The total number of items in the result set. This may be affected by active search/filter parameters.

totalPages

The total number of pages in the result set. This is affected by the rows parameter (totalItems / rows == totalPages).

type

The model type for the list response object.

OpenAPI Schema

The following schema is based on OpenAPI 3.0 and is provided in our downloadable OpenAPI document.

{
  "200": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/WatermarkCollection"
        }
      }
    },
    "description": "Watermarks list response."
  }
}