{ "swagger": "2.0", "info": { "version": "2.1", "title": "Rebilly REST API", "contact": { "name": "Rebilly API Support", "url": "https://www.rebilly.com/contact/", "email": "integrations@rebilly.com" }, "license": { "name": "Rebilly", "url": "https://www.rebilly.com/api/license/" }, "termsOfService": "https://www.rebilly.com/terms/" }, "host": "api.rebilly.com", "basePath": "/v2.1", "schemes": [ "https" ], "produces": [ "application/json" ], "consumes": [ "application/json" ], "tags": [ { "name": "Public" }, { "name": "Layout", "description": "Layouts are used to hold collections of plans. A layout can be used to\npower a pricing page. You can make multiple layouts, and use rules to\ntarget them to different audiences.\n" }, { "name": "Website", "description": "Website is your website accepting payments\n" }, { "name": "Contact", "description": "Contacts belong to Customers. A Customer can have many contacts.\nSome contacts are associated to Invoices, Payment Cards, Subscriptions\nand Transactions.\n" }, { "name": "Organization", "description": "Organizations include the name and address of the entities related to your\naccount. An account may be multi-national, and support multiple\norganizations. Note: Organizations are share between \"Live\" and \"Sandbox\"\n" }, { "name": "Blacklist", "description": "Your blacklists contains values of customerIds, email addresses,\nipAddresses, bank identification numbers, countries or payment cards that\nyou do NOT want to do business with. They are a good tool for managing\nrisk. A blacklist entry that expires after a period of time we call a\ngreylist.\n" }, { "name": "Customer", "description": "Customers are your customers, sometimes known as accounts, clients,\nmembers, patrons, or players in other systems.\n" }, { "name": "Payment", "description": "Collect money from your customers with payments.\n" }, { "name": "Product", "description": "Your product includes digital goods, services, and physical goods. \n" }, { "name": "Taxes", "description": "You can map a product to a tax category. The tax category is used by \ntax providers to calculate taxes for invoices.\n" } ], "securityDefinitions": { "ApiKey": { "description": "When you sign up for an account, you are given your first API key.\nTo do so please follow this link: https://www.rebilly.com/site/signup/\nAlso you can generate additional API keys, and delete API keys (as you may\nneed to rotate your keys in the future).\n", "name": "REB-APIKEY", "type": "apiKey", "in": "header" } }, "security": [ { "ApiKey": [] } ], "responses": { "AccessForbidden": { "description": "Access forbidden, invalid API-KEY was used", "schema": { "$ref": "#/definitions/Error" } }, "NotFound": { "description": "Resource was not found", "schema": { "$ref": "#/definitions/Error" } }, "InvalidDataError": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/Error" } } }, "parameters": { "resourceId": { "name": "id", "in": "path", "description": "The resource identifier string", "type": "string", "required": true }, "collectionLimit": { "name": "limit", "in": "query", "description": "The collection items limit", "type": "integer", "minimum": 0, "maximum": 1000 }, "collectionOffset": { "name": "offset", "in": "query", "description": "The collection items offset", "type": "integer", "minimum": 0 } }, "paths": { "/authentication-options": { "get": { "tags": [ "AuthenticationOptions", "Credential", "ResetPasswordToken", "AuthenticationToken", "Public" ], "summary": "Read current options", "description": "Read current authentication options\n", "responses": { "200": { "description": "Current authentication options was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/AuthenticationOptions" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "put": { "tags": [ "AuthenticationOptions", "Credential", "ResetPasswordToken", "AuthenticationToken", "Public" ], "summary": "Change options", "description": "Change options\n", "parameters": [ { "name": "body", "in": "body", "description": "AuthenticationOptions resource", "required": true, "schema": { "$ref": "#/definitions/AuthenticationOptions" } } ], "responses": { "200": { "description": "Authentication Options were updated", "schema": { "$ref": "#/definitions/AuthenticationOptions" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/authentication-tokens/{token}": { "parameters": [ { "name": "token", "in": "path", "description": "The token identifier string", "type": "string", "required": true } ], "get": { "tags": [ "AuthenticationToken", "Credential", "Public" ], "summary": "Verify", "description": "Verify an authentication token\n", "responses": { "200": { "description": "Authentication Token was verified", "schema": { "$ref": "#/definitions/AuthenticationToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "tags": [ "AuthenticationToken", "Credential", "Public" ], "summary": "Logout a user", "description": "Logout a user\n", "responses": { "204": { "description": "User was logged out" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/authentication-tokens": { "get": { "tags": [ "AuthenticationToken", "Credential", "Public" ], "summary": "Retrieve a list of auth tokens", "description": "Retrieve a list of auth tokens\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of auth tokens was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/AuthenticationToken" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "AuthenticationToken", "Credential", "Public" ], "summary": "Login", "description": "Login a user\n", "parameters": [ { "name": "body", "in": "body", "description": "AuthenticationToken resource", "required": true, "schema": { "$ref": "#/definitions/AuthenticationToken" } } ], "responses": { "201": { "description": "Login successful", "schema": { "$ref": "#/definitions/AuthenticationToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/blacklists/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Blacklist", "Public" ], "summary": "Retrieve a blacklist", "description": "Retrieve a blacklist with specified identifier string\n", "responses": { "200": { "description": "Blacklist was retrieved successfully", "schema": { "$ref": "#/definitions/Blacklist" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Blacklist", "Public" ], "summary": "Create a blacklist with predefined ID", "description": "Create a blacklist with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Blacklist resource", "required": true, "schema": { "$ref": "#/definitions/Blacklist" } } ], "responses": { "201": { "description": "Blacklist was created", "schema": { "$ref": "#/definitions/Blacklist" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "409": { "description": "Blacklist exist and cannot be updated", "schema": { "$ref": "#/definitions/Error" } }, "422": { "$ref": "#/responses/InvalidDataError" } } }, "delete": { "tags": [ "Blacklist", "Public" ], "summary": "Delete a blacklist", "description": "Delete a blacklist with predefined identifier string\n", "responses": { "204": { "description": "Blacklist was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/blacklists": { "get": { "tags": [ "Blacklist", "Public" ], "summary": "Retrieve a list of blacklists", "description": "Retrieve a list of blacklists\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Blacklists was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Blacklist" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Blacklist", "Public" ], "summary": "Create a blacklist", "description": "Create a blacklist\n", "parameters": [ { "name": "body", "in": "body", "description": "Blacklist resource", "required": true, "schema": { "$ref": "#/definitions/Blacklist" } } ], "responses": { "201": { "description": "Blacklist was created", "schema": { "$ref": "#/definitions/Blacklist" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/contacts/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Contact", "Public" ], "summary": "Retrieve a contact", "description": "Retrieve a contact with specified identifier string\n", "responses": { "200": { "description": "Contact was retrieved successfully", "schema": { "$ref": "#/definitions/Contact" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Contact", "Public" ], "summary": "Create or update a contact with predefined ID", "description": "Create or update a contact with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Contact resource", "required": true, "schema": { "$ref": "#/definitions/Contact" } } ], "responses": { "201": { "description": "Contact was created", "schema": { "$ref": "#/definitions/Contact" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "409": { "description": "Contact exists and cannot be updated" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/contacts": { "get": { "tags": [ "Contact", "Public" ], "summary": "Retrieve a list of contacts", "description": "Retrieve a list of contacts\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Contacts was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Contact" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Contact", "Public" ], "summary": "Create a contact", "description": "Create a contact\n", "parameters": [ { "name": "body", "in": "body", "description": "Contact resource", "required": true, "schema": { "$ref": "#/definitions/Contact" } } ], "responses": { "201": { "description": "Contact was created", "schema": { "$ref": "#/definitions/Contact" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/credentials/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Credential", "Public" ], "summary": "Retrieve a credential", "description": "Retrieve a credential with specified identifier string\n", "responses": { "200": { "description": "Credential was retrieved successfully", "schema": { "$ref": "#/definitions/Credential" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Credential", "Public" ], "summary": "Create or update a credential with predefined ID", "description": "Create or update a credential with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Credential resource", "required": true, "schema": { "$ref": "#/definitions/Credential" } } ], "responses": { "200": { "description": "Credential was updated", "schema": { "$ref": "#/definitions/Credential" } }, "201": { "description": "Credential was created", "schema": { "$ref": "#/definitions/Credential" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } }, "delete": { "tags": [ "Credential", "Public" ], "summary": "Delete a credential", "description": "Delete a credential with predefined identifier string\n", "responses": { "204": { "description": "Credential was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/credentials": { "get": { "tags": [ "Credential", "Public" ], "summary": "Retrieve a list of credentials", "description": "Retrieve a list of credentials\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Credentials was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Credential" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Credential", "Public" ], "summary": "Create a credential", "description": "Create a credential\n", "parameters": [ { "name": "body", "in": "body", "description": "Credential resource", "required": true, "schema": { "$ref": "#/definitions/Credential" } } ], "responses": { "201": { "description": "Credential was created", "schema": { "$ref": "#/definitions/Credential" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/custom-fields/{resource}/{name}": { "parameters": [ { "name": "resource", "in": "path", "description": "The resource type string", "type": "string", "required": true, "enum": [ "customers", "payment-cards", "subscriptions", "payments", "websites", "contacts" ] }, { "name": "name", "in": "path", "description": "The custom field's identifier string", "type": "string", "required": true } ], "get": { "tags": [ "Custom Fields", "Public" ], "summary": "Retrieve a Custom Field", "description": "Retrieve a schema of the given Custom Field for the given resource type\n", "responses": { "200": { "description": "A schema of the Custom Field was retrieved successfully", "schema": { "$ref": "#/definitions/CustomField" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Custom Fields", "Public" ], "summary": "Alter a Custom Field", "description": "Alter a schema of the given Custom Field for the given resource type.\n", "parameters": [ { "name": "body", "in": "body", "description": "Custom Fields schema of the given resource type", "required": true, "schema": { "$ref": "#/definitions/CustomField" } } ], "responses": { "200": { "description": "The Custom Field was updated", "schema": { "$ref": "#/definitions/CustomField" } }, "201": { "description": "The Custom Fields was created", "schema": { "$ref": "#/definitions/CustomField" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "409": { "description": "The schema is in use: remove all the associated data in order to remove or alter the schema", "schema": { "$ref": "#/definitions/Error" } }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } }, "delete": { "tags": [ "Custom Fields", "Public" ], "summary": "Delete a custom field", "description": "Delete a custom field by its name\n", "responses": { "204": { "description": "Custom field has been deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "409": { "description": "The field is in use: remove all the associated data first", "schema": { "$ref": "#/definitions/Error" } } } } }, "/custom-fields/{resource}": { "parameters": [ { "name": "resource", "in": "path", "description": "The resource type string", "type": "string", "required": true, "enum": [ "customers", "payment-cards", "subscriptions", "payments", "websites", "contacts" ] } ], "get": { "tags": [ "Custom Fields", "Public" ], "summary": "Retrieve Custom Fields", "description": "Retrieve a schema of Custom Fields for the given resource type\n", "responses": { "200": { "description": "A schema of Custom Fields was retrieved successfully", "schema": { "description": "The list of custom fields", "type": "array", "items": { "$ref": "#/definitions/CustomField" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } } }, "/customers/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Customer", "Public" ], "summary": "Retrieve a customer", "description": "Retrieve a customer with specified identifier string\n", "responses": { "200": { "description": "Customer was retrieved successfully", "schema": { "$ref": "#/definitions/Customer" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Customer", "Public" ], "summary": "Create a customer with predefined ID", "description": "Create a customer with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Customer resource", "required": true, "schema": { "$ref": "#/definitions/Customer" } } ], "responses": { "200": { "description": "Customer was updated", "schema": { "$ref": "#/definitions/Customer" } }, "201": { "description": "Customer was created", "schema": { "$ref": "#/definitions/Customer" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/customers": { "get": { "tags": [ "Customer", "Public" ], "summary": "Retrieve a list of customers", "description": "Retrieve a list of customers\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Customers was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Customer" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Customer", "Public" ], "summary": "Create a customer", "description": "Create a customer\n", "parameters": [ { "name": "body", "in": "body", "description": "Customer resource", "required": true, "schema": { "$ref": "#/definitions/Customer" } } ], "responses": { "201": { "description": "Customer was created", "schema": { "$ref": "#/definitions/Customer" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/gateway-accounts/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "GatewayAccount", "Public" ], "summary": "Retrieve a Gateway Account", "description": "Retrieve a Gateway Account with specified identifier string\n", "responses": { "200": { "description": "Gateway Account was retrieved successfully", "schema": { "$ref": "#/definitions/GatewayAccount" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "GatewayAccount", "Public" ], "summary": "Create or update a Gateway Account with predefined ID", "description": "Create or update a GatewayAccount with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Gateway Account resource", "required": true, "schema": { "$ref": "#/definitions/GatewayAccount" } } ], "responses": { "200": { "description": "Gateway Account was updated", "schema": { "$ref": "#/definitions/GatewayAccount" } }, "201": { "description": "Gateway Account was created", "schema": { "$ref": "#/definitions/GatewayAccount" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } }, "delete": { "tags": [ "GatewayAccount", "Public" ], "summary": "Delete a Gateway Account", "description": "Delete a Gateway Account with predefined identifier string\n", "responses": { "204": { "description": "Gateway Account was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/gateway-accounts": { "get": { "tags": [ "GatewayAccount", "Public" ], "summary": "Retrieve a list of gateway accounts", "description": "Retrieve a list of gateway accounts\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of GatewayAccount was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/GatewayAccount" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "GatewayAccount", "Public" ], "summary": "Create a Gateway Account", "description": "Create a GatewayAccount\n", "parameters": [ { "name": "body", "in": "body", "description": "GatewayAccount resource", "required": true, "schema": { "$ref": "#/definitions/GatewayAccount" } } ], "responses": { "201": { "description": "Gateway Account was created", "schema": { "$ref": "#/definitions/GatewayAccount" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/invoices/{id}/abandon": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Invoice", "Public" ], "summary": "Abandon an invoice", "description": "Abandon an invoice with specified identifier string\n", "responses": { "201": { "description": "Invoice was abandoned successfully", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/invoices/{id}/issue": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Invoice", "Public" ], "summary": "Issue an invoice", "description": "Issue an invoice with specified identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "InvoiceItem resource", "required": true, "schema": { "$ref": "#/definitions/InvoiceIssue" } } ], "responses": { "201": { "description": "Invoice was abandoned successfully", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/invoices/{id}/items": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Invoice", "InvoiceItem", "Public" ], "summary": "Retrieve invoice items", "description": "Retrieve an invoice items with specified invoice identifier string\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "Invoice items were retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/InvoiceItem" } } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "post": { "tags": [ "Invoice", "InvoiceItem", "Public" ], "summary": "Create an invoice item", "description": "Create an invoice item\n", "parameters": [ { "name": "body", "in": "body", "description": "InvoiceItem resource", "required": true, "schema": { "$ref": "#/definitions/InvoiceItem" } } ], "responses": { "201": { "description": "InvoiceItem was created", "schema": { "$ref": "#/definitions/InvoiceItem" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/invoices/{id}/void": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Invoice", "Public" ], "summary": "Void an invoice", "description": "Void an invoice with specified identifier string\n", "responses": { "201": { "description": "Invoice was voided successfully", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/invoices/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Invoice", "Public" ], "summary": "Retrieve an invoice", "description": "Retrieve an invoice with specified identifier string\n", "responses": { "200": { "description": "Invoice was retrieved successfully", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Invoice", "Public" ], "summary": "Create or update an invoice with predefined ID", "description": "Create or update an invoice with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Invoice resource", "required": true, "schema": { "$ref": "#/definitions/Invoice" } } ], "responses": { "200": { "description": "Invoice was updated", "schema": { "$ref": "#/definitions/Invoice" } }, "201": { "description": "Invoice was created", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/invoices": { "get": { "tags": [ "Invoice", "Public" ], "summary": "Retrieve a list of invoices", "description": "Retrieve a list of invoices\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of invoices was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Invoice" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Invoice", "Public" ], "summary": "Create an invoice", "description": "Create an invoice\n", "parameters": [ { "name": "body", "in": "body", "description": "Invoice resource", "required": true, "schema": { "$ref": "#/definitions/Invoice" } } ], "responses": { "201": { "description": "Invoice was created", "schema": { "$ref": "#/definitions/Invoice" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/layouts/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Layout", "Public" ], "summary": "Retrieve a layout", "description": "Retrieve a layout with specified identifier string\n", "responses": { "200": { "description": "Layout was retrieved successfully", "schema": { "$ref": "#/definitions/Layout" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Layout", "Public" ], "summary": "Create or update a layout with predefined ID", "description": "Create or update a layout with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Layout resource", "required": true, "schema": { "$ref": "#/definitions/Layout" } } ], "responses": { "200": { "description": "Layout was updated", "schema": { "$ref": "#/definitions/Layout" } }, "201": { "description": "Layout was created", "schema": { "$ref": "#/definitions/Layout" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/layouts": { "get": { "tags": [ "Layout", "Public" ], "summary": "Retrieve a layout list", "description": "Retrieve a layout list\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "Layout list was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Layout" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Layout", "Public" ], "summary": "Create a layout", "description": "Create a layout\n", "parameters": [ { "name": "body", "in": "body", "description": "Layout resource", "required": true, "schema": { "$ref": "#/definitions/Layout" } } ], "responses": { "201": { "description": "Layout was created", "schema": { "$ref": "#/definitions/Layout" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/lead-sources/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "LeadSource", "Public" ], "summary": "Retrieve a LeadSource", "description": "Retrieve a LeadSource with specified identifier string\n", "responses": { "200": { "description": "LeadSource was retrieved successfully", "schema": { "$ref": "#/definitions/LeadSource" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "LeadSource", "Public" ], "summary": "Create a LeadSource with predefined ID", "description": "Create a LeadSource with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "LeadSource resource", "required": true, "schema": { "$ref": "#/definitions/LeadSource" } } ], "responses": { "200": { "description": "LeadSource was updated", "schema": { "$ref": "#/definitions/LeadSource" } }, "201": { "description": "LeadSource was created", "schema": { "$ref": "#/definitions/LeadSource" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/lead-sources": { "get": { "tags": [ "LeadSource", "Public" ], "summary": "Retrieve a list of LeadSources", "description": "Retrieve a list of LeadSources\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of LeadSources was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/LeadSource" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "LeadSource", "Public" ], "summary": "Create a LeadSource", "description": "Create a LeadSource\n", "parameters": [ { "name": "body", "in": "body", "description": "LeadSource resource", "required": true, "schema": { "$ref": "#/definitions/LeadSource" } } ], "responses": { "201": { "description": "LeadSource was created", "schema": { "$ref": "#/definitions/LeadSource" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/notes/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Note", "Public" ], "summary": "Retrieve a note", "description": "Retrieve a note with specified identifier string\n", "responses": { "200": { "description": "Note was retrieved successfully", "schema": { "$ref": "#/definitions/Note" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Note", "Public" ], "summary": "Create or update a note with predefined ID", "description": "Create or update a note with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Note resource", "required": true, "schema": { "$ref": "#/definitions/Note" } } ], "responses": { "200": { "description": "Note was updated", "schema": { "$ref": "#/definitions/Note" } }, "201": { "description": "Note was created", "schema": { "$ref": "#/definitions/Note" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/notes": { "get": { "tags": [ "Note", "Public" ], "summary": "Retrieve a list of notes", "description": "Retrieve a list of notes\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Notes was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Note" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Note", "Public" ], "summary": "Create a note", "description": "Create a note\n", "parameters": [ { "name": "body", "in": "body", "description": "Note resource", "required": true, "schema": { "$ref": "#/definitions/Note" } } ], "responses": { "201": { "description": "Note was created", "schema": { "$ref": "#/definitions/Note" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/organizations/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Organization", "Public" ], "summary": "Retrieve a organization", "description": "Retrieve a organization with specified identifier string\n", "responses": { "200": { "description": "Organization was retrieved successfully", "schema": { "$ref": "#/definitions/Organization" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Organization", "Public" ], "summary": "Create or update a organization with predefined ID", "description": "Create or update a organization with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Organization resource", "required": true, "schema": { "$ref": "#/definitions/Organization" } } ], "responses": { "200": { "description": "Organization was updated", "schema": { "$ref": "#/definitions/Organization" } }, "201": { "description": "Organization was created", "schema": { "$ref": "#/definitions/Organization" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } }, "delete": { "tags": [ "Organization", "Public" ], "summary": "Delete a organization", "description": "Delete a organization with predefined identifier string\n", "responses": { "204": { "description": "Organization was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "409": { "description": "Organization has related resources and cannot be deleted", "schema": { "$ref": "#/definitions/Error" } } } } }, "/organizations": { "get": { "tags": [ "Organization", "Public" ], "summary": "Retrieve a list of organizations", "description": "Retrieve a list of organizations\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of organizations was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Organization" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Organization", "Public" ], "summary": "Create a organization", "description": "Create a organization\n", "parameters": [ { "name": "body", "in": "body", "description": "Organization resource", "required": true, "schema": { "$ref": "#/definitions/Organization" } } ], "responses": { "201": { "description": "Organization was created", "schema": { "$ref": "#/definitions/Organization" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/password-tokens/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "ResetPasswordToken", "Credential", "Public" ], "summary": "Retrieve a Reset Password Token", "description": "Retrieve a Reset Password Token with specified identifier string\n", "responses": { "200": { "description": "ResetPasswordToken was retrieved successfully", "schema": { "$ref": "#/definitions/ResetPasswordToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "tags": [ "ResetPasswordToken", "Credential", "Public" ], "summary": "Delete a Reset Password Token", "description": "Delete a Reset Password Token with predefined identifier string\n", "responses": { "204": { "description": "ResetPasswordToken was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "409": { "description": "ResetPasswordToken has related resources and cannot be deleted" } } } }, "/password-tokens": { "get": { "tags": [ "ResetPasswordToken", "Credential", "Public" ], "summary": "Retrieve a list of tokens", "description": "Retrieve a list of tokens\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Reset Password Tokens was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/ResetPasswordToken" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "ResetPasswordToken", "Credential", "Public" ], "summary": "Create a Reset Password Token", "description": "Create a Reset Password Token\n", "parameters": [ { "name": "body", "in": "body", "description": "ResetPasswordToken resource", "required": true, "schema": { "$ref": "#/definitions/ResetPasswordToken" } } ], "responses": { "201": { "description": "Reset Password Token was created", "schema": { "$ref": "#/definitions/ResetPasswordToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/payment-cards/{id}/authorization": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "PaymentCard", "Public" ], "summary": "Authorize a Payment Card", "description": "Authorize a Payment Card\n", "parameters": [ { "name": "body", "in": "body", "description": "PaymentCard resource", "required": true, "schema": { "type": "object", "required": [ "websiteId", "currency" ], "properties": { "websiteId": { "description": "The Website ID", "type": "string" }, "currency": { "description": "Currency (three letter code)", "type": "string" }, "gatewayAccountId": { "description": "The Gateway account ID", "type": "string" }, "amount": { "description": "Amount", "type": "number", "format": "double" } } } } ], "responses": { "201": { "description": "Authorization successful", "schema": { "$ref": "#/definitions/PaymentCard" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/payment-cards/{id}/deactivation": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "PaymentCard", "Public" ], "summary": "Deactivate a Payment Card", "description": "Deactivate a Payment Card\n", "responses": { "201": { "description": "Authorization successful", "schema": { "$ref": "#/definitions/PaymentCard" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/payment-cards/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "PaymentCard", "Public" ], "summary": "Retrieve a Payment Card", "description": "Retrieve a Payment Card with specified identifier string\n", "responses": { "200": { "description": "PaymentCard was retrieved successfully", "schema": { "$ref": "#/definitions/PaymentCard" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/payment-cards": { "get": { "tags": [ "PaymentCard", "Public" ], "summary": "Retrieve a list of Payment Cards", "description": "Retrieve a list of Payments Cards\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Payment Card was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentCard" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "PaymentCard", "Public" ], "summary": "Create a Payment Card", "description": "Create a Payment Card\n", "parameters": [ { "name": "body", "in": "body", "description": "PaymentCard resource", "required": true, "schema": { "$ref": "#/definitions/PaymentCard" } } ], "responses": { "201": { "description": "Payment Card was created", "schema": { "$ref": "#/definitions/PaymentCard" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/payments/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Payment", "Public" ], "summary": "Retrieve a payment", "description": "Retrieve a payment with specified identifier string\n", "responses": { "200": { "description": "Payment was retrieved successfully", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Payment", "Public" ], "summary": "Create a payment with predefined ID", "description": "Make a payment with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Payment resource", "required": true, "schema": { "$ref": "#/definitions/Payment" } } ], "responses": { "201": { "description": "Payment was processed", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentResponse" } } }, "202": { "description": "Payment was accepted", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/payments": { "get": { "tags": [ "Payment", "Public" ], "summary": "Retrieve a payment list", "description": "Retrieve a payment list\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "Payment list was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentResponse" } } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "post": { "tags": [ "Payment", "Public" ], "summary": "Create a payment", "description": "Create a payment\n", "parameters": [ { "name": "body", "in": "body", "description": "Payment resource", "required": true, "schema": { "$ref": "#/definitions/Payment" } } ], "responses": { "201": { "description": "Payment was processed", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentResponse" } } }, "202": { "description": "Payment was accepted", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/plans/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Plan", "Public" ], "summary": "Retrieve a plan", "description": "Retrieve a plan with specified identifier string\n", "responses": { "200": { "description": "Plan was retrieved successfully", "schema": { "$ref": "#/definitions/Plan" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Plan", "Public" ], "summary": "Create or update a Plan with predefined ID", "description": "Create or update a Plan with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Plan resource", "required": true, "schema": { "$ref": "#/definitions/Plan" } } ], "responses": { "200": { "description": "Plan was updated", "schema": { "$ref": "#/definitions/Plan" } }, "201": { "description": "Plan was created", "schema": { "$ref": "#/definitions/Plan" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } }, "delete": { "tags": [ "Plan", "Public" ], "summary": "Delete a Plan", "description": "Delete a Plan with predefined identifier string\n", "responses": { "204": { "description": "Plan was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/plans": { "get": { "tags": [ "Plan", "Public" ], "summary": "Retrieve a list of plans", "description": "Retrieve a list of plans\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Plans was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Plan" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Plan", "Public" ], "summary": "Create a plan", "description": "Create a plan\n", "parameters": [ { "name": "body", "in": "body", "description": "Plan resource", "required": true, "schema": { "$ref": "#/definitions/Plan" } } ], "responses": { "201": { "description": "Plan was created", "schema": { "$ref": "#/definitions/Plan" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/products/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Product", "Public" ], "summary": "Retrieve a product", "description": "Retrieve a product with specified identifier string\n", "responses": { "200": { "description": "Product was retrieved successfully", "schema": { "$ref": "#/definitions/Product" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Product", "Public" ], "summary": "Create a product with predefined ID", "description": "Create a product with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Product resource", "required": true, "schema": { "$ref": "#/definitions/Product" } } ], "responses": { "200": { "description": "Product was updated", "schema": { "$ref": "#/definitions/Product" } }, "201": { "description": "Product was created", "schema": { "$ref": "#/definitions/Product" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/products": { "get": { "tags": [ "Product", "Public" ], "summary": "Retrieve a list of products", "description": "Retrieve a list of products\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of products was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Product" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Product", "Public" ], "summary": "Create a Product", "description": "Create a Product\n", "parameters": [ { "name": "body", "in": "body", "description": "Product resource", "required": true, "schema": { "$ref": "#/definitions/Product" } } ], "responses": { "201": { "description": "Product was created", "schema": { "$ref": "#/definitions/Product" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "$ref": "#/responses/InvalidDataError" } } } }, "/queue-payments/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Payment", "Public" ], "summary": "Retrieve a scheduled payment", "description": "Retrieve a payment with specified identifier string\n", "responses": { "200": { "description": "Successful retrieve the payment that still waiting to be processed", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "303": { "description": "Payment was successfully processed and moved out from queue", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/subscriptions/{id}/cancel": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Subscription", "Public" ], "summary": "Cancel a subscription", "description": "Cancel a subscription\n", "parameters": [ { "name": "body", "in": "body", "description": "Only policy", "required": true, "schema": { "$ref": "#/definitions/SubscriptionCancel" } } ], "responses": { "201": { "description": "Subscription was switched", "schema": { "$ref": "#/definitions/Subscription" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/subscriptions/{id}/switch": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Subscription", "Public" ], "summary": "Switch a subscription", "description": "Switch a subscription\n", "parameters": [ { "name": "body", "in": "body", "description": "SubscriptionSwitch resource", "required": true, "schema": { "$ref": "#/definitions/SubscriptionSwitch" } } ], "responses": { "201": { "description": "Subscription was switched", "schema": { "$ref": "#/definitions/Subscription" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/subscriptions/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Subscription", "Public" ], "summary": "Retrieve a subscription", "description": "Retrieve a subscription with specified identifier string\n", "responses": { "200": { "description": "Subscription was retrieved successfully", "schema": { "$ref": "#/definitions/Subscription" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Subscription", "Public" ], "summary": "Create or update a subscription with predefined ID", "description": "Create or update a subscription with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Subscription resource", "required": true, "schema": { "$ref": "#/definitions/Subscription" } } ], "responses": { "200": { "description": "Subscription was updated", "schema": { "$ref": "#/definitions/Subscription" } }, "201": { "description": "Subscription was created", "schema": { "$ref": "#/definitions/Subscription" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/subscriptions": { "get": { "tags": [ "Subscription", "Public" ], "summary": "Retrieve a list of subscriptions", "description": "Retrieve a list of subscriptions\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of subscriptions was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Subscription" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Subscription", "Public" ], "summary": "Create a subscription", "description": "Create a subscription\n", "parameters": [ { "name": "body", "in": "body", "description": "Subscription resource", "required": true, "schema": { "$ref": "#/definitions/Subscription" } } ], "responses": { "201": { "description": "Subscription was created", "schema": { "$ref": "#/definitions/Subscription" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/tax-categories": { "get": { "tags": [ "Taxes", "Public" ], "summary": "Retrieve a list of tax categories", "description": "Retrieve a list of tax categories\n", "responses": { "200": { "description": "A list of tax categories was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/TaxCategory" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } } }, "/tokens/{token}/expiration": { "parameters": [ { "name": "token", "in": "path", "description": "The token identifier string", "type": "string", "required": true } ], "post": { "tags": [ "PaymentCardToken", "Public" ], "summary": "Expire a token", "description": "Expire a token\n", "parameters": [ { "name": "body", "in": "body", "description": "PaymentCardToken resource", "required": true, "schema": { "$ref": "#/definitions/PaymentCardToken" } } ], "responses": { "201": { "description": "Token expiration successful", "schema": { "$ref": "#/definitions/PaymentCardToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/tokens/{token}": { "parameters": [ { "name": "token", "in": "path", "description": "The token identifier string", "type": "string", "required": true } ], "get": { "tags": [ "PaymentCardToken", "Public" ], "summary": "Retrieve a token", "description": "Retrieve a token with specified identifier string\n", "responses": { "200": { "description": "Token was retrieved successfully", "schema": { "$ref": "#/definitions/PaymentCardToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/tokens": { "get": { "tags": [ "PaymentCardToken", "Public" ], "summary": "Retrieve a list of tokens", "description": "Retrieve a list of tokens\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of tokens was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentCardToken" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "PaymentCardToken", "Public" ], "summary": "Create a token", "description": "Create a token\n", "parameters": [ { "name": "body", "in": "body", "description": "PaymentCardToken resource", "required": true, "schema": { "$ref": "#/definitions/PaymentCardToken" } } ], "responses": { "201": { "description": "Token was created", "schema": { "$ref": "#/definitions/PaymentCardToken" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } }, "/transactions/{id}/refund": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "post": { "tags": [ "Transaction", "Public" ], "summary": "Refund a Transaction", "description": "Refund a Transaction with specified identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Transaction resource", "required": true, "schema": { "$ref": "#/definitions/TransactionRefund" } } ], "responses": { "201": { "description": "Transaction was refunded successfully", "schema": { "$ref": "#/definitions/Transaction" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/transactions/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Transaction", "Public" ], "summary": "Retrieve a Transaction", "description": "Retrieve a Transaction with specified identifier string\n", "responses": { "200": { "description": "Transaction was retrieved successfully", "schema": { "$ref": "#/definitions/Transaction" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/transactions": { "get": { "tags": [ "Transaction", "Public" ], "summary": "Retrieve a list of transactions", "description": "Retrieve a list of transactions\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of transactions was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Transaction" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } } }, "/websites/{id}": { "parameters": [ { "$ref": "#/parameters/resourceId" } ], "get": { "tags": [ "Website", "Public" ], "summary": "Retrieve a website", "description": "Retrieve a website with specified identifier string\n", "responses": { "200": { "description": "Website was retrieved successfully", "schema": { "$ref": "#/definitions/Website" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "tags": [ "Website", "Public" ], "summary": "Create or update a website with predefined ID", "description": "Create or update a website with predefined identifier string\n", "parameters": [ { "name": "body", "in": "body", "description": "Website resource", "required": true, "schema": { "$ref": "#/definitions/Website" } } ], "responses": { "200": { "description": "Website was updated", "schema": { "$ref": "#/definitions/Website" } }, "201": { "description": "Website was created", "schema": { "$ref": "#/definitions/Website" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } }, "delete": { "tags": [ "Website", "Public" ], "summary": "Delete a website", "description": "Delete a website with predefined identifier string\n", "responses": { "204": { "description": "Website was deleted" }, "401": { "$ref": "#/responses/AccessForbidden" }, "404": { "$ref": "#/responses/NotFound" }, "409": { "description": "Website has related resources and cannot be deleted" } } } }, "/websites": { "get": { "tags": [ "Website", "Public" ], "summary": "Retrieve a list of websites", "description": "Retrieve a list of websites\n", "parameters": [ { "$ref": "#/parameters/collectionLimit" }, { "$ref": "#/parameters/collectionOffset" } ], "responses": { "200": { "description": "A list of Websites was retrieved successfully", "schema": { "type": "array", "items": { "$ref": "#/definitions/Website" } } }, "401": { "$ref": "#/responses/AccessForbidden" } } }, "post": { "tags": [ "Website", "Public" ], "summary": "Create a website", "description": "Create a website\n", "parameters": [ { "name": "body", "in": "body", "description": "Website resource", "required": true, "schema": { "$ref": "#/definitions/Website" } } ], "responses": { "201": { "description": "Website was created", "schema": { "$ref": "#/definitions/Website" } }, "401": { "$ref": "#/responses/AccessForbidden" }, "422": { "description": "Invalid data was sent", "schema": { "$ref": "#/definitions/InvalidError" } } } } } }, "definitions": { "AuthenticationOptions": { "type": "object", "properties": { "passwordPattern": { "description": "Allowed password pattern", "type": "string" }, "credentialTtl": { "description": "The default lifetime of the credential in seconds", "type": "integer" }, "authTokenTtl": { "description": "The default lifetime of the auth-token in seconds", "type": "integer" }, "resetTokenTtl": { "description": "The default lifetime of the reset-token in seconds", "type": "integer" } } }, "AuthenticationToken": { "type": "object", "required": [ "username", "password" ], "properties": { "token": { "description": "The token identifier string", "type": "string", "readOnly": true }, "username": { "description": "The token's username", "type": "string" }, "password": { "description": "The token's password (write-only)", "type": "string", "format": "password" }, "credentialId": { "description": "The credential's ID", "type": "string", "readOnly": true }, "customerId": { "description": "The token's customer ID", "type": "string", "readOnly": true }, "expiredTime": { "description": "Token's expired time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to token", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Blacklist": { "type": "object", "required": [ "type", "value" ], "properties": { "id": { "description": "The blacklist identifier string", "type": "string", "readOnly": true }, "type": { "description": "The blacklist type", "type": "string", "enum": [ "paymentCardId", "customerId", "email", "ipAddress", "country" ] }, "value": { "description": "The blacklist value", "type": "string" }, "ttl": { "description": "The blacklist time to live", "type": "integer", "minimum": 30 }, "expireTime": { "description": "The blacklist expire time", "type": "string", "format": "date-time", "readOnly": true }, "createdTime": { "description": "The blacklist created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "The blacklist updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to blacklist", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Contact": { "type": "object", "properties": { "id": { "description": "The contact identifier string", "type": "string", "readOnly": true }, "customerId": { "description": "The contact ID", "type": "string" }, "firstName": { "description": "The contact first name", "type": "string" }, "lastName": { "description": "The contact last name", "type": "string" }, "organization": { "description": "The contact organization", "type": "string" }, "address": { "description": "The contact street address", "type": "string", "maxLength": 60 }, "address2": { "description": "The contact street address (second line)", "type": "string", "maxLength": 60 }, "city": { "description": "The contact city", "type": "string", "maxLength": 45 }, "region": { "description": "The contact region (state)", "type": "string", "maxLength": 45 }, "country": { "description": "The contact country ISO Alpha-2 code", "type": "string", "pattern": "^[A-Z]{2}$" }, "postalCode": { "description": "The contact postal code", "type": "string", "maxLength": 10 }, "phoneNumber": { "description": "The contact phone number", "type": "string" }, "createdTime": { "description": "The contact created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "The contact updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to contact", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" } } }, "Credential": { "type": "object", "required": [ "username", "password", "customerId" ], "properties": { "id": { "description": "The credential identifier string", "type": "string", "readOnly": true }, "username": { "description": "Credential's username", "type": "string" }, "password": { "description": "The credential's password", "type": "string", "format": "password" }, "customerId": { "description": "The credential's customer ID", "type": "string" }, "expiredTime": { "description": "The credential's expired time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to credential", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Customer": { "type": "object", "properties": { "id": { "description": "The customer identifier string", "type": "string", "readOnly": true }, "email": { "description": "The customer email", "type": "string", "format": "email", "maxLength": 100 }, "firstName": { "description": "The customer first name", "type": "string" }, "lastName": { "description": "The customer last name", "type": "string" }, "ipAddress": { "description": "The customer IP", "type": "string", "format": "ipv4" }, "defaultCard": { "description": "The customer default card ID", "type": "string" }, "createdTime": { "description": "The customer created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "The customer updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to customer", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" } } }, "CustomField": { "description": "A separate Custom Field schema", "type": "object", "required": [ "name", "type" ], "properties": { "name": { "description": "The name of the custom field", "type": "string" }, "type": { "description": "Type value | Description\n------------- | -------------\narray | An array of strings up to 255 characters, maximum size is 1000 elements\nboolean | true or false\ndate | String of format \"full-date\" (YYYY-MM-DD) from RFC-3339 (full-date)\ndatetime | String of format \"date-time\" (YYYY-MM-DDTHH:MM:SSZ) from RFC-3339 (date-time)\ninteger | Cardinal value of -2^31..2^31-1\nnumber | Float value. It can take cardinal values also which are interpreted as float\nstring | Regular string up to 255 characters\nmonetary | A map of 3-letters currency code and amount, e.g. {\"currency\": \"EUR\", \"amount\": 25.30}\n", "type": "string", "enum": [ "array", "boolean", "datetime", "integer", "number", "string", "monetary" ] }, "description": { "description": "The custom field description", "type": "string" }, "additionalSchema": { "description": "Additional parameters which can be added according to type:\nParameter Name | Types | Description\n-------------- | ------------- | -------------\nallowedValues | string, array | List of allowed values\n" } } }, "DeclineInstructions": { "type": "object", "description": "Dunning instructions object for payment declines", "properties": { "dunningId": { "description": "The dunning identifier string", "type": "string" }, "dunningIndex": { "readOnly": true, "description": "The position in the sequence of dunning", "type": "integer" } } }, "Error": { "type": "object", "properties": { "status": { "type": "integer", "minimum": 100, "maximum": 600 }, "error": { "type": "string" } } }, "GatewayAccount": { "type": "object", "required": [ "gatewayName", "merchantCategoryCode", "websites", "acquirerName", "acceptedCurrencies", "organizationId" ], "properties": { "id": { "description": "The gateway identifier string", "type": "string", "readOnly": true }, "gatewayName": { "description": "The gateway name", "type": "string" }, "gatewayConfig": { "type": "object", "description": "Gateway config. Fields depends on gatewayName" }, "merchantCategoryCode": { "description": "The gateway's merchant category code", "type": "integer", "minimum": 742, "maximum": 9950 }, "descriptor": { "description": "The gateway's desciptor", "type": "string" }, "city": { "description": "The gateway's city field", "type": "string" }, "organizationId": { "description": "Organization ID", "type": "string" }, "websites": { "description": "Websites IDs", "type": "array", "items": { "type": "string", "description": "Website ID" } }, "acquirerName": { "description": "Acquirer name", "type": "string" }, "monthlyLimit": { "description": "Monthly Limit", "type": "integer", "format": "double", "minimum": 0 }, "threeDSecure": { "description": "True, if Gateway Account allows 3DSecure", "type": "boolean" }, "threeDSecureType": { "description": "Type of 3DSecure", "type": "string", "enum": [ null, "integrated", "external" ] }, "dynamicDescriptor": { "description": "True, if Gateway Account allows dynamic descriptor", "type": "boolean" }, "acceptedCurrencies": { "description": "Accepted currencies (array of the currency three letter code)", "type": "array", "items": { "type": "string" } }, "paymentMethods": { "description": "Accepted payments methods", "type": "array", "items": { "type": "string", "enum": [ "Visa", "Mastercard", "American_Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners_Club", "Switch", "Laser" ] } }, "downtimeStart": { "description": "Gateway downtime start", "type": "string", "format": "date-time" }, "downtimeEnd": { "description": "Gateway downtime end", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to gateway account", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "InvalidError": { "allOf": [ { "$ref": "#/definitions/Error" }, { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "string" } } } } ] }, "Invoice": { "type": "object", "required": [ "customerId", "websiteId", "currency" ], "properties": { "id": { "description": "The invoice identifier string", "type": "string", "readOnly": true }, "customerId": { "description": "The customer's ID", "type": "string" }, "websiteId": { "description": "The website's ID", "type": "string" }, "currency": { "description": "The currency three letter code", "type": "string" }, "billingContactId": { "description": "Invoice's billing contact ID", "type": "string", "format": "email" }, "deliveryContactId": { "description": "Invoice's delivery contact ID", "type": "string" }, "items": { "type": "array", "description": "Invoice items array", "readOnly": true, "items": { "type": "string" } }, "abandonedTime": { "description": "Invoice abandoned time", "type": "string", "format": "date-time", "readOnly": true }, "voidedTime": { "description": "Invoice voided time", "type": "string", "format": "date-time", "readOnly": true }, "closedTime": { "description": "Invoice closed time", "type": "string", "format": "date-time", "readOnly": true }, "dueTime": { "description": "Invoice due time", "type": "string", "format": "date-time", "readOnly": true }, "issuedTime": { "description": "Invoice issued time", "type": "string", "format": "date-time", "readOnly": true }, "createdTime": { "description": "Invoice created time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to invoice", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "InvoiceIssue": { "type": "object", "properties": { "issueTime": { "type": "string", "format": "date-time" } } }, "InvoiceItem": { "type": "object", "required": [ "type", "unitPrice" ], "properties": { "id": { "description": "The website identifier string", "type": "string", "readOnly": true }, "type": { "description": "Invoice item's type", "type": "string", "enum": [ "debit", "credit" ] }, "unitPrice": { "description": "Invoice item's price", "type": "number", "format": "double" }, "quantity": { "description": "Invoice item's quantity", "type": "integer" }, "description": { "description": "Invoice item's description", "type": "string" }, "periodStartTime": { "description": "Start time", "type": "string", "format": "date-time" }, "periodEndTime": { "description": "End time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to invoice item", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Layout": { "type": "object", "required": [ "name" ], "properties": { "id": { "description": "The layout identifier string", "type": "string", "readOnly": true }, "name": { "description": "The name of the layout string", "type": "string" }, "items": { "description": "The array of layout items (planId and starred)", "type": "array", "items": { "$ref": "#/definitions/LayoutItem" } }, "createdBy": { "description": "The process that created this layout", "type": "string", "readOnly": true }, "updatedBy": { "description": "The process that updated this layout", "type": "string", "readOnly": true }, "createdTime": { "description": "Layout created time", "type": "string", "readOnly": true }, "updatedTime": { "description": "Layout updated time", "type": "string", "readOnly": true }, "customFields": { "description": "Any custom object that must be stored with layout", "type": "object" }, "_links": { "description": "The links related to this layout", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "LayoutItem": { "type": "object", "properties": { "planId": { "description": "The plan identifier string", "type": "string" }, "starred": { "description": "Boolean if the plan should be starred (special callout presentation)", "type": "boolean" }, "order": { "description": "Item's order in Layout", "type": "integer", "readOnly": true } } }, "LeadSource": { "type": "object", "required": [ "customerId" ], "properties": { "id": { "description": "The lead source identifier string", "type": "string", "readOnly": true }, "customerId": { "description": "Customer ID", "type": "string" }, "medium": { "description": "Lead Source's medium (eg search, display)", "type": "string" }, "source": { "description": "Lead Source's source (eg google, yahoo)", "type": "string" }, "campaign": { "description": "Lead Source's campaign (eg go-big-123)", "type": "string" }, "term": { "description": "Lead Source's term (eg salt shakers)", "type": "string" }, "content": { "description": "Lead Source's content (eg smiley faces)", "type": "string" }, "affiliate": { "description": "Lead Source's affiliate (eg 123, Bob Smith)", "type": "string" }, "subAffiliate": { "description": "Lead Source's sub-affiliate also called a sub-id or click id in some circles (eg 123456)", "type": "string" }, "salesAgent": { "description": "Lead Source's sales agent (eg James Bond)", "type": "string" }, "clickId": { "description": "Lead Source's click id (may come from an ad server)", "type": "string" }, "path": { "description": "Lead Source's path uri (eg www.example.com/some/landing/path)", "type": "string" }, "ipAddress": { "description": "Customer's IP Address", "type": "string" }, "currency": { "description": "Currency (three letter ISO 4217 alpha code) (eg USD, EUR)", "type": "string" }, "amount": { "description": "The amount that the lead cost", "type": "number", "format": "double" }, "createdTime": { "description": "LeadSource created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "LeadSource updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to LeadSource", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Link": { "type": "object", "properties": { "rel": { "description": "The link type", "type": "string", "enum": [ "self" ] }, "href": { "description": "The link URL", "type": "string" } } }, "Note": { "type": "object", "required": [ "content", "relatedType", "relatedId" ], "properties": { "id": { "description": "The note identifier string", "type": "string", "readOnly": true }, "createdBy": { "description": "The note's creator", "type": "string", "readOnly": true }, "content": { "description": "The note's name", "type": "string" }, "archived": { "description": "Is the note archived (excluded from List method)", "type": "boolean" }, "relatedType": { "description": "The note's related resource type (customer, paymentCard, paymentGateway, subscription, transaction)", "type": "string" }, "relatedId": { "description": "The note's related resource ID", "type": "string" }, "createdTime": { "description": "Note created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "Note updated time", "type": "string", "format": "date-time", "readOnly": true }, "archivedTime": { "description": "Note archived time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to note", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Organization": { "type": "object", "required": [ "name" ], "properties": { "id": { "description": "The organization identifier string", "type": "string", "readOnly": true }, "createdTime": { "description": "The organization created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "The organization updated time", "type": "string", "format": "date-time", "readOnly": true }, "name": { "description": "The organization name", "type": "string", "maxLength": 60 }, "address": { "description": "The organization street address", "type": "string", "maxLength": 60 }, "address2": { "description": "The organization street address", "type": "string", "maxLength": 60 }, "city": { "description": "The organization city", "type": "string", "maxLength": 45 }, "region": { "description": "The organization region (state)", "type": "string", "maxLength": 45 }, "country": { "description": "The organization country ISO Alpha-2 code", "type": "string", "pattern": "^[A-Z]{2}$" }, "postalCode": { "description": "The organization postal code", "type": "string", "maxLength": 10 }, "_links": { "description": "The links related to organization", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Payment": { "type": "object", "required": [ "websiteId", "customerId", "currency", "amount", "method", "paymentInstrument" ], "properties": { "websiteId": { "description": "The website identifier string", "type": "string" }, "customerId": { "description": "The customer identifier string", "type": "string" }, "currency": { "description": "The payment currency ISO Aplha code", "type": "string" }, "amount": { "description": "The payment amount", "type": "integer", "format": "double" }, "scheduledTime": { "description": "The time the payment is scheduled for collection", "type": "string", "format": "date-time" }, "invoiceIds": { "description": "The array of invoice identifiers", "type": "array", "items": { "type": "string" } }, "method": { "description": "The payment method", "type": "string", "enum": [ "payment_card", "paypal", "cash" ] }, "description": { "description": "The payment description", "type": "string", "maxLength": 255 }, "paymentInstrument": { "$ref": "#/definitions/PaymentInstrument" }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" }, "declineInstructions": { "$ref": "#/definitions/DeclineInstructions" } } }, "PaymentCard": { "type": "object", "properties": { "id": { "description": "The card identifier string", "type": "string", "readOnly": true }, "customerId": { "description": "The Customer's ID. Required if card is creating not from Token", "type": "string" }, "pan": { "description": "The card PAN (Primary Account Number). Required if card is creating not from Token", "type": "string" }, "expYear": { "description": "Card's expiry year. Required if card is creating not from Token", "type": "integer" }, "expMonth": { "description": "Card's expiry month. Required if card is creating not from Token", "type": "integer" }, "cvv": { "description": "Card's cvv (card verification value). Required if card is creating not from Token", "type": "string" }, "billingContactId": { "description": "The Billing Contact ID. Required if card is creating not from Token", "type": "string" }, "token": { "description": "PaymentCardToken. Use without any other fields", "type": "string" }, "status": { "description": "Payment Card status", "type": "string", "readOnly": true, "enum": [ "active", "expired", "inactive", "deactivated", "pending" ] }, "createdTime": { "description": "Card created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "Card updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to card", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" } } }, "PaymentCardToken": { "type": "object", "required": [ "pan", "expMonth", "expYear", "firstName", "lastName" ], "properties": { "id": { "description": "The token identifier string", "type": "string", "readOnly": true }, "pan": { "description": "The card PAN (Primary Account Number)", "type": "string" }, "expMonth": { "description": "Card's expiry month", "type": "integer" }, "expYear": { "description": "Card's expiry year", "type": "integer" }, "firstName": { "description": "First name on payment card", "type": "string" }, "lastName": { "description": "Last name on payment card", "type": "string" }, "cvv": { "description": "The CVV/CVC of the payment card", "type": "string" }, "address": { "description": "Customer's billing address 1", "type": "string" }, "address2": { "description": "Customer's billing address 2", "type": "string" }, "city": { "description": "Billing address city", "type": "string" }, "region": { "description": "Billing region", "type": "string" }, "country": { "description": "Billing country - Two letter code", "type": "string" }, "phoneNumber": { "description": "Phone number", "type": "string" }, "postalCode": { "description": "Billing postal code", "type": "string" }, "fingerprint": { "description": "Device fingerprint hash", "type": "string" }, "_links": { "description": "The links related to token", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "PaymentInstrument": { "type": "object", "description": "Payment instrument object", "properties": { "paymentCard": { "description": "The payment card identifier string, required when paying by payment card", "type": "string" }, "paymentGateway": { "description": "The payment gateway identifier string", "type": "string" }, "gatewayTimeout": { "description": "The time, in seconds, the api waits for the gateway's response before returning a response to the client. If the gateway will continue to process the transaction, the client will receive a 202 response.", "type": "integer", "minimum": 0, "maximum": 10 } } }, "PaymentResponse": { "allOf": [ { "$ref": "#/definitions/Payment" }, { "properties": { "id": { "description": "The payment identifier string", "type": "string" }, "createdBy": { "description": "The process that created this payment", "type": "string" }, "updatedBy": { "description": "The process that updated this payment", "type": "string" }, "state": { "description": "Payment state", "type": "string" }, "createdTime": { "description": "Payment created time", "type": "string" }, "updatedTime": { "description": "Payment updated time", "type": "string" }, "_links": { "description": "The links related to payment", "type": "array", "items": { "$ref": "#/definitions/Link" } } } } ] }, "Plan": { "type": "object", "required": [ "name", "currency" ], "properties": { "id": { "description": "The website identifier string", "type": "string", "readOnly": true }, "name": { "description": "The plan name", "type": "string" }, "currency": { "description": "Currency (three letter ISO 4217 code)", "type": "string" }, "isActive": { "description": "If the plan is not active, customers cannot subscribe to the plan (default to true)", "type": "boolean" }, "description": { "description": "The plan description", "type": "string" }, "recurringAmount": { "description": "The amount that recurs according to the schedule", "type": "number", "format": "double" }, "recurringPeriodUnit": { "description": "The unit of time", "type": "string", "enum": [ "day", "week", "month", "year" ] }, "recurringPeriodLength": { "description": "The length of time (used with the recurringPeriodUnit)", "type": "integer" }, "trialAmount": { "description": "The amount of a trial - 0 is a valid value (for free)", "type": "number", "format": "double" }, "trialPeriodUnit": { "description": "The unit of time", "type": "string", "enum": [ "day", "week", "month", "year" ] }, "trialPeriodLength": { "description": "The length of time (used with the trialPeriodUnit)", "type": "integer" }, "setupAmount": { "description": "The amount of a trial - 0 is a valid value (for free)", "type": "number", "format": "double" }, "expireTime": { "description": "Time when the plan is not longer valid", "type": "string", "format": "date-time" }, "contractTermUnit": { "description": "The unit of time", "type": "string", "enum": [ "day", "week", "month", "year" ] }, "contractTermLength": { "description": "The length that corresponds with the contractTermUnit", "type": "integer" }, "recurringPeriodLimit": { "description": "The number of times a subscription will rebill until the contract is over", "type": "integer" }, "minQuantity": { "description": "Minimum quantity per order, defaults to 1", "type": "integer" }, "maxQuantity": { "description": "Maximum quantity per order (NULL if no maximum)", "type": "integer" }, "createdTime": { "description": "Plan created time", "type": "string", "format": "date-time" }, "updatedTime": { "description": "Plan updated time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to plan", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Product": { "type": "object", "description": "Your product includes digital goods, services, and physical goods. \nProducts appear on invoice line items. If you set a tax category identifier,\ntaxes will be calculated upon invoice generation.\n", "example": "{\n \"id\": \"stringid\",\n \"name\": \"Widget\",\n \"description\": \"Fantastic widget\",\n \"taxCategoryId\": null,\n \"customFields\": [],\n \"createdTime\": \"2015-08-27 13:45:12\",\n \"updatedTime\": \"2015-08-27 13:45:12\",\n \"_links\": [\n {\n \"self\": \"https://api.rebilly.com/v2.1/products/stringid\"\n }\n ]\n}\n", "properties": { "id": { "description": "The product identifier string", "type": "string", "readOnly": true, "maxLength": 50 }, "name": { "description": "The product name", "type": "string", "maxLength": 255 }, "description": { "description": "The product description", "type": "string", "maxLength": 512 }, "taxCategoryId": { "description": "The product's tax category identifier string", "type": "string", "enum": [ "99999", "20010", "40030", "51020", "51010", "31000", "30070" ] }, "customFields": { "description": "Any custom object that may be stored with product (see custom fields)", "type": "string" }, "createdTime": { "description": "The product created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "The product updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to product", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "ResetPasswordToken": { "type": "object", "required": [ "username", "password" ], "properties": { "token": { "description": "The token's identifier string", "type": "string", "readOnly": true }, "username": { "description": "The token's username", "type": "string" }, "password": { "description": "Token's password (only for POST)", "type": "string", "format": "password" }, "credential": { "description": "Token's credential ID", "type": "string" }, "expiredTime": { "description": "Password expired time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to token", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "ResourceCustomFields": { "description": "\"Custom Fields list as a map `{\"custom field name\": \"custom field value\", ...}\"`.\nThe format must follow the saved format (see Custom Fields section for the formats).\n", "type": "object" }, "Subscription": { "type": "object", "required": [ "customerId", "planId", "websiteId" ], "properties": { "id": { "description": "The Subscription identifier string", "type": "string", "readOnly": true }, "customerId": { "description": "Unique id for each customer", "type": "string" }, "planId": { "description": "Unique id for each plan", "type": "string" }, "websiteId": { "description": "Unique id for each website", "type": "string" }, "invoiceId": { "description": "Unique id for each invoice", "type": "string" }, "deliveryContactId": { "description": "Unique id for each delivery contact", "type": "string" }, "billingContactId": { "description": "Unique id for each billing contact", "type": "string" }, "status": { "description": "Subscription status", "type": "string", "readOnly": true }, "quantity": { "description": "Quantity for each subscription. Default value to 1", "type": "integer" }, "startTime": { "description": "Subscription start time", "type": "string", "format": "date-time", "readOnly": true }, "endTime": { "description": "Subscription end time", "type": "string", "format": "date-time", "readOnly": true }, "renewalTime": { "description": "Subscription renewal time", "type": "string", "format": "date-time" }, "cancelledTime": { "description": "Subscription cancelled time", "type": "string", "format": "date-time", "readOnly": true }, "createdTime": { "description": "Subscription created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "Subscription updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to subscription", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" } } }, "SubscriptionCancel": { "type": "object", "required": [ "policy" ], "properties": { "policy": { "description": "Cancel policy", "type": "string", "enum": [ "AT_NEXT_RENEWAL", "NOW_WITH_PRORATA_REFUND", "NOW_WITH_PRORATA_CREDIT", "NOW_WITHOUT_REFUND", "NOW_WITH_FULL_REFUND" ] } } }, "SubscriptionSwitch": { "type": "object", "required": [ "planId", "policy" ], "properties": { "planId": { "description": "The plan identifier string", "type": "string" }, "policy": { "description": "Switch policy", "type": "string", "enum": [ "AT_NEXT_RENEWAL", "NOW_WITH_PRORATA_REFUND", "NOW_WITH_PRORATA_CREDIT", "NOW_WITHOUT_REFUND" ] }, "websiteId": { "description": "The website's ID", "type": "string" }, "quantity": { "description": "Quantity for each subscription. Default value to 1", "type": "integer" } } }, "TaxCategory": { "type": "object", "properties": { "id": { "description": "The tax category identifier string", "type": "string", "readOnly": true, "maxLength": 50, "enum": [ "99999", "20010", "40030", "51020", "51010", "31000", "30070" ] }, "description": { "description": "The tax category description", "type": "string", "maxLength": 512 }, "taxProvider": { "description": "The tax category maps to a provider", "type": "string", "enum": [ "TaxJar" ] }, "_links": { "description": "The links related to tax category", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "Transaction": { "type": "object", "properties": { "id": { "description": "The transaction identifier string", "type": "string", "readOnly": true }, "type": { "description": "Transaction type", "type": "string", "readOnly": true, "enum": [ "authorize", "capture", "credit", "refund", "sale", "void" ] }, "result": { "description": "Transaction result", "type": "string", "readOnly": true, "enum": [ "approved", "conn_error", "declined", "never_sent", "pending", "pending_processor", "timeout", "unknown" ] }, "amount": { "description": "The transactions's amount", "type": "number", "format": "double", "readOnly": true }, "currency": { "description": "The transactions's currency", "type": "string", "readOnly": true }, "parentTransactionId": { "description": "The transactions's parent ID", "type": "string", "readOnly": true }, "rebillNumber": { "description": "The transactions's rebill number", "type": "integer", "readOnly": true }, "gatewayAccountId": { "description": "The transactions's Gateway Account ID", "type": "string", "readOnly": true }, "gatewayResponse": { "description": "The transactions's processor response", "type": "string", "readOnly": true }, "websiteId": { "description": "Website's ID", "type": "string", "readOnly": true }, "customerId": { "description": "Customer's ID", "type": "string", "readOnly": true }, "paymentCardId": { "description": "Payment Card's ID", "type": "string", "readOnly": true }, "createdTime": { "description": "Transaction created time", "type": "string", "format": "date-time", "readOnly": true }, "updatedTime": { "description": "Transaction updated time", "type": "string", "format": "date-time", "readOnly": true }, "_links": { "description": "The links related to transaction", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } } } }, "TransactionRefund": { "type": "object", "required": [ "amount" ], "properties": { "amount": { "description": "Refund amount", "type": "number", "format": "double" } } }, "Website": { "type": "object", "required": [ "name", "url", "servicePhone", "serviceEmail" ], "properties": { "id": { "description": "The website identifier string", "type": "string", "readOnly": true }, "name": { "description": "The website's name", "type": "string" }, "url": { "description": "The website's domain address", "type": "string" }, "servicePhone": { "description": "The website's customer service phone number", "type": "string" }, "serviceEmail": { "description": "The website's customer service email address", "type": "string", "format": "email" }, "checkoutPageUri": { "description": "Your own custom URI for this Checkout Page", "type": "string" }, "webHookUrl": { "description": "Webhook Url (only for POST/PUT)", "type": "string" }, "webHookUsername": { "description": "Webhook HTTP Authentication Username (only for POST/PUT)", "type": "string" }, "webHookPassword": { "description": "Webhook HTTP Authentication Password (only for POST/PUT)", "type": "string" }, "createdTime": { "description": "Website created time", "type": "string", "format": "date-time" }, "updatedTime": { "description": "Website updated time", "type": "string", "format": "date-time" }, "_links": { "description": "The links related to website", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Link" } }, "customFields": { "$ref": "#/definitions/ResourceCustomFields" } } } } }