Register patron

Start Registration Process

POST /api/.../workflow

This method allows the caller to create a patron record. This uses the workflow model.

Request Information

Parameters
Name Type Required Description
WorkflowRequest DtoWorkflowRequest Yes Define this parameter in the request body.
DtoWorkflowRequest
Property Type Nullable Description
WorkflowRequestType Int No Required. For a patron registration, this must be set to 3.
TxnBranchID Int No Transacting branch ID. This should represent where the request originated from. Typically the same as the logged on branch, but in the case of offline processing it would be the branch that was logged into during offline processing.
TxnUserID Int No Transacting Polaris user ID. This should represent who originally created this request. Typically the same as the logged on user, but in the case of offline processing it would be the user that was logged on during offline processing.
TxnWorkstationID Int No Transacting workstation ID. This should represent where the request originated from. Typically the same as the logged on workstation, but in the case of offline processing it would be the workstation that was logged into during offline processing.
RequestExtension DtoWorkflowRequestExtension No A patron registration request requires a DtoWorkflowRequestExtension that contains a DtoPatronRegistrationData object.
WorkflowReplies List of DtoWorkflowReply Yes It is possible to pass in a list of replies for automated processing.
DtoWorkflowRequestExtension
Property Type Nullable Description
WorkflowRequestExtensionType Int No For a patron registration request, the extension type must be a 4 (PatronRegistrationData).
Data Object No This must be an extension data object of type DtoPatronRegistrationData
DtoPatronRegistrationData
Property Type Nullable Description
Barcode String No Patron's barcode
PatronCodeID Int No Patron Code ID
OrganizationID Int No Organization ID of the patron's registered branch
SystemBlocks int Yes Patron System Block bitmask
YTDCircCount int Yes Year-to-date circulation count
LifetimeCircCount Int Yes Lifetime circulation count
LastActivityDate String Yes Date of last activity
ClaimCount Int Yes Total number of claimed returned and claimed never had
LostItemCount Int Yes Total number of lost items
ChargesAmount Int Yes Total about of charges
CreditsAmount Int Yes Total amount of credits
AccruedCharges Int Yes Total amount of accrued charges
NoticesAddress String Yes Label of which address to send notices to
DMLID Int Yes Digital media library ID of patron photo.
Offline Boolean Yes Offline patron registration transaction. Possible values are True or False.
OfflineTxnDate DateTime Yes Offline patron registration transaction datetime. Expected if Offline is set to True.
Registration object No A DtoPatronRegistration object
DtoPatronRegistration
Property Type Nullable Description
NameFirst String Yes Required based on SA. Patron first name
NameLast String No Required. Patron last name
NameMiddle String Yes Patron middle name
NameTitle String Yes
PatronID Int Yes ID of the patron.
LanguageID Int Yes Language of the patron
NameSuffix String Yes
PhoneVoice1 String Yes Patron's first phone number.
PhoneVoice2 String Yes Patron's second phone number.
PhoneVoice3 String Yes Patron's third phone number.
EmailAddress String Yes Patron's email address
Password String Yes Patron password
EntryDate DateTime Yes is the date when the record is inserted.
ExpirationDate DateTime No is the date when the patron's registration expires.
AddrCheckDate DateTime No
UpdateDate DateTime No Date when the patron registration is modified.
User1 String Yes User defined field one.
User2 String Yes User defined field two
User3 String Yes User defined field three.
User4 String Yes User defined field four
User5 String Yes User defined field five.
Gender Integer Yes patron's gender.
Birthdate DateTime Yes Patron birthdate
RegistrationDate DateTime Yes Date when the patron gets registered.
FormerID String Yes
ReadingListEnabled String Yes Denotes whether Polaris will track the items that the patron checks out.
PhoneFAX String Yes Patron's fax number.
AltEmailAddress String Yes Secondary patron email address
SDIEmailAddress String Yes Default Email address to be used for SDI notification.
SDIPositiveAssent Boolean Yes Indicates that the patron has given permission for the SDI system to record information about their searches.
ExcludeFromOverdues Boolean Yes Denotes if the patron is to be excluded from overdue notices.
CollectionExempt Boolean Yes Denotes if the patron is to be excluded from collection reports.
SDIPositiveAssentDate Datetime Yes
DeliveryOptionID Int Yes 1 Mail, 2 Email, 3 Telephone 1, 4 Telephone 2, 5 Telephone 3, 6 FAX, 7 EDI
DeletionExempt Boolean Yes Denotes if the patron is to be excluded from deletion - if this is set, then the patron cannot be deleted.
ExcludeFromHolds Boolean Yes Indicates whether the patron is to be excluded from hold request notices.
ExcludeFromBills Boolean Yes Indicates whether the patron is to be excluded from billing notices.
EmailFormatID Int Yes Is a code which has the patron's default email type, either plain text or html.
PatronFirstLastName String Yes The Patron's full name, first name first. This field is the Concatenation of NameFirst + " " + NameLast + ", " + NameMiddle.
PatronFullName String Yes The Patron's full name, last name first. Concatenation of NameLast + ", " + NameFirst + " " + NameMiddle.
StatisticalClassID Int Yes
Username String Yes
MergeDate DateTime Yes Date this patron was merged with another.
MergeUserID Int Yes Polaris user who did the merge
MergeBarcode String Yes The barcode of the secondary patron which was merged.
EnableSMS Bool Yes Indicates whether or not an additional TXT message notice will be sent along with a primary notice.
Phone1CarrierID Int Yes ID of PhoneVoice1 carrier. References to Polaris.SA_MobilePhoneCarriers.
Phone2CarrierID Int Yes ID of PhoneVoice2 carrier. References to Polaris.SA_MobilePhoneCarriers.
Phone3CarrierID Int Yes ID of PhoneVoice3 carrier. References to Polaris.SA_MobilePhoneCarriers.
eReceiptOptionID Int Yes ID of eReceipt option. Possible values are Email 2, Text Messaging 8, All 100
TxtPhoneNumber Byte Yes Indicates which phone number is used for TXT/SMS notification and/or eReceipt. The valid value of this column is 1, 2 or 3 which represents PhoneVoice1, PhoneVoice2 or PhoneVoice3 accordingly.
Addresses Array of DtoPatronAddress Yes Patron can have multiple addresses
PatronCustomData Array of DtoPatronCustomData Yes Patron can have multiple custom data fields
hasPassword Boolean Yes Indicates if password exists for the patron.
LegalNameFirst String Yes Patron first name. Required if UseLegalNameOnNotices is true.
LegalNameMiddle String Yes Patron middle name
LegalNameLast String Yes Patron last name. Required if UseLegalNameOnNotices is true.
UseLegalNameOnNotices Boolean Yes Use name on identification for print and telephone notices.
StaffAcceptedUseSingleName Boolean No Staff member accepted Use Single Name Field during patron registration.
RequestPickupBranchID Int Yes Preferred pickup location branch's ID.
IncreasedCheckOutLimits Boolean No Is patron allowed to use increased check out limits.
DtoPatronAddress
Property Type Nullable Description
PatronID Int Yes ID of patron record, internally used, primary key.
AddressID Int Yes ID of the address.
AddressTypeID Int No
AddressTypeDescription String Yes Label for the address type
AddressLabelID Int Yes Label ID for the address. Not required if AddressLabelDescription is supplied.
AddressLabelDescription String Yes Label for the address. Not required if AddressLabelID is supplied.
Verified Boolean Yes
VerificationDate Datetime Yes
PolarisUserID Int Yes
StreetOne String No
StreetTwo String Yes
StreetThree String Yes
MunicipalityName String Yes
PostalCode String No
ZipPlusFour String Yes
City String No
State String No
CountryName String No
County String Yes
DtoPatronCustomData
Property Type Nullable Description
PatronDataLabelValue String No Label of the custom data field
PatronCustomDataDefinitionID Int No
IsRequired String No Is field required (Yes/No)
PolarisCustomDataTypeID Int No
CustomDataEntry String Yes Actual value of the field
Request body
application/json, text/json
{
    "type":"registerpatron",
    "WorkflowRequestType":3,
    "TxnBranchID":"62",
    "TxnUserID":"1",
    "TxnWorkstationID":"1177",
    "WorkflowReplies":null,
    "RequestExtension":
    {
        "WorkflowRequestExtensionType":4,
        "Data":
        {
            "Barcode":"1234567890",
            "PatronCodeID":1,
            "OrganizationID":62,
            "SystemBlocks":0,
            "YTDCircCount":0,
            "LifetimeCircCount":0,
            "LastActivityDate":null,
            "ClaimCount":null,
            "LostItemCount":0,
            "ChargesAmount":0,
            "CreditsAmount":0,
            "AccruedCharges":0,
            "NoticesAddress":"(None)",
            "DMLID":"0",
            "Registration":
            {
                "NameFirst":"John",
                "NameLast":"Smith",
                "NameMiddle":"",
                "NameTitle":"",
                "NameSuffix":"",
                "LanguageID":1,
                "EmailAddress":"",
                "AltEmailAddress":"",
                "Password":"",
                "EntryDate":null,
                "ExpirationDate":"2018-10-27T04:00:00.000Z",
                "AddrCheckDate":"2016-10-27T04:00:00.000Z",
                "UpdateDate":null,
                "Gender":1,
                "Birthdate":null,
                "RegistrationDate":"2015-10-27T04:00:00.000Z",
                "FormerID":"",
                "eReceiptOptionID":0,
                "DeliveryOptionID":1,
                "EnableSMS":false,
                "Username":"username",
                "StatisticalClassID":0,
                "Phone1CarrierID":null,
                "Phone2CarrierID":null,
                "Phone3CarrierID":null,
                "PhoneVoice1":"518",
                "PhoneVoice2":"",
                "PhoneVoice3":"",
                "TxtPhoneNumber":"",
                "PhoneFAX":"",
                "SystemBlocks":0,
                "YTDCircCount":0,
                "CollectionExempt":false,
                "ExcludeFromOverdues":false,
                "ExcludeFromHolds":false,
                "ExcludeFromBills":false,
                "ExcludeFromAlmostOverdueAutoRenew":false,
                "ExcludeFromPatronRecExpiration":false,
                "ExcludeFromInactivePatron":false,
                "EmailFormatID":2,
                "ReadingListEnabled":false,
                "DeletionExempt":false,
                "User1":"(None)",
                "User2":"No restrictions",
                "User3":"",
                "User4":"(None)",
                "User5":"Alice",
                "LegalNameFirst":"",
                "LegalNameMiddle":"",
                "LegalNameLast":"",
                "UseLegalNameOnNotices":false,
                "StaffAcceptedUseSingleName":true,
                "RequestPickupBranchID":99,
                "IncreasedCheckOutLimits":false,
                "Addresses":
                [
                    {
                        "AddressTypeID":"1",
                        "AddressLabelDescription":"Home",
                        "PostalCode":"13078",
                        "StreetOne":"3033 Yellow Wood Parkway",
                        "StreetTwo":"",
                        "StreetThree":"",
                        "City":"JAMESVILLE",
                        "State":"NY",
                        "County":"ONONDAGA",
                        "CountryID":1,
                        "AddressID":0,
                        "CountryName":"USA",
                        "AddressLabelDescription":"Home",
                        "MunicipalityName":null,
                        "PolarisUserID":1,
                        "VerificationDate":null,
                        "Verified":false,
                        "ZipPlusFour":"1234"
                    }
                ]
            }
        }
    }
}
Request body - offline transaction
application/json, text/json
{
    "type":"registerpatron",
    "WorkflowRequestType":3,
    "TxnBranchID":"62",
    "TxnUserID":"1",
    "TxnWorkstationID":"1177",
    "WorkflowReplies":null,
    "RequestExtension":
    {
        "WorkflowRequestExtensionType":4,
        "Data":
        {
            "Barcode":"1234567890",
            "PatronCodeID":1,
            "OrganizationID":62,
            "SystemBlocks":0,
            "YTDCircCount":0,
            "LifetimeCircCount":0,
            "LastActivityDate":null,
            "ClaimCount":null,
            "LostItemCount":0,
            "ChargesAmount":0,
            "CreditsAmount":0,
            "AccruedCharges":0,
            "NoticesAddress":"(None)",
            "DMLID":"0",
            "Offline":"true",
            "OfflineTxnDate":"2015-10-21T16:23:36",
            "Registration":
            {
                "NameFirst":"John",
                "NameLast":"Smith",
                "NameMiddle":"",
                "NameTitle":"",
                "NameSuffix":"",
                "LanguageID":1,
                "EmailAddress":"",
                "AltEmailAddress":"",
                "Password":"",
                "EntryDate":null,
                "ExpirationDate":"2018-10-27T04:00:00.000Z",
                "AddrCheckDate":"2016-10-27T04:00:00.000Z",
                "UpdateDate":null,
                "Gender":1,
                "Birthdate":null,
                "RegistrationDate":"2015-10-27T04:00:00.000Z",
                "FormerID":"",
                "eReceiptOptionID":0,
                "DeliveryOptionID":1,
                "EnableSMS":false,
                "Username":"username",
                "StatisticalClassID":0,
                "Phone1CarrierID":null,
                "Phone2CarrierID":null,
                "Phone3CarrierID":null,
                "PhoneVoice1":"518",
                "PhoneVoice2":"",
                "PhoneVoice3":"",
                "TxtPhoneNumber":"",
                "PhoneFAX":"",
                "SystemBlocks":0,
                "YTDCircCount":0,
                "CollectionExempt":false,
                "ExcludeFromOverdues":false,
                "ExcludeFromHolds":false,
                "ExcludeFromBills":false,
                "ExcludeFromAlmostOverdueAutoRenew":false,
                "ExcludeFromPatronRecExpiration":false,
                "ExcludeFromInactivePatron":false,
                "EmailFormatID":2,
                "ReadingListEnabled":false,
                "DeletionExempt":false,
                "User1":"(None)",
                "User2":"No restrictions",
                "User3":"",
                "User4":"(None)",
                "User5":"Alice",
                "LegalNameFirst":"",
                "LegalNameMiddle":"",
                "LegalNameLast":"",
                "UseLegalNameOnNotices":false,
                "Addresses":
                [
                    {
                        "AddressTypeID":"1",
                        "AddressLabelDescription":"Home",
                        "PostalCode":"13078",
                        "StreetOne":"3033 Yellow Wood Parkway",
                        "StreetTwo":"",
                        "StreetThree":"",
                        "City":"JAMESVILLE",
                        "State":"NY",
                        "County":"ONONDAGA",
                        "CountryID":1,
                        "AddressID":0,
                        "CountryName":"USA",
                        "AddressLabelDescription":"Home",
                        "MunicipalityName":null,
                        "PolarisUserID":1,
                        "VerificationDate":null,
                        "Verified":false,
                        "ZipPlusFour":"1234"
                    }
                ],
                "PatronCustomData":
                [
                    {   
                        "PatronDataLabelValue":"Label",
                        "PatronCustomDataDefinitionID":8,
                        "IsRequired":"true",
                        "PolarisCustomDataTypeID":"2",
                        "CustomDataEntry":"John Smith"
                    }
                ],
            }
        }
    }
}

Response Information

Example - Charge for registration response
application/json, text/json
{
   "WorkflowRequestGuid":"3ef2065c-21f0-4743-bff6-3528a5decbd2",
   "WorkflowRequestType":3,
   "WorkflowStatus":-3,
   "Prompt":{
      "WorkflowPromptID":44,
      "Name":null,
      "Description":null,
      "WorkflowPromptType":12,
      "WorkflowPromptOptions":5,
      "DefaultPromptOption":6,
      "Title":"Patron registration charge",
      "Message":"There is $1.00 charge for registration. Please choose to Pay, Waive or Charge to the account.",
      "AlternateYesText":"",
      "AlternateNoText":"",
      "AlternateCancelText":"",
      "AlternateContinueText":"",
      "PromptExtension":{
         "WorkflowPromptExtensionType":6,
         "Data":{
            "FeeAmount":1.0000,
            "ModifyFineAllowed":true,
            "TaxRate": 0.0222,
            "StartingTaxAmount": 0.02,
            "PatronID":360223
         }
      }
   },
   "InformationMessages":[

   ],
   "AnswerExtension":null,
   "CircTranType":0,
   "ReceiptType":0,
   "ReceiptUrl":"",
   "FineEReceiptSent":false
}
Example - Successful registration response with payment receipt
application/json, text/json
{
   "WorkflowRequestGuid":"3ef2065c-21f0-4743-bff6-3528a5decbd2",
   "WorkflowRequestType":3,
   "WorkflowStatus":1,
   "Prompt":null,
   "InformationMessages":[
      {
         "Type":1,
         "Title":"",
         "Message":"Registration successful"
      }
   ],
   "AnswerExtension":{
      "WorkflowAnswerExtensionType":4,
      "Data":{
         "PatronID":360223,
         "DMLID":0,
         "OrgID":3,
         "StatClassID":0,
         "BlocksChanged":false,
         "DuplicatePatrons":[

         ]
      }
   },
   "CircTranType":0,
   "ReceiptType":2,
   "ReceiptUrl":"receipts/print_payment_receipt?paypatronid=360223&paybranchid=3&payuserid=1&ccpayment=true&ccType=&ccAmount=1.1&ccAuthNo=&ccTxnID=4400&ccProcFee=0.1&ccNumber=XXXXXXXXXXXXXXXX&loginbranchid=3&languageid=1033&billedlost=false&txnid=3706186&waiveonly=false",
   "FineEReceiptSent":true
}
Example - offline request response
application/json, text/json
{
  "WorkflowRequestGuid": "00000000-0000-0000-0000-000000000000",
  "WorkflowRequestType": 3,
  "WorkflowStatus": 1,
  "Prompt": null,
  "InformationMessages": [
    {
      "Type": 4,
      "Title" : "",
      "Message": "Patron Registration fee $2.00 charged to patron account."
    },
    {
      "Type": 4,
      "Title": "",
      "Message": "Invalid barcode type: XXOFFLUPLOAD6"
    },
    {
      "Type": 1,
      "Title": "",
      "Message": "Registration successful"
    }
  ],
  "AnswerExtension": {
    "WorkflowAnswerExtensionType": 4,
    "Data": {
      "PatronID": 359009,
      "DMLID": 0,
      "OrgID": 3,
      "StatClassID":0,
      "BlocksChanged": false,
      "DuplicatePatrons": [
        {
          "PatronID": 358750,
          "PatronName": "2345, 2345245",
          "Barcode": "23452435232",
          "Street": null,
          "City": null,
          "PostalCode": null,
          "Phone": null,
          "Email": null,
          "BirthDate": null,
          "BranchID": 3,
          "BranchName": "Amsterdam Free Library",
          "BranchAbr": "AMS",
          "User1": "999999",
          "User2": "No restrictions",
          "User3": null,
          "User4": null,
          "User5": "Marcia"
        },
        {
          "PatronID": 358732,
          "PatronName": "23452435, 23452345",
          "Barcode": "243562435",
          "Street": null,
          "City": null,
          "PostalCode": null,
          "Phone": null,
          "Email": null,
          "BirthDate": null,
          "BranchID": 3,
          "BranchName": "Amsterdam Free Library",
          "BranchAbr": "AMS",
          "User1": "999999",
          "User2": "No restrictions",
          "User3": null,
          "User4": null,
          "User5": "Marcia"
        },
      ]
    }
  },
  "CircTranType": 0,
  "ReceiptType": 0,
  "ReceiptUrl": "",
  "FineEReceiptSent":false
}

Reply Information

Example - Pay registration charge with credit card
application/json, text/json
{
   "WorkflowPromptID":44,
   "WorkflowPromptResult":6,
   "ReplyValue":"1.00",
   "ReplyExtension":{
      "WorkflowReplyExtensionType":2,
      "Data":{
         "PaymentMethod":12,
         "Note":"",
         "PaidAmount":1,
         "ProcessedCreditCard":true,
         "CreditDuePatron":0,
         "ReturnReceiptUrl":true,
         "CreditCardPaymentData":{
            "TrackId":4016,
            "Guid":"7387fbf2-553c-4fe1-a4dd-3d805975",
            "VendorId":0,
            "BaseAddress":null,
            "CustomerID":null,
            "TerminalID":null,
            "UserName":null,
            "Password":null,
            "Amount":1.1,
            "PatronID":null,
            "Language":null,
            "Result":0,
            "TrackNumber":null,
            "Error":"OK",
            "TxnStatus":"Finished",
            "TroutId":"TROUTD",
            "CCDigits":"XXXX",
            "CCType":"????",
            "AuthCode":null,
            "Request":"",
            "Response":"\r\nSuccessTROUTDOKXXXX????\r\n",
            "ILSStoreTransactionId":4400,
            "ProcessingFee":0.1
         }
      }
   }
}