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:
- Create the registration without payment
- Make any adjustments to the event registration (adding functions, answering questions, etc.)
- 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"
}
]
},
Updated about 4 years ago