Contents

Contracts

Brands use contracts for a variety of reasons and situations. ShootProof provides a flexible approach to contracts, allowing studios to choose when and if they need them, as well as attaching them to invoices and associating contacts to them.

List a brand’s contracts

get
/studio/brand/{brandId}/contract

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
filterContactId

The contract contact ID by which to filter results.

filterExcludeLinkedToInvoice

Indicates that contracts linked to invoice(s) should be excluded from the results.

filterExpirationDateEnd

The contract expiration end date by which to filter results. If provided, only contracts that expire before midnight UTC of this date will be returned.

filterExpirationDateStart

The contract expiration start date by which to filter results. If provided, only contracts that expire on or after midnight UTC of this date will be returned.

filterStatus

The contract status by which to filter results.

page

The page of results to return.

rows

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

searchContactInfo

Customer name or email address by which to filter results.

searchContractName

Contract name by which to filter 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

A collection of contracts.

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
bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more magic blank placeholder strings.

contacts read-only

A collection of contacts associated with this contract

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
created

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

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 for this contract.

publicId

The public identifier for this contract (may be used in the portal website).

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": {
          "$ref": "#/components/schemas/ContractCollection"
        }
      }
    },
    "description": "A collection of contracts."
  }
}

Create a contract

post
/studio/brand/{brandId}/contract

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 contract to create.

application/vnd.shootproof+json
Property Description
bodyHtml

The HTML body of the contract.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contactIds write-only

An array of unique contact ids to link to contract

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

name

The name for this contract.

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

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/Contract"
      }
    }
  },
  "description": "The contract to create.",
  "required": true
}

201 Created

The new contract.

Headers
Header Description
Location

The URL to the new contract.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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/Contract"
        }
      }
    },
    "description": "The new contract.",
    "headers": {
      "Location": {
        "description": "The URL to the new contract.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

List a brand’s contract templates

get
/studio/brand/{brandId}/contract/template

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

Query Parameters

Property Description
filterCreatedStart

Filter contract templates by templates created after filterCreatedStart.

filterExpirationDateEnd

Filter contract templates by templates created before filterCreatedEnd.

page

The page of results to return.

rows

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

searchContractTemplateName

Contract template name by which to filter 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

A collection of contract templates.

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 contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

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 for this contract template.

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": {
          "$ref": "#/components/schemas/ContractTemplateCollection"
        }
      }
    },
    "description": "A collection of contract templates."
  }
}

Create a contract template

post
/studio/brand/{brandId}/contract/template

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 contract template to create.

application/vnd.shootproof+json
Property Description
bodyHtml

The HTML body of the contract template.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

name

The name for this contract template.

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/ContractTemplate"
      }
    }
  },
  "description": "The contract template to create.",
  "required": true
}

201 Created

The new contract template.

Headers
Header Description
Location

The URL to the contract template that is located in the response body.

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
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

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/ContractTemplate"
        }
      }
    },
    "description": "The new contract template.",
    "headers": {
      "Location": {
        "description": "The URL to the contract template that is located in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Delete a contract template

delete
/studio/brand/{brandId}/contract/template/{contractTemplateId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractTemplateId required

A contract template 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

The resource was successfully deleted.

OpenAPI Schema

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

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  }
}

Get a contract template

get
/studio/brand/{brandId}/contract/template/{contractTemplateId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractTemplateId required

A contract template 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 contract template.

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
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

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/ContractTemplate"
        }
      }
    },
    "description": "A contract template."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a contract template

Only provide those properties that you wish to update. All other properties will remain unchanged.

patch
/studio/brand/{brandId}/contract/template/{contractTemplateId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractTemplateId required

A contract template 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
bodyHtml

The HTML body of the contract template.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

name

The name for this contract template.

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/ContractTemplate"
      }
    }
  },
  "required": true
}

200 OK

The updated contract template.

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
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

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/ContractTemplate"
        }
      }
    },
    "description": "The updated contract template."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Update a contract template

put
/studio/brand/{brandId}/contract/template/{contractTemplateId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractTemplateId required

A contract template 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 updated contract template

application/vnd.shootproof+json
Property Description
bodyHtml

The HTML body of the contract template.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

name

The name for this contract template.

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/ContractTemplate"
      }
    }
  },
  "description": "The updated contract template",
  "required": true
}

200 OK

The updated contract template.

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
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

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/ContractTemplate"
        }
      }
    },
    "description": "The updated contract template."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Delete a contract

delete
/studio/brand/{brandId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract 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

The resource was successfully deleted.

OpenAPI Schema

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

{
  "204": {
    "$ref": "#/components/responses/deleteSuccess"
  }
}

Get a contract

get
/studio/brand/{brandId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract 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 contract

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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/Contract"
        }
      }
    },
    "description": "A contract"
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}

Partially update a contract

Only provide those properties that you wish to update. All other properties will remain unchanged.

patch
/studio/brand/{brandId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract 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 contract object to update. Only provide those properties that need updating.

application/vnd.shootproof+json
Property Description
bodyHtml

The HTML body of the contract.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contactIds write-only

An array of unique contact ids to link to contract

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

name

The name for this contract.

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

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/Contract"
      }
    }
  },
  "description": "The contract object to update. Only provide those properties that need\nupdating.",
  "required": true
}

200 OK

The updated contract.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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/Contract"
        }
      }
    },
    "description": "The updated contract."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Update a contract

put
/studio/brand/{brandId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract 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 contract object to update.

application/vnd.shootproof+json
Property Description
bodyHtml

The HTML body of the contract.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contactIds write-only

An array of unique contact ids to link to contract

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

name

The name for this contract.

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

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/Contract"
      }
    }
  },
  "description": "The contract object to update.",
  "required": true
}

200 OK

The updated contract.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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/Contract"
        }
      }
    },
    "description": "The updated contract."
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Send an email message to a contract’s contacts

post
/studio/brand/{brandId}/contract/{contractId}/email

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract 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 contract email object used to send an email message.

application/vnd.shootproof+json
Property Description
body

The message to include in the body of the email.

buttonText

The text for the call-to-action button in the email body.

headline

The headline to use in the email body.

recipientEmails

Email address(es) to send the email to. If provided, must be an array of valid email addresses. Optional, but may be required by child schemas.

subject

The subject line for the email message.

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/ContractEmail"
      }
    }
  },
  "description": "The contract email object used to send an email message.",
  "required": true
}

202 Accepted

On success, we respond with the contract for which the email message was sent.

Headers
Header Description
Content-Location

The URL to the contract that is located in the response body.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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.

{
  "202": {
    "content": {
      "application/vnd.shootproof+json": {
        "schema": {
          "$ref": "#/components/schemas/Contract"
        }
      }
    },
    "description": "On success, we respond with the contract for which the email message\nwas sent.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the contract that is located in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Remove an invoice from a contract

delete
/studio/brand/{brandId}/contract/{contractId}/invoice/{invoiceId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract identifier.

invoiceId required

An invoice 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

The contract from which the invoice was removed.

Headers
Header Description
Content-Location

The URL to the contract that is located in the response body.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

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/Contract"
        }
      }
    },
    "description": "The contract from which the invoice was removed.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the contract that is located in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  }
}

Attach an invoice to a contract

Associate the invoice identified by invoiceId in the path to the contract identified by contractId. This request does not require any body parameters.

put
/studio/brand/{brandId}/contract/{contractId}/invoice/{invoiceId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract identifier.

invoiceId required

An invoice 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

The contract to which the invoice was added.

Headers
Header Description
Content-Location

The URL to the contract that is located in the response body.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

type

The type of resource represented.

404 Not Found

The requested resource could not be found.

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.

409 Conflict

If the contract is already linked to a different invoice, we respond with a 409 Conflict response.

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.

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/Contract"
        }
      }
    },
    "description": "The contract to which the invoice was added.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the contract that is located in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "409": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "If the contract is already linked to a different invoice, we respond\nwith a `409 Conflict` response."
  }
}

Countersign a contract

Apply the signature identified by signatureId in the path to the contract identified by contractId. This request does not require any body parameters.

See "Get the authenticated user" for information on retrieving the authenticated user's signature.

put
/studio/brand/{brandId}/contract/{contractId}/signature/{signatureId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract identifier.

signatureId required

A signature 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

The contract to which the signature was added.

Headers
Header Description
Content-Location

The URL to the contract that is located in the response body.

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
activity read-only

A list of activities that have occurred with this contract.

bodyContainsMagicBlank read-only

Indicates if the HTML body of the contract contains one or more 'magic blank' placeholder strings.

bodyHtml

The HTML body of the contract.

brandTheme read-only

A brand theme.

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.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

cancelationMessage nullable

Optional cancelation message to include in studio-to-client email sent when contract status moves to canceled state. As of this writing, value only used on PATCH requests.

contacts required read-only

A collection of contacts associated with this contract

Property Description
items

A collection of resources returned in the current result set.

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.

type

The type of resource represented.

contractStatus

The current status of the contract.

Status Description
draft The contract is a draft and has not been sent to the client.
awaiting-client-signature The contract has been sent to the client and is awaiting their signature.
awaiting-studio-countersign The client has signed the contract, and it is ready for the studio to countersign.
completed The client and studio have both signed the contract.
canceled The studio has canceled the contract.
expired The expiration date specified on the contract has passed while the contract was in the draft or awaiting-client-signature states.
contractTemplate required read-only
Property Description
bodyHtml

The HTML body of the contract template.

brandTheme read-only

A brand theme.

brandThemeId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract template.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

languageCode

The Unicode CLDR language tag for the language used in this contract template.

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 for this contract template.

type

The type of resource represented.

contractTemplateId nullable

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

created read-only

The creation date of this contract.

expirationDate

The date on which this contract expires.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

invoices read-only

An array of linked invoices.

isEditable

Whether the contract is able to be edited.

isHidden

Whether the contract has been marked 'hidden'.

languageCode

The Unicode CLDR language tag for the language used in this contract.

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.

Property Description
alternate

The target URL is an alternate representation of the current resource. Usually, this will include a type property to indicate the media type of the alternate representation.

brand

The target URL is a brand or collection of brands related to the current resource.

brand-context deprecated

The target URL indicates the brand authorized for the current context, based on the access token.

This relationship is deprecated and should not be relied on. Access tokens obtained through the OAuth flow are not tied to a specific brand.

brand-homepage

The target URL is the brand homepage API endpoint related to the current resource.

brand-theme

The target URL is a brand theme or collection of brand themes related to the current resource.

canonical

The target URL is the primary location of the current resource (i.e. the current resource may be subordinate to another resource, and the target URL indicates its permanent location).

children

The target URL is a collection of resources that is subordinate to the current resource. That is, the current resource is a parent of the children, and the children belong to this resource.

client

The target URL is the location of the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

client-admin

The target URL is the location of the studio client admin for the current resource in the Client Galleries website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

collection

The target URL is the location of a collection of similar resources of which the current resource is a member.

contact

The target URL is a contact or collection of contacts related to the current resource.

contact-referee

The target URL is a list of available contacts that may be selected as referred by the current resource.

contact-referred-by

The target URL is a list of available contacts that may be selected as having referred the current resource.

contact-tag

The target URL is a list of contact tags available to apply to the current resource.

contract

The target URL is a contract or collection of contracts related to the current resource.

contract-signature

The target URL is a contract signature or collection of contract signatures related to the current resource.

contract-template

The target URL is a contract template or collection of contract templates related to the current resource.

derivedfrom

The target URL is the location of a resource from which the current resource is derived (or a subset of).

email

The target URL may be an email message or collection of email messages related to the current resource. It may also be used to create an email message related to the current resource.

email-automation-group

The target URL is an email automation group or collection of email automation groups related to the current resource.

email-template

The target URL is an email template or collection of email templates related to the current resource.

email-template-type

The target URL is an email template type or collection of email template types related to the current resource.

event

The target URL is an event or collection of events related to the current resource.

event-album

The target URL is an event album or collection of event albums related to the current resource.

event-album-passwords

The target URL is a listing of all passwords for all event albums related to the current resource. If the type indicates a different format (i.e. text/csv), then the URL is a link to a downloadable version of the target resource.

event-album-photo

The target URL is an event album photo or collection of event album photos related to the current resource.

event-archive-cost

The target URL is an event archive cost related to the current resource.

event-category

The target URL is an event category or collection of event categories related to the current resource.

event-contact

The target URL is an event contact or collection of event contacts related to the current resource.

event-contact-photo-favorite

The target URL is a photo or collection of photos related to the current resource and favorited by the context event contact.

event-contact-photo-hidden

The target URL is a photo or collection of photos related to the current resource and hidden by the context event contact.

event-contact-photo-share

The target URL is a photo or collection of photos related to the current resource and shared by the context event contact.

event-contact-photo-tag

The target URL is a photo or collection of photos related to the current resource and tagged by the context event contact.

When templated is true, this is a templated URL. The template parameter filterPhotoTag may be used with the tag name or a comma-separated list of tag names to filter tagged photo results.

event-defaults

The target URL is a set of event defaults settings or collection of more than one set of event defaults settings related to the current resource.

event-photo

The target URL is an event photo or collection of event photos related to the current resource.

event-photo-original

The target URL is the original uploaded photo related to the current resource.

event-photo-upload-policy

The target URL may be used to generate an event photo upload policy related to the current resource. This is the first step in the process to upload new event photos to an event resource.

event-visitor

The target URL is an event visitor or collection of event visitors related to the current resource.

invoice

The target URL is an invoice or collection of invoices related to the current resource.

invoice-credit-card

The target URL may be used to manipulate the invoice credit card related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-item-template

The target URL is an invoice item template or collection of invoice item templates related to the current resource.

invoice-payment

The target URL may be used to make an invoice payment related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-refund

The target URL may be used to make an invoice refund related to the current resource. The current resource may be an invoice or may have an invoice related to it, for which the target URL may be used.

invoice-template

The target URL is an invoice template or collection of invoice templates related to the current resource.

lab

The target URL is a lab related to the current resource.

lab-catalog

The target URL is a lab catalog or collection of lab catalogs related to the current resource.

lab-catalog-self-fulfilled

The target URL is a self-fulfilled lab catalog or collection of self-fulfilled lab catalogs related to the current resource.

lab-catalog-shipping-option

The target URL is a lab catalog shipping option or collection of lab catalog shipping options related to the current resource.

market-department

The target URL is a market department or collection of market departments related to the current resource.

market-product

The target URL is a market product or collection of market products related to the current resource.

market-vendor

The target URL is a market vendor or collection of market vendors related to the current resource.

me

The target URL is the profile for the authenticated access token.

Usually this is the Studio Panel user who has granted authorization and an access token.

mobile-app

The target URL is a mobile app or collection of mobile apps related to the current resource.

order

The target URL is an order or collection of orders related to the current resource.

order-payment

The target URL is an order payment or collection of order payments related to the current resource.

parent

The target URL identifies a parent resource for the current resource. It is often used on subordinate resources or collections to identify the resource to which they belong.

playlist

The target URL is a music playlist or collection of music playlists related to the current resource.

portal

The target URL is the location of the current resource in the Studio-Client Portal website. The media type of the target URL is assumed to be text/html unless otherwise indicated.

price-sheet

The target URL is a price sheet or collection of price sheets related to the current resource.

price-sheet-discount

The target URL is a price sheet discount or collection of price sheet discounts related to the current resource.

price-sheet-event

The target URL is an event associated to a price sheet or a collection of events associated to a price sheet related to the current resource.

price-sheet-item

The target URL is a collection of price sheet items related to the current resource.

price-sheet-item-image

The target URL is a collection of images associated to a price sheet item related to the current resource.

price-sheet-shipping-option

The target URL is a price sheet shipping option or collection of price sheet shipping options related to the current resource.

search

The target URL is a location that may be used to search or filter results for the current resource.

self

The target URL is the current resource's own location. It may not be the canonical location of the resource; if this is the case, the canonical relationship might be present to indicate the resource's canonical URL.

shorturl

The target URL may be used to create a shortened URL for use with social sharing.

signature

The target URL is a signature or collection of signatures related to the current resource.

token-replacement

The target URL may be used to replace tokens in the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa

The target URL is a user's MFA configuration or collection of a user's MFA configurations related to the current resource. Tokens available to pass for replacement are indicated by the URI template parameters.

user-mfa-code

The target URL is a user's MFA code or collection of a user's MFA codes related to the current resource.

user-mfa-verification

The target URL is a user's MFA verification or collection of a user's MFA verifications related to the current resource.

volume-sort

The target URL is the status of the volume photography related sorting of the current resource.

watermark

The target URL is a watermark or collection of watermarks related to the current resource.

name

The name for this contract.

publicId read-only

The public identifier for this contract (may be used in the portal website).

shootDate nullable

This contract covers a photo shoot or event that took place on this date.

signatureClient nullable read-only

The contract signature for the client.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

signatureStudio nullable read-only

The contract signature for the studio.

Property Description
created read-only

The date on which the entity was created.

ipAddress

The IP address of the user agent recording the signature.

publicId

The public identifier for this contract signature. This is used on all public screens and printable views of the contract as a transaction identifier.

signature

A signature.

signatureType

The type of signature.

Status Description
studio The signature was created by the studio.
client The signature was created by the client.
type

The type of resource represented.

userAgent

The full user agent identifier string of the user agent recording the signature.

type

The type of resource represented.

409 Conflict

The request could not be completed due to a conflict with the current state of the target resource.

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.

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/Contract"
        }
      }
    },
    "description": "The contract to which the signature was added.",
    "headers": {
      "Content-Location": {
        "description": "The URL to the contract that is located in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "409": {
    "$ref": "#/components/responses/conflictError"
  }
}

Deletes a linked contract from a invoice.

Removes the linked contract from the invoice.

delete
/studio/brand/{brandId}/invoice/{invoiceId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract identifier.

invoiceId required

An invoice 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

Responds with the invoice on success.

Headers
Header Description
Content-Location

The URL of the invoice in the response body.

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
acceptedPaymentTypes

An array of payment types this invoice accepts.

activity read-only

A list of activities that have occurred with this invoice.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme this invoice uses.

cancelationMessage

Optional cancelation message to include in studio-to-client emails sent when invoice status moves to canceled state.

contact required read-only

The base definition for a contact.

Property Description
address required nullable

The address for this contact.

birthDate nullable

The date on which this contact was born.

birthDateDisplay read-only

The date on which this contact was born, properly formatted according to the brand’s locale.

brandId write-only deprecated

When creating a contact, a brandId may be provided to create the contact under a different brand.

This is deprecated in favor of using the other brand's contact collection resource to create contacts for the brand.

businessName nullable

The name for the business with which this contact is associated.

created read-only

The date on which this contact was created

email

The email address for this contact.

firstName nullable

The first name for this contact.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

lastName nullable

The last name for this contact.

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 nullable

The full name for this contact.

notes nullable

Notes made by the studio about this contact.

phone nullable

The phone number for this contact.

refereeContacts read-only

Contacts that have been referred by this contact.

referringContact nullable read-only

The contact who referred this contact.

referringContactId nullable

The identifier for the contact who referred this contact.

resourceCounts read-only
tags

Tags describing this contact.

thirdPartyId nullable

The identifier for this contact in the source system from which it originated.

type

The type of resource represented.

contactId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contracts read-only

An array of linked contracts.

created read-only

The creation date of this invoice.

creditCardOnFile required nullable

The credit card on file for this invoice, if applicable.

Property Description
billingPostalCode

The billing address postal code.

cardNumber

The card number (masked in responses).

cardType read-only

The type of credit card.

cvvCode write-only

The card CVV/CVC/CSC code.

emailAddress

The email address for the person making the payment.

enableAutoPay

Whether auto-pay should be turned on for this credit card on the given invoice.

expirationMonth

The card expiration month.

expirationYear

The card expiration year.

nameOnCard

The card-holder name.

type

The type of object represented.

creditCardTransactions read-only

An array of invoice credit card transactions, showing all attempts to charge a card for this invoice, including approved/declined attempts.

currencyCode read-only

Identifies the currency used for this invoice.

currencySymbol read-only

The currency symbol for the currency used for this invoice.

customInvoiceId read-only

A client-facing identifier for this invoice, starting at 1000 for each studio.

discountTotal read-only

The total amount of all discounts applied to this invoice.

discounts

An array of discounts applied to this invoice template.

dueTotal read-only

The total amount of this invoice that is due.

emailAutomationGroupId nullable

The identifier for the email automation group this invoice uses.

finalDueDate nullable read-only

The date on which this invoice must be paid in full.

grandTotal

The invoice grand total.

id

The identifier for this invoice.

installments

An array of invoice installments, defining the installment schedule for this invoice. Installments are required for invoices having a grandTotal greater than zero, but disallowed for Invoices having a grandTotal of zero.

invoiceRetainerLabel nullable

This label represents how the studio wishes to refer to the initial payment represented by retainerPercent or retainerFixedAmount for this invoice. This property is required if retainerPercent or retainerFixedAmount contain non-null values.

The following labels are available. You are responsible for displaying appropriate human-readable strings for these labels, translated for your audience.

ShootProof Identifier Description
non-refundable-payment The initial payment should be referred to as a "non-refundable payment" when displaying the invoice to the studio's customer.
deposit The initial payment should be referred to as a "deposit" when displaying the invoice to the studio's customer.
retainer The initial payment should be referred to as a "retainer" when displaying the invoice to the studio's customer.
invoiceStatus

The human-readable name of the current status of this invoice.

invoiceTemplateId nullable

The identifier for the invoice template from which this invoice was created.

isHidden

Whether or not the invoice should be hidden

issueDate

The date on which this invoice was issued.

items

An array of line items for this invoice.

languageCode

The Unicode CLDR language tag for the language used in this invoice.

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.

notesToClient

Notes to display on the invoice for the client.

paidTotal read-only

The total amount of this invoice that has been paid.

paymentConfirmationText

A message sent to the client upon receipt of payment.

payments read-only

An array of invoice payments, showing a history of all payments made on this invoice.

publicId read-only

The public identifier for this invoice (may be used in the portal website).

retainerFixedAmount nullable

Suggested fixed amount of retainer. If a retainer is defined, one of retainerPercent or retainerFixedAmount will be non-null.

retainerPercent nullable

Suggested amount of retainer in a percentage from 1-100. If a retainer is defined, one of retainerPercent or retainerFixedAmount will be non-null.

retainerTotal read-only

The total amount for the invoice retainer.

salesTaxPercent nullable

A decimal number from 0-100, specifying the sales tax percentage.

salesTaxTitle nullable

A label to apply to the sales tax percent on the invoice when viewed by the client.

salesTaxTotal

The total amount of sales tax on the invoice.

subtotal

The invoice subtotal.

taxableSubtotal

The taxable subtotal of the invoice, based on its taxable items.

type

The type of object represented.

404 Not Found

The requested resource could not be found.

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.

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/Invoice"
        }
      }
    },
    "description": "Responds with the invoice on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the invoice in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  }
}

Adds a linked contract to an invoice.

Links the given contract to the invoice.

put
/studio/brand/{brandId}/invoice/{invoiceId}/contract/{contractId}

Example Request

Path Parameters

Property Description
brandId required

The brand identifier.

contractId required

A contract identifier.

invoiceId required

An invoice 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

Responds with the invoice on success.

Headers
Header Description
Content-Location

The URL of the invoice in the response body.

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
acceptedPaymentTypes

An array of payment types this invoice accepts.

activity read-only

A list of activities that have occurred with this invoice.

brandTheme

A brand theme.

brandThemeId

The identifier for the brand theme this invoice uses.

cancelationMessage

Optional cancelation message to include in studio-to-client emails sent when invoice status moves to canceled state.

contact required read-only

The base definition for a contact.

Property Description
address required nullable

The address for this contact.

birthDate nullable

The date on which this contact was born.

birthDateDisplay read-only

The date on which this contact was born, properly formatted according to the brand’s locale.

brandId write-only deprecated

When creating a contact, a brandId may be provided to create the contact under a different brand.

This is deprecated in favor of using the other brand's contact collection resource to create contacts for the brand.

businessName nullable

The name for the business with which this contact is associated.

created read-only

The date on which this contact was created

email

The email address for this contact.

firstName nullable

The first name for this contact.

id

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

lastName nullable

The last name for this contact.

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 nullable

The full name for this contact.

notes nullable

Notes made by the studio about this contact.

phone nullable

The phone number for this contact.

refereeContacts read-only

Contacts that have been referred by this contact.

referringContact nullable read-only

The contact who referred this contact.

referringContactId nullable

The identifier for the contact who referred this contact.

resourceCounts read-only
tags

Tags describing this contact.

thirdPartyId nullable

The identifier for this contact in the source system from which it originated.

type

The type of resource represented.

contactId

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

contracts read-only

An array of linked contracts.

created read-only

The creation date of this invoice.

creditCardOnFile required nullable

The credit card on file for this invoice, if applicable.

Property Description
billingPostalCode

The billing address postal code.

cardNumber

The card number (masked in responses).

cardType read-only

The type of credit card.

cvvCode write-only

The card CVV/CVC/CSC code.

emailAddress

The email address for the person making the payment.

enableAutoPay

Whether auto-pay should be turned on for this credit card on the given invoice.

expirationMonth

The card expiration month.

expirationYear

The card expiration year.

nameOnCard

The card-holder name.

type

The type of object represented.

creditCardTransactions read-only

An array of invoice credit card transactions, showing all attempts to charge a card for this invoice, including approved/declined attempts.

currencyCode read-only

Identifies the currency used for this invoice.

currencySymbol read-only

The currency symbol for the currency used for this invoice.

customInvoiceId read-only

A client-facing identifier for this invoice, starting at 1000 for each studio.

discountTotal read-only

The total amount of all discounts applied to this invoice.

discounts

An array of discounts applied to this invoice template.

dueTotal read-only

The total amount of this invoice that is due.

emailAutomationGroupId nullable

The identifier for the email automation group this invoice uses.

finalDueDate nullable read-only

The date on which this invoice must be paid in full.

grandTotal

The invoice grand total.

id

The identifier for this invoice.

installments

An array of invoice installments, defining the installment schedule for this invoice. Installments are required for invoices having a grandTotal greater than zero, but disallowed for Invoices having a grandTotal of zero.

invoiceRetainerLabel nullable

This label represents how the studio wishes to refer to the initial payment represented by retainerPercent or retainerFixedAmount for this invoice. This property is required if retainerPercent or retainerFixedAmount contain non-null values.

The following labels are available. You are responsible for displaying appropriate human-readable strings for these labels, translated for your audience.

ShootProof Identifier Description
non-refundable-payment The initial payment should be referred to as a "non-refundable payment" when displaying the invoice to the studio's customer.
deposit The initial payment should be referred to as a "deposit" when displaying the invoice to the studio's customer.
retainer The initial payment should be referred to as a "retainer" when displaying the invoice to the studio's customer.
invoiceStatus

The human-readable name of the current status of this invoice.

invoiceTemplateId nullable

The identifier for the invoice template from which this invoice was created.

isHidden

Whether or not the invoice should be hidden

issueDate

The date on which this invoice was issued.

items

An array of line items for this invoice.

languageCode

The Unicode CLDR language tag for the language used in this invoice.

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.

notesToClient

Notes to display on the invoice for the client.

paidTotal read-only

The total amount of this invoice that has been paid.

paymentConfirmationText

A message sent to the client upon receipt of payment.

payments read-only

An array of invoice payments, showing a history of all payments made on this invoice.

publicId read-only

The public identifier for this invoice (may be used in the portal website).

retainerFixedAmount nullable

Suggested fixed amount of retainer. If a retainer is defined, one of retainerPercent or retainerFixedAmount will be non-null.

retainerPercent nullable

Suggested amount of retainer in a percentage from 1-100. If a retainer is defined, one of retainerPercent or retainerFixedAmount will be non-null.

retainerTotal read-only

The total amount for the invoice retainer.

salesTaxPercent nullable

A decimal number from 0-100, specifying the sales tax percentage.

salesTaxTitle nullable

A label to apply to the sales tax percent on the invoice when viewed by the client.

salesTaxTotal

The total amount of sales tax on the invoice.

subtotal

The invoice subtotal.

taxableSubtotal

The taxable subtotal of the invoice, based on its taxable items.

type

The type of object represented.

404 Not Found

The requested resource could not be found.

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.

409 Conflict

If the invoice is linked to a different contract, then we respond with a 409 Conflict response.

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.

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/Invoice"
        }
      }
    },
    "description": "Responds with the invoice on success.",
    "headers": {
      "Content-Location": {
        "description": "The URL of the invoice in the response body.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "404": {
    "$ref": "#/components/responses/notFoundError"
  },
  "409": {
    "content": {
      "application/problem+json": {
        "schema": {
          "$ref": "#/components/schemas/Error"
        }
      }
    },
    "description": "If the invoice is linked to a different contract, then we respond\nwith a `409 Conflict` response."
  }
}

Create a signature

post
/studio/signature

Example Request

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 signature to create.

application/vnd.shootproof+json
Property Description
signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

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/Signature"
      }
    }
  },
  "description": "The signature to create.",
  "required": true
}

201 Created

The newly-created signature.

Headers
Header Description
Location

The URL to the newly-created signature.

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
created read-only

The date on which the entity was created.

id read-only

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

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.

publicId read-only

The public identifier for this signature (may be used in the portal website).

signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

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/Signature"
        }
      }
    },
    "description": "The newly-created signature.",
    "headers": {
      "Location": {
        "description": "The URL to the newly-created signature.",
        "schema": {
          "format": "uri",
          "type": "string"
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/validationError"
  }
}

Get a signature

get
/studio/signature/{signatureId}

Example Request

Header Parameters

Property Description
Accept

Optionally, you may provide an Accept header with a value of image/svg+xml to be redirected to an SVG representation of the signature.

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

The signature.

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
created read-only

The date on which the entity was created.

id read-only

An entity identifier. It may be either an integer or a universally unique identifier (UUID) represented as a string.

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.

publicId read-only

The public identifier for this signature (may be used in the portal website).

signaturePaths

The SVG paths that define this signature.

svgViewbox

The SVG viewbox that defines the dimensions of this signature.

type

The type of resource represented.

Alternate Response Body

When the Content-Type of the response is image/svg+xml, the following properties will be available in the response body.

Properties
A signature represented as an SVG image.
"<svg viewBox=\"0 0 430 150\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path stroke=\"black\" stroke-width=\"2\" fill=\"none\" shape-rendering=\"auto\" stroke-linejoin=\"round\" d=\"M125.5,66 L125.5,66 L126.5,66 L127.5,66 L127.5,66 L128.5,66 L129.5,66 L129.5,66 L129.5,66 L130.5,66 L130.5,66 L130.5,66 L131.5,66 L131.5,66 L132.5,65 L132.5,65 L132.5,65 L132.5,65\"></path>\n</svg>"

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/Signature"
        }
      },
      "image/svg+xml": {
        "examples": {
          "svg": {
            "summary": "A signature represented as an SVG image.",
            "value": "<svg viewBox=\"0 0 430 150\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path stroke=\"black\" stroke-width=\"2\" fill=\"none\" shape-rendering=\"auto\" stroke-linejoin=\"round\" d=\"M125.5,66 L125.5,66 L126.5,66 L127.5,66 L127.5,66 L128.5,66 L129.5,66 L129.5,66 L129.5,66 L130.5,66 L130.5,66 L130.5,66 L131.5,66 L131.5,66 L132.5,65 L132.5,65 L132.5,65 L132.5,65\"></path>\n</svg>"
          }
        },
        "schema": {
          "title": "A signature represented as an SVG image.",
          "type": "string"
        }
      }
    },
    "description": "The signature."
  },
  "default": {
    "$ref": "#/components/responses/defaultError"
  }
}