{ "definitions": { "CspReport": { "description": "De-facto CSP report format per https://www.tollmanz.com/content-security-policy-report-samples/", "type": "object", "properties": { "blocked-uri": { "type": "string" }, "document-uri": { "type": "string" }, "effective-directive": { "type": "string" }, "original-policy": { "type": "string" }, "referrer": { "type": "string" }, "status-code": { "type": "integer" }, "violated-directive": { "type": "string" }, "source-file": { "type": "string" }, "line-number": { "type": "integer" }, "column-number": { "type": "integer" }, "request": { "type": "string" }, "request-headers": { "type": "string" }, "script-sample": { "type": "string" } } }, "imageDataUri": { "description": "RFC 2397 compliant data URI, constrained to base64 encoded images", "type": "string", "pattern": "^data:image\\/(png|jpeg);base64,[A-Za-z0-9\\/+]+(={0,2})$", "minLength": 4, "maxLength": 50000, "example": "data:image/png;base64,a1B2c3==" }, "email": { "description": "basic email address parsing. See http://www.regular-expressions.info/email.html", "type": "string", "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", "x-invalid-pattern": "[^a-zA-Z0-9.%+-.@]", "minLength": 7, "maxLength": 254, "example": "admin@example.com" }, "uuid": { "description": "reference to another object in the database", "type": "string", "pattern": "^([a-f0-9]{24})$", "x-invalid-pattern": "[^a-f0-9]", "minLength": 24, "maxLength": 24, "example": "12a345b67c8901234d567e89" }, "DeviceHardware": { "description": "The device hardware type (as specified by the manufacturer).", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 75 } ], "example":"iphone 5S" }, "DeviceSoftware": { "description": "The software type and version at registration (not updated)", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 75 } ], "example":"IOS 10" }, "BridgeID": { "description": "A unique reference", "type": "string", "pattern": "\\d{8}T\\d{9}[A-z\\d]{14}", "x-invalid-pattern": "[^0-9A-z]", "minLength": 32, "maxLength": 32 }, "ImageRef": { "description": "reference to an image in the database with optional defaults.", "type": "string", "pattern": "^([a-f0-9]{24}|(defaultSelfie)|(defaultCompanyLogo0))$", "minLength": 13, "maxLength": 24, "example": "12a345b67c8901234d567e89" }, "uuidNullable": { "description": "reference to another object in the database or `null`", "type": [ "null", "string" ], "pattern": "^([a-f0-9]{24})$", "x-invalid-pattern": "[^a-f0-9]", "minLength": 24, "maxLength": 24, "example": "12a345B67c8901234D567e89" }, "hex256": { "description": "A 256bit hex value", "type": "string", "pattern": "^([a-f0-9]{64})$", "x-invalid-pattern": "[^a-f0-9]", "minLength": 64, "maxLength": 64, "example": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" }, "generalText": { "description": "General text format + special chars", "type": "string", "pattern": "^([A-Za-z0-9'[\\]()@?!\\-/.,_&*:;+=]*)$", "x-invalid-pattern": "[^a-zA-Z0-9'[\\]()@?!\\-/.,_&*:;+=]", "example": "SomeTextWithoutSpacesButWith'&','*',etc." }, "generalTextSpace": { "description": "General text format + special chars + space", "type": "string", "pattern": "^([A-Za-z0-9'[\\]()@?!\\-/.,_&*:;+= ]*)$", "x-invalid-pattern": "[^a-zA-Z0-9'[\\]()@?!\\-/.,_&*:;+= ]", "example": "Some Text With Spaces plus '&', '*', etc." }, "generalTextSpaceNullable": { "description": "General text format + special chars + space or `null`", "type": [ "null", "string" ], "pattern": "^([A-Za-z0-9'[\\]()@?!\\-/.,_&*:;+= ]*)$", "x-invalid-pattern": "[^a-zA-Z0-9'[\\]()@?!\\-/.,_&*:;+= ]", "example": "Some Text With Spaces plus '&', '*', etc." }, "fullAlphaNumeric": { "description": "Text with only ASCII letters + numbers", "type": "string", "pattern": "^([A-Za-z0-9]*)$", "x-invalid-pattern": "[^a-zA-Z0-9]", "example": "SomeTextWithoutSpacesOrSpecialCharsButWith0123456789" }, "fullAlphaNumericDashSpace": { "description": "Text with only ASCII letters + numbers + dash", "type": "string", "pattern": "^([A-Za-z0-9\\- ]*)$", "x-invalid-pattern": "[^a-zA-Z0-9\\- ]", "example": "Some text with spaces plus 0123456789 And -" }, "fullAlphaNumericDashSpaceNullable": { "description": "Text with only ASCII letters + numbers + dash", "type": [ "null", "string" ], "pattern": "^([A-Za-z0-9\\- ]*)$", "x-invalid-pattern": "[^a-zA-Z0-9\\- ]", "example": "Some text with spaces plus 0123456789 And -" }, "alpha": { "description": "Text with only ASCII letters", "type": "string", "pattern": "^([A-Za-z]*)$", "x-invalid-pattern": "[^A-Za-z]", "example": "SomeTextWithOnlyAsciiLetters" }, "alphaSpace": { "description": "Text with only ASCII letters and space", "type": "string", "pattern": "^([A-Za-z ]*)$", "x-invalid-pattern": "[^A-Za-z ]", "example": "Some Text With Only Ascii Letters plus space" }, "alphaSpaceNullable": { "description": "Optional text with only ASCII letters and space", "type": [ "null", "string" ], "pattern": "^([A-Za-z ]*)$", "x-invalid-pattern": "[^A-Za-z ]", "example": "Some Text With Only Ascii Letters plus space" }, "alphaDashSpace": { "description": "Text with only ASCII letters, dash, and space", "type": "string", "pattern": "^([A-Za-z\\- ]*)$", "x-invalid-pattern": "[^A-Za-z\\- ]", "example": "Some Text With Only Ascii Letters plus space plus -" }, "paycodeString": { "description": "Paycode string. Mostly 0-9A-Z with some ambiguous letters removed", "type": "string", "pattern": "^([0-9ABCDEFGHJKLMNPRSTUVWXYZ]*)$", "x-invalid-pattern": "[^0-9ABCDEFGHJKLMNPRSTUVWXYZ]", "example": "A1A1A" }, "lowerCaseHex": { "description": "Lower case, hexadecimal string (for hashes etc.)", "type": "string", "pattern": "^([a-f0-9]*)$", "x-invalid-pattern": "[^a-f0-9]", "example": "f0a1" }, "numeric": { "description": "Numbers only, but sent as a string", "type": "string", "pattern": "^([0-9]*)$", "x-invalid-pattern": "[^0-9]", "example": "123" }, "version": { "description": "Version number formatting", "type": "string", "pattern": "^([a-z0-9.\\-]*)$", "x-invalid-pattern": "[^a-z0-9.\\-]", "example": "0.0.0-abcdefg1234" }, "accountNumberAnon": { "description": "An anonymised account number", "type": "string", "pattern": "^\\*{5}[0-9]{3}$", "example": "*****234" }, "SortCodeAnon": { "description": "An anonymised sort code", "type": "string", "pattern": "^\\*{2}-\\*{2}-[0-9]{2}", "example": "**-**-12" }, "CardPanAnon": { "description": "An anonymised card number", "type": "string", "pattern": "^[0-9][* ]*[0-9 ]{3,4}$", "example": "0*** **** **** *234" }, "MerchantIdAnon": { "description": "An anonymised AcquirerMerchantId", "type": "string", "pattern": "^\\*{5}[0-9a-zA-Z]{3}$", "example": "*****A3b" }, "WorldpayMerchantId": { "description": "The Worldpay MerchantID format.", "type": "string", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", "example": "4db79f58-b8e8-4485-9346-1aafe16ffc57", "x-invalid-pattern": "[^0-9a-f\\-]" }, "WorldpayServiceKey": { "description": "The Worldpay Service Key format.", "type": "string", "pattern": "^(?:T_S_|T_C_|L_S_|L_C_)[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", "example": "T_S_4db79f58-b8e8-4485-9346-1aafe16ffc57", "x-invalid-pattern": "[^0-9a-f\\-_TLSC]" }, "cardDate": { "description": "Dates on cards.", "type": "string", "pattern": "^(?:0[1-9]|1[0-2])-[0-9][0-9]$", "x-invalid-pattern": "[^0-9\\-]" }, "phoneNumber": { "description": "Phone number for a mobile device (with all spaces or dashes removed)", "type": "string", "pattern": "^\\+([0-9]*)$", "x-invalid-pattern": "[^0-9+]", "minLength": 8, "maxLength": 35, "example": "+447700900000" }, "phoneNumberAnon": { "description": "Phone number for a mobile device, anonymised", "type": "string", "pattern": "^\\+[0-9]{2,3} [0-9][ *]*[0-9]{3}$", "minLength": 8, "maxLength": 35, "example": "+44 1*** ***000" }, "phoneNumberNullable": { "description": "Phone number for a mobile device (with all spaces or dashes removed)", "type": [ "null", "string" ], "pattern": "^\\+([0-9]*)$", "x-invalid-pattern": "[^0-9+]", "minLength": 8, "maxLength": 35, "example": "+447700900000" }, "phoneNumberAnonNullable": { "description": "Phone number for a mobile device, anonymised", "type": [ "null", "string" ], "pattern": "^\\+[0-9]{2,3} [0-9][ *]*[0-9]{3}$", "minLength": 8, "maxLength": 35, "example": "+44 1*** ***000" }, "featureFlags": { "description": "Flags for extra features enabled for the client", "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 50 }, "example": ["test"] }, "geojson-point": { "description": "A Geo-JSON point (easting, northing), or null if location unknown", "type": [ "null", "object" ], "example": {"type": "Point", "coordinates": [-3.548724, 55.872482]}, "properties": { "type": { "description": "Defines that this is a geo-json point (as opposed to other geo-json primitives", "type": "string", "enum": [ "Point" ] }, "coordinates": { "description": "Co-ordinates in [0]=easting, [1]=northing order", "type": "array", "items": { "description": "Coordinate. Note that northing is limited to +/- 90, not +/- 180.", "type": "number", "maximum": 180, "minimum": -180 }, "maxItems": 2, "minItems": 2 } } }, "ipNullable": { "description": "An IP address (either IPv4 or IPv6), or null if none", "type": [ "null", "string" ], "pattern": "^((?:[0-9]{1,3}.){3}[0-9]{1,3}|(?:[0-9a-zA-Z]{0,4}\\:){2,7}[0-9a-zA-Z]{1,4})$", "minLength": 3, "maxLength": 32, "example": "::1" }, "loginMethod": { "description": "Valid login methods", "type": "string", "enum": [ "Bridge" ], "example": "Bridge", "default": "Bridge" }, "operatorName": { "description": "The operator for this account (e.g. Comcarde, etc.)", "type": "string", "enum": [ "Comcarde" ], "example": "Comcarde", "default": "Comcarde" }, "accountType": { "description": "Type of an end user account", "type": "string", "enum": [ "Credit/Debit Receiving Account", "Credit/Debit Payment Card", "Bank Account", "Bridge eCash" ], "example": "Credit/Debit Payment Card" }, "clientImageType": { "description": "Identifies the client image to use for an account", "type": "string", "enum": [ "defaultSelfie", "Selfie", "defaultCompanyLogo0", "CompanyLogo0", "Item" ], "example": "defaultSelfie" }, "clientImageUploadType": { "description": "Identifies the client image types that can be uploaded", "type": "string", "enum": [ "Selfie", "CompanyLogo0", "Item" ], "example": "defaultSelfie" }, "kycGender": { "description": "The gender as required by the ID verification/AML service.", "type": "string", "enum":[ "", "M", "F" ] }, "security.Device.sessionHeader": { "description": "The format for the session info header - `x-bridge-device-session` for the bridge_device security layer. It must be formatted as `:`.", "type": "string", "minLength": 85, "maxLength": 85, "pattern": "[A-Za-z0-9]{42}:[A-Za-z0-9]{42}", "example": "ABCDEFGHIJKLMONPQRSTUVWXYZabcdefghijklmnop:0123456789qrstuvwxyzABCDEFGHIJKLMNOPQRSTUV" }, "security.Device.hmacHeader": { "description": "The format for the HMAC header - `x-bridge-hmac`. It is HMAC-SHA-256 of ''", "$ref": "#/definitions/hex256" }, "security.Device.hmacTimestamp": { "description": "The format for the HMAC timestamp header - `x-bridge-timestamp`. It is ISO-8601 timestamp: `YYYY-MM-DDTHH:MM:SS.sssZ`", "type": "string", "format": "date-time" }, "question": { "description": "A question that must be answered to confirm knowledge of customer details", "type": "object", "properties": { "questionID": { "description": "ID of the question to tie up with answers when submitted to the server", "$ref": "api_definitions.json#/definitions/BridgeID" }, "questionType": { "description": "The type of question to ask the user.", "type":"string", "enum": [ "postcode", "card", "transactions", "device", "dob" ] }, "questionText": { "description": "Extra info for the question. Usually the name of item being asked about.", "$ref": "api_definitions.json#/definitions/generalTextSpace" } }, "required": [ "questionID", "questionType", "questionText" ] }, "answer": { "description": "The answer to a customer verification question", "type": "object", "properties": { "questionID": { "description": "ID of the question to tie up with this answer on the server", "$ref": "api_definitions.json#/definitions/BridgeID" }, "answer": { "description": "The answer to the question asked of the user.", "$ref": "api_definitions.json#/definitions/generalTextSpace" } }, "required": [ "questionID", "answer" ] }, "ErrorInfo": { "description": "More information on the error reason", "type": "object", "properties": { "code": { "description": "Error code", "type": "integer", "default": -1, "example": 1 }, "info": { "description": "Text description of the issue", "type": "string", "default": "Unknown Error", "example": "Some error" } } }, "SuccessInfo": { "description": "More information on the error reason", "type": "object", "properties": { "code": { "description": "Success code", "type": "integer", "default": -1, "example": 10000 }, "info": { "description": "Text description of the success", "type": "string", "default": "Unknown Success", "example": "Some success" } } }, "deviceAuthorisation": { "description": "The Pin for this device", "allOf": [ { "$ref": "api_definitions.json#/definitions/numeric" }, { "minLength": 5, "maxLength": 1024 } ], "example": "12345" }, "DeviceUuid": { "description": "Unique and hidden identifier for the device (created by client)", "allOf": [ { "minLength": 30, "maxLength": 150 }, { "$ref": "#/definitions/generalTextSpace" } ] }, "token": { "description": "A random token", "allOf": [ { "$ref": "api_definitions.json#/definitions/fullAlphaNumeric" }, { "minLength": 42, "maxLength": 42 } ], "example": "abcdefghijklmnopqrstuvwxyzABCDEF0123456789" }, "image": { "type": "object", "properties": { "ImageID": { "description": "Unique id of the image", "$ref": "api_definitions.json#/definitions/ImageRef", "readOnly": true }, "ImageFile": { "description": "The image data encoded as base64.", "$ref": "api_definitions.json#/definitions/imageDataUri" }, "FileType": { "description": "The file type (from the allowed set)", "type": "string", "enum": [ "JPG", "JPEG", "PNG" ] }, "ImageType": { "description": "The type of image (customer or company image etc.)", "$ref": "api_definitions.json#/definitions/clientImageType" }, "ImageReported": { "description": "Defines if this user has reported this image", "type": "boolean", "readOnly": true } }, "required": [ "ImageFile", "FileType", "ImageType" ] }, "imageUpload": { "type": "object", "properties": { "ImageFile": { "description": "The image data encoded as a png or jpeg Data URI.", "$ref": "api_definitions.json#/definitions/imageDataUri" }, "ImageType": { "description": "The type of image (customer or company image etc.)", "$ref": "api_definitions.json#/definitions/clientImageUploadType" } }, "required": [ "ImageFile", "ImageType" ] }, "User": { "type": "object", "properties": { "ClientName": { "description": "Client's email address", "$ref": "api_definitions.json#/definitions/email" }, "DisplayName": { "description": "Client's display name", "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpaceNullable" }, { "minLength": 2, "maxLength": 101 } ] }, "Selfie": { "description": "The image to use for the client", "$ref": "api_definitions.json#/definitions/ImageRef" } } }, "kyc": { "type": "object", "description": "Know Your Customer (KYC) data. When KYC is not set, you may receive an empty string from the server for `Gender`, but it MUST NOT be an empty string in set requests.", "properties": { "Title": { "description": "Client's title (Mr, Mrs, Ms, Dr, etc.", "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpaceNullable" }, { "minLength": 2, "maxLength": 20 } ] }, "FirstName": { "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpaceNullable" }, { "minLength": 2, "maxLength": 50 } ] }, "LastName": { "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpaceNullable" }, { "minLength": 2, "maxLength": 50 } ] }, "MiddleNames": { "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpaceNullable" }, { "minLength": 0, "maxLength": 50 } ] }, "DateOfBirth": { "description": "Date of birth as an ISO8601 full-date (YYYY-MM-DD)", "type": [ "null", "string" ], "format": "date" }, "ResidentialAddressID": { "$ref": "api_definitions.json#/definitions/uuidNullable" }, "Gender": { "$ref": "api_definitions.json#/definitions/kycGender" } }, "required": ["Title", "FirstName", "LastName", "DateOfBirth", "ResidentialAddressID", "Gender"] }, "merchant": { "type": "object", "description": "Information on the Client's merchant", "properties": { "CompanyName": { "description": "The company name as registered at Companies' House.", "type": [ "null", "string" ], "pattern": "^[AÀÁÂÃÄÅĀĂĄǺÆǼBCÇĆĈĊČDÞĎĐEÈÉÊËĒĔĖĘĚFGĜĞĠĢHĤĦIÌÍÎÏĨĪĬĮİJĴKĶLĹĻĽĿŁMNÑŃŅŇŊOÒÓÔÕÖØŌŎŐǾŒPQRŔŖŘSŚŜŞŠTŢŤŦUÙÚÛÜŨŪŬŮŰŲVWŴẀẂẄXYỲÝŶŸZŹŻŽ&@£$€¥0-9.,:;\\-‘’'()[\\]{}<>!«»“”\"?\\\\/*=#%+ ]*$", "x-invalid-pattern": "[^AÀÁÂÃÄÅĀĂĄǺÆǼBCÇĆĈĊČDÞĎĐEÈÉÊËĒĔĖĘĚFGĜĞĠĢHĤĦIÌÍÎÏĨĪĬĮİJĴKĶLĹĻĽĿŁMNÑŃŅŇŊOÒÓÔÕÖØŌŎŐǾŒPQRŔŖŘSŚŜŞŠTŢŤŦUÙÚÛÜŨŪŬŮŰŲVWŴẀẂẄXYỲÝŶŸZŹŻŽ&@£$€¥0-9.,:;\\-‘’'()[\\]{}<>!«»“”\"?\\\\/*=#%+ ]", "minLength": 1, "maxLength": 160 }, "CompanyAlias": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 2, "maxLength": 50 } ] }, "CompanySubName": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 0, "maxLength": 50 } ] }, "VATNo": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 3, "maxLength": 25 } ] }, "CompanyLogo": { "$ref": "api_definitions.json#/definitions/ImageRef" } }, "required": ["CompanyName", "CompanyAlias"] }, "address": { "type": "object", "description": "Address", "properties": { "AddressID": { "description": "The id of this address", "$ref": "api_definitions.json#/definitions/uuid", "readOnly": true }, "AddressDescription": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 150 } ] }, "BuildingNameFlat": { "description": "Building name or flat number", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 1, "maxLength": 64 } ] }, "Address1": { "description": "First line of address", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 4, "maxLength": 64 } ] }, "Address2": { "description": "Second line of address", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 4, "maxLength": 64 } ] }, "Town": { "description": "Postal Town", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 3, "maxLength": 32 } ] }, "County": { "description": "County / Region", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 3, "maxLength": 32 } ] }, "PostCode": { "description": "Post code", "allOf": [ { "$ref": "api_definitions.json#/definitions/fullAlphaNumericDashSpace" }, { "minLength": 3, "maxLength": 32 } ] }, "Country": { "description": "Country. Only open to UK residents at present", "type": "string", "enum": [ "United Kingdom" ] }, "PhoneNumberAnon": { "description": "An anonymised phone number returned from queries", "$ref": "api_definitions.json#/definitions/phoneNumberAnonNullable" }, "PhoneNumber": { "description": "A contact number at this address; ideally a land line", "allOf": [ { "$ref": "api_definitions.json#/definitions/phoneNumberNullable" }, { "minLength": 8, "maxLength": 35 } ] } } }, "transaction": { "type": "object", "properties": { "TransactionID": { "description": "The id of the transaction", "$ref": "api_definitions.json#/definitions/uuid", "readOnly": true }, "TransactionType": { "description": "The type of transaction: 0=Outgoing, 1=Incoming, 2=Outgoing Full Refund, 3=Incoming Full Refund, 4=Outgoing Parial Refund, 5=Incoming Full Refind, 6=Outgoing Manual Correction, 7=Incoming Manual Correction, 8=Aborted Outgoing Transaction, 9=Aborted Incoming Transaction", "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] }, "AccountID": { "description": "The account id with which this transaction is associated", "$ref": "api_definitions.json#/definitions/uuid" }, "OtherDisplayName": { "description": "Display name of the other party", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100 } ] }, "OtherSubDisplayName": { "description": "Sub display name of the other party", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100 } ] }, "OtherImage": { "description": "Image reference of the other party", "$ref": "api_definitions.json#/definitions/ImageRef" }, "TotalAmount": { "description": "Total amount (request + tip) in pence (100 = £1.00)", "type": "number" }, "SaleTime": { "description": "Time of the sale (UTC)", "type": "string", "format": "date-time" }, "MyLocation": { "description": "My location during the transaction", "$ref": "api_definitions.json#/definitions/geojson-point" }, "MerchantInvoiceNumber": { "description": "Monotonically increasing invoice number (per Merchant)", "type": "number", "minimum": 0, "readOnly": true } } }, "transactionDetail": { "type": "object", "properties": { "OtherDisplayName": { "description": "Display name of the other party", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100 } ] }, "OtherSubDisplayName": { "description": "Sub display name of the other party", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100 } ] }, "OtherImage": { "description": "Image reference of the other party", "$ref": "api_definitions.json#/definitions/ImageRef" }, "TransactionStatus": { "description": "Status code for the transaction", "type": "integer", "enum": [ 0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17 ] }, "StatusInfo": { "description": "Textual description of the current status", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "maxLength": 100 } ] }, "MerchantInvoice": { "description": "Array of invoiceItems or `null` if no invoice details.", "type": [ "null", "array" ], "items": { "$ref": "api_definitions.json#/definitions/invoiceItem" } }, "MerchantComment": { "description": "Optional free-text annotation from merchant.", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "maxLength": 300 } ], "example": "You were served today by Richard" }, "MerchantVATNo": { "description": "Vat number. `null` if unregistered", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "maxLength": 50 } ], "example": "GB 123 456 789" }, "RequestAmount": { "description": "Request amount in pence (100 = £1.00)", "type": "number", "minimum": 0 }, "TipAmount": { "description": "Tip amount in pence (100 = £1.00)", "type": ["null", "number"], "minimum": 0 }, "TotalAmount": { "description": "Total amount (request + tip) in pence (100 = £1.00)", "type": "number", "minimum": 0 }, "AmountRefunded": { "description": "Total of all refunds in pence (100 = £1.00)", "type": "number", "minimum": 0 }, "MyLocation": { "description": "My location during the transaction", "$ref": "api_definitions.json#/definitions/geojson-point" }, "SaleTime": { "description": "Time of the sale (UTC)", "type": "string", "format": "date-time" }, "MerchantInvoiceNumber": { "description": "Monotonically increasing invoice number (per Merchant)", "type": "number", "minimum": 0, "readOnly": true } } }, "invoiceItem": { "type": "object", "properties": { "Item_ID": { "description": "ID of the merchant item", "$ref": "api_definitions.json#/definitions/uuidNullable" }, "Item_Code": { "description": "Barcode or merchant code", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 50 } ], "example": "98768926735178" }, "Item_Description": { "description": "Free form description", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 1, "maxLength": 150 } ], "example": "10cm Brush" }, "Line_TotalAmount": { "description": "Total amount for an invoice line in pence (100 = £1.00).", "type": "integer", "example": 798 }, "Line_VATAmount": { "description": "VAT amount for an invoice line in pence (100 = £1.00).", "type": "integer", "example": 798 }, "Item_VATCode": { "description": "VAT Code information (freeform)", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 50 } ], "example": "T1" }, "Item_VATRate": { "description": "VAT rate in basis points (100 = 1%)", "type": "integer", "minimum": 0, "example": 2000 }, "Item_NetAmount": { "description": "Per item cost net of VAT in pence (100 = £1.00), or NULL if using gross amounts", "type": ["null", "integer"], "example": 638 }, "Item_GrossAmount": { "description": "Per item cost gross of VAT in pence (100 = £1.00), or NULL if using net amounts", "type": ["null", "integer"], "example": 160 }, "Item_Quantity": { "description": "Quantity of this item", "type": "number", "minimum": 0, "example": 2 }, "Item_Refunded": { "description": "Array of refunds given on this item, or `null` if no refunds", "type": [ "null", "array" ], "items": { "$ref": "api_definitions.json#/definitions/refundItem" } }, "Item_LoyaltyPoints": { "description": "The loyalty points for this product (or null if not set).", "type": [ "null", "integer" ], "minimum": 0, "default": null } }, "required": ["Item_Code", "Item_Description", "Item_VATRate", "Line_VATAmount", "Item_NetAmount", "Line_TotalAmount", "Item_Quantity"] }, "refundItem": { "type": "object", "description": "Details of a (potentially partial) refund given for an `invoiceItem`", "properties": { "Refund_Quantity": { "description": "Quantity of items refunded in this refund.", "type": "number", "minimum": 0 }, "Refund_Date": { "description": "Date the refund was processed", "type": "string", "format": "date-time" }, "Refund_Reason": { "description": "Freeform reason for the refund", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100 } ], "example": "Customer return." } } }, "transactionDispute": { "type": "object", "properties": { "DisputeReason": { "description": "User provided reason for disputing the payment.", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 250 } ] } } }, "account": { "type": "object", "description": "Details on bank account, credit card, debit card, etc.", "properties": { "AccountID": { "description": "Unique account identifier", "$ref": "api_definitions.json#/definitions/uuid" }, "AccountType": { "description": "The type of account: credit card, bank account, etc.", "$ref": "api_definitions.json#/definitions/accountType" }, "ClientAccountName": { "description": "Client's friendly name for the account", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 150 } ] }, "NameOnAccount": { "description": "The name on the customer's account", "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpace" }, { "minLength": 5, "maxLength": 64 } ] }, "VendorID": { "description": "ID for the bank method or card issuer", "readOnly": true, "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 150 } ] }, "VendorAccountName": { "description": "The account name defined by the account vendor", "readOnly": true, "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 2, "maxLength": 150 } ] }, "ReceivingAccount": { "description": "0 = can't receive payments, 1 = can receive payments", "type": "integer", "enum": [ 0, 1 ], "example": 0 }, "PaymentsAccount": { "description": "0 = can't make payments, 1 = can make payments", "type": "integer", "enum": [ 0, 1 ], "example": 1 }, "BalanceAvailable": { "description": "0 = balance not available, 1 = balance available", "type": "integer", "enum": [ 0, 1 ], "example": 0 }, "Balance": { "description": "Balance (if available). Balance in pence: 100 = £1.00", "readOnly": true, "type": [ "null", "integer" ], "example": 0 }, "IconLocation": { "description": "Icon image for the account. Append to https://xxx.bridgepay.uk/icons/", "readOnly": true, "$ref": "api_definitions.json#/definitions/generalText" }, "UserImage": { "$ref": "api_definitions.json#/definitions/clientImageType" }, "AccountNumber": { "$ref": "api_definitions.json#/definitions/accountNumberAnon" }, "SortCode": { "$ref": "api_definitions.json#/definitions/SortCodeAnon" }, "CardPAN": { "$ref": "api_definitions.json#/definitions/CardPanAnon" }, "AccountStatus": { "description": "Account status: 1 = Locked and can't be deleted, 2 = Deleted (but retained for historical records).", "type": "number", "enum": [0, 1, 2] }, "BillingAddress": { "$ref": "api_definitions.json#/definitions/uuidNullable" } } }, "LoginBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" }, "password": { "description": "user's password", "type": "string" } }, "required": [ "email", "password" ] }, "ChangePasswordBody": { "type": "object", "properties": { "currentPassword": { "description": "user's current password", "type": "string" }, "newPassword": { "description": "user's new password", "type": "string" } }, "required": [ "currentPassword", "newPassword" ] }, "ForgotPasswordBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" } }, "required": [ "email" ] }, "ResetNewPasswordBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" }, "validationToken": { "description": "validationToken from the recovery email sent to the user", "type": "string" }, "newPassword": { "description": "new password for the user", "type": "string" } }, "required": [ "email", "validationToken", "newPassword" ] }, "RecoveryTokenBody": { "type": "object", "properties": { "validationToken": { "description": "validationToken sent out-of-band to the client", "type": "string" } }, "required": [ "validationToken" ] }, "RecoveryTokenPwBody": { "type": "object", "properties": { "validationToken": { "description": "validationToken sent out-of-band to the client", "type": "string" }, "newPassword": { "description": "new password for the client", "type": "string" } }, "required": [ "validationToken", "newPassword" ] }, "CreateUserBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" }, "password": { "description": "Users desired password", "type": "string" }, "method": { "$ref": "api_definitions.json#/definitions/loginMethod" }, "operator": { "$ref": "api_definitions.json#/definitions/operatorName" } }, "required": [ "email", "password" ] }, "ConfirmEmailBody": { "type": "object", "properties": { "emailValidationToken": { "description": "Validation token value as received by email.", "$ref": "api_definitions.json#/definitions/token" } }, "required": [ "emailValidationToken" ] }, "CompleteRegistrationBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" }, "password": { "description": "User's desired password", "type": "string" }, "emailValidationToken": { "description": "Validation token value as received by email.", "$ref": "api_definitions.json#/definitions/token" } }, "required": [ "password", "emailValidationToken" ] }, "DenyEmailBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" } }, "required": [ "email" ] }, "ChangeEmailBody": { "type": "object", "properties": { "email": { "$ref": "api_definitions.json#/definitions/email" } }, "required": [ "email" ] }, "UpdateAccountBody": { "type": "object", "properties": { "ClientAccountName": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 150 } ] }, "BillingAddress": { "description": "Reference to the address assocaited with the account", "$ref": "api_definitions.json#/definitions/uuid" }, "Lock": { "description": "Sets the account to be locked (can't be deleted from a mobile app), or unlocked (can be deleted)", "type": "boolean" } } }, "AddAccountBase": { "description": "Parameters required to add any merchant account", "type": "object", "properties": { "ClientAccountName": { "description": "Client's friendly name for the account", "allOf": [{ "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 150 } ] }, "UserImage": { "$ref": "api_definitions.json#/definitions/clientImageType" }, "NameOnAccount": { "description": "Name as it appears on the account", "allOf": [ { "$ref": "api_definitions.json#/definitions/alphaSpace" }, { "minLength": 5, "maxLength": 64 } ] }, "BillingAddress": { "description": "Reference to the address associated with the account", "$ref": "api_definitions.json#/definitions/uuid" } }, "required": [ "ClientAccountName", "NameOnAccount", "BillingAddress" ] }, "AddAccountCredoraxMerchantBody": { "description": "Parameters required to add a Credorax merchant account", "type": "object", "allOf": [ { "$ref": "api_definitions.json#/definitions/AddAccountBase" }, { "type": "object", "properties": { "AcquirerMerchantID": { "description": "Credorax assigned gateway merchant ID", "type": "string", "pattern": "^[A-Z0-9_]*$", "x-invalid-pattern": "[^A-Z0-9_]", "minLength": 3, "maxLength": 8 }, "AcquirerCipher": { "description": "Credorax assigned cipher to authenticate requests", "type": "string", "pattern": "^[A-Za-z0-9]*$", "x-invalid-pattern": "[^A-Za-z0-9]", "minLength": 1, "maxLength": 32 } } } ], "required": [ "ClientAccountName", "NameOnAccount", "AcquirerMerchantID", "AcquirerCipher", "BillingAddress" ] }, "AddAccountWorldpayMerchantBody": { "description": "Parameters required to add a Worldpay merchant account", "type": "object", "allOf": [{ "$ref": "api_definitions.json#/definitions/AddAccountBase" }, { "type": "object", "properties": { "AcquirerMerchantID": { "$ref": "api_definitions.json#/definitions/WorldpayMerchantId" }, "AcquirerCipher": { "$ref": "api_definitions.json#/definitions/WorldpayServiceKey" } } } ], "required": [ "ClientAccountName", "NameOnAccount", "BillingAddress", "AcquirerMerchantID", "AcquirerCipher" ] }, "AccountIdObject": { "type": "object", "properties": { "objectID": { "description": "Id of an account", "$ref": "api_definitions.json#/definitions/uuid" } }, "required": [ "objectID" ] }, "device": { "type": "object", "properties": { "DeviceID": { "description": "Id of the device", "$ref": "api_definitions.json#/definitions/uuid", "readOnly": true }, "DeviceName": { "description": "The name of the device as given by the user.", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 75 } ] }, "DeviceNumber": { "$ref": "api_definitions.json#/definitions/phoneNumberAnon", "readOnly": true }, "DeviceHardware": { "$ref": "api_definitions.json#/definitions/DeviceHardware" }, "DeviceSoftware": { "$ref": "api_definitions.json#/definitions/DeviceSoftware" }, "DeviceStatus": { "description": "The status of the device as a bitmask. 0x01=Verified, 0x02=Authorised, 0x04=Client Suspended (e.g. lost phone), 0x08=Device Barred (can only be set/cleared by Administrator)", "type": "number", "readOnly": true }, "LastLoginLocation": { "description": "Location of the device at last login", "$ref": "api_definitions.json#/definitions/geojson-point" }, "LastLoginIP": { "description": "IP Address of the device during the last login", "$ref": "api_definitions.json#/definitions/ipNullable" }, "LastLogin": { "description": "The last login date/time for this device", "type": "string", "format": "date-time" }, "DefaultAccount": { "description": "The default account for this device", "$ref": "api_definitions.json#/definitions/uuidNullable" } } }, "item": { "type": "object", "properties": { "ItemID": { "description": "Id of the version of the item", "$ref": "api_definitions.json#/definitions/uuid", "readOnly": true }, "BridgeID": { "description": "Id of the item. Multiple objects with the same BridgeID are considered versions of the same item.", "type": "string", "format": "\\d{8}T\\d{9}[A-z\\d]{14}", "example": "20160523T0938434561F0T6oy0H22C7n", "readOnly": true }, "ItemStatus": { "description": "Status of the item: 1 = active, 2 = deleted.", "type": "integer", "enum": [ 1, 2 ], "example": "1", "readOnly": true }, "ItemCode": { "description": "Merchant code, UPC, etc.", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 50, "default": "" } ] }, "Description": { "description": "Freeform description of item", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 1, "maxLength": 150 } ] }, "Tags": { "description": "Array of tags for this item", "type": "array", "items": { "allOf": [ { "$ref": "api_definitions.json#/definitions/fullAlphaNumericDashSpace" }, { "minLength": 1, "maxLength": 20 } ] } }, "VATCode": { "description": "Freeform information", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 0, "maxLength": 50 } ] }, "VATRate": { "description": "The VAT Rate of the item in 10ths of a percent. e.g. 2000 = 20%", "type": "integer", "minimum": 0, "maximum": 10000 }, "NetAmount": { "description": "The item price excluding VAT in pence (e.g. 100 = £1.00), or NULL if using gross amounts", "type": ["null", "integer"], "minimum": 0 }, "GrossAmount": { "description": "The item price including VAT in pence (e.g. 100 = £1.00), or NULL if using net amounts", "type": ["null","integer"], "minimum": 0 }, "ImageID": { "description": "The image associated with this item", "$ref": "api_definitions.json#/definitions/uuidNullable" }, "LoyaltyPoints": { "description": "The loyalty points for this product (or null if not set).", "type": [ "null", "integer" ], "minimum": 0, "default": null }, "LastUpdate": { "description": "The date & time this item was last updated", "type": "string", "format": "date-time", "readOnly": true } }, "required": ["Description", "VATRate", "NetAmount", "GrossAmount"] }, "AddDeviceBody": { "type": "object", "properties": { "ClientName": { "$ref": "api_definitions.json#/definitions/email" }, "DeviceNumber": { "$ref": "api_definitions.json#/definitions/phoneNumber" }, "Password": { "description": "user's password", "type": "string" }, "DeviceHardware":{ "$ref": "api_definitions.json#/definitions/DeviceHardware" }, "DeviceSoftware":{ "$ref": "api_definitions.json#/definitions/DeviceSoftware" }, "DeviceUuid": { "$ref": "api_definitions.json#/definitions/DeviceUuid" }, "Location": { "description": "Location of the device", "$ref": "api_definitions.json#/definitions/geojson-point" } }, "required": ["ClientName", "DeviceNumber", "Password", "DeviceUuid", "DeviceHardware", "DeviceSoftware"] }, "ReportLostBody": { "type": "object", "properties": { "DeviceNumber": { "$ref": "api_definitions.json#/definitions/phoneNumber" } }, "required": ["DeviceNumber"] }, "pendingInvoice": { "type": "object", "properties": { "InvoiceID": { "description": "ID for this invoice", "$ref": "api_definitions.json#/definitions/uuid", "readOnly": true }, "InvoiceStatus": { "description": "The status of the invoice", "type": "integer", "enum": [ 20, 21, 22 ], "readOnly": true }, "CustomerDisplayName": { "description": "The display name for the customer", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 0, "maxLength": 100, "readOnly": true } ] }, "DueDate": { "description": "The date & time this invoice comes due, or null for no due date", "type": "string", "format": "date-time" }, "MerchantInvoice": { "description": "Array of invoiceItems or `null` if no invoice details.", "type": [ "null", "array" ], "items": { "$ref": "api_definitions.json#/definitions/invoiceItem" }, "default": null }, "MerchantComment": { "description": "Optional free-text annotation from merchant.", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "maxLength": 300 } ], "example": "Invoice for service due", "default": "" }, "MerchantVATNo": { "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpaceNullable" }, { "minLength": 3, "maxLength": 25 } ] }, "CustomerComment": { "description": "Optional free-text annotation from customer (e.g. why they rejected the invoice).", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "maxLength": 300 } ], "readOnly": true, "example": "Invoice is for incorrect amount.", "default": "" }, "MerchantAccountID": { "description": "The account the merchant wants the invoice to be paid into", "$ref": "api_definitions.json#/definitions/uuid" }, "RequestAmount": { "description": "Request amount in pence (100 = £1.00). Max £250.00", "type": "number", "minimum": 0, "maximum": 25000 }, "MerchantInvoiceNumber": { "description": "Monotonically increasing invoice number (per Merchant)", "type": "number", "minimum": 0, "readOnly": true }, "CreationDate": { "description": "The date this invoice was created", "type": "string", "format": "datetime", "readOnly": true }, "LastUpdate": { "description": "The last time this invoice was updated", "type": "string", "format": "datetime", "readOnly": true } }, "required": ["MerchantAccountID", "DueDate", "RequestAmount"] }, "pendingInvoiceDetail": { "allOf": [ {"$ref": "api_definitions.json#/definitions/pendingInvoice"}, { "properties": { "CustomerEmail": { "description": "Email address of the customer to be charged (or null if the customer no longer exists)", "$ref": "api_definitions.json#/definitions/email", "readOnly": true } } } ] }, "addUpdateInvoice": { "allOf": [ { "$ref": "api_definitions.json#/definitions/pendingInvoice" }, { "properties": { "CustomerEmail": { "description": "Email address of the customer to be charged", "$ref": "api_definitions.json#/definitions/email" } }, "required": [ "CustomerEmail" ] } ] }, "promoCode": { "type": "object", "description": "A promotional code to enable functionality", "properties": { "PromoCode": { "$ref": "api_definitions.json#/definitions/uuid" } }, "required": [ "PromoCode" ] }, "apiToken": { "type": "object", "description": "An API access token.", "properties": { "name": { "description": "A memorable name for the token", "allOf": [ { "$ref": "api_definitions.json#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 101 } ] }, "token": { "description": "The API token (only in responses from the server)", "readOnly": true, "type": "string", "pattern": "^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$" } }, "required": [ "name" ] }, "successfulDeviceLoginResponse": { "description": "Login Successful", "type":"object", "properties": { "code": { "description": "Code for further information. For first ever login this will be 10010", "type": "integer", "example": "10010" }, "info": { "description": "Text description of the further information", "type": "string", "example": "First login successful" }, "SessionToken": { "description": "The session token to use in future calls", "$ref": "#/definitions/token" }, "DeviceName": { "description": "The name of the device as given by the user.", "allOf": [ { "$ref": "#/definitions/generalTextSpace" }, { "minLength": 2, "maxLength": 75 } ] }, "MerchantStatus": { "description": "True if the client is an active merchant", "type": "boolean", "example": false }, "ServerVersion": { "description": "The current server version.", "$ref": "#/definitions/version" }, "PaymentMin": { "description": "The minimum payment allowed for a transaction (in pence). This may be further limited by merchant configuration.", "type": "integer", "minimum": 0 }, "PaymentMax": { "description": "The maximum payment allowed for a transaction (in pence). This may be further limited by merchant configuration.", "type": "integer", "minimum": 0 }, "TipMin": { "description": "The minimum tip allowed for a transaction if a tip is provided (in pence). This may be further limited by merchant configuration.", "type": "integer", "minimum": 0 }, "TipMax": { "description": "The maximum tip allowed for a transaction if a tip is provided (in pence). This may be further limited by merchant configuration.", "type": "integer", "minimum": 0 }, "TransactionMin": { "description": "The minimum total amount (payment + tip) allowed for a full transaction (in pence). This may be further limited by merchant configuration.", "type": "integer", "minimum": 0 }, "ClientDetailsSet": { "description": "True if the client details have been set. Otherwise they must be set before attempting to make any transactions.", "type": "boolean" }, "FeatureFlags": { "description": "List of additonal features that are enabled for this client", "$ref": "#/definitions/featureFlags" }, "SessionTimeout": { "description": "The session timeout time between messages (in milliseconds).", "type": "integer", "minimum": 0, "example": 0 }, "PayCodeTimeout": { "description": "The maximum length of time allowed for a paycode to be redeemed (in milliseconds).", "type": "integer", "minimum": 0, "example": 0 }, "CallTimeout": { "description": "The maximum length of time any request is expected to take (in milliseconds).", "type": "integer", "minimum": 0, "example": 0 }, "PollingInterval": { "description": "The length of time a client should leave between checking the status of a paycode (in milliseconds).", "type": "integer", "minimum": 0, "example": 0 }, "DesyncThreshold": { "description": "Maximum deviation between server and client clock synchronization (in milliseconds). All requests will be rejected if the client is outwith this threshold.", "type": "integer", "minimum": 0 }, "AcceptEULA": { "description": "If present, returns the new EULA version that the user must accept to continue.", "$ref": "#/definitions/version" } }, "required": [ "code", "info", "SessionToken", "DeviceName", "SessionTimeout", "PayCodeTimeout", "PollingInterval", "CallTimeout", "MerchantStatus", "ServerVersion", "PaymentMin", "PaymentMax", "TipMin", "TipMax", "TransactionMin", "ClientDetailsSet", "DesyncThreshold", "FeatureFlags" ] }, "pendingHmacResponse": { "description": "A pending HMAC needs to be accepted before further requests can be made.", "type": "object", "properties": { "PendingHMAC": { "description": "Returns a new secure HMAC key that should be used for all future requests. The client must call `/devices/{objectID}/rotatedHMAC` to confirm acceptance. All other commands will be rejected until the HMAC Key change has been confirmed.", "$ref": "api_definitions.json#/definitions/hex256" } }, "required": [ "PendingHMAC" ] } } }