diff --git a/openAPI/merchants_api_ON_HOLD.yml b/openAPI/merchants_api_ON_HOLD.yml new file mode 100644 index 0000000..989a9a0 --- /dev/null +++ b/openAPI/merchants_api_ON_HOLD.yml @@ -0,0 +1,2916 @@ +--- +swagger: '2.0' +info: + description: The BoomFi Merchants API provides a set of endpoints for merchants + to manage their accounts, transactions, and more. + title: BoomFi Merchants API + contact: + name: API Support + email: support@boomfi.xyz + version: '1.0' +host: mapi.boomfi.xyz +paths: + "/v1/orgs": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get Organization** endpoint allows you to retrieve your organization's current settings and details. This includes key information such as the organization's `name`, `logo_url`, and `webhook_url`. Use this endpoint to verify that your organization's configuration in BoomFi is accurate and up to date. + + consumes: + - application/json + produces: + - application/json + tags: + - Organization + summary: Get Organization + operationId: get-organization + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/models.Org" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '401': + description: Unauthorized + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + put: + security: + - ApiKeyAuth: [] + description: | + The **Update Organization** endpoint allows you to modify your organization's details, such as the `name`, `logo_url`, and `webhook_url`. This endpoint is useful for keeping your organization's information current and ensuring that your settings align with any changes in your operations or branding. + + consumes: + - application/json + produces: + - application/json + tags: + - Organization + summary: Update Organization + operationId: update-organization + parameters: + - name: body + in: body + required: true + schema: + "$ref": "#/definitions/orgs.UpdateOrgRequest" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/models.Org" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '401': + description: Unauthorized + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/accounts": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Accounts** endpoint allows you to retrieve the configured settlement accounts for each supported blockchain network within the BoomFi platform. This endpoint provides information regarding the accounts established for receiving payments across various networks, along with the associated currencies enabled for each network. + + consumes: + - application/json + produces: + - application/json + tags: + - Accounts + summary: List Accounts + operationId: list-accounts + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-accounts_OrgSettlementAccountResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/paylinks": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Paylinks** endpoint allows you to retrieve a comprehensive list of all pay links created within your organization on the BoomFi platform. Use this endpoint to efficiently manage and review all the payment links you have generated, ensuring they align with your business needs. + + > 📘 Note + > + > Paylinks are created automatically when a plan is created. Each plan has a corresponding paylink that can be used to facilitate payments. + + consumes: + - application/json + produces: + - application/json + tags: + - Paylinks + summary: List Paylinks + operationId: list-paylinks + parameters: + - type: string + name: after + in: query + description: Return paylinks after this cursor for pagination. + - type: string + name: before + in: query + description: Return paylinks before this cursor for pagination. + - maximum: 100 + minimum: 1 + type: integer + name: limit + in: query + description: The maximum number of paylinks to return per page (1-100). + - minimum: 1 + type: integer + name: page + in: query + description: The page number of the results to return. + - type: string + name: since + in: query + description: Return paylinks created or updated since this timestamp. + - enum: + - asc + - desc + type: string + name: sort + in: query + description: Sort order for the results. + - type: string + name: until + in: query + description: Return paylinks created or updated until this timestamp. + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-paylinks_PaymentLinkResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + post: + security: + - ApiKeyAuth: [] + description: | + The **Create Payment Link** endpoint enables you to generate a new payment link for a specific product or service within the BoomFi platform. This link can be customized with various parameters, such as the amount, currency, and description, facilitating payments for a wide range of offerings. Use this endpoint to quickly create payment links you can share with customers to collect payments seamlessly. + + > 📘 Note + > + > When creating a payment link, you can implicitly create a plan by providing details such as `amount` and `currency`. + + > 🚧 Account-specific Paylinks + > + > Create an account-specific paylink by adding either `account_ref` or `account_ids`. Its important to note that you cannot add both. + consumes: + - application/json + produces: + - application/json + tags: + - Paylinks + summary: Create Payment Link + operationId: create-payment-link + parameters: + - name: request + in: body + required: true + schema: + "$ref": "#/definitions/paylinks.CreatePaymentLinkRequest" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-paylinks_PaymentLinkResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/paylinks/generate-variant/{paylinkId}": + get: + security: + - ApiKeyAuth: [] + description: | + The **Create Variant Pay Link URL** endpoint enables you to create a customized version of an existing payment link, allowing you to modify key elements such as the amount and currency. This functionality is ideal for scenarios where you need to offer personalized payment options, such as discounts, special pricing, or promotions, while maintaining the original plan’s integrity. + + > 📘 Note + > + > You can use this endpoint to offer discounts or custom pricing by creating a variant of an existing paylink. + + consumes: + - application/json + produces: + - application/json + tags: + - Paylinks + summary: Create Variant Pay Link URL + operationId: create-variant-paylink-url + parameters: + - type: string + description: Unique identifier of the payment link. + name: paylinkId + in: path + required: true + - type: string + description: Amount to be associated with the payment link variant. + name: amount + in: query + - type: string + description: Currency to be associated with the payment link variant. + name: currency + in: query + - type: string + description: Customer identifier to record as `customer.reference`. + name: customer_ident + in: query + - type: string + description: URL to redirect customer after a successful payment. + name: redirect_to + in: query + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/paylinks.GenerateVariantURLResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '403': + description: Forbidden + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '404': + description: Not Found + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/payments": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Payments** endpoint allows you to retrieve a list of all payment transactions associated with your organization. It is a valuable tool for tracking and reviewing your organization’s payment history, ensuring that you have an overview of all financial activities within the BoomFi platform. + + > 📘 Note + > + > Use pagination parameters to efficiently navigate through a large volume of payments. + + consumes: + - application/json + produces: + - application/json + tags: + - Payments + summary: List Payments + operationId: list-payments + parameters: + - name: after + in: query + description: Retrieve payments after this timestamp. + type: string + - name: before + in: query + description: Retrieve payments before this timestamp. + type: string + - name: limit + in: query + description: The maximum number of payments to retrieve (default=100, maximum=100). + type: integer + minimum: 1 + maximum: 100 + - name: page + in: query + description: The page number of results to retrieve. + type: integer + minimum: 1 + - name: since + in: query + description: Retrieve payments since this timestamp. + type: string + - name: sort + in: query + description: Sort order for payments (asc=ascending, desc=descending). + type: string + enum: + - asc + - desc + - name: until + in: query + description: Retrieve payments until this timestamp. + type: string + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-payments_PaymentResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/payments/{paymentId}": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get Payment by ID** endpoint allows you to retrieve information about a specific payment transaction using its unique identifier. This endpoint provides comprehensive data on the payment, including its status, method, amount, and currency. + + produces: + - application/json + tags: + - Payments + summary: Get Payment by ID + operationId: get-payment-by-id + parameters: + - type: string + description: Unique identifier of a payment in the system. + name: paymentId + in: path + required: true + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-payments_PaymentResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '404': + description: Not Found + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/plan": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Plans** endpoint allows you to retrieve a list of all subscription plans available within your organization. This includes details such as the plan's `name`, `currency`, and `billing_scheme`, among others. Use this endpoint to review and manage the subscription options your organization offers. + + > 📘 Note + > + > A plan is synonymous with a product in BoomFi. You can have multiple plans for different currencies or pricing structures for the same product. + + consumes: + - application/json + produces: + - application/json + tags: + - Plans + summary: List Plans + operationId: list-plans + parameters: + - type: string + name: after + description: Filters plans to include only those created after the specified timestamp. + in: query + - type: string + name: before + description: Filters plans to include only those created before the specified timestamp. + in: query + - maximum: 100 + minimum: 1 + type: integer + name: limit + description: Specifies the maximum number of plans to be included in the API response. + in: query + - minimum: 1 + type: integer + name: page + description: Indicates the page number of the results to be retrieved. + in: query + - type: string + name: since + description: Filters plans to include only those created on or after the specified timestamp. + in: query + - enum: + - asc + - desc + type: string + name: sort + description: Specifies the sorting order for the returned plans. + in: query + - type: string + name: until + description: Filters plans to include only those created on or before the specified timestamp. + in: query + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-plan_PlanResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + post: + security: + - ApiKeyAuth: [] + description: | + The **Create Plan** endpoint allows you to create a new subscription plan. It requires a payload containing the plan's details. Use this endpoint to create flexible and tailored subscription options that align with your business needs. + + > 📘 Note + > + > When creating a plan, you automatically create a paylink associated with it. This allows you to offer the plan for immediate purchase. + + consumes: + - application/json + produces: + - application/json + tags: + - Plans + summary: Create Plan + operationId: create-plan + parameters: + - name: request + in: body + required: true + schema: + "$ref": "#/definitions/plan.CreatePlanRequest" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-plan_PlanResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/plan/{planId}": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get Plan by ID** endpoint lets you retrieve detailed information about a specific subscription plan using its unique identifier. Use this endpoint to manage and review individual plans effectively. + + produces: + - application/json + tags: + - Plans + summary: Get Plan by ID + operationId: get-plan-by-id + parameters: + - type: string + description: The unique identifier of the plan. + name: planId + in: path + required: true + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-plan_PlanResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/subscriptions": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Subscriptions** endpoint allows you to retrieve a list of all active subscriptions within your organization. Use this endpoint to track and manage your organization's ongoing subscriptions with its customers. + + > 📘 Note + > + > A subscription is created automatically when a customer makes a payment on a recurring plan. Use this endpoint to track all active subscriptions. + + consumes: + - application/json + produces: + - application/json + tags: + - Subscriptions + summary: List Subscriptions + operationId: list-subscriptions + parameters: + - type: string + name: customer_id + in: query + description: Retrieve a list of subscriptions for a particular customer. + - type: string + name: status + in: query + description: Retrieve subscriptions based on their respective status. + enum: + - Pending + - Future + - InTrial + - Active + - Paused + - Expired + - type: string + name: after + in: query + description: Retrieve subscriptions after this timestamp. + - type: string + name: before + in: query + description: Retrieve subscriptions before this timestamp. + - maximum: 100 + minimum: 1 + type: integer + name: limit + in: query + description: Maximum number of subscriptions to retrieve per page (default=100). + - minimum: 1 + type: integer + name: page + in: query + description: Page number of the results to retrieve (default=1). + - type: string + name: since + in: query + description: Retrieve subscriptions since this timestamp. + - enum: + - asc + - desc + type: string + name: sort + in: query + description: Sort order for the retrieved subscriptions (ascending or descending). + - type: string + name: until + in: query + description: Retrieve subscriptions until this timestamp. + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-subscriptions_SubscriptionResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/subscriptions/{subscriptionID}": + delete: + security: + - ApiKeyAuth: [] + description: | + The **Cancel Subscription** endpoint allows you to cancel an active subscription within your organization. Use this endpoint to manage and control the lifecycle of your subscriptions effectively. + + produces: + - application/json + tags: + - Subscriptions + summary: Cancel Subscription + operationId: cancel-subscription + parameters: + - type: string + description: The unique identifier of the subscription to be canceled. + name: subscriptionID + in: path + required: true + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-subscriptions_SubscriptionResponse" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '404': + description: Not Found + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/customers": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Customers** endpoint allows you to retrieve a paginated list of customers associated with your organization. This endpoint provides optional parameters for sorting and filtering the results, enabling you to manage and review customer data efficiently. + + produces: + - application/json + tags: + - Customers + summary: List Customers + operationId: list-customers + parameters: + - type: integer + name: limit + description: The number of items to be included in each page of the API response. + in: query + - type: integer + name: page + description: The page number of the results to be retrieved. + in: query + - type: string + name: search + description: The search query or keyword that filters the results returned by the API. + in: query + - enum: + - first-time + - repeat + type: string + description: Specifies a type or category for filtering the results. + name: type + in: query + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-customers_ResponseCustomer" + post: + security: + - ApiKeyAuth: [] + description: | + The **Create a Customer** endpoint allows you to create a new customer record within your organization. This endpoint requires a payload that includes key details about the customer, such as their email and wallet address. + + > 📘 Note + > + > If a customer makes a payment without being pre-registered, the system automatically creates a customer record during the checkout process. + + consumes: + - application/json + produces: + - application/json + tags: + - Customers + summary: Create a Customer + operationId: create-customer + parameters: + - description: Create Customer Request + name: request + in: body + required: true + schema: + "$ref": "#/definitions/customers.CreateCustomerRequest" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/customers.ResponseCustomer" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/customers/{customerID}": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get Customer by ID** endpoint allows you to retrieve detailed information about a specific customer using their unique identifier. Use this endpoint to access and manage individual customer records within your organization. + + produces: + - application/json + tags: + - Customers + summary: Get Customer by ID + operationId: get-customer-by-id + parameters: + - type: string + description: Unique identifier of the customer. Supports either BoomFi's Customer ID or the unique reference identifier set in a paylink for the customer. + name: customerID + in: path + required: true + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.Response-customers_ResponseCustomer" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + delete: + security: + - ApiKeyAuth: [] + description: | + The **Delete Customer** endpoint allows you to remove a specific customer record from your organization. Use this endpoint with caution to manage your customer database effectively. + + produces: + - application/json + tags: + - Customers + summary: Delete Customer + operationId: delete-customer + parameters: + - type: string + description: Unique identifier of the customer. + name: customerID + in: path + required: true + responses: + '200': + description: OK + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/integrations": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get All Integrations** endpoint allows you to retrieve a list of all integrations available within your organization. Use this endpoint to review and manage the integrations that connect BoomFi with other platforms. + + produces: + - application/json + tags: + - Integrations + summary: Get All Integrations + operationId: get-integrations + responses: + '200': + description: OK + schema: + type: array + items: + "$ref": "#/definitions/integrations.IntegrationsResponseItem" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/integrations/_templates": + get: + security: + - ApiKeyAuth: [] + description: | + The **Get All Integration Templates** endpoint allows you to retrieve a list of all available integration templates within your organization. These templates provide pre-configured setups for common integrations, making it easier to quickly implement and manage connections between BoomFi and other services. + + produces: + - application/json + tags: + - Integrations + summary: Get All Integration Templates + operationId: get-integration-templates + responses: + '200': + description: OK + schema: + type: array + items: + "$ref": "#/definitions/integrations.IntegrationsResponseItem" + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/integrations/{name}": + post: + security: + - ApiKeyAuth: [] + description: | + The **Enable Integration** endpoint allows you to activate a specific integration within your organization identified by its unique `name`. Enabling an integration allows BoomFi to interact with the selected service, making its features available for use within your platform. + + consumes: + - application/json + produces: + - application/json + tags: + - Integrations + summary: Enable Integration + operationId: enable-integration + parameters: + - type: string + description: The name of the integration to be enabled. + name: name + in: path + required: true + responses: + '200': + description: OK + schema: + type: string + '400': + description: Bad Request + schema: + type: string + '500': + description: Internal Server Error + schema: + type: string + delete: + security: + - ApiKeyAuth: [] + description: | + The **Disable an Integration** endpoint allows you to deactivate a specific integration within your organization identified by its unique `name`. Disabling an integration stops its operation while retaining its configuration, allowing you to re-enable it later if needed. + + produces: + - application/json + tags: + - Integrations + summary: Disable an Integration + operationId: disable-integration + parameters: + - type: string + description: The name of the integration to be disabled. + name: name + in: path + required: true + responses: + '200': + description: OK + '400': + description: Bad Request + schema: + "$ref": "#/definitions/internal.ErrorResponse" + '500': + description: Internal Server Error + schema: + "$ref": "#/definitions/internal.ErrorResponse500" + "/v1/integrations/{name}/{orgID}": + post: + security: + - ApiKeyAuth: [] + description: | + The **Create Webhook** endpoint allows you to set up a new webhook for your organization. Webhooks are used to receive real-time notifications from BoomFi about specific events, such as payment transactions or subscription updates. This endpoint requires a payload containing the webhook's configuration details. + + consumes: + - application/json + produces: + - application/json + tags: + - Integrations + summary: Create Webhook + operationId: create-webhook + parameters: + - type: string + description: The name of the integration to bea associated to the new webhook. + name: name + in: path + required: true + - type: string + description: The unique identifier of your organization in BoomFi. + name: orgID + in: path + required: true + responses: + '200': + description: OK + schema: + type: string + '400': + description: Bad Request + schema: + type: string + '500': + description: Internal Server Error + schema: + type: string + "/v1/events": + get: + security: + - ApiKeyAuth: [] + description: | + The **List Events for an Organization** endpoint allows you to retrieve a list of events associated with your organization. These events correspond to the same data received via webhooks, providing you with access to historical event records. This is useful for auditing purposes or in case of connection loss, ensuring you can always review actions such as subscription management, payment transactions, and plan creation. + + produces: + - application/json + tags: + - Events + summary: List Events for an Organization + operationId: list-events-for-organization + parameters: + - type: string + name: after + description: Filters events to include only those that occurred after the specified timestamp. + in: query + - type: string + name: before + description: Filters events to include only those that occurred before the specified timestamp. + in: query + - maximum: 100 + minimum: 1 + type: integer + name: limit + description: Specifies the maximum number of events to be included in the API response. + in: query + - minimum: 1 + type: integer + name: page + description: Indicates the page number of the results to be retrieved. + in: query + - type: string + name: since + description: Filters events to include only those that occurred on or after the specified timestamp. + in: query + - enum: + - asc + - desc + type: string + name: sort + description: Specifies the sorting order for the returned events. + in: query + - type: string + name: until + description: Filters events to include only those that occurred on or before the specified timestamp. + in: query + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/internal.PaginatedResponse-events_Event" + examples: + events: + data: + items: + - type: Payment + action: Created + id: 2Tpmnpckx3zXIlOLPGk35xOdfxB + timestamp: '2023-08-11T10:09:25.57Z' + data: + amount: '1.000308' + created_at: '2023-08-11T10:09:23.742038Z' + currency: USDC + customer_id: 2TpmnpjFmjaERa3X6YKU3YpvC2d + id: 2Tpmnpckx3zXIlOLPGk35xOdfxB + invoice_id: '' + next_action: '' + payment_method: Crypto + status: Processing + updated_at: '2023-08-11T10:09:25.761828769Z' + - type: Payment + action: Updated + id: 2Tpmnpckx3zXIlOLPGk35xOdfxB + timestamp: '2023-08-11T10:09:26.308Z' + data: + amount: '1.000308' + created_at: '2023-08-11T10:09:23.742038Z' + currency: USDC + customer_id: 2TpmnpjFmjaERa3X6YKU3YpvC2d + id: 2Tpmnpckx3zXIlOLPGk35xOdfxB + invoice_id: '' + next_action: '' + payment_method: Crypto + status: Processing + updated_at: '2023-08-11T10:09:26.333077304Z' + - type: Subscription + action: Created + id: 2TzGhOAljp2nTpMIWQqO2yEq7zL + timestamp: '2023-08-14T18:43:33.478Z' + data: + cancel_at_period_end: false + created_at: '2023-08-14T18:39:47.083452Z' + currency: '' + customer_id: 2TpmnpjFmjaERa3X6YKU3YpvC2d + id: 2TzGhOAljp2nTpMIWQqO2yEq7zL + metadata: {} + reference: '' + source: Lago + status: Cancelled + updated_at: '2023-08-14T18:43:33.510486984Z' + - type: Subscription + action: Updated + id: 2TzGhOAljp2nTpMIWQqO2yEq7zL + timestamp: '2023-08-14T18:43:39.833Z' + data: + cancel_at_period_end: false + created_at: '2023-08-14T18:39:47.083452Z' + currency: '' + customer_id: 2TpmnpjFmjaERa3X6YKU3YpvC2d + id: 2TzGhOAljp2nTpMIWQqO2yEq7zL + metadata: {} + reference: '' + source: Lago + status: Cancelled + updated_at: '2023-08-14T18:43:39.856479218Z' + - type: Subscription + action: Canceled + id: 2TzmtQXZfRWsfpV69YK8bMCFDzi + timestamp: '2023-08-14T23:09:52.41Z' + data: + cancel_at_period_end: false + created_at: '2023-08-14T23:08:29.284198Z' + currency: '' + customer_id: 2TpmnpjFmjaERa3X6YKU3YpvC2d + id: 2TzmtQXZfRWsfpV69YK8bMCFDzi + metadata: {} + reference: '' + source: Lago + status: Cancelled + updated_at: '2023-08-14T23:09:52.432514073Z' + - type: Plan + action: Created + id: 2U3jhiF0n0JazmSe1WTtBbX8oCK + timestamp: '2023-08-16T08:41:18.37Z' + data: + available_quantity: 0 + billing_scheme: FlatFee + created_at: '2023-08-16T08:41:17.981962Z' + created_by: 2TzGhPCAfFWLPBjtc6h52Aao2S6 + currency: USD + enabled: true + id: 2U3jhiF0n0JazmSe1WTtBbX8oCK + metadata: {} + name: test ccy gbp + org_id: 2Tpmnmh6GHJXumKN1oBy2u56Ima + price: '1' + recurring_interval: Unknown + recurring_interval_count: 1 + recurring_usage_type: Unknown + reference: '' + source: Lago + trial_period: '' + type: OneTime + updated_at: '2023-08-16T08:41:18.406389167Z' + +definitions: + accounts.ChainResponse: + type: object + properties: + category: + type: string + description: The category or classification of the chain. + code: + type: string + description: The code or abbreviation associated with the chain. + is_testnet: + type: boolean + description: Indicates whether the chain is a testnet (true) or not (false). + name: + type: string + description: The name or title associated with the chain. + native_currency_symbol: + type: string + description: The symbol representing the native currency of the chain. + accounts.OrgSettlementAccountResponse: + type: object + properties: + account_number: + description: The account number. + type: string + example: "123456789" + account_type: + description: The type of the account. + allOf: + - "$ref": "#/definitions/models.AccountType" + address: + description: The cryptocurrency wallet address associated with a specific account. + type: string + example: "0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520" + chain: + "$ref": "#/definitions/accounts.ChainResponse" + chain_id: + description: The unique identifier representing a blockchain network or chain. + type: integer + example: 1 + created_at: + description: The timestamp indicating when the entity was created. + type: string + example: '2023-01-01T12:00:00Z' + created_by: + description: Information about the user or entity that created the entry. + type: string + example: "user123" + currencies: + description: An array containing the names or symbols of the currencies supported. + type: array + items: + type: string + example: ["BTC", "ETH", "USD"] + deleted_at: + description: The timestamp indicating when the account was deleted. + type: string + example: '2023-01-02T08:30:00Z' + enabled: + description: Indicates whether the account is currently enabled. + type: boolean + example: true + id: + description: The unique identifier for the account. + type: integer + example: 123456 + name: + description: The name or title associated with the account. + type: string + example: "Primary Account" + org_id: + description: The identifier representing the organization associated with the account. + type: string + example: "org123" + properties: + type: object + additionalProperties: {} + provider: + description: The account provider associated with the account. + "$ref": "#/definitions/models.AccountProvider" + sort_code: + description: The sort code associated with the account. + type: string + example: "123456" + updated_at: + description: The timestamp indicating when the entity was last updated. + type: string + example: '2023-01-03T10:45:00Z' + + customers.CreateCustomerRequest: + type: object + required: + - email + properties: + customer_ident: + type: string + description: Unique identifier for a customer. + discord: + type: string + description: Discord username or identifier associated with a customer, allowing for communication and linkage to Discord-based interactions. + email: + type: string + description: Customer's email address. + name: + type: string + description: Customer's name. + number: + type: string + description: Numeric identifier or contact number associated with the customer. + twitter: + type: string + description: Twitter handle associated with the customer. + wallet_address: + type: string + description: Unique address associated with a customer's wallet. + customers.CustomerResponse: + type: object + properties: + created_at: + description: The timestamp indicating when the customer was created. + type: string + example: '2023-01-01T12:00:00Z' + deleted_at: + description: The timestamp indicating when the customer was deleted, if applicable. + type: string + example: '2023-01-05T10:00:00Z' + email: + description: The email address of the customer. + type: string + example: customer@example.com + id: + description: The unique identifier of the customer. + type: string + example: customer123 + metadata: + type: object + additionalProperties: {} + name: + description: The name of the customer. + type: string + example: John Doe + org_id: + description: The identifier representing the organization associated with the customer. + type: string + example: org123 + phone: + description: The phone number of the customer. + type: string + example: +1234567890 + properties: + description: Additional properties associated with the customer. + type: object + additionalProperties: {} + reference: + description: The reference associated with the customer. + type: string + example: REF-123456 + updated_at: + description: The timestamp indicating when the customer was last updated. + type: string + example: '2023-01-02T09:00:00Z' + v1: {} + wallet_address: + description: The wallet address associated with the customer. + type: string + example: 0x0123456789abcdef0123456789abcdef0123456 + customers.ResponseCustomer: + type: object + properties: + created_at: + type: string + description: The timestamp indicating when the customer record was created. + example: '2023-03-15T08:30:00Z' + customer_ident: + type: string + description: The unique identifier for the customer. + example: "CUST123" + email: + type: string + description: The email address associated with the customer. + example: example@email.com + guest: + type: boolean + description: Indicates whether the customer is a guest (true) or not (false). + example: false + id: + type: string + description: The unique identifier for the customer. + example: "123456789" + is_deleted: + type: boolean + description: Indicates whether the customer has been deleted (true) or not (false). + example: false + last_payment_date: + type: string + description: The timestamp indicating the date of the last payment made by the customer. + example: '2023-03-20T12:00:00Z' + metadata: + type: object + description: Additional metadata associated with the customer. + additionalProperties: {} + name: + type: string + description: The name of the customer. + example: John Doe + organisation_id: + type: string + description: The identifier of the organization to which the customer belongs. + example: "ORG123" + payments_count: + type: integer + description: The total count of payments made by the customer. + example: 5 + phone: + type: string + description: The phone number associated with the customer. + example: +1234567890 + properties: + type: object + description: Additional custom properties associated with the customer. + additionalProperties: {} + updated_at: + type: string + description: The timestamp indicating when the customer record was last updated. + example: '2023-03-25T10:45:00Z' + wallet_address: + type: string + description: The wallet address associated with the customer for cryptocurrency transactions. + example: "0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520" + events.Event: + type: object + properties: + type: + type: string + description: The type or category of the event. + action: + type: string + description: The action associated with the event. + data: + type: object + additionalProperties: {} + description: Additional data associated with the event. + id: + type: string + description: The unique identifier of the event. + timestamp: + type: string + description: The timestamp indicating when the event occurred. + integrations.IntegrationsResponseItem: + type: object + properties: + created_at: + type: string + description: The timestamp indicating when the integration was created. + example: '2023-01-01T12:00:00Z' + created_by: + type: string + description: The user or entity that created the integration. + example: "user123" + description: + type: string + description: The description of the integration. + example: "Integration for data synchronization" + enabled: + type: boolean + description: Indicates whether the integration is enabled. + example: true + id: + type: integer + description: The unique identifier of the integration. + example: 123456 + last_error: + type: string + description: The last error message encountered during synchronization. + example: "Connection timeout" + last_sync_time: + type: string + description: The timestamp indicating when the last synchronization occurred. + example: '2023-01-02T08:30:00Z' + name: + type: string + description: The name of the integration. + example: "Data Sync" + org_id: + type: string + description: The identifier of the organization associated with the integration. + example: "org123" + properties: + type: object + additionalProperties: {} + description: Additional properties associated with the integration. + schema: + type: object + additionalProperties: {} + description: The schema of the integration. + status: + "$ref": "#/definitions/models.OrgIntegrationStatus" + description: The status of the integration. + template_name: + type: string + description: The template name of the integration. + example: "Data Sync Template" + type: + allOf: + - "$ref": "#/definitions/models.OrgIntegrationType" + description: The type of the integration. + updated_at: + type: string + description: The timestamp indicating when the integration was last updated. + example: '2023-01-03T10:45:00Z' + + internal.ErrorResponse: + type: object + properties: + error: + "$ref": "#/definitions/internal.ErrorStruct" + internal.ErrorResponse500: + type: object + properties: + error: + "$ref": "#/definitions/internal.ErrorStruct500" + internal.ErrorStruct: + type: object + properties: + code: + description: |- + The error code returned by the server. + Example: 400 + type: integer + example: 400 + errors: + description: A list of detailed error objects. + type: array + items: + "$ref": "#/definitions/internal.SingleError" + message: + description: |- + A descriptive message explaining the error. + Example: Insufficient quantity + type: string + example: Insufficient quantity + internal.ErrorStruct500: + type: object + properties: + code: + description: |- + The error code returned by the server. + Example: 500 + type: integer + example: 500 + errors: + description: A list of detailed error objects. + type: array + items: + "$ref": "#/definitions/internal.SingleError500" + message: + description: |- + A descriptive message explaining the error. + Example: Internal server error + type: string + example: Internal server error + internal.PaginatedItems-accounts_OrgSettlementAccountResponse: + type: object + properties: + id: + type: integer + description: The unique identifier for the account + example: 307 + org_id: + type: string + description: The organization ID associated with the account + example: "2Tpmnmh6GHJXumKN1oBy2u56Ima" + account_type: + type: string + description: The type of account (e.g., Crypto, Card) + example: "Crypto" + name: + type: string + description: The name of the account + example: "metamask" + chain_id: + type: integer + description: The identifier of the blockchain chain associated with the account + example: 1 + address: + type: string + description: The address of the account + example: "0xE1c92E9A0f5f61739289e1CE5825038a68d8e580" + currencies: + type: array + description: The list of supported currencies for the account + items: + type: string + example: + - "USDC" + - "USDT" + - "DAI" + - "WETH" + - "ETH" + account_number: + type: string + description: The account number (if applicable) + example: "" + sort_code: + type: string + description: The sort code (if applicable) + example: "" + enabled: + type: boolean + description: Indicates if the account is enabled + example: true + created_by: + type: string + description: The ID of the user who created the account + example: "2TzGhPCAfFWLPBjtc6h52Aao2S6" + created_at: + type: string + format: date-time + description: The timestamp when the account was created + example: "2023-06-08T13:15:23.307Z" + updated_at: + type: string + format: date-time + description: The timestamp when the account was last updated + example: "2023-06-08T13:15:23.307Z" + deleted_at: + type: string + format: date-time + description: The timestamp when the account was deleted (if applicable) + example: null + chain: + type: object + properties: + code: + type: string + description: The code representing the blockchain chain + example: "eth-mainnet" + name: + type: string + description: The name of the blockchain chain + example: "Ethereum" + category: + type: string + description: The category of the blockchain chain + example: "Ethereum" + is_testnet: + type: boolean + description: Indicates if the blockchain chain is a testnet + example: false + native_currency_symbol: + type: string + description: The native currency symbol of the blockchain chain + example: "ETH" + internal.PaginatedItems-customers_ResponseCustomer: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/customers.ResponseCustomer" + last_update: + type: string + description: The timestamp indicating when the data was last updated. + example: '2021-01-01T00:00:00Z' + next: + type: integer + description: The index indicating the next page of items. + example: 10 + total: + type: integer + description: The total number of items across all pages. + example: 10 + internal.PaginatedItems-events_Event: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/events.Event" + last_update: + type: string + description: The timestamp indicating when the data was last updated. + next: + type: integer + description: The index indicating the next page of items. + total: + type: integer + description: The total number of items across all pages. + internal.PaginatedItems-paylinks_PaymentLinkResponse: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/paylinks.PaymentLinkResponse" + last_update: + type: string + description: The timestamp indicating when the data was last updated. + example: '2021-01-01T00:00:00Z' + next: + type: integer + description: The index of the next page of paylinks. + example: 10 + total: + type: integer + description: The total number of paylinks available. + example: 10 + internal.PaginatedItems-payments_PaymentResponse: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/payments.PaymentResponse" + last_update: + type: string + description: The timestamp indicating the last update time. + example: '2021-01-01T00:00:00Z' + next: + type: integer + description: The number of the next page of results. + example: 10 + total: + type: integer + description: The total number of items in the response. + example: 10 + internal.PaginatedItems-plan_PlanResponse: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/plan.PlanResponse" + last_update: + type: string + example: '2021-01-01T00:00:00Z' + next: + type: integer + example: 10 + total: + type: integer + example: 10 + internal.PaginatedItems-subscriptions_SubscriptionResponse: + type: object + properties: + items: + type: array + items: + "$ref": "#/definitions/subscriptions.SubscriptionResponse" + last_update: + type: string + example: '2021-01-01T00:00:00Z' + description: Timestamp of the last update in the subscription list. + next: + type: integer + example: 10 + description: Index of the next page of subscriptions. + total: + type: integer + example: 10 + description: Total number of subscriptions in the system. + internal.PaginatedResponse-accounts_OrgSettlementAccountResponse: + type: object + properties: + data: + type: object + properties: + items: + type: array + items: + $ref: "#/definitions/internal.PaginatedItems-accounts_OrgSettlementAccountResponse" + internal.PaginatedResponse-customers_ResponseCustomer: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-customers_ResponseCustomer" + error: + type: boolean + internal.PaginatedResponse-events_Event: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-events_Event" + error: + type: boolean + internal.PaginatedResponse-paylinks_PaymentLinkResponse: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-paylinks_PaymentLinkResponse" + error: + type: boolean + internal.PaginatedResponse-payments_PaymentResponse: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-payments_PaymentResponse" + error: + type: boolean + internal.PaginatedResponse-plan_PlanResponse: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-plan_PlanResponse" + error: + type: boolean + internal.PaginatedResponse-subscriptions_SubscriptionResponse: + type: object + properties: + data: + "$ref": "#/definitions/internal.PaginatedItems-subscriptions_SubscriptionResponse" + error: + type: boolean + internal.Response-customers_ResponseCustomer: + type: object + properties: + data: + "$ref": "#/definitions/customers.ResponseCustomer" + error: + type: boolean + internal.Response-paylinks_PaymentLinkResponse: + type: object + properties: + data: + "$ref": "#/definitions/paylinks.PaymentLinkResponse" + error: + type: boolean + internal.Response-payments_PaymentResponse: + type: object + properties: + data: + "$ref": "#/definitions/payments.PaymentResponse" + error: + type: boolean + internal.Response-plan_PlanResponse: + type: object + properties: + data: + "$ref": "#/definitions/plan.PlanResponse" + error: + type: boolean + internal.Response-subscriptions_SubscriptionResponse: + type: object + properties: + data: + "$ref": "#/definitions/subscriptions.SubscriptionResponse" + error: + type: boolean + internal.SingleError: + type: object + properties: + domain: + description: |- + The domain associated with the error. + Example: orders + type: string + example: orders + reason: + description: |- + The reason for the error. + Example: InsufficientQuantity + type: string + example: InsufficientQuantity + internal.SingleError500: + type: object + properties: + domain: + description: |- + The domain associated with the error. + Example: orders + type: string + example: orders + reason: + description: |- + The reason for the error. + Example: Internal + type: string + example: Internal + models.AccountProvider: + description: >- + The account provider. + + - 1 = Spreedly + type: integer + enum: + - 1 + x-enum-varnames: + - AccountProviderSpreedly + models.AccountType: + description: >- + The type of the current account. + + - 1 = Crypto + - 2 = Bank + - 3 = Card + type: integer + enum: + - 1 + - 2 + - 3 + x-enum-varnames: + - AccountTypeCrypto + - AccountTypeBank + - AccountTypeCard + models.BillingScheme: + description: >- + The billing scheme determines how the charges are calculated for the subscription. + + - 1 = Flatfee + - 2 = Perunit + - 3 = Graduated + - 4 = Volume + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + x-enum-varnames: + - BillingSchemeFlatfee + - BillingSchemePerunit + - BillingSchemeGraduated + - BillingSchemeVolume + models.BillingSource: + description: >- + The source of this billing information. Can be one of the following: + + - 1 = Lago + + - 2 = Boomfi + + - 3 = Stripe + + - 4 = Chargebee + + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + x-enum-varnames: + - BillingSourceLago + - BillingSourceBoomfi + - BillingSourceStripe + - BillingSourceChargebee + models.CryptoTransaction: + type: object + properties: + chain_id: + description: The unique identifier representing a blockchain network or chain. + type: integer + example: 1 + created_at: + description: The timestamp indicating when the crypto transaction was created. + type: string + example: '2023-01-01T12:00:00Z' + id: + description: The unique identifier of the crypto transaction. + type: integer + payment_id: + description: The ID of the payment associated with the crypto transaction. + allOf: + - "$ref": "#/definitions/sql.NullString" + raw: + description: Additional raw data associated with the crypto transaction. + type: array + items: + type: integer + sequence: + description: The sequence number of the crypto transaction. + type: string + example: "123456789" + source: + description: Details of the source of the crypto transaction. + allOf: + - "$ref": "#/definitions/models.PaymentMethod" + status: + description: The status of the crypto transaction. + allOf: + - "$ref": "#/definitions/models.TransactionStatus" + transaction_hash: + description: The transaction hash of the crypto transaction. + type: string + example: "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + type: + description: The type of the crypto transaction. + allOf: + - "$ref": "#/definitions/models.TransactionType" + updated_at: + description: The timestamp indicating when the crypto transaction was last updated. + type: string + example: '2023-01-01T12:30:00Z' + models.NullAccountProvider: + type: object + properties: + accountProvider: + "$ref": "#/definitions/models.AccountProvider" + valid: + description: Valid is true if [AccountProvider] is not null. + type: boolean + models.Org: + type: object + properties: + id: + type: string + description: The unique identifier for BoomFi + example: "2Tpmnmh6GHJXumKN1oBy2u56Ima" + name: + type: string + description: The name of the BoomFi service + example: "BoomFi" + owner_user_id: + type: string + description: The user ID of the owner + example: "2TzGhPCAfFWLPBjtc6h52Aao2S6" + webhook_url: + type: string + format: uri + description: The URL for webhook notifications + example: "https://webhook.site/b09eec23-3f7a-4f0c-aec6-84c277c5eb78" + logo_url: + type: string + format: uri + description: The URL for the logo of BoomFi + example: "https://boomfi-test-addonsstack-ipj55n-merchantdatabucket-11rcw286tjikp.s3.eu-west-2.amazonaws.com/7403e69d-71c7-4ab4-8b19-7130ecd0bb3e/merchant-logos/57da50bd-857a-4658-8916-7f4a5f9ad9ad.png" + offramp_fee_pct: + type: number + description: The offramp fee percentage + example: 1 + payment_fee_pct: + type: number + description: The payment fee percentage + example: 1 + swap_fee_pct: + type: number + description: The swap fee percentage + example: 1 + credits_usd: + type: number + description: The credits in USD + example: 0 + created_at: + type: string + format: date-time + description: The timestamp when BoomFi was created + example: "2023-08-11T10:09:25.679Z" + updated_at: + type: string + format: date-time + description: The timestamp when BoomFi was last updated + example: "2024-03-29T13:59:55.003Z" + properties: + type: object + properties: + ramp: + type: object + properties: + enabled: + type: boolean + description: Indicates if Ramp is enabled + example: true + spreedly: + type: object + properties: + merchant_profile_id: + type: string + description: The merchant profile ID for Spreedly + example: "65oxw5ZZ2lE4siMz618v4HQqD2X" + sca_authentication_enabled: + type: boolean + description: Indicates if SCA authentication is enabled + example: true + sca_provider_id: + type: string + description: The SCA provider ID for Spreedly + example: "YN8LHxRK9ysWlKfdWZdDCtUM2TI" + sub_merchant_data: + type: string + description: Sub-merchant data for Spreedly + example: "eyJ0b2tlbiI6Ik5zVkUyV1E0eWZmUklBaDRSMENzalRXYU5naSIsIm5hbWUiOiJDcmV3IiwiZW52aXJvbm1lbnRfa2V5IjoiM0I1TkFGWTlBTTkyODlGWDZROTVOM1g4RFciLCJtZXJjaGFudF9kZWZpbmVkX3VpZCI6IjJUcG1ubWg2R0hKWHVtS04xb0J5MnU1NkltYSIsImFkZHJlc3MiOnsiYWRkcmVzczEiOiIiLCJjaXR5IjoiIiwic3RhdGUiOiIiLCJ6aXAiOiIiLCJjb3VudHJ5IjoiIn0sIm1ldGFkYXRhIjpudWxsLCJjcmVhdGVkX2F0IjoiMjAyNC0wMi0xNlQxNDo0OToyM1oiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMi0xNlQxNDo0OToyM1oifQ==" + sub_merchant_id: + type: string + description: The sub-merchant ID for Spreedly + example: "NsVE2WQ4yffRIAh4R0CsjTWaNgi" + + models.OrgIntegrationStatus: + description: >- + The current status of the organization integration: + + - 1 = Unknown + + - 2 = Updating + + - 3 = Ready + + - 4 = Disabling + + - 5 = Disabled + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + x-enum-varnames: + - OrgIntegrationStatusUnknown + - OrgIntegrationStatusUpdating + - OrgIntegrationStatusReady + - OrgIntegrationStatusDisabling + - OrgIntegrationStatusDisabled + models.OrgIntegrationType: + description: >- + The integration type of the organization: + + - 1 = TypeUnknown + + - 2 = TypeBilling + + - 3 = TypeEcommerce + + - 4 = TypeAccounting + + - 5 = TypeWorkflow + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + x-enum-varnames: + - OrgIntegrationTypeUnknown + - OrgIntegrationTypeBilling + - OrgIntegrationTypeEcommerce + - OrgIntegrationTypeAccounting + - OrgIntegrationTypeWorkflow + models.PaymentMethod: + description: >- + The payment method: + + - 1 = Unknown + + - 2 = Merchantcontract + + - 3 = Proxywallet + + - 4 = Unblock + + - 5 = Card + + - 6 = Googlepay + + - 7 = Applepay + + - 8 = Paypal + + - 9 = Directdebit + + - 10 = Ramp + + - 11 = Rampcryptosettlement + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + x-enum-varnames: + - PaymentMethodUnknown + - PaymentMethodMerchantcontract + - PaymentMethodProxywallet + - PaymentMethodUnblock + - PaymentMethodCard + - PaymentMethodGooglepay + - PaymentMethodApplepay + - PaymentMethodPaypal + - PaymentMethodDirectdebit + - PaymentMethodRamp + - PaymentMethodRampcryptosettlement + models.PaymentStatus: + description: >- + The current status of the payment_id: + + - 1 = Unknown + + - 2 = Requirespaymentmethod + + - 3 = Requiresconfirmation + + - 4 = Requiresaction + + - 5 = Processing + + - 6 = Succeeded + + - 7 = Canceled + + - 8 = Failed + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + x-enum-varnames: + - PaymentStatusUnknown + - PaymentStatusRequirespaymentmethod + - PaymentStatusRequiresconfirmation + - PaymentStatusRequiresaction + - PaymentStatusProcessing + - PaymentStatusSucceeded + - PaymentStatusCanceled + - PaymentStatusFailed + models.PlanType: + description: >- + The type of the plan: + + - **1** = Unknown + + - **2** = Onetime + + - **3** = Recurring + type: string + enum: + - '1' + - '2' + - '3' + x-enum-varnames: + - PlanTypeUnknown + - PlanTypeOnetime + - PlanTypeRecurring + models.RecurringInterval: + type: string + description: | + The recurring interval for the payment link: + - **Week** + - **Month** + - **Year** + enum: + - Week + - Month + - Year + x-enum-varnames: + - RecurringIntervalWeek + - RecurringIntervalMonth + - RecurringIntervalYear + models.RecurringUsageType: + type: integer + enum: + - 1 + - 2 + - 3 + x-enum-varnames: + - RecurringUsageTypeUnknown + - RecurringUsageTypeLicensed + - RecurringUsageTypeMetered + models.SubscriptionStatus: + description: >- + The current status of the subscription. + + - 1 = Unknown + + - 2 = Pending + + - 3 = Future + + - 4 = Intrial + + - 5 = Active + + - 6 = Paused + + - 7 = Expired + + - 8 = Canceled + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + x-enum-varnames: + - SubscriptionStatusUnknown + - SubscriptionStatusPending + - SubscriptionStatusFuture + - SubscriptionStatusIntrial + - SubscriptionStatusActive + - SubscriptionStatusPaused + - SubscriptionStatusExpired + - SubscriptionStatusCanceled + models.TransactionStatus: + description: >- + The transaction's current models.PaymentStatus: + + - 1 = Pending + + - 2 = Success + + - 3 = Failed + + type: integer + enum: + - 1 + - 2 + - 3 + x-enum-varnames: + - TransactionStatusPending + - TransactionStatusSuccess + - TransactionStatusFailed + models.TransactionType: + description: >- + The type of the transaction: + + - 1 = Unknown + + - 2 = Approval + + - 3 = Deposit + + - 4 = Withdraw + + - 5 = Payment + + - 6 = Refund + + - 7 = Subscribe + + - 8 = Unsubscribe + + - 9 = Internal + + - 10 = Swap + type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + x-enum-varnames: + - TransactionTypeUnknown + - TransactionTypeApproval + - TransactionTypeDeposit + - TransactionTypeWithdraw + - TransactionTypePayment + - TransactionTypeRefund + - TransactionTypeSubscribe + - TransactionTypeUnsubscribe + - TransactionTypeInternal + - TransactionTypeSwap + orgs.UpdateOrgRequest: + type: object + required: + - logo_url + - name + - webhook_url + properties: + logo_url: + type: string + description: The URL of the organization's logo. + example: https://boomfi-test-addonsstack-ipj55n-merchantdatabucket-11rcw286tjikp.s3.eu-west-2.amazonaws.com/7403e69d-71c7-4ab4-8b19-7130ecd0bb3e/merchant-logos/57da50bd-857a-4658-8916-7f4a5f9ad9ad.png + name: + type: string + description: The updated name of the organization. + example: BoomFi + webhook_url: + type: string + description: The updated webhook URL for the organization. + example: https://webhook.site/b09eec23-3f7a-4f0c-aec6-84c277c5eb78 + + paylinks.CreatePaymentLinkRequest: + required: + - name + - amount + - currency + type: object + properties: + account_ids: + items: + type: integer + type: array + description: | + A list of account IDs to associate with the payment link. Use this to attach specific accounts to the payment link, making it account-specific. + ⚠️ Either `account_ids` or `account_ref` should be used, not both. ⚠️ + account_ref: + type: string + description: | + An account reference to associate with the payment link. Use this to attach accounts with the specified account reference to the payment link, making it account-specific. + ⚠️ Either `account_ids` or `account_ref` should be used, not both. ⚠️ + name: + type: string + description: The name of the payment link. + example: "New Paylink" + amount: + type: string + description: The amount associated with the payment link. + example: '1000' + currency: + type: string + description: The currency of the payment link. + example: USD + reference: + type: string + description: The reference for the payment link. + description: + type: string + description: A description of the payment link. + interval: + $ref: "#/definitions/models.RecurringInterval" + description: >- + The recurring interval for the payment link. + example: Day + intervalCount: + type: integer + description: The number of intervals for the recurring payment link. + example: 1 + trial_period: + type: string + description: The trial period for the payment link in a valid duration format. For example, for 1 day use 24h. + example: 24h + type: + $ref: "#/definitions/models.PlanType" + description: The type of the payment link. + example: '2' + image_url: + type: string + description: An image URL to be used as the cover image for the payment link at the checkout. + metadata: + type: object + additionalProperties: true + description: Additional metadata associated with the payment link. + $ref: "#/definitions/paylinks.CreatePaymentLinkRequestMetadata" + paylinks.CreatePaymentLinkRequestMetadata: + type: object + properties: + payment_method_types: + type: array + items: + type: string + enum: + - MerchantContract + - ProxyWallet + - Card + description: | + Specifies the payment methods available at checkout. By default, the system applies payment methods based on the merchant’s settlement account settings. If `Card` is included, the card payment option appears only if the merchant has a Card settlement account configured. + + Accepts an array with any or all of these values: + - **MerchantContract** + - **ProxyWallet** + - **Card** + + after_completion: + type: object + description: Defines post-checkout behavior. The configuration allows either a custom success message or a redirect to a specified URL upon payment completion. + properties: + type: + type: string + enum: + - hosted + - redirect + description: | + Sets the post-checkout behavior: + - **hosted**: Displays a success message, customizable with `custom_message`. + - **redirect**: Sends the user to a specified URL via `redirect_url`. + custom_message: + type: string + description: A custom success message shown after payment completion if `type` is set to `hosted`. If not provided, a default success message will be displayed. + redirect_url: + type: string + format: uri + description: URL to which the user is redirected after successful payment if `type` is set to `redirect`. A valid URL is required for this type. + omit_possible_duplicate_acknowledgement: + type: boolean + description: | + Determines if users should be notified when attempting multiple one-time payments. + - **true**: A prompt will notify users of prior payments to the link, but they can proceed with an additional payment. + - **false**: No prompt will be shown for repeated payments. + paylinks.GenerateVariantURLResponse: + type: object + properties: + url: + type: string + description: The URL of the paylink variant + example: "https://pay-test.boomfi.xyz/2Z4zsnmp37AF3WKM6N2j4wmeakr?amount=101¤cy=EUR&signature=7a3043f809aa4aab4ca68694f9394c6fe4deb82c745347a4fc4ae33f6716c22e" + created_by: + type: string + description: The ID of the user who created the paylink variant + example: "2TzGhPCAfFWLPBjtc6h52Aao2S6" + payment_link: + "$ref": "#/definitions/paylinks.PaymentLinkResponse" + plan: + "$ref": "#/definitions/plan.PlanResponse" + paylinks.PaymentLinkResponse: + type: object + properties: + id: + type: string + description: The unique identifier for the paylink + example: "2Z4zsnmp37AF3WKM6N2j4wmeakr" + plan_id: + type: string + description: The ID of the associated plan + example: "2Z4zspFMhs2pMYjcR3l6JpJaWdA" + invoice_id: + type: string + description: The ID of the associated invoice + example: "" + source: + type: string + description: The source of the paylink + example: "BoomFi" + customer_ident_collection: + type: boolean + description: Indicates if customer identification collection is enabled + example: false + shipping_address_collection: + type: boolean + description: Indicates if shipping address collection is enabled + example: false + tax_ident_collection: + type: boolean + description: Indicates if tax identification collection is enabled + example: false + enabled: + type: boolean + description: Indicates if the paylink is enabled + example: true + deleted_at: + type: string + format: date-time + description: The timestamp when the paylink was deleted + example: "2023-12-04T13:25:48.499Z" + created_by: + type: string + description: The ID of the user who created the paylink + example: "2TzGhPCAfFWLPBjtc6h52Aao2S6" + updated_by: + type: string + description: The ID of the user who last updated the paylink + example: "" + created_at: + type: string + format: date-time + description: The timestamp when the paylink was created + example: "2023-12-04T13:25:48.496Z" + updated_at: + type: string + format: date-time + description: The timestamp when the paylink was last updated + example: "2023-12-04T13:25:48.499Z" + metadata: + type: object + description: Additional metadata associated with the paylink + example: {} + properties: + type: object + description: Additional properties associated with the paylink + properties: + short_code: + type: string + description: The short code associated with the paylink + example: "AANj9Dm7Zl" + plan: + type: object + description: The details of the associated plan + properties: + id: + type: string + description: The unique identifier for the plan + example: "2Z4zspFMhs2pMYjcR3l6JpJaWdA" + org_id: + type: string + description: The organization ID associated with the plan + example: "2Tpmnmh6GHJXumKN1oBy2u56Ima" + source: + type: string + description: The source of the plan + example: "Lago" + name: + type: string + description: The name of the plan + example: "test paylink 12 04" + type: + type: string + description: The type of the plan + example: "OneTime" + billing_scheme: + type: string + description: The billing scheme of the plan + example: "FlatFee" + price: + type: string + description: The price of the plan + example: "1" + currency: + type: string + description: The currency of the plan + example: "USD" + available_quantity: + type: integer + description: The available quantity of the plan + example: 0 + trial_period: + type: string + description: The trial period of the plan + example: "" + recurring_interval: + type: string + description: The recurring interval of the plan + example: "Unknown" + recurring_interval_count: + type: integer + description: The recurring interval count of the plan + example: 1 + recurring_usage_type: + type: string + description: The recurring usage type of the plan + example: "Unknown" + reference: + type: string + description: The reference of the plan + example: "" + enabled: + type: boolean + description: Indicates if the plan is enabled + example: true + v1: + type: string + description: Additional information about the plan + example: "eyJwbGFucyI6IHsiaWQiOiAiYWE1ZmI5MjQtMmMzZi00NzcwLTkyZDEtMjFjYmY3ODc3ODc2IiwgIm5hbWUiOiAidGVzdCBwYXlsaW5rIDEyIDA0IiwgInN0YXR1cyI6ICJhY3RpdmUiLCAiaW50ZXJ2YWwiOiBudWxsLCAicmVmZXJlbmNlIjogIiIsICJhbW91bnRfd2VpIjogIjEwMCIsICJjcmVhdGVkX2F0IjogIjIwMjMtMTI..." + created_by: + type: string + description: The ID of the user who created the plan + example: "2TzGhPCAfFWLPBjtc6h52Aao2S6" + created_at: + type: string + format: date-time + description: The timestamp when the plan was created + example: "2023-12-04T13:25:47.656Z" + updated_at: + type: string + format: date-time + description: The timestamp when the plan was last updated + example: "2023-12-04T13:25:48.491Z" + deleted_at: + type: string + format: date-time + description: The timestamp when the plan was deleted + example: null + metadata: + type: object + description: Additional metadata associated with the plan + example: {} + payments.PaymentResponse: + type: object + properties: + amount: + description: The amount associated with the payment. + type: string + example: "100.00" + created_at: + description: The timestamp indicating when the payment was created. + type: string + example: "2023-01-01T12:00:00Z" + crypto_transaction: + "$ref": "#/definitions/models.CryptoTransaction" + currency: + description: The currency of the payment. + type: string + example: "USD" + customer: + "$ref": "#/definitions/customers.CustomerResponse" + customer_id: + description: The ID of the customer associated with the payment. + type: string + example: "customer123" + id: + description: The unique identifier of the payment. + type: string + example: "payment123" + invoice_id: + description: The ID of the invoice associated with the payment. + type: string + example: "invoice123" + next_action: + description: The next action related to the payment. + type: string + example: "verify_payment" + org_id: + description: The ID of the organization associated with the payment. + type: string + example: "org123" + parent_id: + description: The ID of the parent payment if this payment is a part of a larger transaction. + type: string + example: "parent_payment123" + payment_link: + "$ref": "#/definitions/paylinks.PaymentLinkResponse" + payment_method: + description: Details of the payment method used for the payment. + allOf: + - "$ref": "#/definitions/models.PaymentMethod" + properties: + description: Additional properties associated with the payment. + type: object + additionalProperties: {} + scheduled_time: + description: The scheduled time for the payment. + type: integer + example: 1643712000 + source: + description: Details of the billing source associated with the payment. + allOf: + - "$ref": "#/definitions/models.BillingSource" + status: + description: The status of the payment. + allOf: + - "$ref": "#/definitions/models.PaymentStatus" + updated_at: + description: The timestamp indicating when the payment was last updated. + type: string + v1: + description: v1 + type: array + items: + type: integer + plan.CreatePlanRequest: + type: object + properties: + amount: + type: string + description: The amount associated with the plan, specified as a string. This parameter represents the cost or price of the plan. + currency: + type: string + description: The currency in which the plan amount is expressed. + description: + type: string + description: A brief description or summary of the plan. This parameter provides additional information about the purpose or features of the plan. + interval: + "$ref": "#/definitions/models.RecurringInterval" + intervalCount: + type: integer + description: The number of intervals between each billing cycle. This parameter determines how often the plan is billed within the specified interval. + metadata: + type: object + description: An object containing additional metadata associated with the plan. + additionalProperties: {} + name: + type: string + description: A name or label associated with the plan. This parameter represents a identifier or title for the plan. + reference: + type: string + description: A reference identifier associated with the plan. This parameter allows for linking the plan to external identifiers. + trial_period: + type: string + description: Specifies the trial period duration for the plan, if applicable. This parameter represents the duration of any trial period associated with the plan. + plan.PaymentLinkResponse: + type: object + properties: + created_at: + description: created_at + type: string + created_by: + description: created_by + type: string + customer_ident_collection: + description: customer_ident_collection + type: boolean + deleted_at: + description: deleted_at + type: string + enabled: + description: enabled + type: boolean + id: + description: id + type: string + invoice_id: + description: invoice_id + type: string + metadata: + type: object + additionalProperties: {} + plan_id: + description: plan_id + type: string + properties: + type: object + additionalProperties: {} + shipping_address_collection: + description: shipping_address_collection + type: boolean + source: + description: source + allOf: + - "$ref": "#/definitions/models.BillingSource" + tax_ident_collection: + description: tax_ident_collection + type: boolean + updated_at: + description: updated_at + type: string + updated_by: + description: updated_by + type: string + plan.PlanResponse: + type: object + properties: + id: + type: string + description: The unique identifier of the plan. + example: "2eJh1L1rDrCZxTyE6vwGhck7LWI" + org_id: + type: string + description: The identifier of the organization associated with the plan. + example: "2Tpmnmh6GHJXumKN1oBy2u56Ima" + source: + type: string + description: The source of the plan. + allOf: + - "$ref": "#/definitions/models.BillingSource" + name: + type: string + description: The name of the plan. + allOf: + - "$ref": "#/definitions/models.PlanType" + type: + type: string + description: The type of the plan. + billing_scheme: + type: string + description: The billing scheme of the plan. + allOf: + - "$ref": "#/definitions/models.BillingScheme" + price: + type: string + description: The price of the plan. + currency: + type: string + description: The currency of the plan. + available_quantity: + type: integer + description: The available quantity of the plan. + trial_period: + type: string + description: The trial period of the plan. + recurring_interval: + type: string + description: The recurring interval of the plan. + allOf: + - "$ref": "#/definitions/models.RecurringInterval" + recurring_interval_count: + type: integer + description: The count of recurring intervals for the plan. + recurring_usage_type: + type: string + description: The recurring usage type of the plan. + allOf: + - "$ref": "#/definitions/models.RecurringUsageType" + reference: + type: string + description: The reference of the plan. + enabled: + type: boolean + description: Indicates whether the plan is enabled or not. + v1: + type: string + description: Additional information about the plan. + created_by: + type: string + description: The identifier of the user who created the plan. + created_at: + type: string + format: date-time + description: The timestamp when the plan was created. + updated_at: + type: string + format: date-time + description: The timestamp when the plan was last updated. + deleted_at: + type: string + format: date-time + description: The timestamp when the plan was deleted, if applicable. + metadata: + type: object + description: Additional metadata associated with the plan. + additionalProperties: true + example: {"key": "value"} + properties: + type: object + description: Additional properties of the plan. + additionalProperties: true + example: {"key": "value"} + # payment_link: + # description: The details of the associated payment link. + # "$ref": "#/definitions/plan.PaymentLinkResponse" + sql.NullString: + type: object + properties: + string: + type: string + valid: + description: Valid is true if String is not NULL + type: boolean + subscriptions.SubscriptionItem: + type: object + properties: + created_at: + description: The timestamp indicating when the subscription item was created. + type: string + example: '2023-01-01T12:00:00Z' + id: + description: The unique identifier of the subscription item. + type: string + example: item123 + plan_id: + description: The unique identifier of the plan associated with the subscription item. + type: string + example: plan456 + properties: + type: object + additionalProperties: {} + subscription_id: + description: The unique identifier of the subscription associated with the subscription item. + type: string + example: sub123 + updated_at: + description: The timestamp indicating when the subscription item was last updated. + type: string + example: '2023-01-02T09:00:00Z' + subscriptions.SubscriptionResponse: + type: object + properties: + cancel_at_period_end: + description: Indicates whether the subscription will be canceled at the end of the current period. + type: boolean + example: false + created_at: + description: The timestamp indicating when the subscription was created. + type: string + example: '2023-01-01T12:00:00Z' + currency: + description: The currency of the subscription. + type: string + example: USD + customer: + description: Information about the customer associated with the subscription. + "$ref": "#/definitions/customers.CustomerResponse" + customer_id: + description: The unique identifier of the customer associated with the subscription. + type: string + example: customer123 + id: + description: The unique identifier of the subscription. + type: string + example: sub123 + items: + type: array + description: List of subscription items included in the subscription. + items: + "$ref": "#/definitions/subscriptions.SubscriptionItem" + metadata: + description: Additional metadata associated with the subscription. + type: array + items: + type: integer + org_id: + description: The identifier representing the organization associated with the subscription. + type: string + example: org123 + payment_method: + description: payment_method + allOf: + - "$ref": "#/definitions/models.PaymentMethod" + properties: + type: object + additionalProperties: {} + reference: + description: The reference associated with the subscription. + type: string + example: REF-123456 + source: + description: The source of the subscription. + allOf: + - "$ref": "#/definitions/models.BillingSource" + start_at: + description: The timestamp indicating when the subscription starts. + type: string + example: '2023-01-05T10:00:00Z' + status: + description: The status of the subscription. + allOf: + - "$ref": "#/definitions/models.SubscriptionStatus" + updated_at: + description: The timestamp indicating when the subscription was last updated. + type: string + example: '2023-01-02T09:00:00Z' + v1: + description: v1 + type: array + items: + type: integer +securityDefinitions: + ApiKeyAuth: + type: apiKey + name: X-API-KEY + in: header