General API

Onboarding and Authentication

The following will need to be sent to Swims to onboard a vendor. The Vendor form below is not needed to test the SWIMS Vendor API but will need to be completed before a vendor is given production access.
  1. Vendor Form: ( wip )
  2. Vendors
    • Swims will create a Certificate and Provide To Swims the following. This will be sent with each event to ensure the security of our event endpoint.
      • ClientCertificate.pfx
      • Client Certificate Password
      • Client Will then need to be installed on your server.
  3. Vendors Using Events will also need to.
    • URI where we send the EVENTS
    • The Vendor will create a Certificate and Provide To Swims the following. This will be sent with each event to ensure the security of our event endpoint.
      • RootCertificate.cer
      • ClientCertificate.pfx
      • Client Certificate Password
  4. Club ID to Test With: this should be a club you already have access via legacy API. New Vendors will be given a random test club.

Authentication

Authentication (Creating a Root Certificate)
Authentication (Creating a Server Certificate)
Authentication (Adding Swims Certificate to the Server)

Subscription to Events.

We will provide the ability for a Vendor to “subscribe” to certain events that happen in SWIMS.

Member Events

Member Registers
Member Renewal
Member Updated
Member Upgrade
Member Transfer From Club
Member Transfer To Club
Member Cancels
Member Registration and Renewal Generated when a Member Registers in SWIMS via OMR

Event:(example)

{
	"eventSequence": 1234,
	"eventType": "Member Registration Complete"
	"clubId": "EFD6F74613444017B0DB1884AADBC117"
	"eventData": {
		"vendorId": "DB1884AADBC117"
		"eventDataContextName": "string"
}
After receiving the above event.
  1. 1:
     GET: /swims/getMemberDetails/{clubId}/?memberId={memberId}
  1. 2: IF: new member, add member data to the roster,
  1. 3: IF: renewing member, update member data in the roster
Updated, Upgraded Generated when a member is updated within the SWIMS

Event:(example)

{
	"eventSequence": 1234,
	"eventType": "Member Updated"
	"clubId": "EFD6F74613444017B0DB1884AADBC117"
	"eventData": {
	"eventData": {
		"vendorId": "DB1884AADBC117"
		"eventDataContextName": "string"
}
After receiving the above event.
  1. 1:
     GET: /swims/getMemberDetails/{clubId}/?memberId={memberId}
  1. 2: Update member data in the roster
Member Transfers

A special set of events happens when a member transfers clubs.

  1. In Swims the Transfer is initiated from the Member Details Page by clicking the: initiate transfer button link.
  2. The New Club is entered as well as other transfer data needed.
  3. This creates 2 new events.
    • Member Transfer From Club Event Received by the Club that the member is transferring out of.
    • Member Transfer To Club Event Received by the Club that the member is transferring into.
    • Note: the Vendor Software will only receive both events if both clubs are activated for the Vendor.
  4. Similar to the Member Registration Event, the Vendor Software will need to do the following.
  5. The Vendor will need to reconcile the member data in their system.
    • IF: the member is not found in the Vendor’s system, the Vendor will call.
      • GET: /swims/getMemberDetails/{clubId}/?memberId={memberId}
      • THEN: create the member in their system.
      IF: the is already in the Vendor’s system, the Vendor will call.
      • GET: /swims/getMemberDetails/{clubId}/?memberId={memberId}
      • THEN: update the member in their system, and preform any club transfer procedures in the Vendors System.

Club Events

Club Activates Vendor
Club Deactivates Vendor
Club Activates/Deactivates the Vendor in SWIMS Generated when a Club selects and a approves a vendor in SWIMS

Event:(example)

{
	"eventSequence": "002",
	"eventType": "Member Updated"
	"clubId": "EFD6F74613444017B0DB1884AADBC117"
	"eventData": {
		"vendorId": "DB1884AADBC117"
		"eventDataContextName": "string"
}
After receiving the above event.
  1. 1: Get List of Clubs for a Vendor
  1. 2:
     GET: /swims/getVendorClubs/vendor/{vendorId}
  1. 3: For All New Clubs, add Members to Club Roster
  1. 4:
     GET: /swims/getMemberDetails/{clubId}
  1. 5: Populate Tables with a complete club roster

Swims Terms

memberId:
New randomly-generated 14 alphanumeric ID that will be a member’s unique identifier
oldUsasId :
Old USA Swimming 14 character ID using first name, middle initial, last name, and birthdate
competitionCategory:
New terminology used for Gender
contactInformation:
A Member’s primary contact (Guardian/Emergency Contact depending on age) listed in SWIMS
registrationDate:
The date of a member registration
expirationDate:
the date that a member’s registration expires
offeringId:
The id of the registration type
RegistrationType:
Descriptor for the registration type
TransactionType:
Registration, Upgrade, or Cancel
usasFee:
USA Swimming’s membership fee. For Upgrades, this field will show the delta between original usasFee and the upgraded membership usasFee.
lscFee:
The member’s Local Swimming Committee membership fee. For Upgrades, this field will show the delta between original lscFee and the upgraded membership lscFee.
IsRenewal:
Is the registration for an existing member or a new member
memberGoodStandingExpirationDate:
The date that a member is no longer “In Good Standing”.
In Good Standing:
used to describe all member requirements by registration type are met. For example, an 18+ year old athlete must complete Athlete Protection Training to be a “Member in Good Standing”
clubId:
Alphanumeric ID that is a club’s unique identifier
vendorId:
Alphanumeric ID that is a vendor’s unique identifier
Upgrade:
When a member upgrades their membership, their initial membership will expire (expirationDate is set to yesterday). There will be a new registration record with a registrationDate of today and an expirationDate of the end of the season.