Table of Contents

Class FormSubmissionValueResource

Namespace
Crews.PlanningCenter.Api.People.V2025_11_10
Assembly
Crews.PlanningCenter.Api.dll

A single answer to a single field within a form submission.

When creating a FormSubmission, supply one FormSubmissionValue per answered field as a JSON:API included resource. Each must reference a form_field_id belonging to the parent form; values referencing fields on other forms are silently discarded. Blank values are also discarded.

value is write-only. It is accepted when creating a submission but is never returned when reading one. Read answers back through display_value and, for file fields, attachments.

### Uploading files

File answers reference files that have already been uploaded to the Planning Center upload service. Upload each file first with a multipart POST to https://upload.planningcenteronline.com/v2/files, one file per request. The request authenticates like any other Planning Center API request: a personal access token as HTTP Basic, or an OAuth access token as a Bearer token. It does not have to be the same credential that later creates the submission.

<code><br />curl -X POST https://upload.planningcenteronline.com/v2/files -u <application id>:<secret> -F "file=@waiver.pdf"<br /></code>`<code><br /><br />The response lists the uploaded file under </code>data<code>. Use </code>data[0].id<code> as </code>fileID<code> and </code>data[0].attributes.name<code> as </code>fileName<code>. </code>fileID<code> must be sent exactly as returned, including its datacenter prefix (such as </code>us4-<code>).<br /><br />Uploads are temporary. </code>data[0].attributes.expires_at<code> is 60 minutes after the upload, so create the submission soon after uploading. People copies the file into its own storage when the submission is created, and that copy is unaffected by the upload expiring.<br /><br />A file answer that is malformed, lacks the prefix, or points at an expired or unknown upload fails the request with a </code>422<code> validation error on </code>value<code> that says which.<br /><br /></code>`<code><br />{<br /> "data": { "attributes": { "person_id": "1" } },<br /> "included": [<br /> {<br /> "type": "FormSubmissionValue",<br /> "attributes": {<br /> "form_field_id": "42",<br /> "value": [{ "fileID": "us4-2b1f6c0e-5d3a-4f7e-9c21-8a6d0e4b7f10", "fileName": "waiver.pdf" }]<br /> }<br /> }<br /> ]<br />}<br /></code>

public record FormSubmissionValueResource : JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>, IEquatable<JsonApiResourceIdentifier>, IEquatable<JsonApiResource>, IEquatable<JsonApiResource<FormSubmissionValue>>, IEquatable<JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>>, IEquatable<FormSubmissionValueResource>
Inheritance
JsonApiResourceIdentifier
JsonApiResource
JsonApiResource<FormSubmissionValue>
FormSubmissionValueResource
Implements
IEquatable<JsonApiResourceIdentifier>
IEquatable<JsonApiResource>
Inherited Members
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.ToString()
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.GetHashCode()
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.Equals(JsonApiResource<FormSubmissionValue>)
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.Equals(JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>)
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.<Clone>$()
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.EqualityContract
JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>.Relationships
JsonApiResource<FormSubmissionValue>.Equals(JsonApiResource)
JsonApiResource<FormSubmissionValue>.Equals(JsonApiResource<FormSubmissionValue>)
JsonApiResource<FormSubmissionValue>.Attributes
JsonApiResource.Equals(JsonApiResourceIdentifier)
JsonApiResource.Relationships
JsonApiResource.Links
JsonApiResource.Meta
JsonApiResourceIdentifier.Id
JsonApiResourceIdentifier.LId
JsonApiResourceIdentifier.Type

Constructors

FormSubmissionValueResource()

public FormSubmissionValueResource()

FormSubmissionValueResource(FormSubmissionValueResource)

protected FormSubmissionValueResource(FormSubmissionValueResource original)

Parameters

original FormSubmissionValueResource

Properties

EqualityContract

protected override Type EqualityContract { get; }

Property Value

Type

Methods

Equals(FormSubmissionValueResource?)

public virtual bool Equals(FormSubmissionValueResource? other)

Parameters

other FormSubmissionValueResource

Returns

bool

Equals(JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>?)

public override sealed bool Equals(JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>? other)

Parameters

other JsonApiResource<FormSubmissionValue, FormSubmissionValueRelationships>

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

PrintMembers(StringBuilder)

protected override bool PrintMembers(StringBuilder builder)

Parameters

builder StringBuilder

Returns

bool

ToString()

public override string ToString()

Returns

string

Operators

operator ==(FormSubmissionValueResource?, FormSubmissionValueResource?)

public static bool operator ==(FormSubmissionValueResource? left, FormSubmissionValueResource? right)

Parameters

left FormSubmissionValueResource
right FormSubmissionValueResource

Returns

bool

operator !=(FormSubmissionValueResource?, FormSubmissionValueResource?)

public static bool operator !=(FormSubmissionValueResource? left, FormSubmissionValueResource? right)

Parameters

left FormSubmissionValueResource
right FormSubmissionValueResource

Returns

bool