Download OpenAPI specification:Download
Bushel reserves the right to make backwards-compatible additions to any of these schemas at any point without prior notice. To ensure that your integration is not adversely impacted by any of these changes, make sure your JSON deserialization is configured to allow/ignore unknown properties.
Deprecated properties should not be used -- they will be removed in future versions. This removal will be communicated months in advance and we will work with you to avoid any interruptions to your service. We recommend migrating to the specified alternatives (see the notes on each deprecated property).
ID fields should be treated as opaque identifiers -- do not attempt to parse them.
5xx errors are often thrown directly by the web server and JSON data cannot be guaranteed to contain a JSON body. For this reason, the body should not be parsed and a generic message should be shown to the user.
Bushel Fulfillment™ enables better business relationships among grain companies regardless of the technology they use to manage their operation. Bushel Fulfillment™ empowers:
Bushel Fulfillment™ is designed for both traditional grain companies with physical assets as well as grain marketing firms, direct shippers, or nontraditional grain entities. No matter how they purchase grain and sell it to other partners in the supply chain, Bushel Fulfillment™ brings transparency and efficiency to their business.
The data push happens on a recurring basis, typically in 1hr intervals. Records that have been updated since the last push are transmitted.
Array of objects (Account Wrapper) | |
object |
{- "data": [
- {
- "account": {
- "id": "123-FFARMS1",
- "remote_id": "FFARMS1",
- "name": "Fastidious Farms",
- "company": {
- "id": "123",
- "name": "Local Grain Co-op"
}, - "phones": [
- {
- "phone": "2025550123"
}
], - "created_at": "2020-11-30T21:15:32.000Z",
- "updated_at": "2020-11-30T21:15:32.000Z",
- "deleted_at": null
}
}
], - "meta": {
- "current_page": 1,
- "page_count": 1,
- "page_size": 1000,
- "total_count": 1,
- "total_pages": 1
}
}
The feed marker is used to track which records need to be transmitted on the next run. It automatically advances as records are pushed to {$CUSTOMER_BASE_URL}/feed. If the Customer wants Bushel to retransmit records that have already been pushed, this endpoint can be used to reset the marker for the next run. The specified marker timestamp must be in the year 2016 or later.
channel_slug required | string Example: insuranceco A unique identifier for the Customer's channel. Provided by Bushel. |
entity_type required | string Enum: "accounts" "tickets" "contracts" "settlements" Example: tickets The entity type |
timestamp required | string <date-time> minimum date of 2016-01-01T00:00:00+00:00 |
code | string |
message | string |
object |
{- "timestamp": "2019-08-24T14:15:22Z"
}
{- "code": "VALIDATION_ERROR",
- "message": "You have validation errors in your submission",
- "validation_messages": {
- "timestamp": [
- "The timestamp field is required"
]
}
}
Bushel Production™ enables Farmers to share digital copies of their scale tickets and contract data with Bushel Production™ customers.
Whether for regulatory/auditing purposes (crop insurance), for accounting/profitability analysis (farm management software), or something else entirely - Bushel Production™ has you covered.
Farmers can use the UI found at this URL to opt-in to sharing their scale ticket and contract data with the Bushel Production customer. This opt-in process is as follows:
Scale ticket and contract from the subscribed account(s) will then be periodically transmitted to the Bushel Production™ customer's $CUSTOMER_BASE_URL/feed endpoint.
callback_url required | string <url> Example: callback_url=https://customer.example.com Where the user should be redirected to after configuring their subscriptions. |
display_name required | string Example: display_name=InsuranceCo The name of the Bushel Production customer. It will be displayed on the subscription management page. |
partner_id required | string Example: partner_id=123-456-789 Provided by the Bushel Production customer as a unique identifier to correlate subscription changes with their system. This value is used to scope subscription management - i.e. only subscriptions created with the same partner_id will be shown to the user on subsequent visits. For example, if the Farmer sets up a subscription for their account and the value 'abc' was provided as the partner_id, then revisits the page with a partner_id of '123', the subscription will not be shown. However, if the partner_id of 'abc' is passed, the subscription that was created will be displayed for editing. An example of how this feature could be used: A crop insurance company could use this to scope subscriptions to specific policies, such that their Farmers or Agents can manage data subscriptions for multiple insurance policies separately. |
partner_slug required | string Example: partner_slug=PARTNER_SLUG A unique identifier for the Customer's channel. Provided by Bushel. |
phone required | string <phone> Example: phone=5555555555 Optionally pre-loads the farmer's phone number on the initial authentication screen. This should be 10 digits with NO other characters. |
The data push happens on a recurring basis, typically in 1hr intervals. Records that have been updated since the last push are transmitted.
Array of objects (Account Wrapper) | |
object |
{- "data": [
- {
- "account": {
- "id": "123-FFARMS1",
- "remote_id": "FFARMS1",
- "name": "Fastidious Farms",
- "company": {
- "id": "123",
- "name": "Local Grain Co-op"
}, - "phones": [
- {
- "phone": "2025550123"
}
], - "created_at": "2020-11-30T21:15:32.000Z",
- "updated_at": "2020-11-30T21:15:32.000Z",
- "deleted_at": null
}
}
], - "meta": {
- "current_page": 1,
- "page_count": 1,
- "page_size": 1000,
- "total_count": 1,
- "total_pages": 1
}
}
The feed marker is used to track which records need to be transmitted on the next run. It automatically advances as records are pushed to {$CUSTOMER_BASE_URL}/feed. If the Customer wants Bushel to retransmit records that have already been pushed, this endpoint can be used to reset the marker for the next run. The specified marker timestamp must be in the year 2016 or later.
channel_slug required | string Example: insuranceco A unique identifier for the Customer's channel. Provided by Bushel. |
entity_type required | string Enum: "accounts" "tickets" "contracts" "settlements" Example: tickets The entity type |
timestamp required | string <date-time> minimum date of 2016-01-01T00:00:00+00:00 |
code | string |
message | string |
object |
{- "timestamp": "2019-08-24T14:15:22Z"
}
{- "code": "VALIDATION_ERROR",
- "message": "You have validation errors in your submission",
- "validation_messages": {
- "timestamp": [
- "The timestamp field is required"
]
}
}