Google Generic Pass Type Support

Create a Google Wallet generic pass using the Airship dashboard or API.

The generic pass type can be used to create any pass that does not fit into one of the existing types: loyalty card, boarding pass, event ticket, etc. Possible uses:

  • Library card
  • Insurance card
  • Gym/Club membership

The generic pass template

The generic pass template can contain a maximum of three rows, with three fields per row, each field containing a header and a body. Additionally, the template has configurable attributes:

  • Barcode
  • QR code
  • Number
  • Hero image

API

The Google Wallet generic pass type adds two new required fields, header and cardTitle, and an optional subheader field.

The header and subheader are part of the headers object, and cardTitle is part of the titleModel object.

The first example below shows a POST request to /v1/template/. The second shows a GET response from v1/template/{template_id}.

Example JSON: POST
{
    "projectType": "generic",
    "description": "Google Generic Template1",
    "vendorId": 2,
    "type": "Generic",
    "createdAt": "2022-08-16T18:13:21Z",
    "deleted": "False",
    "vendor": "Google",
    "name": "Google Generic Template1",
    "disabled": "False",
    "id": "168821",
    "expiryDuration": 730,
    "projectName": "test-generic",
    "projectId": 7375,
    "updatedAt": "2022-08-23T23:59:41Z",
    "headers": {
        "sharingStatus": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "multipleHolders",
            "fieldType": "topLevel",
            "required": false
        },
        "barcode_value": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "123456789",
            "fieldType": "barcode",
            "required": false
        },
        "barcode_encoding": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "iso-8859-1",
            "fieldType": "barcode",
            "required": false
        },
        "barcodeAltText": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "",
            "fieldType": "barcode",
            "required": false
        },
        "header": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "Header",
            "fieldType": "topLevel",
            "required": false
        },
        "barcode_type": {
            "ignoresTimeZone": null,
            "changeMessage": null,
            "label": "",
            "hideEmpty": false,
            "formatType": "String",
            "value": "PDF_417",
            "fieldType": "barcode",
            "required": false
        }
    },
    "titleModule": {
        "image": {
            "ignoresTimeZone": null,
            "title.string": "http://img.mysite.com/passtype-generic.png",
            "hideEmpty": false,
            "formatType": "String",
            "fieldType": "titleModule",
            "description.string": "Logo Image"
        },
        "cardTitle": {
            "col": 0,
            "ignoresTimeZone": null,
            "title.string": "",
            "hideEmpty": false,
            "row": 0,
            "formatType": "String",
            "fieldType": "titleModule",
            "description.string": "Card Title"
        }
    }
}

Example JSON: GET
{
	"templateHeader": {
		"projectType": "generic",
		"description": "Google Generic Template1",
		"vendorId": 2,
		"type": "Generic",
		"createdAt": "2022-08-16T18:13:21Z",
		"deleted": "False",
		"vendor": "Google",
		"name": "Google Generic Template1",
		"disabled": "False",
		"id": "168821",
		"expiryDuration": 730,
		"projectName": "test-generic",
		"projectId": 7375,
		"updatedAt": "2022-08-23T23:59:41Z"
	},
	"fieldsModel": {
		"headers": {
			"sharingStatus": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "multipleHolders",
				"fieldType": "topLevel",
				"required": false
			},
			"barcode_value": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "123456789",
				"fieldType": "barcode",
				"required": false
			},
			"barcode_encoding": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "iso-8859-1",
				"fieldType": "barcode",
				"required": false
			},
			"barcodeAltText": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "",
				"fieldType": "barcode",
				"required": false
			},
			"header": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "Header",
				"fieldType": "topLevel",
				"required": false
			},
			"barcode_type": {
				"ignoresTimeZone": null,
				"changeMessage": null,
				"label": "",
				"hideEmpty": false,
				"formatType": "String",
				"value": "PDF_417",
				"fieldType": "barcode",
				"required": false
			}
		},
		"titleModule": {
			"image": {
				"ignoresTimeZone": null,
				"title.string": "http://img.mysite.com/passtype-generic.png",
				"hideEmpty": false,
				"formatType": "String",
				"fieldType": "titleModule",
				"description.string": "Logo Image"
			},
			"cardTitle": {
				"col": 0,
				"ignoresTimeZone": null,
				"title.string": "",
				"hideEmpty": false,
				"row": 0,
				"formatType": "String",
				"fieldType": "titleModule",
				"description.string": "Card Title"
			}
		}
	}
}

Documentation

See our updated documentation: