Badges gain you admittance to a Convention.
You'll need the registration
ConventionPrivilege to edit badges.
Badges are accessed via /api/badge
.
See "Object Properties" in Introduction for basic shared properties.
Complete details in BadgeProperties. It also has the following read-only properties:
A unique name that can be used to easily identify this badge.
See "Related Objects" in Introduction for how to use them.
The BadgeType that this badge gets its configuration from.
If this badge was assigned via an Exhibitor booth for free, then it will be attached to a Booth.
The Convention this badge belongs to.
The ConventionCart this badge sits in (if any).
The ConventionReceipt showing the transaction history of this badge (if it was created via a checkout process).
The Discount used on this badge (if any).
If this badge was assigned via an Exhibitor sponsorship for free, then it will be attached to a Sponsor.
The User that controls this badge.
See "Relationships" in Introduction for how to use them.
The list of LibraryGameCheckouts associated with this badge, if any.
Activity information associated with this badge, if any.
The PlayToWins associated with this badge, if any.
SoldProducts are merch items associated with the Badge (purchased or granted).
Tickets associated with the Badge (purchased or granted).
If the badge's convention requires a badge to volunteer, the list of VolunteerShifts associated with the Badge, if any.
See "Includes" in Introduction for how to use them.
If a badge is given via a TTE Friendship and a new User recipeint is created for the Badge,
this flags if the user has logged in yet for the first time (activated their account).
1
means yes,
0
means no.
This include will set several values for the badge.
Flags if the Badge's BadgeType includes any complimentary Tickets.
1
means yes,
0
means no.
Simple comp tickets are ones for events available generally.
Group comp tickets are ones for events available only via EventGroups.
The third flag is for either.
Counts of any unclaimed complimentary Tickets allowed with the Badge. See above for distinctions between the different comp ticket categories.
Count of unclaimed comp tickets by EventGroup ID
,
a la:
{ [id]: [count], .. }
This include will set two flags for the badge.
Flags if the Badge's BadgeType includes any complimentary Products. 1
means yes, 0
means no.
Flags if the Badge has unclaimed complimentary Products. 1
means yes, 0
means no.
The ConventionDays covered by the Badge (actually its BadgeType).
Sets three flags for the Badge indicating if it has claimed complimentary SoldProducts or Tickets. 1
means yes, 0
means no.
Whether the badge has claimed any complimentary merch.
Whether the badge has claimed any tickets complimentary outside of EventGroups.
Whether the badge has claimed any tickets complimentary within EventGroups.
Replaced with has_complimentaries
, see above.
A flag indicating if the Badge has claimed complimentary Products (actually SoldProducts, merch). 1
means yes, 0
means no.
If the Convention allows permissive gifting, flags if the purchaser is giving the Badge to a user who is not yet the purchaser's TTE friend (Friendship invitation is sent at completion of Badge purchase).
A very descriptive name for this badge. It pulls data from several objects, which is why it is not included by default.
The services used to fetch and manipulate badges.
This will search across all conventions. To search on a single convention see "Relationships" in Convention.
GET /api/badge
Searches a partial name.
Returns:
{ "paging" : {...}, "items" : [ { "id" : "xxx", "name_full" : "Joe User", ... }, ... ] }
Generally you don't create badges this way, instead you do it through the ConventionCart API, or for organizers/admins via endpoint /api/badge/verified
. This will put a badge in the system, but it will not be marked verified. It will still need to go through a checkout process or some other means of marking itself verified.
POST /api/badge
Returns the same as a normal read.
This will create a badge that is fully verified. You'll of course need to have the registration
ConventionPrivilege to do this.
POST /api/badge/verified
Same as a normal badge creation.
If you specify the email
field, the system will try to find a user account with that email, and then one of two things will happen. - If it finds a user account with that email, the badge will be attached to that user account. - If it does not, then TTE will create an account with that email address for the new badge, and TTE will send an email to the address asking the user to set a password for their account.
Note that TTE does not check if the email is in use on another badge. User account emails are unique, but badge emails cannot be. A user does not have to use the same email address on a badge that they have for their user account. So if you are creating a badge with an email address from another badge, because you want the new badge to belong to the same user/attendee, double-check with the user that you are using the email address that will identify their user account.
Returns the same as a normal read.
GET /api/badge/xxx
Returns:
{ "id" : "xxx", "name_full" : "Joe User", ... }
PUT /api/badge/xxx
Returns the same as a normal read.
DELETE /api/badge/xxx
You need to specify this to refund if purchased with cash in the point of sale system.
Returns:
{ "success" : 1 }
PUT /api/badge/xxx/check-in
Returns the same as a normal read.
PUT /api/badge/xxx/reverse-check-in
Returns the same as a normal read.
POST /api/badge/xxx/user
Returns the same as a normal read.
This refunds a charge for a badge without deleting it. Use of this endpoint requires the registration
privilege.
POST /api/badge/xxx/convert/free
Returns the same as a normal read.
Convert a badge purchase to a different BadgeType. This will charge or refund the difference in the costs. This cannot be used for organizer-granted badges.
POST /api/badge/xxx/convert/type/:badgetype_id
The ID of the BadgeType to convert the badge to.
Returns a normal read of the badge converted to.
Return a list of complimentary ticket associated with the badge.
GET /api/badge/xxx/tickets/complimentary
Returns a list as ../tickets
would, but complimentary ones only.