/* tslint:disable */ /* eslint-disable */ /** * Geins Management API * Geins Management API is a RESTful api that powers your applications and helps you manage your Geins services. Geins provides an easy-to-use and scalable solution for managing all aspects of an online store, from product listings and customer information to order processing and payment transactions. :::tip Tip With this API, you can build custom applications and integrate with third-party systems, feeds, dashboards and other bussiness logic apps. ::: ## Getting started Once you have created an account, you can start using the Management API by creating an `API User`. You can create as many API users as you need. Each `API user` is connected to a specific account so you can keep track of operations and manage keys. You can find all your API credentials in `Geins Merchant Center`. ### Fast track Use one of our [SDKs](https://docs.geins.io/docs/sdk/introduction) to get started quickly. The SDKs are available for the most popular programming languages and frameworks. Or, if you prefer to just take it for a test run: [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553?action=collection%2Ffork&collection-url=entityId%3D25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553%26entityType%3Dcollection%26workspaceId%3Da2a179ce-158e-46b0-8d06-e9640f45112c) ### Authentication Two authentication methods are required: - `Basic Auth` - `API Key` All API credentials can be found in `Geins Merchant Center`. #### Basic Auth A Basic auth `Authorization` header needs to be included in every request. The value should be `Basic ` where `` is the Base64 encoding of your `API username` and `API password` joined by a single colon `:`. See [Wikipedia](https://en.wikipedia.org/wiki/Basic_access_authentication) for more information on Basic auth. #### API Key An `X-ApiKey` header needs to be included in every request. This header should contain the value of your `API key`. #### Example ```bash curl -X GET \"https://mgmtapi.geins.io/API/Market/List\" \\ -H \"Authorization: Basic [USER-CREDENTIALS-BASE64-ENCODED]\" \\ -H \"X-ApiKey: [API-KEY]\" ``` * * The version of the OpenAPI document: v1.10.1 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { BaseEnvelope, EnvelopeListRefund, EnvelopeNullableGuid, EnvelopeRefund, OrderRefundModelsWriteNewRefund, OrderRefundModelsWriteProcessedRefund, OrderRefundModelsWriteRefundApproval, OrderRefundModelsWriteSettledRefund, OrderRefundModelsWriteSettledRefundRow, RefundQuery, } from '../models'; import { BaseEnvelopeFromJSON, BaseEnvelopeToJSON, EnvelopeListRefundFromJSON, EnvelopeListRefundToJSON, EnvelopeNullableGuidFromJSON, EnvelopeNullableGuidToJSON, EnvelopeRefundFromJSON, EnvelopeRefundToJSON, OrderRefundModelsWriteNewRefundFromJSON, OrderRefundModelsWriteNewRefundToJSON, OrderRefundModelsWriteProcessedRefundFromJSON, OrderRefundModelsWriteProcessedRefundToJSON, OrderRefundModelsWriteRefundApprovalFromJSON, OrderRefundModelsWriteRefundApprovalToJSON, OrderRefundModelsWriteSettledRefundFromJSON, OrderRefundModelsWriteSettledRefundToJSON, OrderRefundModelsWriteSettledRefundRowFromJSON, OrderRefundModelsWriteSettledRefundRowToJSON, RefundQueryFromJSON, RefundQueryToJSON, } from '../models'; export interface CreateRefundRequest { orderId: number; newRefund: OrderRefundModelsWriteNewRefund; } export interface DeleteRefundRowRequest { orderId: number; refundId: string; refundRowId: number; } export interface GetRefundRequest { orderId: number; refundId: string; } export interface ListRefundsRequest { orderId: number; } export interface QueryRefundsRequest { refundQuery: RefundQuery; } export interface SetRefundApprovalRequest { orderId: number; refundId: string; refundApproval: OrderRefundModelsWriteRefundApproval; } export interface SetRefundAsProcessedRequest { orderId: number; refundId: string; processedRefund: OrderRefundModelsWriteProcessedRefund; } export interface SetRefundAsSettledRequest { orderId: number; refundId: string; settledRefund: OrderRefundModelsWriteSettledRefund; } export interface SetRefundRowAsSettledRequest { orderId: number; refundId: string; refundRowId: number; settledRefundRow: OrderRefundModelsWriteSettledRefundRow; } /** * */ export class RefundApi extends runtime.BaseAPI { /** * Creates a new refund. * Creates refund */ async createRefundRaw(requestParameters: CreateRefundRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling createRefund.'); } if (requestParameters.newRefund === null || requestParameters.newRefund === undefined) { throw new runtime.RequiredError('newRefund','Required parameter requestParameters.newRefund was null or undefined when calling createRefund.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))), method: 'POST', headers: headerParameters, query: queryParameters, body: OrderRefundModelsWriteNewRefundToJSON(requestParameters.newRefund), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeNullableGuidFromJSON(jsonValue)); } /** * Creates a new refund. * Creates refund */ async createRefund(requestParameters: CreateRefundRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.createRefundRaw(requestParameters, initOverrides); return await response.value(); } /** * Delete a refund row. Can only be done if the refund row isn\'t settled. * Delete refund row */ async deleteRefundRowRaw(requestParameters: DeleteRefundRowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling deleteRefundRow.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling deleteRefundRow.'); } if (requestParameters.refundRowId === null || requestParameters.refundRowId === undefined) { throw new runtime.RequiredError('refundRowId','Required parameter requestParameters.refundRowId was null or undefined when calling deleteRefundRow.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}/RefundRow/{refundRowId}`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))).replace(`{${"refundRowId"}}`, encodeURIComponent(String(requestParameters.refundRowId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Delete a refund row. Can only be done if the refund row isn\'t settled. * Delete refund row */ async deleteRefundRow(requestParameters: DeleteRefundRowRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.deleteRefundRowRaw(requestParameters, initOverrides); return await response.value(); } /** * Get refund */ async getRefundRaw(requestParameters: GetRefundRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling getRefund.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling getRefund.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeRefundFromJSON(jsonValue)); } /** * Get refund */ async getRefund(requestParameters: GetRefundRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getRefundRaw(requestParameters, initOverrides); return await response.value(); } /** * Get all refunds on an order. * List refunds */ async listRefundsRaw(requestParameters: ListRefundsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling listRefunds.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/List`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeListRefundFromJSON(jsonValue)); } /** * Get all refunds on an order. * List refunds */ async listRefunds(requestParameters: ListRefundsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.listRefundsRaw(requestParameters, initOverrides); return await response.value(); } /** * Queries all refunds. * Query refunds */ async queryRefundsRaw(requestParameters: QueryRefundsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.refundQuery === null || requestParameters.refundQuery === undefined) { throw new runtime.RequiredError('refundQuery','Required parameter requestParameters.refundQuery was null or undefined when calling queryRefunds.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Refund/Query`, method: 'POST', headers: headerParameters, query: queryParameters, body: RefundQueryToJSON(requestParameters.refundQuery), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeListRefundFromJSON(jsonValue)); } /** * Queries all refunds. * Query refunds */ async queryRefunds(requestParameters: QueryRefundsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.queryRefundsRaw(requestParameters, initOverrides); return await response.value(); } /** * Approve or deny a pending refund. * Set refund approval */ async setRefundApprovalRaw(requestParameters: SetRefundApprovalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling setRefundApproval.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling setRefundApproval.'); } if (requestParameters.refundApproval === null || requestParameters.refundApproval === undefined) { throw new runtime.RequiredError('refundApproval','Required parameter requestParameters.refundApproval was null or undefined when calling setRefundApproval.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}/SetApproval`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))), method: 'POST', headers: headerParameters, query: queryParameters, body: OrderRefundModelsWriteRefundApprovalToJSON(requestParameters.refundApproval), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Approve or deny a pending refund. * Set refund approval */ async setRefundApproval(requestParameters: SetRefundApprovalRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.setRefundApprovalRaw(requestParameters, initOverrides); return await response.value(); } /** * Sets a refund as processed and all refund rows within it as settled. * Set refund as processed */ async setRefundAsProcessedRaw(requestParameters: SetRefundAsProcessedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling setRefundAsProcessed.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling setRefundAsProcessed.'); } if (requestParameters.processedRefund === null || requestParameters.processedRefund === undefined) { throw new runtime.RequiredError('processedRefund','Required parameter requestParameters.processedRefund was null or undefined when calling setRefundAsProcessed.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}/SetAsProcessed`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))), method: 'POST', headers: headerParameters, query: queryParameters, body: OrderRefundModelsWriteProcessedRefundToJSON(requestParameters.processedRefund), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Sets a refund as processed and all refund rows within it as settled. * Set refund as processed */ async setRefundAsProcessed(requestParameters: SetRefundAsProcessedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.setRefundAsProcessedRaw(requestParameters, initOverrides); return await response.value(); } /** * Sets all refund rows in a refund as settled. * Set refund as settled */ async setRefundAsSettledRaw(requestParameters: SetRefundAsSettledRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling setRefundAsSettled.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling setRefundAsSettled.'); } if (requestParameters.settledRefund === null || requestParameters.settledRefund === undefined) { throw new runtime.RequiredError('settledRefund','Required parameter requestParameters.settledRefund was null or undefined when calling setRefundAsSettled.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}/SetAsSettled`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))), method: 'POST', headers: headerParameters, query: queryParameters, body: OrderRefundModelsWriteSettledRefundToJSON(requestParameters.settledRefund), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Sets all refund rows in a refund as settled. * Set refund as settled */ async setRefundAsSettled(requestParameters: SetRefundAsSettledRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.setRefundAsSettledRaw(requestParameters, initOverrides); return await response.value(); } /** * Set refund row as settled */ async setRefundRowAsSettledRaw(requestParameters: SetRefundRowAsSettledRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.orderId === null || requestParameters.orderId === undefined) { throw new runtime.RequiredError('orderId','Required parameter requestParameters.orderId was null or undefined when calling setRefundRowAsSettled.'); } if (requestParameters.refundId === null || requestParameters.refundId === undefined) { throw new runtime.RequiredError('refundId','Required parameter requestParameters.refundId was null or undefined when calling setRefundRowAsSettled.'); } if (requestParameters.refundRowId === null || requestParameters.refundRowId === undefined) { throw new runtime.RequiredError('refundRowId','Required parameter requestParameters.refundRowId was null or undefined when calling setRefundRowAsSettled.'); } if (requestParameters.settledRefundRow === null || requestParameters.settledRefundRow === undefined) { throw new runtime.RequiredError('settledRefundRow','Required parameter requestParameters.settledRefundRow was null or undefined when calling setRefundRowAsSettled.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Order/{orderId}/Refund/{refundId}/RefundRow/{refundRowId}/SetAsSettled`.replace(`{${"orderId"}}`, encodeURIComponent(String(requestParameters.orderId))).replace(`{${"refundId"}}`, encodeURIComponent(String(requestParameters.refundId))).replace(`{${"refundRowId"}}`, encodeURIComponent(String(requestParameters.refundRowId))), method: 'POST', headers: headerParameters, query: queryParameters, body: OrderRefundModelsWriteSettledRefundRowToJSON(requestParameters.settledRefundRow), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Set refund row as settled */ async setRefundRowAsSettled(requestParameters: SetRefundRowAsSettledRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.setRefundRowAsSettledRaw(requestParameters, initOverrides); return await response.value(); } }