Paying an event registration

This article details the steps involved in paying an event registration.

The following are the steps involved in paying an event registration:

  1. Create the registration without payment
  2. Make any adjustments to the event registration (adding functions, answering questions, etc.)
  3. Find the invoice and submit a ComboOrder for that invoice

The following information details an example of the above steps, and bypasses the part of making adjustments.

Register for events

This will be to the endpoint https://{{URL}}/api/EventRegistration/_execute
Here you will need to modify all properties below the RegistrationType.

{     

  "$type": "Asi.Soa.Events.DataContracts.EventRegistrationRequest, Asi.Contracts", 
  "EntityTypeName": "EventRegistration", 
  "OperationName": "RegisterEvent", 
  "RegistrationType": 3,    "EventId": "ANNCONF", 
  "RegistrationOptionFunctionId": "ANNCONF/ANNGONFREG", 
  "FunctionId": "ANNCONF/Exhibit1", 
  "RegistrantId": "21095", 
  "RegisteredBy": "21095", 
  "BillTo": "21095", 
  "Waitlist": false 

}

Making adjustments to the EventRegistrations

See EventRegistration.

Find the invoice

πŸ“˜

Other parameters might be needed to filter for the desired invoice. The following example will filter by the BillToParty and the InvoiceDate.

The endpoint looks like this:
https://{{URL}}/api/Invoice? BillToParty.PartyId=21095&InvoiceDate=2019-05-29T00:00:00

This will return a PagedResult with the invoice(s) requested.

In this example, a single invoice is retrieved. To retrieve multiple invoices, you will need to parse the json object a bit better to retrieve the one that matches an InvoiceLine's ItemCode of the RegistrationOption from above or another function. You could build up an IQA for this and have a better filter.

Making the payment

To make the payment, you will need to submit a ComboOrder given the invoice we found in the previous step.

There are only a few required fields for the ComboOrder:

{    "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",   

     "Currency": {"$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts"},  

     "Order": {         

         "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",                           "OrderTotal": {}, 

         "BillToCustomerParty": {} 

    }, 

    "Invoices": {"$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts"},     

   "Payments": {"$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts"} 

}

From the above, the OrderTotal needs to match the Invoice.Balance that will be paid and the BillToCustomerParty must match the BillToParty from the Invoice.

PROPERTY NAME

DATA TYPE

CHILD PROPERTIES

NOTE

Currency

CurrencyData

Order

OrderData

OrderTotal
BillToCustomerParty

OrderTotal = Invoice.Balance
BillToCustomerParty = Invoice.BillToParty

Invoices

InvoiceSummaryDataCollection

Payments

RemittanceDataCollection

Here is an example with the Invoice retrieved and making a CASH payment.

{
    "$type": "Asi.Soa.Commerce.DataContracts.ComboOrderData, Asi.Contracts",
    "Currency": {
        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
        "CurrencyCode": "USD",
        "DecimalPositions": 2,
        "ExtensionData": {
            "$type": "System.Runtime.Serialization.ExtensionDataObject, System.Runtime.Serialization"
        }
    },
    "Order": {
        "$type": "Asi.Soa.Commerce.DataContracts.OrderData, Asi.Contracts",
        "OrderTotal": {
            "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
            "Amount": 350,
            "Currency": {
                "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                "CurrencyCode": "USD",
                "DecimalPositions": 2,
                "ExtensionData": {
                    "$type": "System.Runtime.Serialization.ExtensionDataObject, System.Runtime.Serialization"
                }
            },
            "IsAmountDefined": true
        },
        "BillToCustomerParty": {
            "$type": "Asi.Soa.Commerce.DataContracts.CustomerPartyData, Asi.Contracts",
            "PartyId": "21095"
        }
    },
    "Invoices": {
        "$type": "Asi.Soa.Commerce.DataContracts.InvoiceSummaryDataCollection, Asi.Contracts",
        "$values": [
            {
                "$type": "Asi.Soa.Commerce.DataContracts.LegacyInvoiceData, Asi.Contracts",
                "LockedEffectiveDate": "0001-01-01T00:00:00",
                "Lines": {
                    "$type": "Asi.Soa.Commerce.DataContracts.InvoiceLineDataCollection, Asi.Contracts",
                    "$values": [
                        {
                            "$type": "Asi.Soa.Commerce.DataContracts.InvoiceLineData, Asi.Contracts",
                            "InvoiceLineId": "8134:1",
                            "LineNumber": 1,
                            "Item": {
                                "$type": "Asi.Soa.Commerce.DataContracts.ItemSummaryData, Asi.Contracts",
                                "Description": "Registration for all three days of the annual conference plus networking events.",
                                "ItemClass": {
                                    "$type": "Asi.Soa.Commerce.DataContracts.ItemClassSummaryData, Asi.Contracts",
                                    "ItemClassId": "MEETING",
                                    "Name": "Event Function"
                                },
                                "ItemCode": "ANNCONF/ANNGONFREG",
                                "ItemId": "ANNCONF/ANNGONFREG",
                                "Name": "Full Conference"
                            },
                            "ShipToParty": {
                                "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
                                "CityName": "Memphis",
                                "CountryName": "",
                                "CountrySubEntityName": "TN",
                                "Email": "[email protected]",
                                "Phone": "(901) 272-9906",
                                "PartyId": "21095",
                                "Id": "21095",
                                "UniformId": "f1122ce3-d922-492a-b5d4-be027e8623d1",
                                "Status": {
                                    "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                                    "PartyStatusId": "A",
                                    "Name": "Active",
                                    "Description": "Active"
                                },
                                "Name": "Mr. Larry Estrada",
                                "Sort": "ESTRADA, LARRY",
                                "IsMarkedForDelete": false
                            },
                            "Quantity": {
                                "$type": "Asi.Soa.Commerce.DataContracts.QuantityData, Asi.Contracts",
                                "Amount": 1
                            },
                            "UnitPrice": {
                                "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                                "Amount": 350,
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "ExtendedAmount": {
                                "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                                "Amount": 350,
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "Balance": {
                                "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                                "Amount": 350,
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "PaymentAdjustmentAmount": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "AdjustmentAmount": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "PendingAdjustmentAmount": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "PendingPaymentAdjustmentAmount": {
                                "$type": "System.Nullable`1[[Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts]], mscorlib",
                                "Currency": {
                                    "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                                    "CurrencyCode": "USD",
                                    "DecimalPositions": 2,
                                    "ExtensionData": null
                                },
                                "IsAmountDefined": true
                            },
                            "AdditionalAttributes": {
                                "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                                "$values": []
                            }
                        }
                    ]
                },
                "AdditionalCharges": {
                    "$type": "Asi.Soa.Commerce.DataContracts.InvoiceAdditionalChargeDataCollection, Asi.Contracts",
                    "$values": []
                },
                "ScheduledPayments": {
                    "$type": "Asi.Soa.Commerce.DataContracts.ScheduledPaymentDataCollection, Asi.Contracts",
                    "$values": []
                },
                "InvoiceId": "8134",
                "FinancialEntity": {
                    "$type": "Asi.Soa.Commerce.DataContracts.FinancialEntitySummaryData, Asi.Contracts",
                    "FinancialEntityId": "DEMO",
                    "Name": "iMIS International",
                    "IsDefault": true
                },
                "InvoiceNumber": "R8134",
                "InvoiceDate": "2019-05-29T00:00:00",
                "BillToParty": {
                    "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
                    "CityName": "Memphis",
                    "CountryName": "",
                    "CountrySubEntityName": "TN",
                    "Email": "[email protected]",
                    "Phone": "(901) 272-9906",
                    "PartyId": "21095",
                    "Id": "21095",
                    "UniformId": "f1122ce3-d922-492a-b5d4-be027e8623d1",
                    "Status": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                        "PartyStatusId": "A",
                        "Name": "Active",
                        "Description": "Active"
                    },
                    "Name": "Mr. Larry Estrada",
                    "Sort": "ESTRADA, LARRY",
                    "IsMarkedForDelete": false
                },
                "SoldToParty": {
                    "$type": "Asi.Soa.Membership.DataContracts.PartySummaryData, Asi.Contracts",
                    "CityName": "Memphis",
                    "CountryName": "",
                    "CountrySubEntityName": "TN",
                    "Email": "[email protected]",
                    "Phone": "(901) 272-9906",
                    "PartyId": "21095",
                    "Id": "21095",
                    "UniformId": "f1122ce3-d922-492a-b5d4-be027e8623d1",
                    "Status": {
                        "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts",
                        "PartyStatusId": "A",
                        "Name": "Active",
                        "Description": "Active"
                    },
                    "Name": "Mr. Larry Estrada",
                    "Sort": "ESTRADA, LARRY",
                    "IsMarkedForDelete": false
                },
                "Description": "ESTRADA, LARRY, Annual Conference",
                "InvoiceAmount": {
                    "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                    "Amount": 350,
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2,
                        "ExtensionData": null
                    },
                    "IsAmountDefined": true
                },
                "PaymentAdjustmentAmount": {
                    "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2,
                        "ExtensionData": null
                    },
                    "IsAmountDefined": true
                },
                "PendingPaymentAdjustmentAmount": {
                    "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2,
                        "ExtensionData": null
                    },
                    "IsAmountDefined": true
                },
                "Balance": {
                    "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                    "Amount": 350,
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2,
                        "ExtensionData": null
                    },
                    "IsAmountDefined": true
                },
                "AccountingMethod": 1,
                "AdditionalAttributes": {
                    "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                    "$values": [
                        {
                            "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                            "Name": "SourceSystem",
                            "Value": "MEETING"
                        }
                    ]
                }
            }
        ]
    },
    "Payments": {
        "$type": "Asi.Soa.Commerce.DataContracts.RemittanceDataCollection, Asi.Contracts",
        "$values": [
            {
                "$type": "Asi.Soa.Commerce.DataContracts.RemittanceData, Asi.Contracts",
                "ReferenceNumber": "CheckNumber",
                "PaymentMethod": {
                    "$type": "Asi.Soa.Commerce.DataContracts.PaymentMethodData, Asi.Contracts",
                    "Name": "Main Checking Account",
                    "PaymentMethodId": "CASH",
                    "PaymentType": "Cash",
                    "Message": "Cash"
                },
                "Amount": {
                    "$type": "Asi.Soa.Core.DataContracts.MonetaryAmountData, Asi.Contracts",
                    "Amount": 350,
                    "Currency": {
                        "$type": "Asi.Soa.Core.DataContracts.CurrencyData, Asi.Contracts",
                        "CurrencyCode": "USD",
                        "DecimalPositions": 2,
                        "ExtensionData": null
                    },
                    "IsAmountDefined": true
                }
            }
        ]
    }
}

Use the AdditionalAttributes property to specify the BatchId.

"AdditionalAttributes": {
                    "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts",
                    "$values": [
                        {
                            "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts",
                            "Name": "BatchId",
                            "Value": "201231-1"
                        }
                    ]
                },