JobsPurchaseOrdersPost

This endpoint allows you to create a purchase order as a job. This endpoint is usually used after JobsPurchaseOrderPut, which performs preorder validation.

  POST /protected/1/{accesstoken}/jobs/purchaseorders  
Notes:
  • The Polaris user is determined by the AccessToken from staff authentication.
  • To limit permission issues, we recommend using a Polaris staff user account with admin permissions.

Authorization required?

Yes

Protected method?

Yes

MARC Data for Line Item Segments

MARC Tag

Values

Description/Notes

020/024

$c

Purchase order line item price. The system uses this value if no 970 tag subfield $p is present.

970 $c Collection (Polaris collection abbreviation)
970 $f Fund (Polaris fund name or fund alternative name)
970 $h Item template code. The system maps this code to the POLineItemsegments.ItemTemplateCode found in the database and attempts to use this code to find matching item templates.

970

$l

Location (Polaris branch abbreviation), used for purchase order line item segments

970 $m Purchase order line item material type. The system attempts to use this value to find matching item templates.
970 $n Purchase order line item non-public note
970 $p Purchase order line item price. If no 970 tag subfield $p is present, the system uses the price found in the 020 or 024 tag subfield $c.
970 $q Quantity
970 $w Call number

Postback URL Support

If the system administrator enables postback support in the Polaris.Job.API and you provide a valid PostbackURL, a POST request is sent once the purchase order create job has completed. The postback feature appends a query string value to the end of the supplied URL and will POST a JSON string that represents the PAPI job ID.

Example: POST https://localhost:4333/api/postbacklistener?PAPIJobID=C0EB7EB1-0E63-4136-A7A0-0626200C5794

If a postback fails to receive an HTTP 200 OK response, it attempts to resend the request up to six times with an increasing delay between attempts as in the example.

Example: 30 seconds, 1 minute, 2 minutes, 5 minutes, 10 minutes, 1 hour

Note:
The postback might not occur if the purchase order job fails to complete. Use the job status endpoint as a backup mechanism.

Elements Returned

The following elements are returned.

Name

Description/Notes

PAPIErrorCode

PAPI Error code: Negative values represent errors and are defined elsewhere.

Note: On successful completion, the PAPI error code is populated with a positive integer representing the number of rows returned.

ErrorMessage Error or information message
ExternalID The ExternalID originally passed into the method. This allows the caller to track the process using their own unique IDs.
JobGuid The PAPI job globally unique identifier
JobStatusID Job status ID
JobStatusDescription Job status description
LineItemValidationErrors A list of validation errors objects representing each line item in the purchase order

Example

https://[hostname]/PAPIService/REST/protected/v1/1033/100/3/iNDUIy7LquAMDji6h2oyacFaLx3RyuM1/jobs/purchaseorders

JSON Body

{

"Vendor":"btr",

"OrderedAtLocation": "AMS", // Location is a Polaris Organization abbreviation (branch level)

"OrderType": 3, // Firm order (3) - only order type currently supported

"PaymentMethod": 8, // Purchase (8) - only payment method currently supported

"PONumber":"PO-1234",

"PostbackURL": "https://localhost:4333/api/postbacklistener",

"ExternalID":"{B51F75AC-83AF-42A8-9920-21AA372E1ABF}",

"ImportProfileName": "PAPI PO import profile", // optional field.

"MARCLineItems":[

{

"ExternalLineItemID":"{F3BF63B1-E041-5267-1144-7DEE29B0BB2C}",

"Copies":7,

"MARC":{

"leader":"00767cam 22002175i 4500",

"controlfields":[

{

"tag":"001",

"data":"BK0012473191"

},

{

"tag":"005",

"data":"20200102135243.0"

},

{

"tag":"008",

"data":"190424s2020 nyua c 000 1 eng "

}

],

"datafields":[

{

"tag":"010",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"2019018578"

}

]

},

{

"tag":"020",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"9780590353427 (pbk.)"

},

{

"code":"c",

"data":"1.99"

}

]

},

{

"tag":"245",

"ind1":"1",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"My really cool title"

}

]

},

{

"tag":"970",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"l",

"data":"ME2"

},

{

"code":"f",

"data":"CD Spoken Word"

},

{

"code":"c",

"data":"col1"

},

{

"code":"q",

"data":"3"

},

{

"code":"w",

"data":"MP3 FICTION Baldacci, D"

}

]

},

{

"tag":"970",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"l",

"data":"BB1"

},

{

"code":"f",

"data":"CD Spoken Word"

},

{

"code":"c",

"data":"col1"

},

{

"code":"q",

"data":"4"

},

{

"code":"w",

"data":"MP3 FICTION Baldacci, D"

}

]

}

]

}

},

{

"ExternalLineItemID":"{D2BF63B0-D044-4269-9143-7DEE29B0BB1A}",

"Copies":7,

"MARC":{

"leader":"00767cam 22002175i 4500",

"controlfields":[

{

"tag":"001",

"data":"BK0012473191"

},

{

"tag":"005",

"data":"20200102135243.0"

},

{

"tag":"008",

"data":"190424s2020 nyua c 000 1 eng "

}

],

"datafields":[

{

"tag":"010",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"2019018578"

}

]

},

{

"tag":"020",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"9780590353427 (pbk.)"

},

{

"code":"c",

"data":"1.99"

}

]

},

{

"tag":"245",

"ind1":"1",

"ind2":" ",

"subfields":[

{

"code":"a",

"data":"My really cool title"

}

]

},

{

"tag":"970",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"l",

"data":"ME2"

},

{

"code":"f",

"data":"CD Spoken Word"

},

{

"code":"c",

"data":"col1"

},

{

"code":"q",

"data":"3"

},

{

"code":"w",

"data":"MP3 FICTION Baldacci, D"

}

]

},

{

"tag":"970",

"ind1":" ",

"ind2":" ",

"subfields":[

{

"code":"l",

"data":"BB1"

},

{

"code":"f",

"data":"CD Spoken Word"

},

{

"code":"c",

"data":"col1"

},

{

"code":"q",

"data":"4"

},

{

"code":"w",

"data":"MP3 FICTION Baldacci, D"

}

]

}

]

}

}

]

}

Return

{

PAPIErrorCode: 0,

ErrorMessage: "",

JobID: "GUID",

JobStatusID: 0,

JobStatusDescription: "",

ExternalID: "{B51F75AC-83AF-42A8-9920-21AA372E1ABF}" , // unique in B&T TS360

LineItemValidationErrors: [

{

ExternalLineItemID: "{0438E02C-CD66-4432-8FAE-669E58CC2413}",

Errors: [

{ PAPIErrorCode: -12108, ErrorMessage: "Line item segment branch/location 'ME2' not found." },

{ PAPIErrorCode: -12112, ErrorMessage: "Line item segment branch/location 'ME2' does not have any available funds." },

{ PAPIErrorCode: -12110, ErrorMessage: "Line item segment fund 'CD Spoken Word' not found for branch/location 'ME2'." },

{ PAPIErrorCode: -12113, ErrorMessage: "Line item segment collection 'Col1' not found." },

]

}

]

}