Badges gain you admittance to a Convention.
You'll need the registration
ConventionPrivilege to edit badges.
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 section describes basic searchability of badges, which is now available across several main badge endpoints.
To request badges, a user must make a request via an endpoint for a parent object. The parent objects for which this consolidated search behavior is valid are: User, Convention, and BadgeType. Departures/differences from basic behavior will be discussed in the documentation for the specific parent=>badge relationship. (The old endpoint GET /api/badge
, which allowed searching across conventions and users, has been made admin-only.)
This search behavior is not available on the following relationships: ConventionCart, ConventionReceipt, Booth, Sponsor.
A user can always see badges which they own, or which belong to a convention for which the user has the registration
or pos
privilege. Outside of either of these "privileged" conditions, a user can view a badge that falls under either of the following two exceptions:
The user has a Friendship with the user who owns the badge; or, has a requested, but not accepted, Friendship with the user who owns the badge, IF settings for the user and convention are both set to allow "permissive gifting" (open conventions only).
The user owns the order the badge is on (if any); that is, the badge's receipt or its cart.
Returns:
{ "paging" : {...}, "items" : [ { "id" : "xxx", "name_full" : "Joe User", ... }, ... ] }
Pass a string query
to search for a partial match in specifically allowed text fields.
(can be searched only by specifying field with query_field=firstname
; see options below)
(can be searched only by specifying field with query_field=lastname
; see options below)
For badges, query
now supports multiple match terms at once. To do this, merely separate your search terms with commas. So where the term "Smith Brown" will return any badge matching all of "Smith Brown", the term "Smith,Brown" will return all badges with names matching either Smith or Brown. (Any whitespace around the commas is automatically removed; "Smith, Brown" and "Smith ,Brown" are equivalent to "Smith,Brown".)
To prevent a query
parameter with a comma in it from being split into multiple terms, include query_single_term=1
.
By default, any use of query
will search in the text fields email
, badge_number
, and name_full
. You can make your search faster by specifying a single field with the query_field
option. Simply set query_field
to the field you want to search in. (Two fields, firstname
and lastname
, can be searched only using query_field
.)
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.