From e642860f86f9f1792ecc50f6a711ad10742d2a77 Mon Sep 17 00:00:00 2001 From: eddiechayes Date: Fri, 15 Mar 2024 14:58:44 -0700 Subject: [PATCH] pseo: add partna --- .../from-custom-request_getpartna.com.yaml | 737 +++++ sdks/db/custom-request-last-fetched.json | 3 +- .../custom-request-specs/getpartna.com.yaml | 2281 ++++++++++++++++ .../fixed-specs-cache/partna-fixed-spec.yaml | 2299 ++++++++++++++++ sdks/db/fixed-specs/partna-fixed-spec.yaml | 2422 +++++++++++++++++ .../partna.json | 3 + .../partna/openapi.yaml | 2281 ++++++++++++++++ .../getpartna.com.yaml | 30 + sdks/db/progress/partna-progress.yaml | 319 +++ .../from-custom-request_getpartna.com.json | 1168 ++++++++ .../from-custom-request_getpartna.com.json | 38 + .../letmc.com_free-tier_v2-free-tier.json | 2 +- sdks/publish.json | 16 + sdks/src/collect-from-custom-requests.ts | 47 + 14 files changed, 11644 insertions(+), 2 deletions(-) create mode 100644 sdks/db/cached-method-objects/from-custom-request_getpartna.com.yaml create mode 100644 sdks/db/custom-request-specs/getpartna.com.yaml create mode 100644 sdks/db/fixed-specs-cache/partna-fixed-spec.yaml create mode 100644 sdks/db/fixed-specs/partna-fixed-spec.yaml create mode 100644 sdks/db/generate-repository-description-cache/partna.json create mode 100644 sdks/db/intermediate-fixed-specs/partna/openapi.yaml create mode 100644 sdks/db/processed-custom-request-cache/getpartna.com.yaml create mode 100644 sdks/db/progress/partna-progress.yaml create mode 100644 sdks/db/published/from-custom-request_getpartna.com.json create mode 100644 sdks/db/spec-data/from-custom-request_getpartna.com.json diff --git a/sdks/db/cached-method-objects/from-custom-request_getpartna.com.yaml b/sdks/db/cached-method-objects/from-custom-request_getpartna.com.yaml new file mode 100644 index 000000000..3aa86caba --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_getpartna.com.yaml @@ -0,0 +1,737 @@ +hash: bc114400a5a631015917526186f9b754fdafbbe4d807ce1a2e947809aae8c7b4 +methodObjects: + - url: /v1/balance + method: getAccountBalance + httpMethod: get + tag: Balance + typeScriptTag: balance + description: Retrieve merchant account balance + parameters: + - name: currency + schema: string + required: true + description: One of supported currencies + example: CURRENCY + responses: + - statusCode: '200' + description: '' + - url: /v1/merchants + method: getRecord + httpMethod: get + tag: Merchants + typeScriptTag: merchants + description: Retrieve merchant record + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /v1/merchants + method: updateRecord + httpMethod: patch + tag: Merchants + typeScriptTag: merchants + description: Update merchant record + parameters: + - name: callbackUrl + schema: string + description: '' + example: https://www.example.com/webhook/ventogram + - name: creditCurrency + schema: string + description: '' + - name: feeBearer + schema: string + description: '' + example: client + - name: logo + schema: string + description: '' + example: https://www.example.com/favicon + responses: + - statusCode: '200' + description: '' + - url: /v1/mock/payment + method: requestSubmission + httpMethod: post + tag: Mock Payment + typeScriptTag: mockPayment + description: Make a mock payment + parameters: + - name: amount + schema: integer + required: false + description: '' + - name: voucherId + schema: string + required: true + description: '' + example: VOUCHERID + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - url: /v1/currency/rates + method: getConversionRates + httpMethod: get + tag: Rates + typeScriptTag: rates + description: Retrieves conversion rates + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /v1/transactions/summary + method: getMerchantTransactionSummary + httpMethod: get + tag: Transactions + typeScriptTag: transactions + description: Retrieve merchant transaction summary + parameters: + - name: currency + schema: string + required: true + description: One of supported currencies + example: CURRENCY + responses: + - statusCode: '200' + description: '' + - url: /v1/vouchers + method: getRecord + httpMethod: get + tag: Voucher + typeScriptTag: voucher + description: Retrieve voucher record + parameters: + - name: id + schema: string + description: Voucher id + - name: memo + schema: string + description: Voucher memo or reference number + - name: accountNumber + schema: string + description: The account number used to pay for voucher + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: '' + - url: /v1/vouchers + method: redeemExistingUnused + httpMethod: patch + tag: Voucher + typeScriptTag: voucher + description: Redeem existing unused voucher + parameters: + - name: email + schema: string + required: true + description: '' + example: EMAIL + - name: voucherCode + schema: string + required: true + description: '' + example: VOUCHERCODE + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/vouchers + method: createPayment + httpMethod: post + tag: Voucher + typeScriptTag: voucher + description: Create a new voucher payment + parameters: + - name: amount + schema: integer + required: true + description: '' + example: 0 + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: email + schema: string + required: true + description: '' + example: EMAIL + - name: fullname + schema: string + required: true + description: '' + example: FULLNAME + - name: rateKey + schema: string + required: false + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - url: /v1/voucher/get-many + method: getMultipleRecords + httpMethod: get + tag: Voucher + typeScriptTag: voucher + description: Get multiple records + parameters: + - name: page + schema: number + description: >- + Defaults to 1. This is the current page being requested relative to + size of a page + - name: pageSize + schema: number + description: The number of items to be retured per page + - name: paymentStatus + schema: string + description: Voucher payment status + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /v1/voucher + method: redeemAndWithdraw + httpMethod: patch + tag: Voucher + typeScriptTag: voucher + description: Redeem and withdraw + parameters: + - name: cryptoAddress + schema: string + required: true + description: '' + example: CRYPTOADDRESS + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: email + schema: string + required: true + description: '' + example: EMAIL + - name: merchantFee + schema: string + required: false + description: '' + - name: network + schema: string + required: true + description: '' + example: NETWORK + - name: rateKey + schema: string + required: false + description: '' + - name: voucherCode + schema: string + required: true + description: '' + example: VOUCHERCODE + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/voucher-fee + method: getFee + httpMethod: get + tag: Voucher fee + typeScriptTag: voucherFee + description: Retrieves conversion rates + parameters: + - name: amount + schema: integer + required: true + description: Voucher amount + example: 0 + - name: currency + schema: string + required: true + description: Voucher currency + example: CURRENCY + responses: + - statusCode: '200' + description: '' + - url: /v1/voucher-min-max + method: getMinMaxAmount + httpMethod: get + tag: Voucher min-max amount + typeScriptTag: voucherMinMaxAmount + description: Retrieves minimum and maximum voucher amounts + parameters: + - name: currency + schema: string + description: Voucher currency + responses: + - statusCode: '200' + description: '' + - url: /auth/api-key + method: generateNewApiKey + httpMethod: post + tag: ApiKey + typeScriptTag: apiKey + description: Create api key + parameters: + - name: otpType + schema: string + description: '' + - name: token + schema: string + description: '' + responses: + - statusCode: '200' + description: '' + - url: /payment + method: createNewPayment + httpMethod: post + tag: Payment + typeScriptTag: payment + description: Create payment + parameters: + - name: accountName + schema: string + required: false + description: '' + - name: accountNumber + schema: string + required: false + description: '' + - name: bank + schema: string + required: false + description: '' + - name: bankCode + schema: string + required: false + description: '' + - name: businessId + schema: string + required: true + description: '' + example: BUSINESSID + - name: coinprofileUsername + schema: string + required: false + description: '' + - name: country + schema: string + required: false + description: '' + - name: customerEmail + schema: string + required: true + description: '' + example: CUSTOMEREMAIL + - name: incomingAmount + schema: number + required: false + description: '' + - name: incomingCurrency + schema: string + required: true + description: '' + example: INCOMINGCURRENCY + - name: outgoingAmount + schema: number + required: false + description: '' + - name: outgoingCurrency + schema: string + required: true + description: '' + example: OUTGOINGCURRENCY + - name: paymentType + schema: string + required: true + description: '' + example: PAYMENTTYPE + - name: rateKey + schema: string + required: false + description: '' + - name: reference + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - url: /payment/{paymentId} + method: getSingle + httpMethod: get + tag: Payment + typeScriptTag: payment + description: Get a single payment + parameters: + - name: paymentId + schema: string + required: true + description: The ID of the created payment + example: PAYMENTID + responses: + - statusCode: '200' + description: '' + - url: /transaction/{transactionId} + method: getDetails + httpMethod: get + tag: Transaction + typeScriptTag: transaction + description: Get a transaction + parameters: + - name: transactionId + schema: string + required: true + description: '' + example: TRANSACTIONID + responses: + - statusCode: '200' + description: '' + - url: /currency/rate + method: getCurrentRates + httpMethod: get + tag: Rates + typeScriptTag: rates + description: Get current rates + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /currency/minimum-allowed + method: getMinimumAllowed + httpMethod: get + tag: Currency + typeScriptTag: currency + description: Get minimum amount allowed + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /currency/supported + method: listSupportedCurrencies + httpMethod: get + tag: Currency + typeScriptTag: currency + description: Get supported currencies + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /wallet/supported/config + method: getSupportedConfig + httpMethod: get + tag: Wallet + typeScriptTag: wallet + description: Get supported cryptocurrencies and network + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /payment/resolve + method: resolveOverpaidTransaction + httpMethod: get + tag: Payment + typeScriptTag: payment + description: Resolve overpaid Transaction + parameters: + - name: id + schema: string + required: true + description: The ID of the unresolved transaction + example: ID + - name: option + schema: string + required: true + description: >- + This is the way you want the transaction to be completed. Either + refundExcess or PayAll option + example: OPTION + responses: + - statusCode: '200' + description: '' + - url: /callbackurl + method: getCallbackUrl + httpMethod: get + tag: Webhook + typeScriptTag: webhook + description: Retrieve subscribed webhook url + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /callbackurl + method: subscribeWebhookCallback + httpMethod: put + tag: Webhook + typeScriptTag: webhook + description: Subscribe to webhook + parameters: + - name: callbackUrl + schema: string + required: true + description: '' + example: CALLBACKURL + responses: + - statusCode: '200' + description: '' + - url: /transaction + method: getUserTransactions + httpMethod: get + tag: Transaction + typeScriptTag: transaction + description: Retrieve user's transaction records + parameters: + - name: currency + schema: string + description: >- + Currency for which transactions are to be retrieved. When this is not + supplied, transactions will be retrieved for all available currencies. + - name: type + schema: string + description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + - name: page + schema: number + description: Number of pages to be retrieved. + - name: limit + schema: number + description: Number of transaction records to be retrieved per page page. + - name: duration + schema: number + description: Duration of the transaction to be retrieved per page page. + responses: + - statusCode: '200' + description: '' + - url: /transaction/summary + method: getUserTransactionSummary + httpMethod: get + tag: Transaction + typeScriptTag: transaction + description: Retrieve user's transaction summary + parameters: + - name: currency + schema: string + description: >- + Currency for which transactions are to be retrieved. When this is not + supplied, transactions will be retrieved for all available currencies. + - name: type + schema: string + description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + - name: page + schema: number + description: Number of pages to be retrieved. + - name: limit + schema: number + description: Number of transaction records to be retrieved per page page. + - name: duration + schema: number + description: Duration of the transaction to be retrieved per page page. + responses: + - statusCode: '200' + description: '' + - url: /wallet + method: getAddresses + httpMethod: get + tag: Wallet + typeScriptTag: wallet + description: Retrieves a user's crypto wallet addresses + parameters: + - name: currency + schema: string + description: The cryptocurrency for which address will be retrieved + - name: network + schema: string + description: The crypto network of the retrieved wallet address + responses: + - statusCode: '200' + description: '' + - url: /balance/withdraw + method: withdrawFunds + httpMethod: post + tag: Balance + typeScriptTag: balance + description: Withdraw balance + parameters: + - name: accountName + schema: string + required: true + description: '' + example: ACCOUNTNAME + - name: accountNumber + schema: string + required: true + description: '' + example: ACCOUNTNUMBER + - name: amount + schema: string + required: true + description: '' + example: AMOUNT + - name: bank + schema: string + required: true + description: '' + example: BANK + - name: bankCode + schema: string + required: true + description: '' + example: BANKCODE + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: otpType + schema: string + required: true + description: '' + example: OTPTYPE + - name: token + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - url: /bank/resolve + method: verifyAndReturnDetails + httpMethod: post + tag: BankAccount + typeScriptTag: bankAccount + description: Resolve bank account + parameters: + - name: accountNumber + schema: string + required: true + description: '' + example: ACCOUNTNUMBER + - name: bankCode + schema: string + required: true + description: '' + example: BANKCODE + responses: + - statusCode: '200' + description: '' + - url: /bank/supported + method: getSupportedBanks + httpMethod: get + tag: Bank + typeScriptTag: bank + description: Retrieve a list of supported banks + parameters: + - name: country + schema: string + description: The country from which to retrieve supported banks + responses: + - statusCode: '200' + description: '' + - url: /balance + method: getAccountBalance + httpMethod: get + tag: Balance + typeScriptTag: balance + description: Retrieve user's account balance + parameters: + - name: currency + schema: string + description: >- + Currency for which balance is to be retrieved. When this is not + supplied, balance will be retrieved for all available currencies. + responses: + - statusCode: '200' + description: '' + - url: /balance/transfer + method: transferFunds + httpMethod: post + tag: Balance + typeScriptTag: balance + description: Transfer funds + parameters: + - name: amount + schema: string + required: false + description: '' + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: memo + schema: string + required: false + description: '' + - name: otpType + schema: string + required: false + description: '' + - name: receiverUsername + schema: string + required: true + description: '' + example: RECEIVERUSERNAME + - name: token + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - url: /wallet/transfer + method: executeTransfer + httpMethod: post + tag: Wallet + typeScriptTag: wallet + description: Wallet transfer + parameters: + - name: address + schema: string + required: true + description: '' + example: ADDRESS + - name: amount + schema: number + required: true + description: '' + example: 0 + - name: currency + schema: string + required: true + description: '' + example: CURRENCY + - name: memo + schema: string + required: false + description: '' + - name: network + schema: string + required: true + description: '' + example: NETWORK + - name: walletType + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' +numberOfSchemas: 53 +apiDescription: Coinprofile business API diff --git a/sdks/db/custom-request-last-fetched.json b/sdks/db/custom-request-last-fetched.json index 0055464ef..c31fd6232 100644 --- a/sdks/db/custom-request-last-fetched.json +++ b/sdks/db/custom-request-last-fetched.json @@ -61,6 +61,7 @@ "zapier.com_Embed": "2024-03-15T18:35:07.094Z", "synclabs.so": "2024-03-15T18:35:06.234Z", "tavus.io": "2024-03-15T18:32:39.749Z", - "pulze.ai": "2024-03-15T20:37:32.380Z" + "pulze.ai": "2024-03-15T20:37:32.380Z", + "getpartna.com": "2024-03-15T21:26:34.116Z" } } \ No newline at end of file diff --git a/sdks/db/custom-request-specs/getpartna.com.yaml b/sdks/db/custom-request-specs/getpartna.com.yaml new file mode 100644 index 000000000..b7d0376cc --- /dev/null +++ b/sdks/db/custom-request-specs/getpartna.com.yaml @@ -0,0 +1,2281 @@ +components: + securitySchemes: + AdminSecret: + in: header + name: X-Admin-Secret + type: apiKey + ApiKey: + in: header + name: X-Api-Key + type: apiKey + ApiUser: + in: header + name: X-Api-User + type: apiKey + UserVersion: + in: header + name: X-User-Version + type: apiKey +info: + description: Coinprofile business API + title: Coinprofile business API + version: 1.0.0 +openapi: 3.0.2 +paths: + /v1/balance: + get: + description: Retrieves account balance for the selected currency + operationId: get-balance + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Merchant's balance amount + format: int32 + type: integer + currency: + description: The currency passed by merchant + type: string + merchant: + description: Merchant'susername + type: string + txnCount: + description: >- + Total count of voucher redeemption for a given + merchant + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant account balance + tags: + - Balance + /v1/merchants: + get: + description: >- + Retrieves merchant record - username, email, callback URL, merchant + logo, creditCurrency, API key expiry date-time + operationId: get-merchant + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + creditCurrency: + description: Merchant's credit currency + enum: + - NGN + - USD + type: string + email: + description: Merchant email address + type: string + expires: + description: API key expiry date and time + example: '2023-10-03T09:21:05.197Z' + format: date-time + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + username: + description: Merchant username + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant record + tags: + - Merchants + patch: + description: Updates merchant record + operationId: update-merchant + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: Merchant callback URL. Webhook will be sent to this URL. + example: https://www.example.com/webhook/ventogram + type: string + creditCurrency: + description: >- + Merchants can set this property to their desired currency. + Their balance on Ventogram will be credited with this + currency when their users redeem voucher created on + Ventogram. Conversion between different currencies will be + performed at the rate which is obtainable at the time of + redeeming the voucher. If this is not set by the merchant, + their balance will be credited with the currency used in + creating the voucher. + enum: + - NGN + - USD + - '' + type: string + feeBearer: + description: Bearer of the voucher fee + enum: + - client + - merchant + example: client + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + type: string + creditCurrency: + enum: + - NGN + - USD + type: string + feeBearer: + type: string + logo: + type: string + username: + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Update merchant record + tags: + - Merchants + /v1/mock/payment: + post: + description: Sends a mock payment request (only in staging environment) + operationId: mock-payment + requestBody: + content: + application/json: + schema: + properties: + amount: + description: >- + Amount to pay. This can be used to simulate overpayment and + underpayment in staging environment. If this field is not + provided, the expected amount will be paid. + format: int32 + type: integer + voucherId: + description: ID of the voucher to be paid + type: string + required: + - voucherId + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + summary: Make a mock payment + tags: + - Mock Payment + /v1/currency/rates: + get: + description: Retrieves conversion rates for all supported currencies + operationId: get-rates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + USDNGN: + properties: + description: + description: description text + type: string + rateKey: + description: Ventogram signed rate key + type: string + value: + description: 1 USD is equal to 500 NGN in this example + example: 490 + format: int32 + type: integer + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Rates + /v1/transactions/summary: + get: + description: Retrieves transaction summary for the selected currency for a merchant + operationId: get-summary + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + totalPaid: + description: Total count of paid vouchers + format: int32 + type: integer + totalRedeemed: + description: Total count of redeemed vouchers + format: int32 + type: integer + totalUnpaid: + description: Total count of unpaid vouchers + format: int32 + type: integer + totalUnredeemed: + description: Total count of unredeemed vouchers + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant transaction summary + tags: + - Transactions + /v1/vouchers: + post: + description: Creates a new voucher payment for a user + operationId: create-voucher + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Required voucher amount + format: int32 + type: integer + currency: + description: Required voucher currency + enum: + - NGN + - USD + type: string + email: + description: User email + type: string + fullname: + description: Fullname of the user creating voucher + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. If provided when a + voucher is created, the conversion will use the rate signed + with this key if it is valid at the time of redeeming a + voucher. Conversion will use the current rate if key has + expired. + type: string + required: + - email + - amount + - currency + - fullname + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + data: + properties: + id: + description: Voucher unique id + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - email is required + - Invalid or expired rateKey + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Create a new voucher payment + tags: + - Voucher + get: + description: >- + Retrieves an existing voucher record(s). When no query param is + provided, all the voucher record for the merchant will be returned. If + accountNumber field is provided in the query, all the voucher records + associated with the given accountNumber for the merchant will be + returned. + operationId: get-voucher + parameters: + - description: Voucher id + in: query + name: id + schema: + type: string + - description: Voucher memo or reference number + in: query + name: memo + schema: + type: string + - description: The account number used to pay for voucher + in: query + name: accountNumber + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + accountType: + description: >- + Type of created bank account. Note that this + property is only available in v2. + enum: + - dynamic + - static + type: string + amount: + type: number + cancelledAt: + description: >- + This property is optional. Only available if the + voucher has been cancelled. + format: date-time + type: string + createdAt: + type: string + currency: + type: string + dateRedeemed: + description: >- + Timestamp of when the voucher was redeemed. If + voucher has not been redeemed, this field is + undefined. + format: date-time + type: string + email: + type: string + fee: + type: number + feeBearer: + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paymentExpiresAt: + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + - declined + type: string + voucherCode: + description: Voucher code. Present only if voucher has been paid + type: string + type: object + type: array + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve voucher record + tags: + - Voucher + patch: + description: Redeems an existing unused voucher + operationId: redeem-voucher + requestBody: + content: + application/json: + schema: + properties: + email: + description: Email that was used to create the voucher + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Voucher amount after fee deduction + type: number + currency: + description: voucher payment currency + enum: + - NGN + - USD + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + fee: + description: The fee associated with voucher + type: number + feeBearer: + default: client + description: The bearer of voucher fee + enum: + - client + - merchant + type: string + fromAmount: + description: >- + The amount in the currency that was converted from + when conversion was done. If there's no conversion, + this is the same as toAmount. + type: number + fromCurrency: + description: >- + The currency from which conversion was done. If + there's no conversion, this is the same as toCurrency. + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion when + conversion was done. If there's no conversion, the + value is 1. + type: number + toAmount: + description: >- + The amount in the currency that was converted to when + conversion was done. If there's no conversion, this is + the same as fromAmount. + type: number + toCurrency: + description: >- + The currency to which conversion was done. If there's + no conversion, this is the same as fromCurrency. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + wavedFee: + description: Waved fee (if available) + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem existing unused voucher + tags: + - Voucher + /v1/voucher/get-many: + get: + description: >- + Retrieves a collection of voucher records, sorted in descending order by + their creation date. + operationId: get-many + parameters: + - description: >- + Defaults to 1. This is the current page being requested relative to + size of a page + in: query + name: page + schema: + type: number + - description: The number of items to be retured per page + in: query + name: pageSize + schema: + type: number + - description: Voucher payment status + in: query + name: paymentStatus + schema: + enum: + - paid + - unpaid + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + description: >- + An array containing the retrieved voucher records, sorted + in descending order by their creation date. + items: + properties: + amount: + type: number + createdAt: + format: date-time + type: string + currency: + type: string + dateRedeemed: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + email: + type: string + expectedAmount: + type: number + fee: + type: number + feeBearer: + enum: + - client + - merchant + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paidAt: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + type: string + rate: + description: >- + This is defined only if the voucher has been paid + and redeemed + type: number + rateKey: + description: >- + This is defined only if the voucher was created + using a valid rate key + type: string + receivedAmount: + description: >- + This is defined only if the voucher payment has been + received + type: number + voucherCode: + description: >- + This is defined only if the voucher payment has been + received + type: string + type: object + type: array + message: + type: string + meta: + properties: + nextPage: + description: >- + Contanis the URL of the next page to be fetched + relative on the URL parameters of the last paged + fetched. This is null if there are no more records to + fetch. + type: string + prevPage: + description: >- + Contanis the URL of the previous page that was fetched + fetched relative on the URL parameters of the current + paged + type: string + type: object + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Get multiple records + tags: + - Voucher + /v1/voucher: + patch: + description: >- + Redeems an existing unused voucher and transfers crypto to the provided + wallet address + operationId: redeem-and-withdraw + requestBody: + content: + application/json: + schema: + properties: + cryptoAddress: + description: >- + Must be provided along with newtwork. The crypto wallet + address on the provided network, to which crypto equivalent + will be sent + type: string + currency: + description: Cryptocurrency to send to the provided wallet details + enum: + - USDC + - USDT + type: string + email: + description: Email that was used to create the voucher + type: string + merchantFee: + description: >- + In USD (optional). Can be supplied if the merchant want to + withdraw a portion of the voucher amount into their + Ventogram balance. This must be a fraction or all of voucher + value (ie received amount - voucher fee) + enum: + - USD + type: string + network: + description: Supported crypto network + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. This will be returned + in response if the signed rate was used for conversion. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + - network + - currency + - cryptoAddress + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + convertedVoucherFee: + description: Voucher fee in the outgoing currency + type: number + convertedVoucherFeeCurrency: + description: The same as toCurrency + type: string + creditCurrency: + description: Merchant's balance currency + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + feeBearer: + description: The bearer of voucher fee + enum: + - merchant + - client + type: string + fromAmount: + description: Voucher payment amount. + type: number + fromCurrency: + description: voucher payment currency + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + merchantFee: + description: >- + This can be optionally provided by the merchant in the + request if they want some of the received amount to be + added to their Ventogram balance. + type: number + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion (if + applicable) at the time of redeeming the voucher. If + there's no conversion, the value is 1. + type: number + reference: + description: This is basically a unique id + type: string + toAccount: + description: >- + The crypto wallet address to which asset was + transferred + type: string + toAmount: + description: The amount that was sent to user wallet address. + type: number + toCurrency: + description: The currency that was sent to user wallet. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + voucherFee: + description: >- + The fee associated with voucher in the payment + currency. This will be deducted from merchant's + balance if merchant is the fee bearer. + type: number + withdrawalFee: + description: >- + The processing fee for the crypto transfer that will + be deducted from the merchant's account. Merchants + must maintain a sufficient balance to utilize the + redeem-and-withdraw endpoint. + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem and withdraw + tags: + - Voucher + /v1/voucher-fee: + get: + description: Retrieves fee for a given voucher amount and currency. + operationId: get-fee + parameters: + - description: Voucher amount + in: query + name: amount + required: true + schema: + type: integer + - description: Voucher currency + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + voucherFee: + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Voucher fee + /v1/voucher-min-max: + get: + description: Retrieves minimum and maximum voucher amounts for each currency. + operationId: voucher-min-max + parameters: + - description: Voucher currency + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + NGN: + properties: + max: + example: 2000000 + type: number + min: + example: 500 + type: number + type: object + USD: + properties: + max: + example: 2000 + type: number + min: + example: 100 + type: number + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves minimum and maximum voucher amounts + tags: + - Voucher min-max amount + /auth/api-key: + post: + description: Create a new api key + operationId: createApiKey + requestBody: + content: + application/json: + schema: + properties: + otpType: + type: string + token: + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + expires: + format: date + type: string + key: + type: string + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create api key + /payment: + post: + description: Create a new payment + operationId: createPayment + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. Required when paymentType is bank + type: string + accountNumber: + description: The account number. Required when paymentType is bank + type: string + bank: + description: The bank name. Required when paymentType is bank + type: string + bankCode: + description: The bank code. Required when paymentType is bank + type: string + businessId: + description: The business id + type: string + coinprofileUsername: + description: >- + The coinprofile username. Required when paymentType is + profile + type: string + country: + description: The country. Required when paymentType is bank + type: string + customerEmail: + description: The rate key + type: string + incomingAmount: + description: The incoming amount + type: number + incomingCurrency: + description: The incoming currency + type: string + outgoingAmount: + description: The outgoing amount + type: number + outgoingCurrency: + description: The outgoing currency + type: string + paymentType: + description: The payment type + type: string + rateKey: + description: The rate key + type: string + reference: + description: The reference + type: string + required: + - businessId + - incomingCurrency + - outgoingCurrency + - paymentType + - customerEmail + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + _id: + type: string + account: + type: string + address: + type: string + businessId: + type: string + confirmedAmount: + format: int32 + type: integer + createdAt: + type: string + customerEmail: + type: string + expTime: + type: string + incomingAmount: + format: int32 + type: integer + incomingCurrency: + type: string + outgoingAmount: + format: int32 + type: integer + outgoingCurrency: + type: string + paymentType: + type: string + rate: + format: int32 + type: integer + reference: + type: string + senderUsername: + type: string + state: + type: string + threadTS: + type: string + unconfirmedAmount: + format: int32 + type: integer + updatedAt: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create payment + /payment/{paymentId}: + get: + description: Get a single payment + operationId: getPayment + parameters: + - description: The ID of the created payment + in: path + name: paymentId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a single payment + /transaction/{transactionId}: + get: + description: Get a transaction + operationId: getTransaction + parameters: + - in: path + name: transactionId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + amount: + type: number + businessId: + type: string + currency: + type: string + fromAmount: + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + memo: + type: string + message: + type: string + prevBalance: + type: number + sender: + type: string + status: + type: string + success: + type: boolean + transactionId: + type: string + type: + type: string + username: + type: string + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a transaction + /currency/rate: + get: + description: Get the current rates + operationId: getCurrentRates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + YOUR_CURRENCY: + properties: + key: + type: string + rate: + format: float + type: number + type: object + publicKey: + type: string + signature: + type: string + type: object + type: object + description: Success + summary: Get current rates + /currency/minimum-allowed: + get: + description: Get minimum amount allowed + operationId: getMinimumAllowed + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + type: object + type: array + type: object + description: Success + summary: Get minimum amount allowed + /currency/supported: + get: + description: Get supported currencies + operationId: getSupportedCurrencies + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + incomingCurrencies: + items: + type: string + type: array + outgoingCurrencies: + items: + type: string + type: array + type: object + type: object + description: Success + summary: Get supported currencies + /wallet/supported/config: + get: + description: Get supported cryptocurrencies and networks + operationId: getSupportedParams + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + byCurrency: + type: object + byNetwork: + type: object + type: object + message: + type: string + state: + type: boolean + type: object + description: Success + summary: Get supported cryptocurrencies and network + /payment/resolve: + get: + description: Resolve overpaid Transaction + operationId: resolveOverpaidTransaction + parameters: + - description: The ID of the unresolved transaction + in: query + name: id + required: true + schema: + type: string + - description: >- + This is the way you want the transaction to be completed. Either + refundExcess or PayAll option + in: query + name: option + required: true + schema: + enum: + - refundexcess + - payall + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + summary: Resolve overpaid Transaction + /callbackurl: + get: + description: Retrieve the callback url used as webhook + operationId: getCallbackUrl + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + description: >- + The callback url. e.g. + https://www.example.com/callback + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve subscribed webhook url + put: + description: Set the callback url that will be used as webhook + operationId: setCallbackUrl + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: The callback url. e.g. https://www.example.com/callback + type: string + required: + - callbackUrl + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Subscribe to webhook + /transaction: + get: + description: Retrieves all user transactions + operationId: get-transactions + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction records + /transaction/summary: + get: + description: Retrieves all user transactions summary + operationId: get-transactions-summary + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + summary: + properties: + duration: + format: int32 + type: number + txnCount: + format: int32 + type: number + volume: + format: int32 + type: number + type: object + txn: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction summary + /wallet: + get: + description: get wallet + operationId: get-wallet + parameters: + - description: The cryptocurrency for which address will be retrieved + in: query + name: currency + schema: + type: string + - description: The crypto network of the retrieved wallet address + in: query + name: network + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + wallet: + properties: + addresses: + type: array + appName: + type: string + createdAt: + format: int32 + type: number + reference: + type: string + status: + type: string + uid: + type: string + updatedAt: + format: int32 + type: number + version: + type: string + type: object + type: object + description: successfully retrieved wallet + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieves a user's crypto wallet addresses + /balance/withdraw: + post: + description: Withdraw funds from the user's balance + operationId: withdrawBalance + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. This is the name of the account holder. + type: string + accountNumber: + description: The account number of the user's bank account. + type: string + amount: + description: The amount to be withdrawn. + type: string + bank: + description: The bank name. e.g. "Access Bank". + type: string + bankCode: + description: The bank code. e.g. "044". + type: string + currency: + description: The currency of the withdrawal. + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + token: + description: The token to be used for OTP. + type: string + required: + - accountNumber + - accountName + - bank + - bankCode + - currency + - amount + - otpType + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Withdraw balance + /bank/resolve: + post: + description: Verifies the bank account and returns the bank account details + operationId: resolveBankAccount + requestBody: + content: + application/json: + schema: + properties: + accountNumber: + description: The account number. + type: string + bankCode: + description: The bank code. + type: string + required: + - accountNumber + - bankCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + accountname: + type: string + accountnumber: + type: string + code: + type: string + country: + type: string + created_at: + type: string + currency: + type: string + deleted_at: + type: string + internalreference: + type: string + is_trashed: + type: string + is_visible: + type: string + name: + type: string + phonenumber: + type: string + responsecode: + type: string + responsemessage: + type: string + uniquereference: + type: string + updated_at: + type: string + type: object + type: object + description: successful operation + summary: Resolve bank account + /bank/supported: + get: + description: Retrieve a list of supported banks + operationId: retrieveSupportedBanks + parameters: + - description: The country from which to retrieve supported banks + in: query + name: country + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + Code: + type: string + Name: + type: string + type: object + type: array + message: + type: string + success: + type: boolean + type: object + description: successful operation + summary: Retrieve a list of supported banks + /balance: + get: + description: Retrieves account balance for each currency + operationId: get-balance + parameters: + - description: >- + Currency for which balance is to be retrieved. When this is not + supplied, balance will be retrieved for all available currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + - USDT + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + balances: + properties: + amount: + description: User's balance amount + format: int32 + type: integer + formattedAmount: + format: int32 + type: integer + toCurrency: + type: string + totalRecieved: + format: int32 + type: integer + totalSent: + format: int32 + type: integer + txnCount: + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's account balance + /balance/transfer: + post: + description: Transfer funds from user's balance to another user (fiat-to-fiat) + operationId: transferFunds + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Amount to transfer. + type: string + currency: + description: Currency being sent. + enum: + - NGN + - USD + type: string + memo: + description: Transaction memo. + maxLength: 28 + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + receiverUsername: + description: Receiver's coinprofile username. + type: string + token: + description: The token to be used for OTP. + type: string + required: + - receiverUsername + - currency + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + type: string + date: + format: date + type: string + fromCurrency: + enum: + - NGN + - USD + type: string + receiveAmount: + type: string + sender: + type: string + senderPrevbalance: + type: string + status: + enum: + - fullfiled + - processing + - failed + type: string + toCurrency: + enum: + - NGN + - USD + type: string + transactionId: + type: string + username: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Transfer funds + /wallet/transfer: + post: + description: Transfer crypto from one wallet address to another + operationId: wallet-transfer + requestBody: + content: + application/json: + schema: + properties: + address: + description: Wallet address to transfer crypto + type: string + amount: + description: Amount of crypto to be transferred + type: number + currency: + description: Currency of the crypto to be transferred + type: string + memo: + description: Optional transaction memo + type: string + network: + description: Network on which crypto is to be transferred + type: string + walletType: + description: Wallet type + type: string + required: + - network + - currency + - address + - amount + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + transferDetail: + properties: + address: + type: string + amount: + type: number + date: + type: string + fromCurrency: + type: string + memo: + type: string + receiveAmount: + type: number + sender: + type: string + status: + type: string + toCurrency: + type: string + transactionId: + type: string + type: + type: string + username: + type: string + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Wallet transfer +servers: + - description: Production + url: https://staging-biz.coinprofile.co/v2 diff --git a/sdks/db/fixed-specs-cache/partna-fixed-spec.yaml b/sdks/db/fixed-specs-cache/partna-fixed-spec.yaml new file mode 100644 index 000000000..eda1e7d01 --- /dev/null +++ b/sdks/db/fixed-specs-cache/partna-fixed-spec.yaml @@ -0,0 +1,2299 @@ +publishJson: + company: Partna + serviceName: false + sdkName: partna-{language}-sdk + clientName: Partna + metaDescription: >- + Modern companies use Partna's API and B2B payment tools to smoothly launch + and operate in Africa + apiStatusUrls: inherit + homepage: getpartna.com/ + developerDocumentation: docs.getpartna.com/ + categories: + - developer_tools + - finance + - payments + - africa +rawSpecString: | + components: + securitySchemes: + AdminSecret: + in: header + name: X-Admin-Secret + type: apiKey + ApiKey: + in: header + name: X-Api-Key + type: apiKey + ApiUser: + in: header + name: X-Api-User + type: apiKey + UserVersion: + in: header + name: X-User-Version + type: apiKey + info: + description: Coinprofile business API + title: Coinprofile business API + version: 1.0.0 + openapi: 3.0.2 + paths: + /v1/balance: + get: + description: Retrieves account balance for the selected currency + operationId: get-balance + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Merchant's balance amount + format: int32 + type: integer + currency: + description: The currency passed by merchant + type: string + merchant: + description: Merchant'susername + type: string + txnCount: + description: >- + Total count of voucher redeemption for a given + merchant + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant account balance + tags: + - Balance + /v1/merchants: + get: + description: >- + Retrieves merchant record - username, email, callback URL, merchant + logo, creditCurrency, API key expiry date-time + operationId: get-merchant + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + creditCurrency: + description: Merchant's credit currency + enum: + - NGN + - USD + type: string + email: + description: Merchant email address + type: string + expires: + description: API key expiry date and time + example: '2023-10-03T09:21:05.197Z' + format: date-time + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + username: + description: Merchant username + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant record + tags: + - Merchants + patch: + description: Updates merchant record + operationId: update-merchant + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: Merchant callback URL. Webhook will be sent to this URL. + example: https://www.example.com/webhook/ventogram + type: string + creditCurrency: + description: >- + Merchants can set this property to their desired currency. + Their balance on Ventogram will be credited with this + currency when their users redeem voucher created on + Ventogram. Conversion between different currencies will be + performed at the rate which is obtainable at the time of + redeeming the voucher. If this is not set by the merchant, + their balance will be credited with the currency used in + creating the voucher. + enum: + - NGN + - USD + - '' + type: string + feeBearer: + description: Bearer of the voucher fee + enum: + - client + - merchant + example: client + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + type: string + creditCurrency: + enum: + - NGN + - USD + type: string + feeBearer: + type: string + logo: + type: string + username: + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Update merchant record + tags: + - Merchants + /v1/mock/payment: + post: + description: Sends a mock payment request (only in staging environment) + operationId: mock-payment + requestBody: + content: + application/json: + schema: + properties: + amount: + description: >- + Amount to pay. This can be used to simulate overpayment and + underpayment in staging environment. If this field is not + provided, the expected amount will be paid. + format: int32 + type: integer + voucherId: + description: ID of the voucher to be paid + type: string + required: + - voucherId + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + summary: Make a mock payment + tags: + - Mock Payment + /v1/currency/rates: + get: + description: Retrieves conversion rates for all supported currencies + operationId: get-rates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + USDNGN: + properties: + description: + description: description text + type: string + rateKey: + description: Ventogram signed rate key + type: string + value: + description: 1 USD is equal to 500 NGN in this example + example: 490 + format: int32 + type: integer + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Rates + /v1/transactions/summary: + get: + description: Retrieves transaction summary for the selected currency for a merchant + operationId: get-summary + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + totalPaid: + description: Total count of paid vouchers + format: int32 + type: integer + totalRedeemed: + description: Total count of redeemed vouchers + format: int32 + type: integer + totalUnpaid: + description: Total count of unpaid vouchers + format: int32 + type: integer + totalUnredeemed: + description: Total count of unredeemed vouchers + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant transaction summary + tags: + - Transactions + /v1/vouchers: + post: + description: Creates a new voucher payment for a user + operationId: create-voucher + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Required voucher amount + format: int32 + type: integer + currency: + description: Required voucher currency + enum: + - NGN + - USD + type: string + email: + description: User email + type: string + fullname: + description: Fullname of the user creating voucher + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. If provided when a + voucher is created, the conversion will use the rate signed + with this key if it is valid at the time of redeeming a + voucher. Conversion will use the current rate if key has + expired. + type: string + required: + - email + - amount + - currency + - fullname + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + data: + properties: + id: + description: Voucher unique id + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - email is required + - Invalid or expired rateKey + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Create a new voucher payment + tags: + - Voucher + get: + description: >- + Retrieves an existing voucher record(s). When no query param is + provided, all the voucher record for the merchant will be returned. If + accountNumber field is provided in the query, all the voucher records + associated with the given accountNumber for the merchant will be + returned. + operationId: get-voucher + parameters: + - description: Voucher id + in: query + name: id + schema: + type: string + - description: Voucher memo or reference number + in: query + name: memo + schema: + type: string + - description: The account number used to pay for voucher + in: query + name: accountNumber + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + accountType: + description: >- + Type of created bank account. Note that this + property is only available in v2. + enum: + - dynamic + - static + type: string + amount: + type: number + cancelledAt: + description: >- + This property is optional. Only available if the + voucher has been cancelled. + format: date-time + type: string + createdAt: + type: string + currency: + type: string + dateRedeemed: + description: >- + Timestamp of when the voucher was redeemed. If + voucher has not been redeemed, this field is + undefined. + format: date-time + type: string + email: + type: string + fee: + type: number + feeBearer: + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paymentExpiresAt: + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + - declined + type: string + voucherCode: + description: Voucher code. Present only if voucher has been paid + type: string + type: object + type: array + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve voucher record + tags: + - Voucher + patch: + description: Redeems an existing unused voucher + operationId: redeem-voucher + requestBody: + content: + application/json: + schema: + properties: + email: + description: Email that was used to create the voucher + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Voucher amount after fee deduction + type: number + currency: + description: voucher payment currency + enum: + - NGN + - USD + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + fee: + description: The fee associated with voucher + type: number + feeBearer: + default: client + description: The bearer of voucher fee + enum: + - client + - merchant + type: string + fromAmount: + description: >- + The amount in the currency that was converted from + when conversion was done. If there's no conversion, + this is the same as toAmount. + type: number + fromCurrency: + description: >- + The currency from which conversion was done. If + there's no conversion, this is the same as toCurrency. + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion when + conversion was done. If there's no conversion, the + value is 1. + type: number + toAmount: + description: >- + The amount in the currency that was converted to when + conversion was done. If there's no conversion, this is + the same as fromAmount. + type: number + toCurrency: + description: >- + The currency to which conversion was done. If there's + no conversion, this is the same as fromCurrency. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + wavedFee: + description: Waved fee (if available) + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem existing unused voucher + tags: + - Voucher + /v1/voucher/get-many: + get: + description: >- + Retrieves a collection of voucher records, sorted in descending order by + their creation date. + operationId: get-many + parameters: + - description: >- + Defaults to 1. This is the current page being requested relative to + size of a page + in: query + name: page + schema: + type: number + - description: The number of items to be retured per page + in: query + name: pageSize + schema: + type: number + - description: Voucher payment status + in: query + name: paymentStatus + schema: + enum: + - paid + - unpaid + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + description: >- + An array containing the retrieved voucher records, sorted + in descending order by their creation date. + items: + properties: + amount: + type: number + createdAt: + format: date-time + type: string + currency: + type: string + dateRedeemed: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + email: + type: string + expectedAmount: + type: number + fee: + type: number + feeBearer: + enum: + - client + - merchant + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paidAt: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + type: string + rate: + description: >- + This is defined only if the voucher has been paid + and redeemed + type: number + rateKey: + description: >- + This is defined only if the voucher was created + using a valid rate key + type: string + receivedAmount: + description: >- + This is defined only if the voucher payment has been + received + type: number + voucherCode: + description: >- + This is defined only if the voucher payment has been + received + type: string + type: object + type: array + message: + type: string + meta: + properties: + nextPage: + description: >- + Contanis the URL of the next page to be fetched + relative on the URL parameters of the last paged + fetched. This is null if there are no more records to + fetch. + type: string + prevPage: + description: >- + Contanis the URL of the previous page that was fetched + fetched relative on the URL parameters of the current + paged + type: string + type: object + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Get multiple records + tags: + - Voucher + /v1/voucher: + patch: + description: >- + Redeems an existing unused voucher and transfers crypto to the provided + wallet address + operationId: redeem-and-withdraw + requestBody: + content: + application/json: + schema: + properties: + cryptoAddress: + description: >- + Must be provided along with newtwork. The crypto wallet + address on the provided network, to which crypto equivalent + will be sent + type: string + currency: + description: Cryptocurrency to send to the provided wallet details + enum: + - USDC + - USDT + type: string + email: + description: Email that was used to create the voucher + type: string + merchantFee: + description: >- + In USD (optional). Can be supplied if the merchant want to + withdraw a portion of the voucher amount into their + Ventogram balance. This must be a fraction or all of voucher + value (ie received amount - voucher fee) + enum: + - USD + type: string + network: + description: Supported crypto network + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. This will be returned + in response if the signed rate was used for conversion. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + - network + - currency + - cryptoAddress + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + convertedVoucherFee: + description: Voucher fee in the outgoing currency + type: number + convertedVoucherFeeCurrency: + description: The same as toCurrency + type: string + creditCurrency: + description: Merchant's balance currency + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + feeBearer: + description: The bearer of voucher fee + enum: + - merchant + - client + type: string + fromAmount: + description: Voucher payment amount. + type: number + fromCurrency: + description: voucher payment currency + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + merchantFee: + description: >- + This can be optionally provided by the merchant in the + request if they want some of the received amount to be + added to their Ventogram balance. + type: number + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion (if + applicable) at the time of redeeming the voucher. If + there's no conversion, the value is 1. + type: number + reference: + description: This is basically a unique id + type: string + toAccount: + description: >- + The crypto wallet address to which asset was + transferred + type: string + toAmount: + description: The amount that was sent to user wallet address. + type: number + toCurrency: + description: The currency that was sent to user wallet. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + voucherFee: + description: >- + The fee associated with voucher in the payment + currency. This will be deducted from merchant's + balance if merchant is the fee bearer. + type: number + withdrawalFee: + description: >- + The processing fee for the crypto transfer that will + be deducted from the merchant's account. Merchants + must maintain a sufficient balance to utilize the + redeem-and-withdraw endpoint. + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem and withdraw + tags: + - Voucher + /v1/voucher-fee: + get: + description: Retrieves fee for a given voucher amount and currency. + operationId: get-fee + parameters: + - description: Voucher amount + in: query + name: amount + required: true + schema: + type: integer + - description: Voucher currency + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + voucherFee: + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Voucher fee + /v1/voucher-min-max: + get: + description: Retrieves minimum and maximum voucher amounts for each currency. + operationId: voucher-min-max + parameters: + - description: Voucher currency + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + NGN: + properties: + max: + example: 2000000 + type: number + min: + example: 500 + type: number + type: object + USD: + properties: + max: + example: 2000 + type: number + min: + example: 100 + type: number + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves minimum and maximum voucher amounts + tags: + - Voucher min-max amount + /auth/api-key: + post: + description: Create a new api key + operationId: createApiKey + requestBody: + content: + application/json: + schema: + properties: + otpType: + type: string + token: + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + expires: + format: date + type: string + key: + type: string + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create api key + /payment: + post: + description: Create a new payment + operationId: createPayment + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. Required when paymentType is bank + type: string + accountNumber: + description: The account number. Required when paymentType is bank + type: string + bank: + description: The bank name. Required when paymentType is bank + type: string + bankCode: + description: The bank code. Required when paymentType is bank + type: string + businessId: + description: The business id + type: string + coinprofileUsername: + description: >- + The coinprofile username. Required when paymentType is + profile + type: string + country: + description: The country. Required when paymentType is bank + type: string + customerEmail: + description: The rate key + type: string + incomingAmount: + description: The incoming amount + type: number + incomingCurrency: + description: The incoming currency + type: string + outgoingAmount: + description: The outgoing amount + type: number + outgoingCurrency: + description: The outgoing currency + type: string + paymentType: + description: The payment type + type: string + rateKey: + description: The rate key + type: string + reference: + description: The reference + type: string + required: + - businessId + - incomingCurrency + - outgoingCurrency + - paymentType + - customerEmail + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + _id: + type: string + account: + type: string + address: + type: string + businessId: + type: string + confirmedAmount: + format: int32 + type: integer + createdAt: + type: string + customerEmail: + type: string + expTime: + type: string + incomingAmount: + format: int32 + type: integer + incomingCurrency: + type: string + outgoingAmount: + format: int32 + type: integer + outgoingCurrency: + type: string + paymentType: + type: string + rate: + format: int32 + type: integer + reference: + type: string + senderUsername: + type: string + state: + type: string + threadTS: + type: string + unconfirmedAmount: + format: int32 + type: integer + updatedAt: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create payment + /payment/{paymentId}: + get: + description: Get a single payment + operationId: getPayment + parameters: + - description: The ID of the created payment + in: path + name: paymentId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a single payment + /transaction/{transactionId}: + get: + description: Get a transaction + operationId: getTransaction + parameters: + - in: path + name: transactionId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + amount: + type: number + businessId: + type: string + currency: + type: string + fromAmount: + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + memo: + type: string + message: + type: string + prevBalance: + type: number + sender: + type: string + status: + type: string + success: + type: boolean + transactionId: + type: string + type: + type: string + username: + type: string + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a transaction + /currency/rate: + get: + description: Get the current rates + operationId: getCurrentRates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + YOUR_CURRENCY: + properties: + key: + type: string + rate: + format: float + type: number + type: object + publicKey: + type: string + signature: + type: string + type: object + type: object + description: Success + summary: Get current rates + /currency/minimum-allowed: + get: + description: Get minimum amount allowed + operationId: getMinimumAllowed + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + type: object + type: array + type: object + description: Success + summary: Get minimum amount allowed + /currency/supported: + get: + description: Get supported currencies + operationId: getSupportedCurrencies + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + incomingCurrencies: + items: + type: string + type: array + outgoingCurrencies: + items: + type: string + type: array + type: object + type: object + description: Success + summary: Get supported currencies + /wallet/supported/config: + get: + description: Get supported cryptocurrencies and networks + operationId: getSupportedParams + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + byCurrency: + type: object + byNetwork: + type: object + type: object + message: + type: string + state: + type: boolean + type: object + description: Success + summary: Get supported cryptocurrencies and network + /payment/resolve: + get: + description: Resolve overpaid Transaction + operationId: resolveOverpaidTransaction + parameters: + - description: The ID of the unresolved transaction + in: query + name: id + required: true + schema: + type: string + - description: >- + This is the way you want the transaction to be completed. Either + refundExcess or PayAll option + in: query + name: option + required: true + schema: + enum: + - refundexcess + - payall + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + summary: Resolve overpaid Transaction + /callbackurl: + get: + description: Retrieve the callback url used as webhook + operationId: getCallbackUrl + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + description: >- + The callback url. e.g. + https://www.example.com/callback + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve subscribed webhook url + put: + description: Set the callback url that will be used as webhook + operationId: setCallbackUrl + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: The callback url. e.g. https://www.example.com/callback + type: string + required: + - callbackUrl + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Subscribe to webhook + /transaction: + get: + description: Retrieves all user transactions + operationId: get-transactions + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction records + /transaction/summary: + get: + description: Retrieves all user transactions summary + operationId: get-transactions-summary + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + summary: + properties: + duration: + format: int32 + type: number + txnCount: + format: int32 + type: number + volume: + format: int32 + type: number + type: object + txn: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction summary + /wallet: + get: + description: get wallet + operationId: get-wallet + parameters: + - description: The cryptocurrency for which address will be retrieved + in: query + name: currency + schema: + type: string + - description: The crypto network of the retrieved wallet address + in: query + name: network + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + wallet: + properties: + addresses: + type: array + appName: + type: string + createdAt: + format: int32 + type: number + reference: + type: string + status: + type: string + uid: + type: string + updatedAt: + format: int32 + type: number + version: + type: string + type: object + type: object + description: successfully retrieved wallet + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieves a user's crypto wallet addresses + /balance/withdraw: + post: + description: Withdraw funds from the user's balance + operationId: withdrawBalance + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. This is the name of the account holder. + type: string + accountNumber: + description: The account number of the user's bank account. + type: string + amount: + description: The amount to be withdrawn. + type: string + bank: + description: The bank name. e.g. "Access Bank". + type: string + bankCode: + description: The bank code. e.g. "044". + type: string + currency: + description: The currency of the withdrawal. + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + token: + description: The token to be used for OTP. + type: string + required: + - accountNumber + - accountName + - bank + - bankCode + - currency + - amount + - otpType + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Withdraw balance + /bank/resolve: + post: + description: Verifies the bank account and returns the bank account details + operationId: resolveBankAccount + requestBody: + content: + application/json: + schema: + properties: + accountNumber: + description: The account number. + type: string + bankCode: + description: The bank code. + type: string + required: + - accountNumber + - bankCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + accountname: + type: string + accountnumber: + type: string + code: + type: string + country: + type: string + created_at: + type: string + currency: + type: string + deleted_at: + type: string + internalreference: + type: string + is_trashed: + type: string + is_visible: + type: string + name: + type: string + phonenumber: + type: string + responsecode: + type: string + responsemessage: + type: string + uniquereference: + type: string + updated_at: + type: string + type: object + type: object + description: successful operation + summary: Resolve bank account + /bank/supported: + get: + description: Retrieve a list of supported banks + operationId: retrieveSupportedBanks + parameters: + - description: The country from which to retrieve supported banks + in: query + name: country + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + Code: + type: string + Name: + type: string + type: object + type: array + message: + type: string + success: + type: boolean + type: object + description: successful operation + summary: Retrieve a list of supported banks + /balance: + get: + description: Retrieves account balance for each currency + operationId: get-balance + parameters: + - description: >- + Currency for which balance is to be retrieved. When this is not + supplied, balance will be retrieved for all available currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + - USDT + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + balances: + properties: + amount: + description: User's balance amount + format: int32 + type: integer + formattedAmount: + format: int32 + type: integer + toCurrency: + type: string + totalRecieved: + format: int32 + type: integer + totalSent: + format: int32 + type: integer + txnCount: + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's account balance + /balance/transfer: + post: + description: Transfer funds from user's balance to another user (fiat-to-fiat) + operationId: transferFunds + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Amount to transfer. + type: string + currency: + description: Currency being sent. + enum: + - NGN + - USD + type: string + memo: + description: Transaction memo. + maxLength: 28 + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + receiverUsername: + description: Receiver's coinprofile username. + type: string + token: + description: The token to be used for OTP. + type: string + required: + - receiverUsername + - currency + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + type: string + date: + format: date + type: string + fromCurrency: + enum: + - NGN + - USD + type: string + receiveAmount: + type: string + sender: + type: string + senderPrevbalance: + type: string + status: + enum: + - fullfiled + - processing + - failed + type: string + toCurrency: + enum: + - NGN + - USD + type: string + transactionId: + type: string + username: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Transfer funds + /wallet/transfer: + post: + description: Transfer crypto from one wallet address to another + operationId: wallet-transfer + requestBody: + content: + application/json: + schema: + properties: + address: + description: Wallet address to transfer crypto + type: string + amount: + description: Amount of crypto to be transferred + type: number + currency: + description: Currency of the crypto to be transferred + type: string + memo: + description: Optional transaction memo + type: string + network: + description: Network on which crypto is to be transferred + type: string + walletType: + description: Wallet type + type: string + required: + - network + - currency + - address + - amount + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + transferDetail: + properties: + address: + type: string + amount: + type: number + date: + type: string + fromCurrency: + type: string + memo: + type: string + receiveAmount: + type: number + sender: + type: string + status: + type: string + toCurrency: + type: string + transactionId: + type: string + type: + type: string + username: + type: string + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Wallet transfer + servers: + - description: Production + url: https://staging-biz.coinprofile.co/v2 +konfigCliVersion: 1.38.30 diff --git a/sdks/db/fixed-specs/partna-fixed-spec.yaml b/sdks/db/fixed-specs/partna-fixed-spec.yaml new file mode 100644 index 000000000..e148c3cf6 --- /dev/null +++ b/sdks/db/fixed-specs/partna-fixed-spec.yaml @@ -0,0 +1,2422 @@ +openapi: 3.0.2 +info: + title: Coinprofile business API + description: Coinprofile business API + version: 1.0.0 +servers: + - description: Production + url: https://staging-biz.coinprofile.co/v2 +tags: + - name: Voucher + - name: Balance + - name: Wallet + - name: Payment + - name: Transaction + - name: Merchants + - name: Rates + - name: Webhook + - name: Currency + - name: Mock Payment + - name: Transactions + - name: Voucher fee + - name: Voucher min-max amount + - name: ApiKey + - name: BankAccount + - name: Bank +paths: + /v1/balance: + get: + tags: + - Balance + summary: Retrieve merchant account balance + operationId: Balance_getAccountBalance + security: + - ApiKey: [] + ApiUser: [] + description: Retrieves account balance for the selected currency + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceGetAccountBalanceResponse' + /v1/merchants: + get: + tags: + - Merchants + summary: Retrieve merchant record + operationId: Merchants_getRecord + security: + - ApiKey: [] + ApiUser: [] + description: >- + Retrieves merchant record - username, email, callback URL, merchant + logo, creditCurrency, API key expiry date-time + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/MerchantsGetRecordResponse' + patch: + tags: + - Merchants + summary: Update merchant record + operationId: Merchants_updateRecord + security: + - ApiKey: [] + ApiUser: [] + description: Updates merchant record + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MerchantsUpdateRecordRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/MerchantsUpdateRecordResponse' + /v1/mock/payment: + post: + tags: + - Mock Payment + summary: Make a mock payment + operationId: MockPayment_requestSubmission + description: Sends a mock payment request (only in staging environment) + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MockPaymentRequestSubmissionRequest' + required: true + responses: + '201': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/MockPaymentRequestSubmissionResponse' + '400': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/MockPaymentRequestSubmission400Response' + /v1/currency/rates: + get: + tags: + - Rates + summary: Retrieves conversion rates + operationId: Rates_getConversionRates + description: Retrieves conversion rates for all supported currencies + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/RatesGetConversionRatesResponse' + /v1/transactions/summary: + get: + tags: + - Transactions + summary: Retrieve merchant transaction summary + operationId: Transactions_getMerchantTransactionSummary + security: + - ApiKey: [] + ApiUser: [] + description: Retrieves transaction summary for the selected currency for a merchant + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: >- + #/components/schemas/TransactionsGetMerchantTransactionSummaryResponse + /v1/vouchers: + post: + tags: + - Voucher + summary: Create a new voucher payment + operationId: Voucher_createPayment + security: + - ApiKey: [] + ApiUser: [] + description: Creates a new voucher payment for a user + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherCreatePaymentRequest' + required: true + responses: + '201': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherCreatePaymentResponse' + '400': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherCreatePayment400Response' + get: + tags: + - Voucher + summary: Retrieve voucher record + operationId: Voucher_getRecord + security: + - ApiKey: [] + ApiUser: [] + description: >- + Retrieves an existing voucher record(s). When no query param is + provided, all the voucher record for the merchant will be returned. If + accountNumber field is provided in the query, all the voucher records + associated with the given accountNumber for the merchant will be + returned. + parameters: + - description: Voucher id + in: query + name: id + schema: + type: string + - description: Voucher memo or reference number + in: query + name: memo + schema: + type: string + - description: The account number used to pay for voucher + in: query + name: accountNumber + schema: + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherGetRecordResponse' + '404': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherGetRecord404Response' + patch: + tags: + - Voucher + summary: Redeem existing unused voucher + operationId: Voucher_redeemExistingUnused + security: + - ApiKey: [] + ApiUser: [] + description: Redeems an existing unused voucher + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemExistingUnusedRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemExistingUnusedResponse' + '400': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemExistingUnused400Response' + '404': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemExistingUnused404Response' + /v1/voucher/get-many: + get: + tags: + - Voucher + summary: Get multiple records + operationId: Voucher_getMultipleRecords + security: + - ApiKey: [] + ApiUser: [] + description: >- + Retrieves a collection of voucher records, sorted in descending order by + their creation date. + parameters: + - description: >- + Defaults to 1. This is the current page being requested relative to + size of a page + in: query + name: page + schema: + type: number + - description: The number of items to be retured per page + in: query + name: pageSize + schema: + type: number + - description: Voucher payment status + in: query + name: paymentStatus + schema: + enum: + - paid + - unpaid + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherGetMultipleRecordsResponse' + '400': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherGetMultipleRecords400Response' + /v1/voucher: + patch: + tags: + - Voucher + summary: Redeem and withdraw + operationId: Voucher_redeemAndWithdraw + security: + - ApiKey: [] + ApiUser: [] + description: >- + Redeems an existing unused voucher and transfers crypto to the provided + wallet address + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemAndWithdrawRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemAndWithdrawResponse' + '400': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemAndWithdraw400Response' + '404': + description: Failed operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherRedeemAndWithdraw404Response' + /v1/voucher-fee: + get: + tags: + - Voucher fee + summary: Retrieves conversion rates + operationId: VoucherFee_getFee + description: Retrieves fee for a given voucher amount and currency. + parameters: + - description: Voucher amount + in: query + name: amount + required: true + schema: + type: integer + - description: Voucher currency + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VoucherFeeGetFeeResponse' + /v1/voucher-min-max: + get: + tags: + - Voucher min-max amount + summary: Retrieves minimum and maximum voucher amounts + operationId: VoucherMinmaxAmount_getMinMaxAmount + description: Retrieves minimum and maximum voucher amounts for each currency. + parameters: + - description: Voucher currency + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: >- + #/components/schemas/VoucherMinmaxAmountGetMinMaxAmountResponse + /auth/api-key: + post: + tags: + - ApiKey + summary: Create api key + operationId: ApiKey_generateNewApiKey + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Create a new api key + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiKeyGenerateNewApiKeyRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/ApiKeyGenerateNewApiKeyResponse' + /payment: + post: + tags: + - Payment + summary: Create payment + operationId: Payment_createNewPayment + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Create a new payment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentCreateNewPaymentRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentCreateNewPaymentResponse' + /payment/{paymentId}: + get: + tags: + - Payment + summary: Get a single payment + operationId: Payment_getSingle + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Get a single payment + parameters: + - description: The ID of the created payment + in: path + name: paymentId + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentGetSingleResponse' + /transaction/{transactionId}: + get: + tags: + - Transaction + summary: Get a transaction + operationId: Transaction_getDetails + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Get a transaction + parameters: + - in: path + name: transactionId + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionGetDetailsResponse' + /currency/rate: + get: + tags: + - Rates + summary: Get current rates + operationId: Rates_getCurrentRates + description: Get the current rates + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RatesGetCurrentRatesResponse' + /currency/minimum-allowed: + get: + tags: + - Currency + summary: Get minimum amount allowed + operationId: Currency_getMinimumAllowed + description: Get minimum amount allowed + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CurrencyGetMinimumAllowedResponse' + /currency/supported: + get: + tags: + - Currency + summary: Get supported currencies + operationId: Currency_listSupportedCurrencies + description: Get supported currencies + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CurrencyListSupportedCurrenciesResponse' + /wallet/supported/config: + get: + tags: + - Wallet + summary: Get supported cryptocurrencies and network + operationId: Wallet_getSupportedConfig + description: Get supported cryptocurrencies and networks + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/WalletGetSupportedConfigResponse' + /payment/resolve: + get: + tags: + - Payment + summary: Resolve overpaid Transaction + operationId: Payment_resolveOverpaidTransaction + description: Resolve overpaid Transaction + parameters: + - description: The ID of the unresolved transaction + in: query + name: id + required: true + schema: + type: string + - description: >- + This is the way you want the transaction to be completed. Either + refundExcess or PayAll option + in: query + name: option + required: true + schema: + enum: + - refundexcess + - payall + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResolveOverpaidTransactionResponse' + /callbackurl: + get: + tags: + - Webhook + summary: Retrieve subscribed webhook url + operationId: Webhook_getCallbackUrl + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Retrieve the callback url used as webhook + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookGetCallbackUrlResponse' + put: + tags: + - Webhook + summary: Subscribe to webhook + operationId: Webhook_subscribeWebhookCallback + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Set the callback url that will be used as webhook + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookSubscribeWebhookCallbackRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookSubscribeWebhookCallbackResponse' + /transaction: + get: + tags: + - Transaction + summary: Retrieve user's transaction records + operationId: Transaction_getUserTransactions + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Retrieves all user transactions + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionGetUserTransactionsResponse' + /transaction/summary: + get: + tags: + - Transaction + summary: Retrieve user's transaction summary + operationId: Transaction_getUserTransactionSummary + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Retrieves all user transactions summary + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: >- + #/components/schemas/TransactionGetUserTransactionSummaryResponse + /wallet: + get: + tags: + - Wallet + summary: Retrieves a user's crypto wallet addresses + operationId: Wallet_getAddresses + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: get wallet + parameters: + - description: The cryptocurrency for which address will be retrieved + in: query + name: currency + schema: + type: string + - description: The crypto network of the retrieved wallet address + in: query + name: network + schema: + type: string + responses: + '200': + description: successfully retrieved wallet + content: + application/json: + schema: + $ref: '#/components/schemas/WalletGetAddressesResponse' + /balance/withdraw: + post: + tags: + - Balance + summary: Withdraw balance + operationId: Balance_withdrawFunds + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Withdraw funds from the user's balance + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceWithdrawFundsRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceWithdrawFundsResponse' + /bank/resolve: + post: + tags: + - BankAccount + summary: Resolve bank account + operationId: BankAccount_verifyAndReturnDetails + description: Verifies the bank account and returns the bank account details + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccountVerifyAndReturnDetailsRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BankAccountVerifyAndReturnDetailsResponse' + /bank/supported: + get: + tags: + - Bank + summary: Retrieve a list of supported banks + operationId: Bank_getSupportedBanks + description: Retrieve a list of supported banks + parameters: + - description: The country from which to retrieve supported banks + in: query + name: country + schema: + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BankGetSupportedBanksResponse' + /balance: + get: + tags: + - Balance + summary: Retrieve user's account balance + operationId: Balance_getAccountBalance + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Retrieves account balance for each currency + parameters: + - description: >- + Currency for which balance is to be retrieved. When this is not + supplied, balance will be retrieved for all available currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + - USDT + type: string + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceGetAccountBalance200Response' + /balance/transfer: + post: + tags: + - Balance + summary: Transfer funds + operationId: Balance_transferFunds + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Transfer funds from user's balance to another user (fiat-to-fiat) + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceTransferFundsRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceTransferFundsResponse' + /wallet/transfer: + post: + tags: + - Wallet + summary: Wallet transfer + operationId: Wallet_executeTransfer + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + description: Transfer crypto from one wallet address to another + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WalletExecuteTransferRequest' + required: true + responses: + '200': + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/WalletExecuteTransferResponse' +components: + securitySchemes: + AdminSecret: + in: header + name: X-Admin-Secret + type: apiKey + ApiKey: + in: header + name: X-Api-Key + type: apiKey + ApiUser: + in: header + name: X-Api-User + type: apiKey + UserVersion: + in: header + name: X-User-Version + type: apiKey + schemas: + MerchantsUpdateRecordRequest: + properties: + callbackUrl: + description: Merchant callback URL. Webhook will be sent to this URL. + example: https://www.example.com/webhook/ventogram + type: string + creditCurrency: + description: >- + Merchants can set this property to their desired currency. Their + balance on Ventogram will be credited with this currency when their + users redeem voucher created on Ventogram. Conversion between + different currencies will be performed at the rate which is + obtainable at the time of redeeming the voucher. If this is not set + by the merchant, their balance will be credited with the currency + used in creating the voucher. + enum: + - NGN + - USD + - '' + type: string + feeBearer: + description: Bearer of the voucher fee + enum: + - client + - merchant + example: client + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + type: object + MockPaymentRequestSubmissionRequest: + properties: + amount: + description: >- + Amount to pay. This can be used to simulate overpayment and + underpayment in staging environment. If this field is not provided, + the expected amount will be paid. + format: int32 + type: integer + voucherId: + description: ID of the voucher to be paid + type: string + required: + - voucherId + type: object + VoucherRedeemExistingUnusedRequest: + properties: + email: + description: Email that was used to create the voucher + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + type: object + VoucherCreatePaymentRequest: + properties: + amount: + description: Required voucher amount + format: int32 + type: integer + currency: + description: Required voucher currency + enum: + - NGN + - USD + type: string + email: + description: User email + type: string + fullname: + description: Fullname of the user creating voucher + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. If provided when a voucher is + created, the conversion will use the rate signed with this key if it + is valid at the time of redeeming a voucher. Conversion will use the + current rate if key has expired. + type: string + required: + - email + - amount + - currency + - fullname + type: object + VoucherRedeemAndWithdrawRequest: + properties: + cryptoAddress: + description: >- + Must be provided along with newtwork. The crypto wallet address on + the provided network, to which crypto equivalent will be sent + type: string + currency: + description: Cryptocurrency to send to the provided wallet details + enum: + - USDC + - USDT + type: string + email: + description: Email that was used to create the voucher + type: string + merchantFee: + description: >- + In USD (optional). Can be supplied if the merchant want to withdraw + a portion of the voucher amount into their Ventogram balance. This + must be a fraction or all of voucher value (ie received amount - + voucher fee) + enum: + - USD + type: string + network: + description: Supported crypto network + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. This will be returned in + response if the signed rate was used for conversion. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + - network + - currency + - cryptoAddress + type: object + ApiKeyGenerateNewApiKeyRequest: + properties: + otpType: + type: string + token: + type: string + type: object + PaymentCreateNewPaymentRequest: + properties: + accountName: + description: The account name. Required when paymentType is bank + type: string + accountNumber: + description: The account number. Required when paymentType is bank + type: string + bank: + description: The bank name. Required when paymentType is bank + type: string + bankCode: + description: The bank code. Required when paymentType is bank + type: string + businessId: + description: The business id + type: string + coinprofileUsername: + description: The coinprofile username. Required when paymentType is profile + type: string + country: + description: The country. Required when paymentType is bank + type: string + customerEmail: + description: The rate key + type: string + incomingAmount: + description: The incoming amount + type: number + incomingCurrency: + description: The incoming currency + type: string + outgoingAmount: + description: The outgoing amount + type: number + outgoingCurrency: + description: The outgoing currency + type: string + paymentType: + description: The payment type + type: string + rateKey: + description: The rate key + type: string + reference: + description: The reference + type: string + required: + - businessId + - incomingCurrency + - outgoingCurrency + - paymentType + - customerEmail + type: object + WebhookSubscribeWebhookCallbackRequest: + properties: + callbackUrl: + description: The callback url. e.g. https://www.example.com/callback + type: string + required: + - callbackUrl + type: object + BalanceWithdrawFundsRequest: + properties: + accountName: + description: The account name. This is the name of the account holder. + type: string + accountNumber: + description: The account number of the user's bank account. + type: string + amount: + description: The amount to be withdrawn. + type: string + bank: + description: The bank name. e.g. "Access Bank". + type: string + bankCode: + description: The bank code. e.g. "044". + type: string + currency: + description: The currency of the withdrawal. + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + token: + description: The token to be used for OTP. + type: string + required: + - accountNumber + - accountName + - bank + - bankCode + - currency + - amount + - otpType + type: object + BankAccountVerifyAndReturnDetailsRequest: + properties: + accountNumber: + description: The account number. + type: string + bankCode: + description: The bank code. + type: string + required: + - accountNumber + - bankCode + type: object + BalanceTransferFundsRequest: + properties: + amount: + description: Amount to transfer. + type: string + currency: + description: Currency being sent. + enum: + - NGN + - USD + type: string + memo: + description: Transaction memo. + maxLength: 28 + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + receiverUsername: + description: Receiver's coinprofile username. + type: string + token: + description: The token to be used for OTP. + type: string + required: + - receiverUsername + - currency + type: object + WalletExecuteTransferRequest: + properties: + address: + description: Wallet address to transfer crypto + type: string + amount: + description: Amount of crypto to be transferred + type: number + currency: + description: Currency of the crypto to be transferred + type: string + memo: + description: Optional transaction memo + type: string + network: + description: Network on which crypto is to be transferred + type: string + walletType: + description: Wallet type + type: string + required: + - network + - currency + - address + - amount + type: object + BalanceGetAccountBalanceResponse: + properties: + data: + properties: + amount: + description: Merchant's balance amount + format: int32 + type: integer + currency: + description: The currency passed by merchant + type: string + merchant: + description: Merchant'susername + type: string + txnCount: + description: Total count of voucher redeemption for a given merchant + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + MerchantsGetRecordResponse: + properties: + data: + properties: + creditCurrency: + description: Merchant's credit currency + enum: + - NGN + - USD + type: string + email: + description: Merchant email address + type: string + expires: + description: API key expiry date and time + example: '2023-10-03T09:21:05.197Z' + format: date-time + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + username: + description: Merchant username + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + MerchantsUpdateRecordResponse: + properties: + data: + properties: + callbackUrl: + type: string + creditCurrency: + enum: + - NGN + - USD + type: string + feeBearer: + type: string + logo: + type: string + username: + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + MockPaymentRequestSubmissionResponse: + properties: + message: + type: string + success: + enum: + - true + type: boolean + type: object + MockPaymentRequestSubmission400Response: + properties: + message: + type: string + success: + enum: + - false + type: boolean + type: object + RatesGetConversionRatesResponse: + properties: + data: + properties: + USDNGN: + properties: + description: + description: description text + type: string + rateKey: + description: Ventogram signed rate key + type: string + value: + description: 1 USD is equal to 500 NGN in this example + example: 490 + format: int32 + type: integer + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + TransactionsGetMerchantTransactionSummaryResponse: + properties: + data: + properties: + totalPaid: + description: Total count of paid vouchers + format: int32 + type: integer + totalRedeemed: + description: Total count of redeemed vouchers + format: int32 + type: integer + totalUnpaid: + description: Total count of unpaid vouchers + format: int32 + type: integer + totalUnredeemed: + description: Total count of unredeemed vouchers + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherGetRecordResponse: + properties: + data: + items: + properties: + accountType: + description: >- + Type of created bank account. Note that this property is only + available in v2. + enum: + - dynamic + - static + type: string + amount: + type: number + cancelledAt: + description: >- + This property is optional. Only available if the voucher has + been cancelled. + format: date-time + type: string + createdAt: + type: string + currency: + type: string + dateRedeemed: + description: >- + Timestamp of when the voucher was redeemed. If voucher has not + been redeemed, this field is undefined. + format: date-time + type: string + email: + type: string + fee: + type: number + feeBearer: + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paymentExpiresAt: + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + - declined + type: string + voucherCode: + description: Voucher code. Present only if voucher has been paid + type: string + type: object + type: array + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherGetRecord404Response: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherRedeemExistingUnusedResponse: + properties: + data: + properties: + amount: + description: Voucher amount after fee deduction + type: number + currency: + description: voucher payment currency + enum: + - NGN + - USD + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + fee: + description: The fee associated with voucher + type: number + feeBearer: + description: The bearer of voucher fee + default: client + enum: + - client + - merchant + type: string + fromAmount: + description: >- + The amount in the currency that was converted from when + conversion was done. If there's no conversion, this is the same + as toAmount. + type: number + fromCurrency: + description: >- + The currency from which conversion was done. If there's no + conversion, this is the same as toCurrency. + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion when conversion + was done. If there's no conversion, the value is 1. + type: number + toAmount: + description: >- + The amount in the currency that was converted to when conversion + was done. If there's no conversion, this is the same as + fromAmount. + type: number + toCurrency: + description: >- + The currency to which conversion was done. If there's no + conversion, this is the same as fromCurrency. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + wavedFee: + description: Waved fee (if available) + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherRedeemExistingUnused400Response: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherRedeemExistingUnused404Response: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherCreatePaymentResponse: + properties: + data: + properties: + id: + description: Voucher unique id + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherCreatePayment400Response: + properties: + errors: + example: + - email is required + - Invalid or expired rateKey + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherGetMultipleRecordsResponse: + properties: + data: + description: >- + An array containing the retrieved voucher records, sorted in + descending order by their creation date. + items: + properties: + amount: + type: number + createdAt: + format: date-time + type: string + currency: + type: string + dateRedeemed: + description: This is defined only if the voucher payment has been received + format: date-time + type: string + email: + type: string + expectedAmount: + type: number + fee: + type: number + feeBearer: + enum: + - client + - merchant + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paidAt: + description: This is defined only if the voucher payment has been received + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + type: string + rate: + description: This is defined only if the voucher has been paid and redeemed + type: number + rateKey: + description: >- + This is defined only if the voucher was created using a valid + rate key + type: string + receivedAmount: + description: This is defined only if the voucher payment has been received + type: number + voucherCode: + description: This is defined only if the voucher payment has been received + type: string + type: object + type: array + message: + type: string + meta: + properties: + nextPage: + description: >- + Contanis the URL of the next page to be fetched relative on the + URL parameters of the last paged fetched. This is null if there + are no more records to fetch. + type: string + prevPage: + description: >- + Contanis the URL of the previous page that was fetched fetched + relative on the URL parameters of the current paged + type: string + type: object + success: + enum: + - true + type: boolean + type: object + VoucherGetMultipleRecords400Response: + properties: + errors: + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherRedeemAndWithdrawResponse: + properties: + data: + properties: + convertedVoucherFee: + description: Voucher fee in the outgoing currency + type: number + convertedVoucherFeeCurrency: + description: The same as toCurrency + type: string + creditCurrency: + description: Merchant's balance currency + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + feeBearer: + description: The bearer of voucher fee + enum: + - merchant + - client + type: string + fromAmount: + description: Voucher payment amount. + type: number + fromCurrency: + description: voucher payment currency + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + merchantFee: + description: >- + This can be optionally provided by the merchant in the request + if they want some of the received amount to be added to their + Ventogram balance. + type: number + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion (if applicable) + at the time of redeeming the voucher. If there's no conversion, + the value is 1. + type: number + reference: + description: This is basically a unique id + type: string + toAccount: + description: The crypto wallet address to which asset was transferred + type: string + toAmount: + description: The amount that was sent to user wallet address. + type: number + toCurrency: + description: The currency that was sent to user wallet. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + voucherFee: + description: >- + The fee associated with voucher in the payment currency. This + will be deducted from merchant's balance if merchant is the fee + bearer. + type: number + withdrawalFee: + description: >- + The processing fee for the crypto transfer that will be deducted + from the merchant's account. Merchants must maintain a + sufficient balance to utilize the redeem-and-withdraw endpoint. + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherRedeemAndWithdraw400Response: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherRedeemAndWithdraw404Response: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + VoucherFeeGetFeeResponse: + properties: + data: + properties: + voucherFee: + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + VoucherMinmaxAmountGetMinMaxAmountResponse: + properties: + data: + properties: + NGN: + properties: + max: + example: 2000000 + type: number + min: + example: 500 + type: number + type: object + USD: + properties: + max: + example: 2000 + type: number + min: + example: 100 + type: number + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + ApiKeyGenerateNewApiKeyResponse: + properties: + data: + properties: + expires: + format: date + type: string + key: + type: string + type: object + type: object + PaymentCreateNewPaymentResponse: + properties: + data: + properties: + _id: + type: string + account: + type: string + address: + type: string + businessId: + type: string + confirmedAmount: + format: int32 + type: integer + createdAt: + type: string + customerEmail: + type: string + expTime: + type: string + incomingAmount: + format: int32 + type: integer + incomingCurrency: + type: string + outgoingAmount: + format: int32 + type: integer + outgoingCurrency: + type: string + paymentType: + type: string + rate: + format: int32 + type: integer + reference: + type: string + senderUsername: + type: string + state: + type: string + threadTS: + type: string + unconfirmedAmount: + format: int32 + type: integer + updatedAt: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + PaymentGetSingleResponse: + properties: + message: + type: string + success: + type: boolean + type: object + TransactionGetDetailsResponse: + properties: + amount: + type: number + businessId: + type: string + currency: + type: string + fromAmount: + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + memo: + type: string + message: + type: string + prevBalance: + type: number + sender: + type: string + status: + type: string + success: + type: boolean + transactionId: + type: string + type: + type: string + username: + type: string + type: object + RatesGetCurrentRatesResponse: + properties: + data: + properties: + YOUR_CURRENCY: + properties: + key: + type: string + rate: + format: float + type: number + type: object + publicKey: + type: string + signature: + type: string + type: object + type: object + CurrencyGetMinimumAllowedResponse: + properties: + data: + items: + type: object + type: array + type: object + CurrencyListSupportedCurrenciesResponse: + properties: + data: + properties: + incomingCurrencies: + items: + type: string + type: array + outgoingCurrencies: + items: + type: string + type: array + type: object + type: object + WalletGetSupportedConfigResponse: + properties: + data: + properties: + byCurrency: + type: object + byNetwork: + type: object + type: object + message: + type: string + state: + type: boolean + type: object + PaymentResolveOverpaidTransactionResponse: + properties: + message: + type: string + success: + type: boolean + type: object + WebhookGetCallbackUrlResponse: + properties: + data: + properties: + callbackUrl: + description: The callback url. e.g. https://www.example.com/callback + type: string + type: object + message: + type: string + success: + type: boolean + type: object + WebhookSubscribeWebhookCallbackResponse: + properties: + message: + type: string + success: + type: boolean + type: object + TransactionGetUserTransactionsResponse: + properties: + data: + properties: + data: + items: + properties: + version: + type: string + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + message: + type: string + success: + type: boolean + type: object + TransactionGetUserTransactionSummaryResponse: + properties: + data: + properties: + summary: + properties: + duration: + format: int32 + type: number + txnCount: + format: int32 + type: number + volume: + format: int32 + type: number + type: object + txn: + properties: + data: + items: + properties: + version: + type: string + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + WalletGetAddressesResponse: + properties: + message: + type: string + success: + type: boolean + wallet: + properties: + version: + type: string + addresses: + type: array + appName: + type: string + createdAt: + format: int32 + type: number + reference: + type: string + status: + type: string + uid: + type: string + updatedAt: + format: int32 + type: number + type: object + type: object + BalanceWithdrawFundsResponse: + properties: + data: + type: object + type: object + BankAccountVerifyAndReturnDetailsResponse: + properties: + data: + properties: + accountname: + type: string + accountnumber: + type: string + code: + type: string + country: + type: string + created_at: + type: string + currency: + type: string + deleted_at: + type: string + internalreference: + type: string + is_trashed: + type: string + is_visible: + type: string + name: + type: string + phonenumber: + type: string + responsecode: + type: string + responsemessage: + type: string + uniquereference: + type: string + updated_at: + type: string + type: object + type: object + BankGetSupportedBanksResponse: + properties: + data: + items: + properties: + Code: + type: string + Name: + type: string + type: object + type: array + message: + type: string + success: + type: boolean + type: object + BalanceGetAccountBalance200Response: + properties: + data: + properties: + balances: + properties: + amount: + description: User's balance amount + format: int32 + type: integer + formattedAmount: + format: int32 + type: integer + toCurrency: + type: string + totalRecieved: + format: int32 + type: integer + totalSent: + format: int32 + type: integer + txnCount: + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + BalanceTransferFundsResponse: + properties: + data: + properties: + amount: + type: string + date: + format: date + type: string + fromCurrency: + enum: + - NGN + - USD + type: string + receiveAmount: + type: string + sender: + type: string + senderPrevbalance: + type: string + status: + enum: + - fullfiled + - processing + - failed + type: string + toCurrency: + enum: + - NGN + - USD + type: string + transactionId: + type: string + username: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + WalletExecuteTransferResponse: + properties: + data: + properties: + transferDetail: + properties: + address: + type: string + amount: + type: number + date: + type: string + fromCurrency: + type: string + memo: + type: string + receiveAmount: + type: number + sender: + type: string + status: + type: string + toCurrency: + type: string + transactionId: + type: string + type: + type: string + username: + type: string + type: object + type: object + message: + type: string + success: + type: boolean + type: object diff --git a/sdks/db/generate-repository-description-cache/partna.json b/sdks/db/generate-repository-description-cache/partna.json new file mode 100644 index 000000000..e29e81a77 --- /dev/null +++ b/sdks/db/generate-repository-description-cache/partna.json @@ -0,0 +1,3 @@ +{ + "Modern companies use Partna's API and B2B payment tools to smoothly launch and operate in Africa": "Modern companies use Partna's API and B2B payment tools to smoothly launch and operate in Africa. Partna's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/intermediate-fixed-specs/partna/openapi.yaml b/sdks/db/intermediate-fixed-specs/partna/openapi.yaml new file mode 100644 index 000000000..b7d0376cc --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/partna/openapi.yaml @@ -0,0 +1,2281 @@ +components: + securitySchemes: + AdminSecret: + in: header + name: X-Admin-Secret + type: apiKey + ApiKey: + in: header + name: X-Api-Key + type: apiKey + ApiUser: + in: header + name: X-Api-User + type: apiKey + UserVersion: + in: header + name: X-User-Version + type: apiKey +info: + description: Coinprofile business API + title: Coinprofile business API + version: 1.0.0 +openapi: 3.0.2 +paths: + /v1/balance: + get: + description: Retrieves account balance for the selected currency + operationId: get-balance + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Merchant's balance amount + format: int32 + type: integer + currency: + description: The currency passed by merchant + type: string + merchant: + description: Merchant'susername + type: string + txnCount: + description: >- + Total count of voucher redeemption for a given + merchant + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant account balance + tags: + - Balance + /v1/merchants: + get: + description: >- + Retrieves merchant record - username, email, callback URL, merchant + logo, creditCurrency, API key expiry date-time + operationId: get-merchant + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + creditCurrency: + description: Merchant's credit currency + enum: + - NGN + - USD + type: string + email: + description: Merchant email address + type: string + expires: + description: API key expiry date and time + example: '2023-10-03T09:21:05.197Z' + format: date-time + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + username: + description: Merchant username + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant record + tags: + - Merchants + patch: + description: Updates merchant record + operationId: update-merchant + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: Merchant callback URL. Webhook will be sent to this URL. + example: https://www.example.com/webhook/ventogram + type: string + creditCurrency: + description: >- + Merchants can set this property to their desired currency. + Their balance on Ventogram will be credited with this + currency when their users redeem voucher created on + Ventogram. Conversion between different currencies will be + performed at the rate which is obtainable at the time of + redeeming the voucher. If this is not set by the merchant, + their balance will be credited with the currency used in + creating the voucher. + enum: + - NGN + - USD + - '' + type: string + feeBearer: + description: Bearer of the voucher fee + enum: + - client + - merchant + example: client + type: string + logo: + description: Merchant logo URL + example: https://www.example.com/favicon + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + type: string + creditCurrency: + enum: + - NGN + - USD + type: string + feeBearer: + type: string + logo: + type: string + username: + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Update merchant record + tags: + - Merchants + /v1/mock/payment: + post: + description: Sends a mock payment request (only in staging environment) + operationId: mock-payment + requestBody: + content: + application/json: + schema: + properties: + amount: + description: >- + Amount to pay. This can be used to simulate overpayment and + underpayment in staging environment. If this field is not + provided, the expected amount will be paid. + format: int32 + type: integer + voucherId: + description: ID of the voucher to be paid + type: string + required: + - voucherId + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + summary: Make a mock payment + tags: + - Mock Payment + /v1/currency/rates: + get: + description: Retrieves conversion rates for all supported currencies + operationId: get-rates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + USDNGN: + properties: + description: + description: description text + type: string + rateKey: + description: Ventogram signed rate key + type: string + value: + description: 1 USD is equal to 500 NGN in this example + example: 490 + format: int32 + type: integer + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Rates + /v1/transactions/summary: + get: + description: Retrieves transaction summary for the selected currency for a merchant + operationId: get-summary + parameters: + - description: One of supported currencies + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + totalPaid: + description: Total count of paid vouchers + format: int32 + type: integer + totalRedeemed: + description: Total count of redeemed vouchers + format: int32 + type: integer + totalUnpaid: + description: Total count of unpaid vouchers + format: int32 + type: integer + totalUnredeemed: + description: Total count of unredeemed vouchers + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve merchant transaction summary + tags: + - Transactions + /v1/vouchers: + post: + description: Creates a new voucher payment for a user + operationId: create-voucher + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Required voucher amount + format: int32 + type: integer + currency: + description: Required voucher currency + enum: + - NGN + - USD + type: string + email: + description: User email + type: string + fullname: + description: Fullname of the user creating voucher + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. If provided when a + voucher is created, the conversion will use the rate signed + with this key if it is valid at the time of redeeming a + voucher. Conversion will use the current rate if key has + expired. + type: string + required: + - email + - amount + - currency + - fullname + type: object + required: true + responses: + '201': + content: + application/json: + schema: + properties: + data: + properties: + id: + description: Voucher unique id + type: string + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - email is required + - Invalid or expired rateKey + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Create a new voucher payment + tags: + - Voucher + get: + description: >- + Retrieves an existing voucher record(s). When no query param is + provided, all the voucher record for the merchant will be returned. If + accountNumber field is provided in the query, all the voucher records + associated with the given accountNumber for the merchant will be + returned. + operationId: get-voucher + parameters: + - description: Voucher id + in: query + name: id + schema: + type: string + - description: Voucher memo or reference number + in: query + name: memo + schema: + type: string + - description: The account number used to pay for voucher + in: query + name: accountNumber + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + accountType: + description: >- + Type of created bank account. Note that this + property is only available in v2. + enum: + - dynamic + - static + type: string + amount: + type: number + cancelledAt: + description: >- + This property is optional. Only available if the + voucher has been cancelled. + format: date-time + type: string + createdAt: + type: string + currency: + type: string + dateRedeemed: + description: >- + Timestamp of when the voucher was redeemed. If + voucher has not been redeemed, this field is + undefined. + format: date-time + type: string + email: + type: string + fee: + type: number + feeBearer: + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paymentExpiresAt: + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + - declined + type: string + voucherCode: + description: Voucher code. Present only if voucher has been paid + type: string + type: object + type: array + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Retrieve voucher record + tags: + - Voucher + patch: + description: Redeems an existing unused voucher + operationId: redeem-voucher + requestBody: + content: + application/json: + schema: + properties: + email: + description: Email that was used to create the voucher + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + description: Voucher amount after fee deduction + type: number + currency: + description: voucher payment currency + enum: + - NGN + - USD + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + fee: + description: The fee associated with voucher + type: number + feeBearer: + default: client + description: The bearer of voucher fee + enum: + - client + - merchant + type: string + fromAmount: + description: >- + The amount in the currency that was converted from + when conversion was done. If there's no conversion, + this is the same as toAmount. + type: number + fromCurrency: + description: >- + The currency from which conversion was done. If + there's no conversion, this is the same as toCurrency. + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion when + conversion was done. If there's no conversion, the + value is 1. + type: number + toAmount: + description: >- + The amount in the currency that was converted to when + conversion was done. If there's no conversion, this is + the same as fromAmount. + type: number + toCurrency: + description: >- + The currency to which conversion was done. If there's + no conversion, this is the same as fromCurrency. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + wavedFee: + description: Waved fee (if available) + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem existing unused voucher + tags: + - Voucher + /v1/voucher/get-many: + get: + description: >- + Retrieves a collection of voucher records, sorted in descending order by + their creation date. + operationId: get-many + parameters: + - description: >- + Defaults to 1. This is the current page being requested relative to + size of a page + in: query + name: page + schema: + type: number + - description: The number of items to be retured per page + in: query + name: pageSize + schema: + type: number + - description: Voucher payment status + in: query + name: paymentStatus + schema: + enum: + - paid + - unpaid + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + description: >- + An array containing the retrieved voucher records, sorted + in descending order by their creation date. + items: + properties: + amount: + type: number + createdAt: + format: date-time + type: string + currency: + type: string + dateRedeemed: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + email: + type: string + expectedAmount: + type: number + fee: + type: number + feeBearer: + enum: + - client + - merchant + type: string + fullname: + type: string + id: + type: string + memo: + type: string + merchant: + type: string + paidAt: + description: >- + This is defined only if the voucher payment has been + received + format: date-time + type: string + paymentStatus: + enum: + - paid + - unpaid + type: string + rate: + description: >- + This is defined only if the voucher has been paid + and redeemed + type: number + rateKey: + description: >- + This is defined only if the voucher was created + using a valid rate key + type: string + receivedAmount: + description: >- + This is defined only if the voucher payment has been + received + type: number + voucherCode: + description: >- + This is defined only if the voucher payment has been + received + type: string + type: object + type: array + message: + type: string + meta: + properties: + nextPage: + description: >- + Contanis the URL of the next page to be fetched + relative on the URL parameters of the last paged + fetched. This is null if there are no more records to + fetch. + type: string + prevPage: + description: >- + Contanis the URL of the previous page that was fetched + fetched relative on the URL parameters of the current + paged + type: string + type: object + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Get multiple records + tags: + - Voucher + /v1/voucher: + patch: + description: >- + Redeems an existing unused voucher and transfers crypto to the provided + wallet address + operationId: redeem-and-withdraw + requestBody: + content: + application/json: + schema: + properties: + cryptoAddress: + description: >- + Must be provided along with newtwork. The crypto wallet + address on the provided network, to which crypto equivalent + will be sent + type: string + currency: + description: Cryptocurrency to send to the provided wallet details + enum: + - USDC + - USDT + type: string + email: + description: Email that was used to create the voucher + type: string + merchantFee: + description: >- + In USD (optional). Can be supplied if the merchant want to + withdraw a portion of the voucher amount into their + Ventogram balance. This must be a fraction or all of voucher + value (ie received amount - voucher fee) + enum: + - USD + type: string + network: + description: Supported crypto network + type: string + rateKey: + description: >- + This is a Ventogram-signed rate key. This will be returned + in response if the signed rate was used for conversion. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + required: + - email + - voucherCode + - network + - currency + - cryptoAddress + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + convertedVoucherFee: + description: Voucher fee in the outgoing currency + type: number + convertedVoucherFeeCurrency: + description: The same as toCurrency + type: string + creditCurrency: + description: Merchant's balance currency + type: string + currentBalance: + description: Merchant's balance after redeeming voucher + type: number + email: + description: Email that aws used to create the voucher + type: string + feeBearer: + description: The bearer of voucher fee + enum: + - merchant + - client + type: string + fromAmount: + description: Voucher payment amount. + type: number + fromCurrency: + description: voucher payment currency + type: string + id: + description: Voucher ID + type: string + merchant: + description: username of the merchant that created the voucher + type: string + merchantFee: + description: >- + This can be optionally provided by the merchant in the + request if they want some of the received amount to be + added to their Ventogram balance. + type: number + previousBalance: + description: Merchant's balance before redeeming voucher + type: number + rate: + description: >- + The exchange rate that was used for conversion (if + applicable) at the time of redeeming the voucher. If + there's no conversion, the value is 1. + type: number + reference: + description: This is basically a unique id + type: string + toAccount: + description: >- + The crypto wallet address to which asset was + transferred + type: string + toAmount: + description: The amount that was sent to user wallet address. + type: number + toCurrency: + description: The currency that was sent to user wallet. + type: string + voucherCode: + description: Voucher code to be redeemed + type: string + voucherFee: + description: >- + The fee associated with voucher in the payment + currency. This will be deducted from merchant's + balance if merchant is the fee bearer. + type: number + withdrawalFee: + description: >- + The processing fee for the crypto transfer that will + be deducted from the merchant's account. Merchants + must maintain a sufficient balance to utilize the + redeem-and-withdraw endpoint. + type: number + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + '400': + content: + application/json: + schema: + properties: + errors: + example: + - voucherCode is required + items: + type: string + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + '404': + content: + application/json: + schema: + properties: + errors: + example: [] + type: array + message: + type: string + success: + enum: + - false + type: boolean + type: object + description: Failed operation + security: + - ApiKey: [] + ApiUser: [] + summary: Redeem and withdraw + tags: + - Voucher + /v1/voucher-fee: + get: + description: Retrieves fee for a given voucher amount and currency. + operationId: get-fee + parameters: + - description: Voucher amount + in: query + name: amount + required: true + schema: + type: integer + - description: Voucher currency + in: query + name: currency + required: true + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + voucherFee: + format: int32 + type: integer + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves conversion rates + tags: + - Voucher fee + /v1/voucher-min-max: + get: + description: Retrieves minimum and maximum voucher amounts for each currency. + operationId: voucher-min-max + parameters: + - description: Voucher currency + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + NGN: + properties: + max: + example: 2000000 + type: number + min: + example: 500 + type: number + type: object + USD: + properties: + max: + example: 2000 + type: number + min: + example: 100 + type: number + type: object + type: object + message: + type: string + success: + enum: + - true + type: boolean + type: object + description: successful operation + summary: Retrieves minimum and maximum voucher amounts + tags: + - Voucher min-max amount + /auth/api-key: + post: + description: Create a new api key + operationId: createApiKey + requestBody: + content: + application/json: + schema: + properties: + otpType: + type: string + token: + type: string + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + expires: + format: date + type: string + key: + type: string + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create api key + /payment: + post: + description: Create a new payment + operationId: createPayment + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. Required when paymentType is bank + type: string + accountNumber: + description: The account number. Required when paymentType is bank + type: string + bank: + description: The bank name. Required when paymentType is bank + type: string + bankCode: + description: The bank code. Required when paymentType is bank + type: string + businessId: + description: The business id + type: string + coinprofileUsername: + description: >- + The coinprofile username. Required when paymentType is + profile + type: string + country: + description: The country. Required when paymentType is bank + type: string + customerEmail: + description: The rate key + type: string + incomingAmount: + description: The incoming amount + type: number + incomingCurrency: + description: The incoming currency + type: string + outgoingAmount: + description: The outgoing amount + type: number + outgoingCurrency: + description: The outgoing currency + type: string + paymentType: + description: The payment type + type: string + rateKey: + description: The rate key + type: string + reference: + description: The reference + type: string + required: + - businessId + - incomingCurrency + - outgoingCurrency + - paymentType + - customerEmail + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + _id: + type: string + account: + type: string + address: + type: string + businessId: + type: string + confirmedAmount: + format: int32 + type: integer + createdAt: + type: string + customerEmail: + type: string + expTime: + type: string + incomingAmount: + format: int32 + type: integer + incomingCurrency: + type: string + outgoingAmount: + format: int32 + type: integer + outgoingCurrency: + type: string + paymentType: + type: string + rate: + format: int32 + type: integer + reference: + type: string + senderUsername: + type: string + state: + type: string + threadTS: + type: string + unconfirmedAmount: + format: int32 + type: integer + updatedAt: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Create payment + /payment/{paymentId}: + get: + description: Get a single payment + operationId: getPayment + parameters: + - description: The ID of the created payment + in: path + name: paymentId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a single payment + /transaction/{transactionId}: + get: + description: Get a transaction + operationId: getTransaction + parameters: + - in: path + name: transactionId + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + amount: + type: number + businessId: + type: string + currency: + type: string + fromAmount: + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + memo: + type: string + message: + type: string + prevBalance: + type: number + sender: + type: string + status: + type: string + success: + type: boolean + transactionId: + type: string + type: + type: string + username: + type: string + type: object + description: Success + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Get a transaction + /currency/rate: + get: + description: Get the current rates + operationId: getCurrentRates + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + YOUR_CURRENCY: + properties: + key: + type: string + rate: + format: float + type: number + type: object + publicKey: + type: string + signature: + type: string + type: object + type: object + description: Success + summary: Get current rates + /currency/minimum-allowed: + get: + description: Get minimum amount allowed + operationId: getMinimumAllowed + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + type: object + type: array + type: object + description: Success + summary: Get minimum amount allowed + /currency/supported: + get: + description: Get supported currencies + operationId: getSupportedCurrencies + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + incomingCurrencies: + items: + type: string + type: array + outgoingCurrencies: + items: + type: string + type: array + type: object + type: object + description: Success + summary: Get supported currencies + /wallet/supported/config: + get: + description: Get supported cryptocurrencies and networks + operationId: getSupportedParams + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + byCurrency: + type: object + byNetwork: + type: object + type: object + message: + type: string + state: + type: boolean + type: object + description: Success + summary: Get supported cryptocurrencies and network + /payment/resolve: + get: + description: Resolve overpaid Transaction + operationId: resolveOverpaidTransaction + parameters: + - description: The ID of the unresolved transaction + in: query + name: id + required: true + schema: + type: string + - description: >- + This is the way you want the transaction to be completed. Either + refundExcess or PayAll option + in: query + name: option + required: true + schema: + enum: + - refundexcess + - payall + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: Success + summary: Resolve overpaid Transaction + /callbackurl: + get: + description: Retrieve the callback url used as webhook + operationId: getCallbackUrl + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + callbackUrl: + description: >- + The callback url. e.g. + https://www.example.com/callback + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve subscribed webhook url + put: + description: Set the callback url that will be used as webhook + operationId: setCallbackUrl + requestBody: + content: + application/json: + schema: + properties: + callbackUrl: + description: The callback url. e.g. https://www.example.com/callback + type: string + required: + - callbackUrl + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Subscribe to webhook + /transaction: + get: + description: Retrieves all user transactions + operationId: get-transactions + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction records + /transaction/summary: + get: + description: Retrieves all user transactions summary + operationId: get-transactions-summary + parameters: + - description: >- + Currency for which transactions are to be retrieved. When this is + not supplied, transactions will be retrieved for all available + currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + type: string + - description: >- + Type of transactions to be retrieved. When this is not supplied, + transactions will be retrieved for all available types. + in: query + name: type + schema: + enum: + - deposit + - withdrawal + - sent + - transfer + - internalTransfer + - conversion + type: string + - description: Number of pages to be retrieved. + in: query + name: page + schema: + type: number + - description: Number of transaction records to be retrieved per page page. + in: query + name: limit + schema: + type: number + - description: Duration of the transaction to be retrieved per page page. + in: query + name: duration + schema: + enum: + - one day + - one week + - one month + - one year + type: number + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + summary: + properties: + duration: + format: int32 + type: number + txnCount: + format: int32 + type: number + volume: + format: int32 + type: number + type: object + txn: + properties: + data: + items: + properties: + amount: + format: int32 + type: number + businessId: + type: string + createdAt: + format: date-time + type: string + currency: + type: string + date: + type: string + fee: + format: int32 + type: number + fromAmount: + format: int32 + type: number + fromCurrency: + type: string + isFromRegUser: + type: boolean + prevBalance: + format: int32 + type: number + sender: + type: string + senderPrevbalance: + format: int32 + type: number + status: + type: string + transactionId: + type: string + type: + type: string + updatedAt: + format: date-time + type: string + username: + type: string + version: + type: string + type: object + type: array + page: + format: int32 + type: number + pages: + format: int32 + type: number + perPage: + format: int32 + type: number + total: + format: int32 + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's transaction summary + /wallet: + get: + description: get wallet + operationId: get-wallet + parameters: + - description: The cryptocurrency for which address will be retrieved + in: query + name: currency + schema: + type: string + - description: The crypto network of the retrieved wallet address + in: query + name: network + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + message: + type: string + success: + type: boolean + wallet: + properties: + addresses: + type: array + appName: + type: string + createdAt: + format: int32 + type: number + reference: + type: string + status: + type: string + uid: + type: string + updatedAt: + format: int32 + type: number + version: + type: string + type: object + type: object + description: successfully retrieved wallet + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieves a user's crypto wallet addresses + /balance/withdraw: + post: + description: Withdraw funds from the user's balance + operationId: withdrawBalance + requestBody: + content: + application/json: + schema: + properties: + accountName: + description: The account name. This is the name of the account holder. + type: string + accountNumber: + description: The account number of the user's bank account. + type: string + amount: + description: The amount to be withdrawn. + type: string + bank: + description: The bank name. e.g. "Access Bank". + type: string + bankCode: + description: The bank code. e.g. "044". + type: string + currency: + description: The currency of the withdrawal. + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + token: + description: The token to be used for OTP. + type: string + required: + - accountNumber + - accountName + - bank + - bankCode + - currency + - amount + - otpType + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + type: object + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Withdraw balance + /bank/resolve: + post: + description: Verifies the bank account and returns the bank account details + operationId: resolveBankAccount + requestBody: + content: + application/json: + schema: + properties: + accountNumber: + description: The account number. + type: string + bankCode: + description: The bank code. + type: string + required: + - accountNumber + - bankCode + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + accountname: + type: string + accountnumber: + type: string + code: + type: string + country: + type: string + created_at: + type: string + currency: + type: string + deleted_at: + type: string + internalreference: + type: string + is_trashed: + type: string + is_visible: + type: string + name: + type: string + phonenumber: + type: string + responsecode: + type: string + responsemessage: + type: string + uniquereference: + type: string + updated_at: + type: string + type: object + type: object + description: successful operation + summary: Resolve bank account + /bank/supported: + get: + description: Retrieve a list of supported banks + operationId: retrieveSupportedBanks + parameters: + - description: The country from which to retrieve supported banks + in: query + name: country + schema: + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + items: + properties: + Code: + type: string + Name: + type: string + type: object + type: array + message: + type: string + success: + type: boolean + type: object + description: successful operation + summary: Retrieve a list of supported banks + /balance: + get: + description: Retrieves account balance for each currency + operationId: get-balance + parameters: + - description: >- + Currency for which balance is to be retrieved. When this is not + supplied, balance will be retrieved for all available currencies. + in: query + name: currency + schema: + enum: + - NGN + - USD + - USDT + type: string + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + balances: + properties: + amount: + description: User's balance amount + format: int32 + type: integer + formattedAmount: + format: int32 + type: integer + toCurrency: + type: string + totalRecieved: + format: int32 + type: integer + totalSent: + format: int32 + type: integer + txnCount: + type: number + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Retrieve user's account balance + /balance/transfer: + post: + description: Transfer funds from user's balance to another user (fiat-to-fiat) + operationId: transferFunds + requestBody: + content: + application/json: + schema: + properties: + amount: + description: Amount to transfer. + type: string + currency: + description: Currency being sent. + enum: + - NGN + - USD + type: string + memo: + description: Transaction memo. + maxLength: 28 + type: string + otpType: + description: The type of OTP to be used. + enum: + - otp + - totp + type: string + receiverUsername: + description: Receiver's coinprofile username. + type: string + token: + description: The token to be used for OTP. + type: string + required: + - receiverUsername + - currency + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + amount: + type: string + date: + format: date + type: string + fromCurrency: + enum: + - NGN + - USD + type: string + receiveAmount: + type: string + sender: + type: string + senderPrevbalance: + type: string + status: + enum: + - fullfiled + - processing + - failed + type: string + toCurrency: + enum: + - NGN + - USD + type: string + transactionId: + type: string + username: + type: string + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Transfer funds + /wallet/transfer: + post: + description: Transfer crypto from one wallet address to another + operationId: wallet-transfer + requestBody: + content: + application/json: + schema: + properties: + address: + description: Wallet address to transfer crypto + type: string + amount: + description: Amount of crypto to be transferred + type: number + currency: + description: Currency of the crypto to be transferred + type: string + memo: + description: Optional transaction memo + type: string + network: + description: Network on which crypto is to be transferred + type: string + walletType: + description: Wallet type + type: string + required: + - network + - currency + - address + - amount + type: object + required: true + responses: + '200': + content: + application/json: + schema: + properties: + data: + properties: + transferDetail: + properties: + address: + type: string + amount: + type: number + date: + type: string + fromCurrency: + type: string + memo: + type: string + receiveAmount: + type: number + sender: + type: string + status: + type: string + toCurrency: + type: string + transactionId: + type: string + type: + type: string + username: + type: string + type: object + type: object + message: + type: string + success: + type: boolean + type: object + description: successful operation + security: + - ApiKey: [] + ApiUser: [] + UserVersion: [] + summary: Wallet transfer +servers: + - description: Production + url: https://staging-biz.coinprofile.co/v2 diff --git a/sdks/db/processed-custom-request-cache/getpartna.com.yaml b/sdks/db/processed-custom-request-cache/getpartna.com.yaml new file mode 100644 index 000000000..185e230d3 --- /dev/null +++ b/sdks/db/processed-custom-request-cache/getpartna.com.yaml @@ -0,0 +1,30 @@ +processed: + securitySchemes: + AdminSecret: + in: header + name: X-Admin-Secret + type: apiKey + ApiKey: + in: header + name: X-Api-Key + type: apiKey + ApiUser: + in: header + name: X-Api-User + type: apiKey + UserVersion: + in: header + name: X-User-Version + type: apiKey + apiBaseUrl: https://staging-biz.coinprofile.co/v2 + apiVersion: 1.0.0 + apiDescription: Coinprofile business API + apiTitle: Coinprofile business API + endpoints: 29 + sdkMethods: 33 + schemas: 0 + parameters: 89 + originalCustomRequest: + lambda: true + customRequestSpecFilename: getpartna.com.yaml + difficultyScore: 55.25 diff --git a/sdks/db/progress/partna-progress.yaml b/sdks/db/progress/partna-progress.yaml new file mode 100644 index 000000000..cb31e53a5 --- /dev/null +++ b/sdks/db/progress/partna-progress.yaml @@ -0,0 +1,319 @@ +examples: {} +examples_2: {} +examples_3: {} +operationIds: + /auth/api-key: + post: ApiKey_generateNewApiKey + /balance: + get: Balance_getAccountBalance + /balance/transfer: + post: Balance_transferFunds + /balance/withdraw: + post: Balance_withdrawFunds + /bank/resolve: + post: BankAccount_verifyAndReturnDetails + /bank/supported: + get: Bank_getSupportedBanks + /callbackurl: + get: Webhook_getCallbackUrl + put: Webhook_subscribeWebhookCallback + /currency/minimum-allowed: + get: Currency_getMinimumAllowed + /currency/rate: + get: Rates_getCurrentRates + /currency/supported: + get: Currency_listSupportedCurrencies + /payment: + post: Payment_createNewPayment + /payment/resolve: + get: Payment_resolveOverpaidTransaction + /payment/{paymentId}: + get: Payment_getSingle + /transaction: + get: Transaction_getUserTransactions + /transaction/summary: + get: Transaction_getUserTransactionSummary + /transaction/{transactionId}: + get: Transaction_getDetails + /v1/balance: + get: Balance_getAccountBalance + /v1/currency/rates: + get: Rates_getConversionRates + /v1/merchants: + get: Merchants_getRecord + patch: Merchants_updateRecord + /v1/mock/payment: + post: MockPayment_requestSubmission + /v1/transactions/summary: + get: Transactions_getMerchantTransactionSummary + /v1/voucher: + patch: Voucher_redeemAndWithdraw + /v1/voucher-fee: + get: VoucherFee_getFee + /v1/voucher-min-max: + get: VoucherMinmaxAmount_getMinMaxAmount + /v1/voucher/get-many: + get: Voucher_getMultipleRecords + /v1/vouchers: + get: Voucher_getRecord + patch: Voucher_redeemExistingUnused + post: Voucher_createPayment + /wallet: + get: Wallet_getAddresses + /wallet/supported/config: + get: Wallet_getSupportedConfig + /wallet/transfer: + post: Wallet_executeTransfer +operationTags: + /auth/api-key: + post: ApiKey + /balance: + get: Balance + /balance/transfer: + post: Balance + /balance/withdraw: + post: Balance + /bank/resolve: + post: BankAccount + /bank/supported: + get: Bank + /callbackurl: + get: Webhook + put: Webhook + /currency/minimum-allowed: + get: Currency + /currency/rate: + get: Rates + /currency/supported: + get: Currency + /payment: + post: Payment + /payment/resolve: + get: Payment + /payment/{paymentId}: + get: Payment + /transaction: + get: Transaction + /transaction/summary: + get: Transaction + /transaction/{transactionId}: + get: Transaction + /wallet: + get: Wallet + /wallet/supported/config: + get: Wallet + /wallet/transfer: + post: Wallet +renameTags: {} +requestSchemaNames: + /auth/api-key: + post: + application/json: ApiKeyGenerateNewApiKeyRequest + /balance/transfer: + post: + application/json: BalanceTransferFundsRequest + /balance/withdraw: + post: + application/json: BalanceWithdrawFundsRequest + /bank/resolve: + post: + application/json: BankAccountVerifyAndReturnDetailsRequest + /callbackurl: + put: + application/json: WebhookSubscribeWebhookCallbackRequest + /payment: + post: + application/json: PaymentCreateNewPaymentRequest + /v1/merchants: + patch: + application/json: MerchantsUpdateRecordRequest + /v1/mock/payment: + post: + application/json: MockPaymentRequestSubmissionRequest + /v1/voucher: + patch: + application/json: VoucherRedeemAndWithdrawRequest + /v1/vouchers: + patch: + application/json: VoucherRedeemExistingUnusedRequest + post: + application/json: VoucherCreatePaymentRequest + /wallet/transfer: + post: + application/json: WalletExecuteTransferRequest +responseDescriptions: {} +responseSchemaNames: + /auth/api-key: + post: + '200': + application/json: ApiKeyGenerateNewApiKeyResponse + /balance: + get: + '200': + application/json: BalanceGetAccountBalance200Response + /balance/transfer: + post: + '200': + application/json: BalanceTransferFundsResponse + /balance/withdraw: + post: + '200': + application/json: BalanceWithdrawFundsResponse + /bank/resolve: + post: + '200': + application/json: BankAccountVerifyAndReturnDetailsResponse + /bank/supported: + get: + '200': + application/json: BankGetSupportedBanksResponse + /callbackurl: + get: + '200': + application/json: WebhookGetCallbackUrlResponse + put: + '200': + application/json: WebhookSubscribeWebhookCallbackResponse + /currency/minimum-allowed: + get: + '200': + application/json: CurrencyGetMinimumAllowedResponse + /currency/rate: + get: + '200': + application/json: RatesGetCurrentRatesResponse + /currency/supported: + get: + '200': + application/json: CurrencyListSupportedCurrenciesResponse + /payment: + post: + '200': + application/json: PaymentCreateNewPaymentResponse + /payment/resolve: + get: + '200': + application/json: PaymentResolveOverpaidTransactionResponse + /payment/{paymentId}: + get: + '200': + application/json: PaymentGetSingleResponse + /transaction: + get: + '200': + application/json: TransactionGetUserTransactionsResponse + /transaction/summary: + get: + '200': + application/json: TransactionGetUserTransactionSummaryResponse + /transaction/{transactionId}: + get: + '200': + application/json: TransactionGetDetailsResponse + /v1/balance: + get: + '200': + application/json: BalanceGetAccountBalanceResponse + /v1/currency/rates: + get: + '200': + application/json: RatesGetConversionRatesResponse + /v1/merchants: + get: + '200': + application/json: MerchantsGetRecordResponse + patch: + '200': + application/json: MerchantsUpdateRecordResponse + /v1/mock/payment: + post: + '201': + application/json: MockPaymentRequestSubmissionResponse + '400': + application/json: MockPaymentRequestSubmission400Response + /v1/transactions/summary: + get: + '200': + application/json: TransactionsGetMerchantTransactionSummaryResponse + /v1/voucher: + patch: + '200': + application/json: VoucherRedeemAndWithdrawResponse + '400': + application/json: VoucherRedeemAndWithdraw400Response + '404': + application/json: VoucherRedeemAndWithdraw404Response + /v1/voucher-fee: + get: + '200': + application/json: VoucherFeeGetFeeResponse + /v1/voucher-min-max: + get: + '200': + application/json: VoucherMinmaxAmountGetMinMaxAmountResponse + /v1/voucher/get-many: + get: + '200': + application/json: VoucherGetMultipleRecordsResponse + '400': + application/json: VoucherGetMultipleRecords400Response + /v1/vouchers: + get: + '200': + application/json: VoucherGetRecordResponse + '404': + application/json: VoucherGetRecord404Response + patch: + '200': + application/json: VoucherRedeemExistingUnusedResponse + '400': + application/json: VoucherRedeemExistingUnused400Response + '404': + application/json: VoucherRedeemExistingUnused404Response + post: + '201': + application/json: VoucherCreatePaymentResponse + '400': + application/json: VoucherCreatePayment400Response + /wallet: + get: + '200': + application/json: WalletGetAddressesResponse + /wallet/supported/config: + get: + '200': + application/json: WalletGetSupportedConfigResponse + /wallet/transfer: + post: + '200': + application/json: WalletExecuteTransferResponse +securityParameters: + accountNumber: + query: false + amount: + query: false + country: + query: false + currency: + query: false + duration: + query: false + id: + query: false + limit: + query: false + memo: + query: false + network: + query: false + option: + query: false + page: + query: false + pageSize: + query: false + paymentStatus: + query: false + type: + query: false +validServerUrls: {} diff --git a/sdks/db/published/from-custom-request_getpartna.com.json b/sdks/db/published/from-custom-request_getpartna.com.json new file mode 100644 index 000000000..1facee392 --- /dev/null +++ b/sdks/db/published/from-custom-request_getpartna.com.json @@ -0,0 +1,1168 @@ +{ + "securitySchemes": { + "AdminSecret": { + "in": "header", + "name": "X-Admin-Secret", + "type": "apiKey" + }, + "ApiKey": { + "in": "header", + "name": "X-Api-Key", + "type": "apiKey" + }, + "ApiUser": { + "in": "header", + "name": "X-Api-User", + "type": "apiKey" + }, + "UserVersion": { + "in": "header", + "name": "X-User-Version", + "type": "apiKey" + } + }, + "apiBaseUrl": "https://staging-biz.coinprofile.co/v2", + "apiVersion": "1.0.0", + "apiDescription": "Coinprofile business API", + "apiTitle": "Coinprofile business API", + "endpoints": 29, + "sdkMethods": 33, + "schemas": 53, + "parameters": 89, + "originalCustomRequest": { + "lambda": true + }, + "customRequestSpecFilename": "getpartna.com.yaml", + "difficultyScore": 55.25, + "difficulty": "Easy", + "company": "Partna", + "sdkName": "partna-{language}-sdk", + "clientName": "Partna", + "metaDescription": "Modern companies use Partna's API and B2B payment tools to smoothly launch and operate in Africa", + "apiStatusUrls": "inherit", + "homepage": "getpartna.com/", + "developerDocumentation": "docs.getpartna.com/", + "categories": [ + "developer_tools", + "finance", + "payments", + "africa" + ], + "methods": [ + { + "url": "/v1/balance", + "method": "getAccountBalance", + "httpMethod": "get", + "tag": "Balance", + "typeScriptTag": "balance", + "description": "Retrieve merchant account balance", + "parameters": [ + { + "name": "currency", + "schema": "string", + "required": true, + "description": "One of supported currencies", + "example": "CURRENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/merchants", + "method": "getRecord", + "httpMethod": "get", + "tag": "Merchants", + "typeScriptTag": "merchants", + "description": "Retrieve merchant record", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/merchants", + "method": "updateRecord", + "httpMethod": "patch", + "tag": "Merchants", + "typeScriptTag": "merchants", + "description": "Update merchant record", + "parameters": [ + { + "name": "callbackUrl", + "schema": "string", + "description": "", + "example": "https://www.example.com/webhook/ventogram" + }, + { + "name": "creditCurrency", + "schema": "string", + "description": "" + }, + { + "name": "feeBearer", + "schema": "string", + "description": "", + "example": "client" + }, + { + "name": "logo", + "schema": "string", + "description": "", + "example": "https://www.example.com/favicon" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/mock/payment", + "method": "requestSubmission", + "httpMethod": "post", + "tag": "Mock Payment", + "typeScriptTag": "mockPayment", + "description": "Make a mock payment", + "parameters": [ + { + "name": "amount", + "schema": "integer", + "required": false, + "description": "" + }, + { + "name": "voucherId", + "schema": "string", + "required": true, + "description": "", + "example": "VOUCHERID" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/currency/rates", + "method": "getConversionRates", + "httpMethod": "get", + "tag": "Rates", + "typeScriptTag": "rates", + "description": "Retrieves conversion rates", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/transactions/summary", + "method": "getMerchantTransactionSummary", + "httpMethod": "get", + "tag": "Transactions", + "typeScriptTag": "transactions", + "description": "Retrieve merchant transaction summary", + "parameters": [ + { + "name": "currency", + "schema": "string", + "required": true, + "description": "One of supported currencies", + "example": "CURRENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/vouchers", + "method": "getRecord", + "httpMethod": "get", + "tag": "Voucher", + "typeScriptTag": "voucher", + "description": "Retrieve voucher record", + "parameters": [ + { + "name": "id", + "schema": "string", + "description": "Voucher id" + }, + { + "name": "memo", + "schema": "string", + "description": "Voucher memo or reference number" + }, + { + "name": "accountNumber", + "schema": "string", + "description": "The account number used to pay for voucher" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/vouchers", + "method": "redeemExistingUnused", + "httpMethod": "patch", + "tag": "Voucher", + "typeScriptTag": "voucher", + "description": "Redeem existing unused voucher", + "parameters": [ + { + "name": "email", + "schema": "string", + "required": true, + "description": "", + "example": "EMAIL" + }, + { + "name": "voucherCode", + "schema": "string", + "required": true, + "description": "", + "example": "VOUCHERCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/vouchers", + "method": "createPayment", + "httpMethod": "post", + "tag": "Voucher", + "typeScriptTag": "voucher", + "description": "Create a new voucher payment", + "parameters": [ + { + "name": "amount", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "email", + "schema": "string", + "required": true, + "description": "", + "example": "EMAIL" + }, + { + "name": "fullname", + "schema": "string", + "required": true, + "description": "", + "example": "FULLNAME" + }, + { + "name": "rateKey", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/voucher/get-many", + "method": "getMultipleRecords", + "httpMethod": "get", + "tag": "Voucher", + "typeScriptTag": "voucher", + "description": "Get multiple records", + "parameters": [ + { + "name": "page", + "schema": "number", + "description": "Defaults to 1. This is the current page being requested relative to size of a page" + }, + { + "name": "pageSize", + "schema": "number", + "description": "The number of items to be retured per page" + }, + { + "name": "paymentStatus", + "schema": "string", + "description": "Voucher payment status" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/voucher", + "method": "redeemAndWithdraw", + "httpMethod": "patch", + "tag": "Voucher", + "typeScriptTag": "voucher", + "description": "Redeem and withdraw", + "parameters": [ + { + "name": "cryptoAddress", + "schema": "string", + "required": true, + "description": "", + "example": "CRYPTOADDRESS" + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "email", + "schema": "string", + "required": true, + "description": "", + "example": "EMAIL" + }, + { + "name": "merchantFee", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "network", + "schema": "string", + "required": true, + "description": "", + "example": "NETWORK" + }, + { + "name": "rateKey", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "voucherCode", + "schema": "string", + "required": true, + "description": "", + "example": "VOUCHERCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/voucher-fee", + "method": "getFee", + "httpMethod": "get", + "tag": "Voucher fee", + "typeScriptTag": "voucherFee", + "description": "Retrieves conversion rates", + "parameters": [ + { + "name": "amount", + "schema": "integer", + "required": true, + "description": "Voucher amount", + "example": 0 + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "Voucher currency", + "example": "CURRENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/voucher-min-max", + "method": "getMinMaxAmount", + "httpMethod": "get", + "tag": "Voucher min-max amount", + "typeScriptTag": "voucherMinMaxAmount", + "description": "Retrieves minimum and maximum voucher amounts", + "parameters": [ + { + "name": "currency", + "schema": "string", + "description": "Voucher currency" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/auth/api-key", + "method": "generateNewApiKey", + "httpMethod": "post", + "tag": "ApiKey", + "typeScriptTag": "apiKey", + "description": "Create api key", + "parameters": [ + { + "name": "otpType", + "schema": "string", + "description": "" + }, + { + "name": "token", + "schema": "string", + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/payment", + "method": "createNewPayment", + "httpMethod": "post", + "tag": "Payment", + "typeScriptTag": "payment", + "description": "Create payment", + "parameters": [ + { + "name": "accountName", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "accountNumber", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "bank", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "bankCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "businessId", + "schema": "string", + "required": true, + "description": "", + "example": "BUSINESSID" + }, + { + "name": "coinprofileUsername", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "country", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "customerEmail", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMEREMAIL" + }, + { + "name": "incomingAmount", + "schema": "number", + "required": false, + "description": "" + }, + { + "name": "incomingCurrency", + "schema": "string", + "required": true, + "description": "", + "example": "INCOMINGCURRENCY" + }, + { + "name": "outgoingAmount", + "schema": "number", + "required": false, + "description": "" + }, + { + "name": "outgoingCurrency", + "schema": "string", + "required": true, + "description": "", + "example": "OUTGOINGCURRENCY" + }, + { + "name": "paymentType", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTTYPE" + }, + { + "name": "rateKey", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "reference", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/payment/{paymentId}", + "method": "getSingle", + "httpMethod": "get", + "tag": "Payment", + "typeScriptTag": "payment", + "description": "Get a single payment", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "The ID of the created payment", + "example": "PAYMENTID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/transaction/{transactionId}", + "method": "getDetails", + "httpMethod": "get", + "tag": "Transaction", + "typeScriptTag": "transaction", + "description": "Get a transaction", + "parameters": [ + { + "name": "transactionId", + "schema": "string", + "required": true, + "description": "", + "example": "TRANSACTIONID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/currency/rate", + "method": "getCurrentRates", + "httpMethod": "get", + "tag": "Rates", + "typeScriptTag": "rates", + "description": "Get current rates", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/currency/minimum-allowed", + "method": "getMinimumAllowed", + "httpMethod": "get", + "tag": "Currency", + "typeScriptTag": "currency", + "description": "Get minimum amount allowed", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/currency/supported", + "method": "listSupportedCurrencies", + "httpMethod": "get", + "tag": "Currency", + "typeScriptTag": "currency", + "description": "Get supported currencies", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/wallet/supported/config", + "method": "getSupportedConfig", + "httpMethod": "get", + "tag": "Wallet", + "typeScriptTag": "wallet", + "description": "Get supported cryptocurrencies and network", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/payment/resolve", + "method": "resolveOverpaidTransaction", + "httpMethod": "get", + "tag": "Payment", + "typeScriptTag": "payment", + "description": "Resolve overpaid Transaction", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "The ID of the unresolved transaction", + "example": "ID" + }, + { + "name": "option", + "schema": "string", + "required": true, + "description": "This is the way you want the transaction to be completed. Either refundExcess or PayAll option", + "example": "OPTION" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/callbackurl", + "method": "getCallbackUrl", + "httpMethod": "get", + "tag": "Webhook", + "typeScriptTag": "webhook", + "description": "Retrieve subscribed webhook url", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/callbackurl", + "method": "subscribeWebhookCallback", + "httpMethod": "put", + "tag": "Webhook", + "typeScriptTag": "webhook", + "description": "Subscribe to webhook", + "parameters": [ + { + "name": "callbackUrl", + "schema": "string", + "required": true, + "description": "", + "example": "CALLBACKURL" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/transaction", + "method": "getUserTransactions", + "httpMethod": "get", + "tag": "Transaction", + "typeScriptTag": "transaction", + "description": "Retrieve user's transaction records", + "parameters": [ + { + "name": "currency", + "schema": "string", + "description": "Currency for which transactions are to be retrieved. When this is not supplied, transactions will be retrieved for all available currencies." + }, + { + "name": "type", + "schema": "string", + "description": "Type of transactions to be retrieved. When this is not supplied, transactions will be retrieved for all available types." + }, + { + "name": "page", + "schema": "number", + "description": "Number of pages to be retrieved." + }, + { + "name": "limit", + "schema": "number", + "description": "Number of transaction records to be retrieved per page page." + }, + { + "name": "duration", + "schema": "number", + "description": "Duration of the transaction to be retrieved per page page." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/transaction/summary", + "method": "getUserTransactionSummary", + "httpMethod": "get", + "tag": "Transaction", + "typeScriptTag": "transaction", + "description": "Retrieve user's transaction summary", + "parameters": [ + { + "name": "currency", + "schema": "string", + "description": "Currency for which transactions are to be retrieved. When this is not supplied, transactions will be retrieved for all available currencies." + }, + { + "name": "type", + "schema": "string", + "description": "Type of transactions to be retrieved. When this is not supplied, transactions will be retrieved for all available types." + }, + { + "name": "page", + "schema": "number", + "description": "Number of pages to be retrieved." + }, + { + "name": "limit", + "schema": "number", + "description": "Number of transaction records to be retrieved per page page." + }, + { + "name": "duration", + "schema": "number", + "description": "Duration of the transaction to be retrieved per page page." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/wallet", + "method": "getAddresses", + "httpMethod": "get", + "tag": "Wallet", + "typeScriptTag": "wallet", + "description": "Retrieves a user's crypto wallet addresses", + "parameters": [ + { + "name": "currency", + "schema": "string", + "description": "The cryptocurrency for which address will be retrieved" + }, + { + "name": "network", + "schema": "string", + "description": "The crypto network of the retrieved wallet address" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/balance/withdraw", + "method": "withdrawFunds", + "httpMethod": "post", + "tag": "Balance", + "typeScriptTag": "balance", + "description": "Withdraw balance", + "parameters": [ + { + "name": "accountName", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTNAME" + }, + { + "name": "accountNumber", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTNUMBER" + }, + { + "name": "amount", + "schema": "string", + "required": true, + "description": "", + "example": "AMOUNT" + }, + { + "name": "bank", + "schema": "string", + "required": true, + "description": "", + "example": "BANK" + }, + { + "name": "bankCode", + "schema": "string", + "required": true, + "description": "", + "example": "BANKCODE" + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "otpType", + "schema": "string", + "required": true, + "description": "", + "example": "OTPTYPE" + }, + { + "name": "token", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/bank/resolve", + "method": "verifyAndReturnDetails", + "httpMethod": "post", + "tag": "BankAccount", + "typeScriptTag": "bankAccount", + "description": "Resolve bank account", + "parameters": [ + { + "name": "accountNumber", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTNUMBER" + }, + { + "name": "bankCode", + "schema": "string", + "required": true, + "description": "", + "example": "BANKCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/bank/supported", + "method": "getSupportedBanks", + "httpMethod": "get", + "tag": "Bank", + "typeScriptTag": "bank", + "description": "Retrieve a list of supported banks", + "parameters": [ + { + "name": "country", + "schema": "string", + "description": "The country from which to retrieve supported banks" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/balance", + "method": "getAccountBalance", + "httpMethod": "get", + "tag": "Balance", + "typeScriptTag": "balance", + "description": "Retrieve user's account balance", + "parameters": [ + { + "name": "currency", + "schema": "string", + "description": "Currency for which balance is to be retrieved. When this is not supplied, balance will be retrieved for all available currencies." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/balance/transfer", + "method": "transferFunds", + "httpMethod": "post", + "tag": "Balance", + "typeScriptTag": "balance", + "description": "Transfer funds", + "parameters": [ + { + "name": "amount", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "memo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "otpType", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "receiverUsername", + "schema": "string", + "required": true, + "description": "", + "example": "RECEIVERUSERNAME" + }, + { + "name": "token", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/wallet/transfer", + "method": "executeTransfer", + "httpMethod": "post", + "tag": "Wallet", + "typeScriptTag": "wallet", + "description": "Wallet transfer", + "parameters": [ + { + "name": "address", + "schema": "string", + "required": true, + "description": "", + "example": "ADDRESS" + }, + { + "name": "amount", + "schema": "number", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "currency", + "schema": "string", + "required": true, + "description": "", + "example": "CURRENCY" + }, + { + "name": "memo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "network", + "schema": "string", + "required": true, + "description": "", + "example": "NETWORK" + }, + { + "name": "walletType", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + } + ], + "repositoryDescription": "Modern companies use Partna's API and B2B payment tools to smoothly launch and operate in Africa. Partna's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/partna/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/partna/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/partna/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/partna/imagePreview.jpg", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/partna/favicon.png", + "clientNameCamelCase": "partna", + "lastUpdated": "2024-03-15T21:56:59.695Z", + "typescriptSdkUsageCode": "import { Partna } from 'partna-typescript-sdk';\n\nconst partna = new Partna({\n adminSecret: \"X_ADMIN_SECRET\",\n apiKey: \"X_API_KEY\",\n apiUser: \"X_API_USER\",\n userVersion: \"X_USER_VERSION\",\n})", + "typescriptSdkFirstRequestCode": "// Retrieve merchant account balance\nconst getAccountBalanceResponse = partna.balance.getAccountBalance({\n currency: \"CURRENCY\"\n})", + "fixedSpecFileName": "partna-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_getpartna.com.json b/sdks/db/spec-data/from-custom-request_getpartna.com.json new file mode 100644 index 000000000..772eed212 --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_getpartna.com.json @@ -0,0 +1,38 @@ +{ + "securitySchemes": { + "AdminSecret": { + "in": "header", + "name": "X-Admin-Secret", + "type": "apiKey" + }, + "ApiKey": { + "in": "header", + "name": "X-Api-Key", + "type": "apiKey" + }, + "ApiUser": { + "in": "header", + "name": "X-Api-User", + "type": "apiKey" + }, + "UserVersion": { + "in": "header", + "name": "X-User-Version", + "type": "apiKey" + } + }, + "apiBaseUrl": "https://staging-biz.coinprofile.co/v2", + "apiVersion": "1.0.0", + "apiDescription": "Coinprofile business API", + "apiTitle": "Coinprofile business API", + "endpoints": 29, + "sdkMethods": 33, + "schemas": 0, + "parameters": 89, + "originalCustomRequest": { + "lambda": true + }, + "customRequestSpecFilename": "getpartna.com.yaml", + "difficultyScore": 55.25, + "difficulty": "Easy" +} \ No newline at end of file diff --git a/sdks/db/spec-data/letmc.com_free-tier_v2-free-tier.json b/sdks/db/spec-data/letmc.com_free-tier_v2-free-tier.json index a623e05e8..fb8a2c241 100644 --- a/sdks/db/spec-data/letmc.com_free-tier_v2-free-tier.json +++ b/sdks/db/spec-data/letmc.com_free-tier_v2-free-tier.json @@ -28,5 +28,5 @@ "schemas": 32, "parameters": 146, "difficultyScore": 95.5, - "difficulty": "Easy" + "difficulty": "Medium" } \ No newline at end of file diff --git a/sdks/publish.json b/sdks/publish.json index 7acea58a3..4657f7328 100644 --- a/sdks/publish.json +++ b/sdks/publish.json @@ -1388,6 +1388,22 @@ "serviceName": false, "sdkName": "pulze-ai-{language}-sdk", "clientName": "PulzeAi" + }, + "from-custom-request_getpartna.com": { + "homepage": "getpartna.com/", + "company": "Partna", + "developerDocumentation": "docs.getpartna.com/", + "apiStatusUrls": "inherit", + "metaDescription": "Modern companies use Partna's API and B2B payment tools to smoothly launch and operate in Africa", + "categories": [ + "developer_tools", + "finance", + "payments", + "africa" + ], + "serviceName": false, + "sdkName": "partna-{language}-sdk", + "clientName": "Partna" } } } \ No newline at end of file diff --git a/sdks/src/collect-from-custom-requests.ts b/sdks/src/collect-from-custom-requests.ts index 8ce0930ce..e38f1a879 100644 --- a/sdks/src/collect-from-custom-requests.ts +++ b/sdks/src/collect-from-custom-requests.ts @@ -773,6 +773,53 @@ const customRequests: Record = { return downloadOpenApiSpecFromMintlify({ urls }); }, apiBaseUrl: "https://api.pulze.ai" + }, + "getpartna.com": { + lambda: async () => { + const urls = [ + "https://docs.getpartna.com/api-reference/endpoint/ventogram/balance/retrieve-merchant-account-balance", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/merchants/retrieve-merchant-record", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/merchants/update-merchant-record", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/mock-payment/make-a-mock-payment", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/rates/retrieves-conversion-rates", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/transactions/retrieve-merchant-transaction-summary", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher/create-a-new-voucher-payment", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher/retrieve-voucher-record", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher/get-multiple-records", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher/redeem-existing-unused-voucher", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher/redeem-and-withdraw", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher-fee/retrieves-conversion-rates", + "https://docs.getpartna.com/api-reference/endpoint/ventogram/voucher-min-max-amount/retrieves-minimum-and-maximum-voucher-amounts", + "https://docs.getpartna.com/api-reference/endpoint/biz/create-api-key", + "https://docs.getpartna.com/api-reference/endpoint/biz/create-payment", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-a-single-payment", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-a-transaction", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-current-rates", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-minimum-amount-allowed", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-supported-currencies", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-supported-cryptocurrencies-and-network", + "https://docs.getpartna.com/api-reference/endpoint/biz/resolve-overpaid-transaction", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-subscribed-webhook-url", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-users-transaction-records", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-users-transaction-summary", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieves-a-users-crypto-wallet-addresses", + "https://docs.getpartna.com/api-reference/endpoint/biz/subscribe-to-webhook", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-current-rates", + "https://docs.getpartna.com/api-reference/endpoint/biz/withdraw-balance", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-a-transaction", + "https://docs.getpartna.com/api-reference/endpoint/biz/resolve-bank-account", + "https://docs.getpartna.com/api-reference/endpoint/biz/get-minimum-amount-allowed", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-a-list-of-supported-banks", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-subscribed-webhook-url", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-users-account-balance", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-users-transaction-records", + "https://docs.getpartna.com/api-reference/endpoint/biz/retrieve-users-transaction-summary", + "https://docs.getpartna.com/api-reference/endpoint/biz/subscribe-to-webhook", + "https://docs.getpartna.com/api-reference/endpoint/biz/transfer-funds", + "https://docs.getpartna.com/api-reference/endpoint/biz/wallet-transfer" + ] + return downloadOpenApiSpecFromMintlify({ urls }); + }, } };