# Register an application Registers an application and displays it publicly in the App Store. Before you submit an application, read the App Store documentation. Endpoint: POST /applications Version: latest Security: SecretApiKey, JWT ## Request fields (application/json): - `name` (string, required) Name of the application. - `logoId` (string, required) File ID of the application logo. Example: "4f6cf35x-2c4y-483z-a0a9-158621f77a21" - `authorName` (string, required) Name of the application author. - `authorLogoId` (string,null) File ID of the author's logo. Example: "4f6cf35x-2c4y-483z-a0a9-158621f77a21" - `tagline` (string, required) Tagline of the application. - `description` (string, required) Detailed application description. This field accepts markdown and simple text. - `permissions` (array, required) List of permissions that are available to the application. If you would like to add permissions, contact [Rebilly Support](mailto:info@rebilly.com). Enum: "DeleteApplicationInstance", "GetApplicationInstanceConfiguration", "GetCustomer", "GetCustomerCollection", "GetInvoice", "GetInvoiceCollection", "GetPlan", "GetPlanCollection", "GetProduct", "GetProductCollection", "GetSubscription", "GetSubscriptionCollection", "GetTransaction", "GetTransactionCollection", "GetWebhook", "GetWebsite", "GetWebsiteCollection", "PostCoupon", "PostCouponRedemption", "PostGatewayAccountDowntimeSchedule", "PostPayout", "PostServiceCredential", "PostWebhook", "PostWebhookCredentialHash", "PutApplicationInstanceConfiguration", "PutCoupon" - `configurationUrl` (string,null) External URL where the application is configured during installation. - `properties` (object) Defines settings that users can complete when they install the application. This field accepts [JSON-schema](https://json-schema.org/) drafts 4, 6, and 7. Example: {"type":"object","properties":{"email":{"type":"string"},"max":{"type":"integer","minimum":0,"exclusiveMaximum":100}},"required":["email"]} ## Response 201 fields (application/json): - `id` (string) ID of the application. Example: "app_01H0HT25X7XXCJGS4H8VJSYF2Y" - `name` (string, required) Name of the application. - `logoId` (string, required) File ID of the application logo. Example: "4f6cf35x-2c4y-483z-a0a9-158621f77a21" - `authorName` (string, required) Name of the application author. - `authorLogoId` (string,null) File ID of the author's logo. Example: "4f6cf35x-2c4y-483z-a0a9-158621f77a21" - `tagline` (string, required) Tagline of the application. - `description` (string, required) Detailed application description. This field accepts markdown and simple text. - `status` (string) Status of the application. Enum: "pending-approval", "available", "disabled" - `permissions` (array, required) List of permissions that are available to the application. If you would like to add permissions, contact [Rebilly Support](mailto:info@rebilly.com). Enum: "DeleteApplicationInstance", "GetApplicationInstanceConfiguration", "GetCustomer", "GetCustomerCollection", "GetInvoice", "GetInvoiceCollection", "GetPlan", "GetPlanCollection", "GetProduct", "GetProductCollection", "GetSubscription", "GetSubscriptionCollection", "GetTransaction", "GetTransactionCollection", "GetWebhook", "GetWebsite", "GetWebsiteCollection", "PostCoupon", "PostCouponRedemption", "PostGatewayAccountDowntimeSchedule", "PostPayout", "PostServiceCredential", "PostWebhook", "PostWebhookCredentialHash", "PutApplicationInstanceConfiguration", "PutCoupon" - `configurationUrl` (string,null) External URL where the application is configured during installation. - `configuredBy` (string) Specifies who can configure the application. Enum: "user", "application" - `properties` (object) Defines settings that users can complete when they install the application. This field accepts [JSON-schema](https://json-schema.org/) drafts 4, 6, and 7. Example: {"type":"object","properties":{"email":{"type":"string"},"max":{"type":"integer","minimum":0,"exclusiveMaximum":100}},"required":["email"]} - `createdTime` (string) Date and time which is set automatically when the resource is created. - `updatedTime` (string) Date and time which updates automatically when the resource is updated. - `_links` (array) Related links. - `_links.href` (string) Link URL. - `_links.rel` (string) Type of link. Enum: "self", "applicationInstance", "logoUrl", "authorLogoUrl" ## Response 401 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 403 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 409 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 422 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. - `invalidFields` (array) Invalid field details. Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}] - `invalidFields.field` (string) Name of the field. Dot notation is used for nested object field names. - `invalidFields.message` (string) Message field. ## Response 429 fields (application/json): - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". Example: "about:blank" - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. Example: "Rate Limit Exceeded" - `status` (integer) HTTP status code. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. Example: "A request cannot be executed because the user has sent too many requests within a certain period of time" - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.