Skip to main content

MilMove Support API (0.0.1)

Download OpenAPI specification:Download

The Support API gives you programmatic access to support functionality useful for testing and debugging. This API is not available in the Production environment.

All endpoints are located at /support/v1/.

moveTaskOrder

The moveTaskOrder represents a military move that has been sent to a contractor. It contains all the information about shipments, including service items, estimated weights, actual weights, requested and scheduled move dates, etc.

listMTOs

Functionality

This endpoint lists all MoveTaskOrders regardless of whether or not they have been made available to Prime.

It will provide nested information about the Customer and any associated MTOShipments, MTOServiceItems and PaymentRequests.

query Parameters
since
integer <timestamp>

Only return move task orders updated since this time.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createMoveTaskOrder

Creates an instance of moveTaskOrder. Currently this will also create a number of nested objects but not all. It will currently create

  • MoveTaskOrder
  • Order
  • Customer
  • User
  • Entitlement

It will not create addresses, duty stations, shipments, payment requests or service items. It requires an existing contractor ID, destination duty station ID, origin duty station ID, and an uploaded orders ID to be passed into the request.

This is a support endpoint and will not be available in production.

Request Body schema: application/json
orderID
string <uuid>

ID of the Order object

required
object (Order)
availableToPrimeAt
string or null <date-time>

Indicates this MoveTaskOrder is available for Prime API handling.

In production, only MoveTaskOrders for which this is set will be available to the API.

approvedAt
string or null <date-time>

Indicates this MoveTaskOrder has been approved by an office user such as the Task Ordering Officer (TOO).

contractorID
required
string <uuid>

ID associated with the contractor, in this case Prime

Array of objects (PaymentRequests)
Array of objects (MTOServiceItem)

Array of MTOServiceItems associated with this MoveTaskOrder.

Array of objects (MTOShipments)
ppmType
string
Enum: "FULL" "PARTIAL"

If the move is a PPM, indicates whether it is full or partial.

ppmEstimatedWeight
integer

If the move is a PPM, this is the estimated weight in lbs.

status
string (MoveStatus)
Enum: "DRAFT" "SUBMITTED" "APPROVED" "CANCELED"

Current status of this MoveTaskOrder

Responses

Request samples

Content type
application/json
{
  • "orderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "order": {
    },
  • "availableToPrimeAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "contractorID": "5db13bb4-6d29-4bdb-bc81-262f4513ecf6",
  • "paymentRequests": [
    ],
  • "mtoServiceItems": [
    ],
  • "mtoShipments": [
    ],
  • "ppmType": "FULL",
  • "ppmEstimatedWeight": 0,
  • "status": "DRAFT"
}

Response samples

Content type
application/json
{
  • "id": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "orderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "order": {
    },
  • "referenceId": "1001-3456",
  • "availableToPrimeAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "contractorID": "5db13bb4-6d29-4bdb-bc81-262f4513ecf6",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "paymentRequests": [
    ],
  • "mtoServiceItems": [
    ],
  • "mtoShipments": [
    ],
  • "ppmType": "FULL",
  • "ppmEstimatedWeight": 0,
  • "eTag": "string",
  • "status": "DRAFT",
  • "moveCode": "ABC123"
}

getMoveTaskOrder

Functionality

This endpoint gets an individual MoveTaskOrder by ID.

It will provide nested information about the Customer and any associated MTOShipments, MTOServiceItems and PaymentRequests.

This is a support endpoint and is not available in production.

path Parameters
moveTaskOrderID
required
string

UUID of move task order to use.

Responses

Response samples

Content type
application/json
{
  • "id": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "orderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "order": {
    },
  • "referenceId": "1001-3456",
  • "availableToPrimeAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "contractorID": "5db13bb4-6d29-4bdb-bc81-262f4513ecf6",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "paymentRequests": [
    ],
  • "mtoServiceItems": [
    ],
  • "mtoShipments": [
    ],
  • "ppmType": "FULL",
  • "ppmEstimatedWeight": 0,
  • "eTag": "string",
  • "status": "DRAFT",
  • "moveCode": "ABC123"
}

makeMoveTaskOrderAvailable

Updates move task order availableToPrimeAt to make it available to prime. No request body required.

This is a support endpoint and will not be available in production.

path Parameters
moveTaskOrderID
required
string

UUID of move task order.

header Parameters
If-Match
required
string

Optimistic locking is implemented via the If-Match header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a 412 Precondition Failed error.

Responses

Response samples

Content type
application/json
{
  • "id": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "orderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "order": {
    },
  • "referenceId": "1001-3456",
  • "availableToPrimeAt": "2019-08-24T14:15:22Z",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "contractorID": "5db13bb4-6d29-4bdb-bc81-262f4513ecf6",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "paymentRequests": [
    ],
  • "mtoServiceItems": [
    ],
  • "mtoShipments": [
    ],
  • "ppmType": "FULL",
  • "ppmEstimatedWeight": 0,
  • "eTag": "string",
  • "status": "DRAFT",
  • "moveCode": "ABC123"
}

hideNonFakeMoveTaskOrders

Updates move task order without fake user data show to false. No request body required.

This is a support endpoint and will not be available in production.

Responses

Response samples

Content type
application/json
{
  • "numberMovesHidden": 0,
  • "moves": [
    ]
}

paymentRequest

listMTOPaymentRequests

Functionality

This endpoint lists all PaymentRequests associated with a given MoveTaskOrder.

This is a support endpoint and is not available in production.

path Parameters
moveTaskOrderID
required
string <uuid>

Only return move task orders updated since this time.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

updatePaymentRequestStatus

Updates status of a payment request to REVIEWED, SENT_TO_GEX, TPPS_RECEIVED, REVIEWED_AND_ALL_SERVICE_ITEMS_REJECTED, PAID, EDI_ERROR, or DEPRECATED.

A status of REVIEWED can optionally have a rejectionReason.

This is a support endpoint and is not available in production.

path Parameters
paymentRequestID
required
string <uuid>

UUID of payment request.

header Parameters
If-Match
required
string

Optimistic locking is implemented via the If-Match header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a 412 Precondition Failed error.

Request Body schema: application/json
rejectionReason
string or null

A written reason to provide context for the status.

status
string (Payment Request Status)
Enum: "PENDING" "REVIEWED" "REVIEWED_AND_ALL_SERVICE_ITEMS_REJECTED" "SENT_TO_GEX" "TPPS_RECEIVED" "PAID" "EDI_ERROR" "DEPRECATED"

Responses

Request samples

Content type
application/json
{
  • "rejectionReason": "documentation was incomplete",
  • "status": "PENDING"
}

Response samples

Content type
application/json
{
  • "documentPackage": {
    },
  • "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "isFinal": false,
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "rejectionReason": "documentation was incomplete",
  • "status": "PENDING",
  • "paymentRequestNumber": "1234-5678-1",
  • "recalculationOfPaymentRequestID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "eTag": "string"
}

getPaymentRequestEDI

Returns the EDI (Electronic Data Interchange) message for the payment request identified by the given payment request ID. Note that the EDI returned in the JSON payload will have where there would normally be line breaks (due to JSON not allowing line breaks in a string).

This is a support endpoint and will not be available in production.

path Parameters
paymentRequestID
required
string <uuid>

UUID of the payment request for which EDI should be generated.

Responses

Response samples

Content type
application/json
{
  • "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "edi": "string"
}

processReviewedPaymentRequests

Updates the status of reviewed payment requests and sends PRs to Syncada if the SendToSyncada flag is set

This is a support endpoint and will not be available in production.

Request Body schema: application/json
paymentRequestID
string <uuid>
status
string (Payment Request Status)
Enum: "PENDING" "REVIEWED" "REVIEWED_AND_ALL_SERVICE_ITEMS_REJECTED" "SENT_TO_GEX" "TPPS_RECEIVED" "PAID" "EDI_ERROR" "DEPRECATED"
sendToSyncada
required
boolean or null
readFromSyncada
required
boolean or null
deleteFromSyncada
required
boolean or null

Responses

Request samples

Content type
application/json
{
  • "paymentRequestID": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "status": "PENDING",
  • "sendToSyncada": true,
  • "readFromSyncada": true,
  • "deleteFromSyncada": true
}

Response samples

Content type
application/json
[
  • {
    }
]

recalculatePaymentRequest

Recalculates an existing pending payment request by creating a new payment request for the same service items but is priced based on the current inputs (weights, dates, etc.). The previously existing payment request is then deprecated. A link is made between the new and existing payment requests.

This is a support endpoint and will not be available in production.

path Parameters
paymentRequestID
required
string <uuid>

UUID of the payment request to recalculate.

Responses

Response samples

Content type
application/json
{
  • "documentPackage": {
    },
  • "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "isFinal": false,
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "rejectionReason": "documentation was incomplete",
  • "status": "PENDING",
  • "paymentRequestNumber": "1234-5678-1",
  • "recalculationOfPaymentRequestID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "eTag": "string"
}

mtoServiceItem

updateMTOServiceItemStatus

Updates the status of a service item for a move to APPROVED or REJECTED.

This is a support endpoint and will not be available in production.

path Parameters
mtoServiceItemID
required
string

UUID of mto service item to use.

header Parameters
If-Match
required
string

Optimistic locking is implemented via the If-Match header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a 412 Precondition Failed error.

Request Body schema: application/json
status
string (MTOServiceItemStatus)
Enum: "SUBMITTED" "APPROVED" "REJECTED"

Describes all statuses for a MTOServiceItem.

rejectionReason
string or null

Reason the service item was rejected by the TOO""

Responses

Request samples

Content type
application/json
{
  • "status": "SUBMITTED",
  • "rejectionReason": "item was too heavy"
}

Response samples

Content type
application/json
Example
{
  • "id": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "moveTaskOrderID": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "mtoShipmentID": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "reServiceName": "string",
  • "status": "SUBMITTED",
  • "rejectionReason": "item was too heavy",
  • "modelType": "MTOServiceItemBasic",
  • "eTag": "string",
  • "reServiceCode": "CS"
}

mtoShipment

updateMTOShipmentStatus

Updates a shipment's status to APPROVED or REJECTED for the purpose of testing the Prime API. If APPROVED, rejectionReason should be blank and any value passed through the body will be ignored. If REJECTED, a value in rejectionReason is required.

This is a support endpoint and will not be available in production.

path Parameters
mtoShipmentID
required
string <uuid>

UUID of the shipment being updated.

header Parameters
If-Match
required
string

Optimistic locking is implemented via the If-Match header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a 412 Precondition Failed error.

Request Body schema: application/json
status
string
Enum: "REJECTED" "APPROVED" "SUBMITTED" "CANCELLATION_REQUESTED" "CANCELED" "DIVERSION_REQUESTED" "APPROVALS_REQUESTED"
rejectionReason
string or null

Responses

Request samples

Content type
application/json
{
  • "status": "REJECTED",
  • "rejectionReason": "MTO Shipment not good enough"
}

Response samples

Content type
application/json
{
  • "moveTaskOrderID": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "id": "1f2270c7-7166-40ae-981e-b200ebdf3054",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "approvedDate": "2019-08-24",
  • "scheduledPickupDate": "2019-08-24",
  • "requestedPickupDate": "2019-08-24",
  • "firstAvailableDeliveryDate": "2019-08-24",
  • "primeActualWeight": 4500,
  • "primeEstimatedWeight": 4500,
  • "primeEstimatedWeightRecordedDate": "2019-08-24",
  • "actualPickupDate": "2019-08-24",
  • "requiredDeliveryDate": "2019-08-24",
  • "agents": [
    ],
  • "mtoServiceItems": [
    ],
  • "customerRemarks": "handle with care",
  • "shipmentType": "HHG",
  • "pickupAddress": {
    },
  • "destinationAddress": {
    },
  • "secondaryPickupAddress": {
    },
  • "secondaryDeliveryAddress": {
    },
  • "tertiaryPickupAddress": {
    },
  • "tertiaryDeliveryAddress": {
    },
  • "eTag": "string",
  • "status": "APPROVED",
  • "diversion": true,
  • "rejectionReason": "MTO Shipment not good enough",
  • "pointOfContact": "string",
  • "marketCode": "d"
}

webhook

Test endpoint for creating webhook notifications

This endpoint creates a webhook notification in the database. If the webhook client is running, it may send the notification soon after creation.

Request Body schema: application/json

The notification sent by webhook-client.

eventKey
string

Name of event triggered

traceID
string <uuid>
moveTaskOrderID
string or null <uuid>
objectID
string or null <uuid>
object
string or null <JSON>
status
string (WebhookNotificationStatus)
Enum: "PENDING" "SENT" "SKIPPED" "FAILING" "FAILED"

Statuses available for a Webhook Notification

Responses

Request samples

Content type
application/json
{
  • "eventKey": "PaymentRequest.Update",
  • "traceID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "objectID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "object": "string",
  • "status": "PENDING"
}

Response samples

Content type
application/json
{
  • "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "eventKey": "PaymentRequest.Update",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "firstAttemptedAt": "2019-08-24T14:15:22Z",
  • "traceID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "objectID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "object": "string",
  • "status": "PENDING"
}

Test endpoint for receiving messages from our own webhook-client

This endpoint receives a notification that matches the webhook notification model. This is a test endpoint that represents a receiving server. In production, the Prime will set up a receiving endpoint. In testing, this server accepts notifications at this endpoint and simply responds with success and logs them. The webhook-client is responsible for retrieving messages from the webhook_notifications table and sending them to the Prime (this endpoint in our testing case) via an mTLS connection.

Request Body schema: application/json

The webhook notification being sent

eventKey
string

Name of event triggered

traceID
string <uuid>
moveTaskOrderID
string or null <uuid>
objectID
string or null <uuid>
object
string or null <JSON>
status
string (WebhookNotificationStatus)
Enum: "PENDING" "SENT" "SKIPPED" "FAILING" "FAILED"

Statuses available for a Webhook Notification

Responses

Request samples

Content type
application/json
{
  • "eventKey": "PaymentRequest.Update",
  • "traceID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "objectID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "object": "string",
  • "status": "PENDING"
}

Response samples

Content type
application/json
{
  • "id": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "eventKey": "PaymentRequest.Update",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "firstAttemptedAt": "2019-08-24T14:15:22Z",
  • "traceID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "moveTaskOrderID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "objectID": "c56a4180-65aa-42ec-a945-5fd21dec0538",
  • "object": "string",
  • "status": "PENDING"
}