GotSurge Partnership API (0.1.0)

Download OpenAPI specification:Download

Introduction

Gotsurge Partnership API allows you to integrate our delivery services into your business workflow.

What is GotSurge ?

GotSurge is building an open & inclusive digital logistics platform to modernise supply logistics. Our objective is to enable end-to-end tracking & visibility of ship supplies logistics by consolidating the scattered delivery-relevant data onto a single dashboard by integrating with ports, ship management software, trucking data, and ship positioning information. More about us.

Being partner with us

Gotsurge provides a collection of essential, lightweight and flexible endpoints allowing you to automate your fulfilment logistics workflow quickly and easily. It normally takes a developer for a week or two to complete an integration ready for our Go-Live Process.

For registering to our Partner list, please contact us at hello@gotsurge.co.

HTTP(S) request

You can communicate with GotSurge API by sending HTTP(S) request. The request consists of Base URL and HTTP(S) Header. The Base URL specifies the resource to which the request is applied. The HTTP(S) Header carries the data type of the request, data type of the response, and the authentication information. GotSurge then sends a response back in JSON format.

Oauth2 to Access GotSurge

GotSurge Partnership API use the OAuth 2.0 protocol for authentication and authorization.

What is Oauth 2.0 ?

OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. This specification and its extensions are being developed within the IETF OAuth Working Group.

This page gives an overview of the OAuth 2.0 authorization scenarios that GotSurge supports, and provides links to more detailed content.

How to use GotSurge Oauth 2.0 ?

To begin, obtain OAuth 2.0 client credentials from the GotSurge Team (hello@gotsurge.co). You will get client_key and secret_key to start the authorization proccess.

For more details, please see:

  1. Basic Oauth2 steps, or
  2. Demo Oauth2

Basic Oauth2 steps

All applications follow a basic pattern when accessing a GotSurge API using OAuth 2.0.
At a high level, you follow five steps:

1. Obtain OAuth 2.0 credentials.

You can obtain OAuth 2.0 credentials from the GotSurge Team (hello@gotsurge.co). You will get client_key and secret_key and keep this information for now.

2. Obtain an access token from the GotSurge Authorization Server.

Before your application can access private data using a GotSurge API, it must obtain an access token that grants access to that API. A single access token can grant varying degrees of access to multiple APIs. A variable parameter called state can you used to controls which return of the authentication process belongs to.

To make this request, your application need to redirect the end-customer to gotsurge env with this parameters:

Params Type Description
client_key Mandatory your client key
redirect_url Mandatory your page that will be used for the user to redirect after complete the Oauth process
state Optional your unique id or reference id

Environment Url

Environment URL
Sandbox staging.gotsurge.co
Production app.gotsurge.co

Use those params to redirect to user to the GotSurge authentication page:

https://<environment_url>/oauth2/auth?
client_key=<your_client_key>
redirect_url=<your_redirect_url>
state=<your_state>

The requests require an authentication step where the user logs in with their GotSurge account. After logging in, the user is asked whether they are willing to grant one or more permissions that your application is requesting. This process is called user consent.

If the user grants the permission, the GotSurge Authorization Server will redirect back to your application with code and state. If the user does not grant the permission, the server returns an error.

3. Exchange the code for access token

After an application obtains the code, you can exchange it with access token via this exchange token API documentation.

4. Send the access token to an API.

After an application obtains an access token, you can sends the token to a GotSurge API in an HTTP Authorization request header.

Access tokens are valid only for the set of operations and resources described in this documentation that need to have a token request.

5. Refresh the access token, if necessary.

Access tokens have limited lifetimes. If your application needs access to a GotSurge API beyond the lifetime of a single access token, it can obtain a refresh token. A refresh token allows your application to obtain new access tokens.

Demo Oauth2

For an interactive demonstration of using OAuth 2.0 with GotSurge, experiment with the OAuth 2.0 Playground.

Sandbox Demo: Demo playground link.

By the end of this demo, you will get the bearer_token that you can use for create tasks.

Since the bearer token will expire in 30 days, you will also get refresh_token to refresh your token later.

Platform Partners

Platform Partners are solution for platform businesses organization that work with third-party partners. You can onboard and create users, organizations behalf of them. As a platform partners you are extending your users from the GotSurge's users.

SSO Platform Partners

GotSurge provide single JWT to authenticate Platform Partners and GotSurge. During the Session Single Sign On, when the authentication is valid, we will inject session_id to your deeplink receive session page. This endpoint allows platform partners to exchange a this time-limited session_id for a bearer_token and refresh_token. The bearer_token is then used for subsequent API requests, same reference to OAuth2 access token and refresh token works.

SSO Flow

SSO Steps

1. User Login at SSO Auth Login page

User Login with input email and password

2. Check if the user is exist in GotSurge

Send request to GotSurge to validate the user, once it's successful, GotSurge server will give short-lived session_id

3. Inject event session_id

When user is validated and session_id is received, we inject it using window.postMessage() with session_id to Platform Partner's deeplink /receive-session URL

4. Exchange Token

Platform Partner hit the GotSurge service to exchange session_id with the access token

5. Check if the Session ID is valid

When the session_id is valid, we will return the access / bearer token and Platform Partners can use that for the future request with same standard OAuth2 behavior

Integration set-up

Inform to GotSurge team (hello@gotsurge.co) to setup deeplink url redirection page after session sign in successful

Click here to see example snippet logic of /receive-session page url

Order Flow

GS Partnership Flow
Detail Process
Description
Oauth2.0 Process
- Redirect to GS
- User Consent
- Exchange Token
The mandatory process to obtain an access / bearer token from the GotSurge Authorization Server.
See the Basic Oauth2 steps for more details.
Task Creation Create & Place the order. Your order will be automatically being broadcasted to drivers and is pending for response.
See the task creation api documentation for more details.

Order Statuses

Dotted lines in the following diagram indicates possible status transition.

GS Statuses
GS Status
Description
broadcasting Order that created and placed by sender will be automatically being broadcasted to drivers and is pending for response.
cancelled Order is cancelled by Merchant or Operator.
This can transition from pending_broadcast or broadcasting.
expired Order is expired by the system due some rules:
- Squad - 30 minutes before pickup end time
- Standard - Pickup end time or max broadcast time
- Marine - No expired for now
accepted Order has been confirmed and pickup will be as scheduled.
pending_pickup Driver has accepted order and is on the way to pickup location.
This can transition from accepted.
pickup_arriving Driver is nearby pickup location and is attempting order takeover.
This can transition from pending_pickup.
unsuccessful_pickup Driver has attempted to pickup the order but has failed to takeover the parcel from sender.
This can transition from pickup_arriving.
pending_delivery Driver has picked up order and is on the way to delivery location.
This can transition from pickup_arriving.
delivery_arriving Driver is nearby delivery location and is attempting order handover.
This can transition from pending_delivery.
unsuccessful_delivery Driver has attempted to pickup the order but has failed to takeover the parcel from sender.
This can transition from delivery_arriving.
complete Order Completed
This can transition from delivery_arriving.

Authentication

GotSurge uses REST API for authorization of the access to API principal OAuth2.0, specifically method of client authentication, see RFC 6479

You can get your detail information and get user token information.

Partner Detail

You can use the your client_key and secret_key to get detail of partner information.

Signature

SIGNATURE = base64(<client_key>:<secret_key>)

SIGNATURE is in lowercase hex (base 64) encoding.

For detail signature, please ask hello@gotsurge.co

path Parameters
signature
required
string

Signature key of the partner to be read

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "client_key": "string",
  • "secret_key": "string",
  • "webhook_url": "string",
  • "name": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_by": "string",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Exchange Token

To get the Bearer Token that can be used to access task sections, you need to sent your client_key, secret_key and code that your received from user authentication process.

Request Body schema: application/json
client_key
required
string

partner client key

secret_key
required
string

partner secret key

code
required
string

user authentication code

Responses

Request samples

Content type
application/json
{
  • "client_key": "string",
  • "secret_key": "string",
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "bearer_token": "string",
  • "refresh_token": "string",
  • "server_time": "2019-08-24T14:15:22Z"
}

Refresh Token

To get newer Bearer Token you can use client_key and refresh_token that you get from user authentication process.

Request Body schema: application/json
client_key
required
string

partner client key

refresh_token
required
string

refresh token from authentication process

Responses

Request samples

Content type
application/json
{
  • "client_key": "string",
  • "refresh_token": "string"
}

Response samples

Content type
application/json
{
  • "bearer_token": "string"
}

Order

Order API is intended for performing order task creation & broadcasting it to GotSurge Driver-Partner, depending on the broadcast & vehicle preference method selected.

You can create, view and cancel a transactions.

Create & Broadcast Tasks

We named order as task and we provide multiple order/task creation up to 20 orders at the time.
All tasks created will be mark status as Broadcasting: Order is placed and broadcast to awaiting to be accepted by Driver.

Please be note that your order will be broadcasted directly to our driver-partner!

Validations

Attributes Validation
from_time_window.start_time_utc - before or equal to from_time_window.end_time_utc
The pickup start time must be earlier than the end time
from_time_window.end_time_utc - before or equal to to_time_window.start_time_utc
The pickup time must be earlier than the delivery time
- before or equal to today's date-time
The pickup start time must be earlier than the end time
to_time_window.start_time_utc - before or equal to to_time_window.end_time_utc
The pickup time must be earlier than the delivery time
price - minimum price start from SGD $2.00 (Format: 200000)
Enter a minimum price from SGD 2.00 (Format: 200000)
Authorizations:
bearerAuth
Request Body schema: application/json
Array of objects (task_post_request)

Responses

Request samples

Content type
application/json
Example
{
  • "tasks": [
    ]
}

Response samples

Content type
application/json
{
  • "tasks": [
    ],
  • "server_time": "2019-08-24T14:15:22Z"
}

Task Detail

You can view the details for an existing task using this endpoint.

Authorizations:
bearerAuth
path Parameters
taskID
required
string

task identifier

Responses

Response samples

Content type
application/json
{
  • "server_time": "2019-08-24T14:15:22Z",
  • "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "tracking_id": "TRACK01XXX56789",
  • "group_tag": "GTRACK0123XXXX89",
  • "invoice_number": "INV0012XXXXX01",
  • "from_address": {
    },
  • "from_time_window": {
    },
  • "from_contact": {
    },
  • "to_address": {
    },
  • "to_time_window": {
    },
  • "to_contact": {
    },
  • "distance_in_meters": 7357,
  • "pickup_note_to_driver": "Please pickup at 2pm",
  • "delivery_note_to_driver": "Meet at the lobby",
  • "is_urgent": true,
  • "price": 120000,
  • "currency": "SGD",
  • "items": [
    ],
  • "cargo_net_quantity": 4,
  • "task_creation_group": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "broadcast_preference": "squad",
  • "client_time_utc": "2019-08-24T14:15:22Z",
  • "client_timezone": "Asia/Singapore",
  • "attachments": [
    ],
  • "org_transporter": {
    },
  • "driver": {
    },
  • "current_status": "pending_broadcast",
  • "statuses": [
    ],
  • "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "platform_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "vehicle_preference": "ltl",
  • "vehicle_emissions_type": "ev",
  • "vehicle_emissions": {
    },
  • "client": {},
  • "updated_at": "2019-08-24T14:15:22Z",
  • "epod": {
    }
}

Cancel Task

You can cancel an existing task using this endpoint.

Note: You can only cancel the task that still in broadcasting's status. Once the task pickup or being delivered by our driver-partner, it cannot be cancelled.

Authorizations:
bearerAuth
Request Body schema: application/json
reason
required
string

Reason to cancel the task

Responses

Request samples

Content type
application/json
{
  • "reason": "Wrong information"
}

Response samples

Content type
application/json
{
  • "message": "Successfully cancel the task"
}

Price

Contains a collection of price related APIs

You can get the price recommendation for order creation

Get price recommendation

You can get price recommendation for 1 pickup location by using this API. It Will return an object containing the fee amount, currency, and distance based on information provided.

Note: First array of Stops is the pickup location. If you have multiple delivery location, you can add another stops below the second array.

"stops": [
  { ... }, // pickup location
  { ... }, // delivery location
  { ... } // another delivery location (multiple delivery)
]

You can add multiple delivery location up to 10 locations. For more than 10 locations, we will only calculate based on the 10's farthest delivery location.

Authorizations:
bearerAuth
Request Body schema: application/json
service_type
string
Enum: "motorcycle" "car" "mpv" "van_1.7m" "van_2.4m" "lorry_10ft" "lorry_14ft" "lorry_24ft" "lorry_40ft"
Array of objects (stop)

Responses

Request samples

Content type
application/json
{
  • "service_type": "car",
  • "stops": [
    ]
}

Response samples

Content type
application/json
{
  • "average_fee": 2000000,
  • "code": "success",
  • "distance": {
    },
  • "total_fee": 2000000,
  • "total_fee_currency": "SGD",
  • "total_waypoint": 1
}

Webhook

GotSurge can send webhook events that notify your other applications upon status triggers in GotSurge. This is useful when a two way integration is required, as the webhook will provide information on the change that has happened in GotSurge

Contact the GotSurge team at hello@gotsurge.co to register your webhook URL with your account.

When events occur, GotSurge will send the event object via HTTP POST request to the webhook URL. To acknowledge receipt of a webhook:

  1. Your webhook endpoint should return a 200 HTTP status code.
  2. Accept our IP address to sent data to your server
  3. There is no authorization process when we POST data to your endpoint

Task Status Updated

When status of task events changed, GotSurge will send the event object via HTTP POST request to the webhook URL.

Please read webhook rule first in this link.

For the list of possible statuses and status transitions, please follow this diagram.

Do note, webhooks events will be posted to your webhook API, you cannot POST to our endpoint to get webhook events! Current display is constrained by Redocly limitations.

Request Body schema: application/json
type
string

Event used for the webhook.

model_name
string

Model used for the webhook.

object (webhook_task_post_data_payload)
object (webhook_task_post_update_payload)
timestamp
string <date-time>

server date time

Responses

Request samples

Content type
application/json
{
  • "type": "update",
  • "model_name": "Task",
  • "data": {
    },
  • "updates": {
    },
  • "timestamp": "2019-08-24T14:15:22Z"
}

Platform Partners

Platform Partners are solution for platform businesses organization that work with third-party partners. You can onboard and create users, organizations behalf of them.

SSO Exchange Token

During the Session Single Sign On, when the authentication is valid, we will inject session_id to your deeplink receive session page. This endpoint allows platform partners to exchange a this time-limited session_id for a bearer_token and refresh_token. The bearer_token is then used for subsequent API requests, same reference to OAuth2 access token and refresh token works.

Request Body schema: application/json
session_id
string

Responses

Request samples

Content type
application/json
{
  • "session_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Response samples

Content type
application/json
{
  • "bearer_token": "string",
  • "refresh_token": "string",
  • "user": {
    }
}

Create Associated Organization

Platform partners can create a new organization behalf of theirs.

Request Body schema: application/json
business_name
string

Responses

Request samples

Content type
application/json
{
  • "business_name": "ABC Merchant"
}

Response samples

Content type
application/json
{
  • "organization": {
    }
}

Associated Organization List

List partners organizations created by platform partners. Only Platform Partners Merchant is authorized.

Authorizations:
bearerAuth
query Parameters
page
integer <int64> >= 1
Default: 1
per_page
integer <int64> >= 1
Default: 200

Responses

Response samples

Content type
application/json
Example
{
  • "meta": {
    },
  • "organizations": [ ]
}

Associated Organization Detail

The ID will be used as case sensitive and exact match filter of organization ID. Platform Partners can't get organization detail outside their managed organization

Authorizations:
bearerAuth
path Parameters
org_id
required
string

ID of the organization to be read

Responses

Response samples

Content type
application/json
{
  • "organization": {
    }
}

List Roles

Return the list of roles within the targeted organization managed by platform partners

Authorizations:
bearerAuth
path Parameters
orgID
required
string

ID of the organization

Responses

Response samples

Content type
application/json
Example
{
  • "roles": [ ]
}

Invite User

Platform partners can create a new user by invitation to organization behalf of theirs. Only Platform Partner's OrgAdmin is authorized.

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Create Tasks

Create a task from platform partners to associated organizations or own and broadcast. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "tasks": [
    ]
}

Response samples

Content type
application/json
{
  • "total_tasks": 1,
  • "tasks": [
    ],
  • "server_time": "2019-08-24T14:15:22Z"
}

Task List

Read tasks from platform partner's associated organizations. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
query Parameters
page
integer <int64> >= 1
Default: 1
per_page
integer <int64> >= 1
Default: 200
order
string
Default: "asc"
Example: order=desc

Responses

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "tasks": [
    ]
}

Task Detail

Read tasks in detail from platform partner's associated organizations. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
path Parameters
taskID
required
string <uuid>

ID of the task to get the detail

Responses

Response samples

Content type
application/json
{
  • "server_time": "2019-08-24T14:15:22Z",
  • "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "tracking_id": "TRACK01XXX56789",
  • "group_tag": "GTRACK0123XXXX89",
  • "invoice_number": "INV0012XXXXX01",
  • "from_address": {
    },
  • "from_time_window": {
    },
  • "from_contact": {
    },
  • "to_address": {
    },
  • "to_time_window": {
    },
  • "to_contact": {
    },
  • "distance_in_meters": 7357,
  • "pickup_note_to_driver": "Please pickup at 2pm",
  • "delivery_note_to_driver": "Meet at the lobby",
  • "is_urgent": true,
  • "price": 120000,
  • "currency": "SGD",
  • "items": [
    ],
  • "cargo_net_quantity": 4,
  • "task_creation_group": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "broadcast_preference": "squad",
  • "client_time_utc": "2019-08-24T14:15:22Z",
  • "client_timezone": "Asia/Singapore",
  • "attachments": [
    ],
  • "org_transporter": {
    },
  • "driver": {
    },
  • "current_status": "pending_broadcast",
  • "statuses": [
    ],
  • "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "platform_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "vehicle_preference": "ltl",
  • "vehicle_emissions_type": "ev",
  • "vehicle_emissions": {
    },
  • "client": {},
  • "updated_at": "2019-08-24T14:15:22Z",
  • "epod": {
    }
}

Update Task

Update task details for own and platform partner's associated organizations. Disallow addition, deletion, or update of the items and attachments. Disallow driver assignment or task completion. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
path Parameters
taskID
required
string

ID of the task to be modified

Request Body schema: application/json
tracking_id
string
invoice_number
string
object (address)
object (time_window)
object (contact)
object (address)
object (time_window)
object (contact)
object (officer_contact)
broadcast_preference
string
Enum: "marine" "squad" "all"
group_tag
string
pickup_note_to_driver
string
delivery_note_to_driver
string
cargo_net_quantity
integer <int32> >= 0
price
integer <int64> >= 0

Unit used is 1/1000 cents, will be set as 0 if the currency is "". The example value (120000 = 120x1000) represents 120 cents.

currency
string

The currency should follow the ISO4217 format.

Array of objects (item)
Array of objects (cargo_detail)
org_id
string
total_item_weight
number <float>
total_weight_unit
string
total_item_volume
number <float>
total_volume_unit
string
total_item_quantity
number <int16>
total_quantity_unit
string
min_price
number <int16>

Unit used is 1/1000 cents

max_price
number <int16>

Unit used is 1/1000 cents

increment
number <int16>

Unit used is 1/1000 cents

admin_fee
number <int16>

Unit used is 1/1000 cents

client_time_utc
string <date-time>
client_timezone
string
vehicle_preference
string
Enum: "ltl" "motorcycle" "car" "mpv" "van_1.7m" "van_2.4m" "lorry_10ft" "lorry_14ft" "lorry_20ft" "lorry_24ft" "lorry_40ft"
service_type
string
Enum: "ftl" "ltl"

Charter a full truck (FTL) or Book only the truck space you need (LTL)

version_rev
required
string

Revision value of the record version

object (task_epod)

Responses

Request samples

Content type
application/json
{
  • "tracking_id": "string",
  • "invoice_number": "string",
  • "from_address": {
    },
  • "from_time_window": {
    },
  • "from_contact": {
    },
  • "to_address": {
    },
  • "to_time_window": {
    },
  • "to_contact": {
    },
  • "officer_contact": {
    },
  • "broadcast_preference": "marine",
  • "group_tag": "Tag example",
  • "pickup_note_to_driver": "Please pickup at 2pm",
  • "delivery_note_to_driver": "string",
  • "cargo_net_quantity": 4,
  • "price": 120000,
  • "currency": "SGD",
  • "items": [
    ],
  • "cargo_details": [
    ],
  • "org_id": "string",
  • "total_item_weight": 0,
  • "total_weight_unit": "string",
  • "total_item_volume": 0,
  • "total_volume_unit": "string",
  • "total_item_quantity": 1,
  • "total_quantity_unit": "lift",
  • "min_price": 500000,
  • "max_price": 1500000,
  • "increment": 100000,
  • "admin_fee": 20000,
  • "client_time_utc": "2019-08-24T14:15:22Z",
  • "client_timezone": "Asia/Singapore",
  • "vehicle_preference": "ltl",
  • "service_type": "ftl",
  • "version_rev": "0-xxxxxxxx",
  • "epod": {
    }
}

Response samples

Content type
application/json
{
  • "server_time": "2019-08-24T14:15:22Z",
  • "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "tracking_id": "TRACK01XXX56789",
  • "group_tag": "GTRACK0123XXXX89",
  • "invoice_number": "INV0012XXXXX01",
  • "from_address": {
    },
  • "from_time_window": {
    },
  • "from_contact": {
    },
  • "to_address": {
    },
  • "to_time_window": {
    },
  • "to_contact": {
    },
  • "distance_in_meters": 7357,
  • "pickup_note_to_driver": "Please pickup at 2pm",
  • "delivery_note_to_driver": "Meet at the lobby",
  • "is_urgent": true,
  • "price": 120000,
  • "currency": "SGD",
  • "items": [
    ],
  • "cargo_net_quantity": 4,
  • "task_creation_group": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "broadcast_preference": "squad",
  • "client_time_utc": "2019-08-24T14:15:22Z",
  • "client_timezone": "Asia/Singapore",
  • "attachments": [
    ],
  • "org_transporter": {
    },
  • "driver": {
    },
  • "current_status": "pending_broadcast",
  • "statuses": [
    ],
  • "org_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "platform_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  • "vehicle_preference": "ltl",
  • "vehicle_emissions_type": "ev",
  • "vehicle_emissions": {
    },
  • "client": {},
  • "updated_at": "2019-08-24T14:15:22Z",
  • "epod": {
    }
}

Create Draft Tasks

Create draft tasks from platform partners to associated organizations or own. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "tasks": [
    ]
}

Response samples

Content type
application/json
{
  • "total_tasks": 1,
  • "tasks": {
    },
  • "server_time": "2019-08-24T14:15:22Z"
}

Broadcast Draft Tasks

Broadcast tasks that is still in draft status. Only Platform Partner's OrgAdmin is authorized.

Authorizations:
bearerAuth
Request Body schema: application/json
task_ids
Array of strings <uuid>

Responses

Request samples

Content type
application/json
{
  • "task_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "updated_tasks": [
    ],
  • "server_time": "2019-08-24T14:15:22Z"
}

Broadcast with Tracking

Batch broadcast draft task and patch task with tracking_id, this endpoint will only update tracking_id to draft task that successfully confirmed to broadcast. Only Platform Partners Merchant is authorized.

Authorizations:
bearerAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "tasks": [
    ]
}

Response samples

Content type
application/json
{
  • "updated_tasks": [
    ],
  • "server_time": "2019-08-24T14:15:22Z"
}

Patch Tracking IDs

Patch multiple task tracking_id

Authorizations:
bearerAuth
Request Body schema: application/json
Array of objects

Responses

Request samples

Content type
application/json
{
  • "tasks": [
    ]
}

Response samples

Content type
application/json
{
  • "updated_tasks": [
    ],
  • "server_time": "2019-08-24T14:15:22Z"
}