Finance API
The Finance API allows you to access finance details and lists, and manage invoices, credit, and payment.
This page covers the methods and endpoints associated with finance operations.
For details on how to access and manage fees associated with Provider Level Data (PLD), ScriptLift Studies (SLS), and Voter Level Data (VLD) reports, see the Healthcare Finance API and Political Finance API Guidelines.
For more information on financial operations see the following Help Center articles:
- Spending Reporting Metrics Overview
- Cost Reporting Metrics Overview
- Add or Manage a Margin
- Add and Manage Funds
Authentication
Use the following header parameters for all requests:
| Headers | |
|---|---|
Authentication string required | Authentication bearer token See Authentication Guide |
X-IAA-OW-ID integer required | Organization Workspace ID Header |
Finance Details
Get Customer Finance Details
GETGet an overview of a Customer's finance details.
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
isFinanceRequest boolean | Represents whether request came from finance tab in Customer app For Customer Management Tab: false For Finance Tab: true |
year integer | Year for data |
Response Properties
pendingCampaigns integer | Number of Campaigns in pending status (see Campaign API Guidelines for more info on statuses) |
runningCampaigns integer | Number of Campaigns in running status (see Campaign API Guidelines for more info on statuses) |
totalCampaigns integer | Total number of Campaigns associated with Customer |
dataCost integer | Data cost applied on Campaigns of a given Customer |
actualSpent integer | Amount of media spending by Customer |
credits integer | Customer credits |
balance integer | Funds balance of Customer |
spent integer | Total Campaign spending (media and data) by Customer |
earning integer | Earnings made by Organization |
- JSON
- TypeScript
{
"success": true,
"data": {
"pendingCampaigns": 15,
"runningCampaigns": 10,
"totalCampaigns": 48,
"dataCost": 0,
"actualSpent": 0,
"credits": 0,
"balance": 30430.75,
"spent": 0,
"earning": 0
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
pendingCampaigns: number;
runningCampaigns: number;
totalCampaigns: number;
dataCost: number;
actualSpent: number;
credits: number;
balance: number;
spent: number;
earning: number;
};
};
};
};
}
function GetCustomerOverview(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/financial-details',
params: {
query: {
owId: `number`,
isFinanceRequest: `boolean`,
year: `number`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Customer Margin Details
GETGet Customer margin details by margin type.
| Query Parameters | |
|---|---|
marginTypeIds string | Margin type ID 1: Gross margin |
owId integer | Organization Workspace ID |
Response Properties
marginTypeId integer | Margin type ID 1: Gross margin |
marginType string | Type of margin caluclated or applied |
marginValue integer | The value set for the requested margin type for the Customer |
isBidShadingEnabled boolean | Indicates if bid shading is enabled |
- JSON
- TypeScript
{
"success": true,
"data": {
"totalRecords": 1,
"data": [
{
"marginTypeId": 1,
"marginType": "Gross Margin",
"marginValue": 15
}
],
"filteredRecords": 1,
"isBidShadingEnabled": false
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
totalRecords: number;
data: {
marginTypeId: number;
marginType: string;
marginValue: number;
}[];
filteredRecords: number;
isBidShadingEnabled: boolean;
};
};
};
};
}
function getCustomerMargin(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/view-margin',
params: {
query: {
marginTypeIds: `string`,
owId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer Margin Details
POSTUpdate a Customer's margin settings.
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
marginTypeId integer | Margin type ID 1: Gross margin |
marginValue integer | The value set for the requested margin type for the Customer |
campaignId integer | Campaign ID |
email string | Email address |
username string | Username |
workspaceMargin integer | Workspace margin value |
organizationMargin integer | Organization margin value |
- JSON
- TypeScript
{
"owId": 202318,
"marginTypeId": 1,
"marginValue": 15
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": unknown;
};
};
}
function editCustomerMargin(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/edit-margin',
requestBody: {
content: {
"application/json": {
email?: `string`,
username?: `string`,
campaignId?: `number`,
workspaceMargin?: `number`,
organizationMargin?: `number`,
marginTypeId?: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Organization Margin Settings
GETGet margin settings for the Organization workspace, including the default margin applied to newly onboarded Customers.
Response Properties
totalRecords integer | Total number of margin settings records | |||||||
filteredRecords integer | Number of filtered records | |||||||
data array | List of margin settings | |||||||
| ||||||||
marginTypeId integer | Margin type ID 1: Gross Margin |
marginType string | Margin type name |
marginValue integer | Margin value |
- JSON
- TypeScript
{
"success": true,
"data": {
"totalRecords": 2,
"data": [
{
"marginTypeId": 1,
"marginType": "Gross Margin",
"marginValue": 20
}
],
"filteredRecords": 1
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access this api"
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
totalRecords: number;
data: {
marginTypeId: number;
marginType: string;
marginValue: number;
}[];
filteredRecords: number;
};
};
};
};
}
function GetOrganizationMarginSettings(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/organization/margin-settings',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Organization Margin Settings
POSTUpdate margin settings for the Organization workspace. For example, set a default margin to be applied to newly onboarded Customers.
| Request Schema | |
|---|---|
marginTypeId integer | Margin type ID 1: Gross margin |
marginValue integer | Margin value (between 1 and 99) |
Response Properties
success boolean | Indicates successful update: true |
data string | Success message |
- JSON
- TypeScript
{
"marginTypeId": 1,
"marginValue": 10
}
{
"success": true,
"data": "Margin settings updated successfully."
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access this api"
}
]
}
{
"success": false,
"errorObjects": [
{
"error": "Invalid marginTypeId : 2"
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function UpdateOrganizationMarginSettings(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/organization/margin-settings',
requestBody: {
content: {
"application/json": {
marginTypeId: `number`,
marginValue: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Campaign Margin Details
GETGet a list of Campaign margin details.
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
searchField string | Filter results by search field |
isEdit boolean | Indicates if user has edit access for the requested resources |
Response Properties
default string | |
campaignId integer | Campaign ID |
campaignName string | Campaign name |
status string | Campaign status |
creativeTypeId string | Creative Type ID |
campaignMargin integer | Campaign margin |
isDefault boolean |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"default": false,
"campaignId": 192476,
"campaignName": "Start_Track_Reach2",
"status": "running",
"creativeTypeId": 13,
"campaignMargin": 0,
"isDefault": false
}
],
"totalRecords": 1,
"filteredRecords": 1
}
}
See TypeScript Prerequisites for usage.
Get Customer PG Fees Details
GETGet details for Customer PG fees.
| Path Parameters | |
|---|---|
owId integer | Organization Workspace ID |
Response Properties
organizationPgFeesDetails object | Orgnization PG fees details | |||||
| ||||||
pgCampaignFees integer | PG Campaign fees |
pgWorkspaceShare integer | PG Workspace share |
- JSON
- TypeScript
{
"success": true,
"data": {
"organizationPgFeesDetails": {
"pgCampaignFees": 10,
"pgWorkspaceShare": 15
}
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
organizationPGFeesDetails: {
pgCampaignFees: number;
pgWorkspaceShare: number;
}
}
}
};
};
}
function getPgFeesDetails(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/{owId}/pg-fees',
params: {
query: {
owId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Edit Customer PG Fees
PATCHUpdate a Customer's PG fees details.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
pgCampaignFees integer | PG Campaign Fees |
pgWorkspaceShare integer | The share of PG fees applied to the Campaign by the workspace |
Response Properties
success boolean | Indicates Customer was succesfully updated: true |
data string | Success message |
- JSON
- TypeScript
{
"owId": 202318,
"pgCampaignFees": 10,
"pgWorkspaceShare": 15
}
{
"success": true,
"data": "PG Fees details updated Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
}
};
};
}
function editPgFeesDetails(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/{customerOwId}/pg-fees',
params: {
path: {
customerowId: `number`
}
},
requestBody: {
content: {
"application/json": {
customerOwId?: `number`,
pgCampaignFees?: `number`,
pgWorkspaceShare?: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Customer AQS Finance Details
GETGet finance details for a Customer's Audience Quality Score (AQS).
Read more about AQS in our Insights API or our Help Center articles: Audience Quality (AQS) Insights Reports.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
id integer | Customer ID |
owId integer | Organization Workspace ID |
aqsRate number | AQS rate for workspace Customer |
aqsEnabled boolean | Boolean flag to enable and disable AQS feature for Advertiser Customer |
aqsMarkupType string | AQS markup type: "Absolute" or "Percentage" |
aqsMarkupValue number | AQS markup value for Advertiser Customer |
- JSON
- TypeScript
{
"success": true,
"data": {
"id": 1,
"aqsRate": 3
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
id: number;
aqsRate: number;
}
}
};
};
}
function getAQSFees(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/{customerOwId}/aqs-fees',
params: {
path: {
customerOwId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer AQS Details
PATCHUpdate a Customer's AQS details.
| Request Schema | |
|---|---|
idinteger | ID |
owId integer required | OW ID of the Customer to update details |
aqsRate number | AQS rate for workspace Customer Min: 0, Max: 10000 |
aqsEnabled boolean | Boolean flag to enable and disable AQS feature for Advertiser Customer |
aqsMarkupTypeId integer | AQS markup type ID to represent markup types: Absolute or Percentage |
aqsMarkupValue number | AQS markup value for Advertiser Customer Min: 0, Max: 10000 |
Response Properties
id integer | ID |
message string | Success message |
- JSON
- TypeScript
{
"id": 0,
"owId": 0,
"aqsRate": 0,
"aqsEnabled": true,
"aqsMarkupTypeId": 0,
"aqsMarkupValue": 0
}
{
"success": true,
"data": {
"id": 1,
"message": "AQS Rate updated successfully. The new rate applies only to newly created AQSs"
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
id: number;
message: string;
}
}
};
};
}
function editAQSFees(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/aqs-fees',
requestBody: {
content: {
"application/json": {
id?: `number`,
owId: `number`,
aqsRate?: `number`,
aqsEnabled?: `boolean`,
aqsMarkupTypeId?: `number`,
aqsMarkupValue?: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Customer DoubleVerify Details
GETSuper Organization users can fetch DoubleVerify Fraud & IVT Segments flag for Customer Organization.
| Query Paramters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
customerOwId integer | Customer Organization Workspace ID |
isDvIvtSegmentsEnabled boolean | Boolean flag to enable or disable free DV-IVT Segments for Advertiser/Customer |
- JSON
- TypeScript
{
"success": true,
"data": {
"customerOwId": 1,
"isDvIvtSegmentsEnabled": true
}
}
More Responses
{
"success": true,
"data": {
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details"
}
]
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
customerOwId: number;
isDvIvtSegmentsEnabled: boolean;
}
}
}
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
error: string;
}[];
}
}
};
}
function getDvIvtFlag(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/dv-ivt',
params: {
query: {
customerOwId: `number`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer DoubleVerify
PATCHSuper Organization Users can update DoubleVerify IVT free Segments boolean flag for Customer Organization.
| Query Paramters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
isDvIvtSegmentsEnabled boolean | Boolean flag to enable or disable free DV-IVT Segments for Advertiser/Customer |
Response Properties
customerOwId integer | Customer Organization Workspace ID |
isDvIvtSegmentsEnabled boolean | Boolean flag to enable or disable free DV-IVT Segments for Advertiser/Customer |
message string | Success message |
- JSON
- TypeScript
{
"success": true,
"data": {
"customerOwId": 1,
"isDvIvtSegmentsEnabled": true,
"message": "DV Fraud & IVT segments enabled for free successfully"
}
}
More Responses
{
"success": true,
"data": {
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details"
}
]
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
customerOwId: number;
isDvIvtSegmentsEnabled: boolean;
message: string;
}
}
}
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
success: boolean;
errorObjects: {
error: string;
}[];
}
}
}
};
}
function updateDvIvtFlag(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/dv-ivt',
params: {
query: {
customerOwId: `number`,
isDvIvtSegmentsEnabled: `boolean`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Basic Financial Details
GETResponse Properties
paypalFeesPercentage integer | PayPal fees percentage |
- JSON
- TypeScript
{
"success": true,
"data": {
"paypalFeesPercentage": 3.5
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
paypalFeesPercentage: number;
}
}
}
};
}
function getBasicDetails(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/basic/details',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Available Balance
GETGet the available balance of the workspace passed in the header or as a parameter based on the isCustomerRequest flag.
If isCustomerRequest flag is true then balance of the Customer workspace will be returned. If the flag is false the balance of the workspace passed in the header will be returned.
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
isCustomerRequest boolean | Customer app request (default): true Organization app request: false |
Response Properties
success boolean | Indicates succesful retrieval of data |
data integer | Available balance |
- JSON
- TypeScript
{
"success": true,
"data": 5855904.72
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
paypalFeesPercentage: number;
}
}
};
};
}
function getBasicDetails(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/available-balance',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Add Ad Serving Cost
POSTAdd ad serving costs for a specific Customer. This API is accessible only by Super Organization users.
| Request Schema | |
|---|---|
owId integer | Customer Organization Workspace ID for whom the cost is being added |
imageCreativeCost number | Ad serving cost for IQM hosted image creatives |
videoCreativeCost number | Ad serving cost for IQM hosted video creatives |
audioCreativeCost number | Ad serving cost for IQM hosted audio creatives |
{
"owId": 123456,
"imageCreativeCost": 50.0,
"videoCreativeCost": 100.0,
"audioCreativeCost": 75.0
}
{
"success": true,
"data": {
"message": "Ad serving cost added successfully."
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details."
}
]
}
Get Ad Serving Cost
GETGet the ad serving cost details for a specific Customer.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
owId integer | Customer Organization Workspace ID | |||||||||||
adServingCostDetail object | Ad serving cost details | |||||||||||
| ||||||||||||
imageCreativeCost number | Ad serving cost for IQM hosted image creatives |
videoCreativeCost number | Ad serving cost for IQM hosted video creatives |
audioCreativeCost number | Ad serving cost for IQM hosted audio creatives |
costConfigurationLevel string | Level at which cost is configured (e.g., WORKSPACE) |
msaConfigurationDetail object | MSA configuration details |
{
"success": true,
"data": {
"owId": 201765,
"adServingCostDetail": {
"imageCreativeCost": 5,
"videoCreativeCost": 5,
"audioCreativeCost": 5,
"costConfigurationLevel": "WORKSPACE",
"msaConfigurationDetail": {
"msaConfiguredWith": "MWS1",
"logoURL": "https://iqm-host.com/avatar/MS.png"
}
}
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details."
}
]
}
Add or Update Third Party Cost
POSTAdd or update third-party cost details. This API is accessible only by Workspace Organization users.
If the Workspace user is setting or updating the cost for their own workspace, the owId can be passed as null (it will be derived from the logged-in user context). For advertiser-level cost configuration, owId must be provided explicitly.
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID of the workspace or advertiser (optional for workspace self, required for advertiser) |
cost number | Third-party cost value (range: greater than 0, up to 999) |
{
"owId": 123456,
"cost": 150.0
}
{
"owId": null,
"cost": 150.0
}
{
"success": true,
"data": {
"message": "3rd party cost added successfully."
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details."
}
]
}
Get Third Party Cost
GETGet the third-party cost details for a specific Customer. This API is accessible only by Workspace and Super Organization types.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
owId integer | Customer Organization Workspace ID | |||||
thirdPartyCostDetails object | Third-party cost details (null if not configured) | |||||
| ||||||
cost number | Third-party cost value |
active boolean | Indicates if the third-party cost is currently active |
{
"success": true,
"data": {
"owId": 123456,
"thirdPartyCostDetails": {
"cost": 4.2,
"active": true
}
}
}
{
"success": true,
"data": {
"owId": 123456,
"thirdPartyCostDetails": null
}
}
Disable Third Party Cost
PATCHDisable an existing third-party cost configuration. This API is accessible only by Workspace Organization users.
The third-party cost will be marked as inactive and the cost value set to null.
| Path Parameters | |
|---|---|
customerOwId integer | Organization Workspace ID of the workspace or advertiser for which the third-party cost is being disabled |
{
"success": true,
"data": {
"message": "3rd party cost disabled successfully."
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "User is not allowed to access provided customer details."
}
]
}
Invoice Management
Get Invoice for Organization
GETGet an invoice for an Organization.
Response Properties
invoiceId integer | Invoice ID |
owId integer | Organization Workspace ID |
invoiceTitle string | Invoice title |
invoiceCompanyName string | Company name associated with invoice |
invoiceCompanyAddress string | Address associated with company |
email string | Company email |
website string | Company website |
invoiceDescription string | Invoice description |
paypalId integer | PayPal ID |
chequeTransferId integer | Cheque transfer ID |
wireTransferId integer | Wire transfer ID |
termsAndConditions string | Terms and conditions of invoice |
paymentTerm string | Payment term of invoice |
invoiceFooter string | Invoice footer details |
createdAt string | Creation date of invoice |
- JSON
- TypeScript
{
"success": true,
"data": {
"invoiceId": 1,
"owId": 334,
"invoiceTitle": "The Alchemist",
"invoiceCompanyName": "The Alchemist",
"invoiceCompanyAddress": "42, 6th Avenue, New York, NY",
"email": "shraddha.p+alchemist@iqm.com",
"website": "www.alchemist.com",
"invoiceDescription": "Dear Customer, Greetings from The Alchemist, we are writing to provide you an electronic invoice for your use of services.",
"paypalId": 1,
"chequeTransferId": 1,
"wireTransferId": 2,
"termsAndConditions": "Please make the payment in 30 days or your account might be put on hold",
"paymentTerm": "30",
"invoiceFooter": "The Alchemist | 12.234.56.789 | USA",
"createdAt": "2021-08-27T07:33:14.000+00:00"
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
invoiceId: number;
owId: number;
invoiceTitle: string;
invoiceCompanyName: string;
invoiceCompanyAddress: string;
email: string;
website: string;
invoiceDescription: string;
paypalId: number;
chequeTransferId: number;
wireTransferId: number;
termsAndConditions: string;
paymentTerm: string;
invoiceFooter: string;
createdAt: string;
};
};
};
};
}
function GetInvoiceForOrganization(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/invoice-settings',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Invoice Payment Details
GETGet invoice payment details by invoice ID.
| Query Parameters | |
|---|---|
invoiceId integer | Invoice ID |
Response Properties
paypalPaymentDetail object | PayPal payment details | |||||||||||||||
| ||||||||||||||||
payPalId integer | PayPal ID |
paypalAccountId string | PayPal account ID |
chequePaymentDetail object
chequePaymentDetail object properties
chequeId integer | Cheque ID |
chequeCompanyName string | Company name |
chequeCompanyAddress string | Company address |
wireTransferPaymentDetail object
wireTransferPaymentDetail object properties
wireTransferId integer | Wire transfer ID |
wireTransferCompanyName string | Company name |
bankName string | Bank name |
accountNumber string | Account number |
bankAddress string | Bank address |
swiftCode string | Swift code |
routing string | Routing number |
- JSON
- TypeScript
{
"success": true,
"data": {
"paypalPaymentDetail": {
"paypalId": 1,
"paypalAccountId": "thealchemistfinance@paypal"
},
"chequePaymentDetail": {
"chequeId": 1,
"chequeCompanyName": "The Alchemist Company",
"chequeCompanyAddress": "45, Fifth Avenue, NY, USA"
},
"wireTransferPaymentDetail": {
"wireTransferId": 2,
"wireTransferCompanyName": "The Alchemist",
"bankName": "JP Morgan Chase Bank",
"accountNumber": "670669295",
"bankAddress": "498 7th Avenue New York NY",
"swiftCode": "MGTCUS3G",
"routing": "150098"
}
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
paypalPaymentDetail: {
paypalId: number;
paypalAccountId: string;
};
chequePaymentDetail: {
chequeId: number;
chequeCompanyName: string;
chequeCompanyAddress: string;
};
wireTransferPaymentDetail: {
wireTransferId: number;
wireTransferCompanyName: string;
bankName: string;
accountNumber: string;
bankAddress: string;
swiftCode: string;
routing: string;
};
};
};
};
};
}
function GetInvoicePaymentDetails(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/invoice-settings-payment-details',
params: {
query: {
invoiceId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get List of Invoices for Customer or Organization
GETGet a list of invoices by Customer or Organization.
| Path Parameters | |
|---|---|
owId integer | Organization Workspace ID |
| Query Parameters | |
|---|---|
status string | Invoice Status ID |
sortBy string | Sorts by ascending (+) or descending (-), default: -invoiceId Supported values: issuedOn, invoiceAmount, status |
isCustomerRequest boolean | (Organization endpoint only) Customer app request (default): true Organization app request: false |
Response Properties
invoiceId integer | Invoice ID |
invoiceFromDate integer | Unix epoch timestamp of invoice start date, in milliseconds |
invoiceToDate integer | Unix epoch timestamp of invoice end date, in milliseconds |
issuedOn integer | Unix epoch timestamp of invoice issue date, in milliseconds |
invoiceAmount integer | Invoice amount |
status integer | Invoice status |
paymentTerm integer | Payment term |
paidAmount integer | Paid amount |
paymentMode array of integers | Payment mode |
invoiceName string | Invoice name |
actionNote string | Action note |
invoiceStatusUpdatedBy string | Name of who updated invoice status |
modifiedAt integer | Unix epoch timestamp of modification date, in milliseconds |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"invoiceId": 79,
"invoiceFromDate": 1601510400,
"invoiceToDate": 1604102400,
"issuedOn": 1632182400,
"invoiceAmount": 553611.718,
"status": 7,
"paymentTerm": 30,
"paidAmount": 5000,
"paymentMode": [
2,
4
],
"invoiceName": "Zydus - Oct2020",
"actionNote": null,
"invoiceStatusUpdatedBy": "Kartik Gevariya",
"modifiedAt": 1632801378000
}
],
"totalRecords": 0,
"filteredRecords": 0
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
data: {
invoiceId: number;
invoiceFromDate: number;
invoiceToDate: number;
issuedOn: number;
invoiceAmount: number;
status: number;
paymentTerm: number;
paidAmount: number;
paymentMode: (number[] | null) | (string | null) | unknown;
invoiceName: string | null;
actionNote: string | null;
invoiceStatusUpdatedBy: string | null;
modifiedAt: number;
}[];
totalRecords: number;
filteredRecords: number;
};
};
};
};
}
function ListInvoiceForCustomer(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/invoice/list/{owId}',
params: {
query: {
status: `string`,
sortBy: `string`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Invoice Settings
PATCHUpdate invoice settings details for an Organization.
| Query Parameter | |
|---|---|
isWhiteLabel boolean | Set by Organization, must be set to true for invoice to be updated |
| Request Schema | |
|---|---|
invoiceTitle string | Invoice title |
invoiceCompanyAddress string | Invoice company address |
email string | |
website string | Website |
invoiceDescription string | Invoice description |
termsAndConditions string | Terms and conditions of invoice |
paymentTerm string | Payment Term ID |
invoiceFooter string | Invoice footer details |
paypalAccountId string | PayPal account ID |
chequeCompanyName string | Company name on check (when Payment Mode Type is check) |
chequeCompanyAddress string | Company address on check (when Payment Mode Type is check) |
wireTransferCompanyName string | Company name for wire transfer (when Payment Mode Type is wire transfer) |
bankName string | Bank name |
accountNumber string | Account number |
bankAddress string | Bank address |
companyTaxId string | Company tax ID |
companyTaxName string | Company tax name |
Response Properties
invoiceId integer | Invoice ID |
message string | Success message |
- JSON
- TypeScript
{
"invoiceTitle": "The Alchemist",
"invoiceCompanyAddress": "42, 6th Avenue, New York, NY",
"email": "shraddha.p+alchemist@iqm.com",
"website": "www.alchemist.com",
"invoiceDescription": "Dear Customer, Greetings from The Alchemist, we are writing to provide you an electronic invoice for your use of services.",
"termsAndConditions": "Please make the payment in 30 days or your account might be put on hold",
"paymentTerm": "30",
"invoiceFooter": "The Alchemist | 12.234.56.789 | USA",
"paypalAccountId": "thealchemistfinance@paypal",
"chequeCompanyName": "The Alchemist Company",
"chequeCompanyAddress": "45, Fifth Avenue, NY, USA",
"wireTransferCompanyName": "The Alchemist",
"bankName": "JP Morgan Chase Bank",
"accountNumber": "670669295",
"bankAddress": "498 7th Avenue New York NY",
"companyTaxId": "202130INGST",
"companyTaxName": "GSTIN"
}
{
"success": true,
"data": {
"invoiceId": 1,
"message": "Invoice details updated successfully"
}
}
More Responses
{
"success": false,
"errorObjects": [
{
"error": "Invoice does not belong to the logged in organization workspace"
}
]
}
{
"success": false,
"errorObjects": [
{
"error": "Invoice with the provided ID does not exists"
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
invoiceId: number;
message: string;
};
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function Save/UpdateInvoiceSettings(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/invoice-settings/{invoiceId}',
params: {
query: {
isWhiteLabel: `boolean`,
},
path: {
invoiceId: `number`,
}
},
requestBody: {
content: {
"application/json": {
invoiceTitle: `string`,
invoiceCompanyAddress: `string`,
email: `string`,
website: `string`,
invoiceDescription: `string`,
termsAndConditions: `string`,
paymentTerm: `string`,
invoiceFooter: `string`,
paypalAccountId: `string`,
chequeCompanyName: `string`,
chequeCompanyAddress: `string`,
wireTransferCompanyName: `string`,
bankName: `string`,
accountNumber: `string`,
bankAddress: `string`,
companyTaxId: `string`,
companyTaxName: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Delete Invoice Tax Data
DELETEDelete tax data for an invoice.
| Query Parameters | |
|---|---|
taxId integer | Tax ID |
Response Properties
success boolean | Indicates successful deletion: true |
data string | Success message |
- JSON
- TypeScript
{
"success": true,
"data": "Tax data deleted successfully"
}
{
"success": false,
"errorObjects": [
{
"error": "Tax ID is invalid"
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function DeleteInvoiceTaxdata(): Promise<Responses> {
const options = {
method: 'DELETE',
url: 'https://api.iqm.com/api/v3/fa/invoice-settings-tax-data',
params: {
query: {
taxId: `number`,
}
},
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Approve Invoice
PATCHApprove an invoice by invoice ID with optional action note.
| Path Parameter | |
|---|---|
invoiceId integer | Invoice ID |
| Request Schema | |
|---|---|
actionNote string | Action note |
Response Properties
success boolean | Indicates successful approval |
data string | Success message |
- JSON
- TypeScript
{
"actionNote": "Approved for payment"
}
{
"success": true,
"data": "Invoice with the provided ID approved successfully"
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function ApproveInvoice(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/invoice-approve/{invoiceId}',
params: {
path: {
invoiceId: `number`,
}
},
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Cancel Invoice
PATCHCancel an invoice by invoice ID with optional action note.
| Path Parameter | |
|---|---|
invoiceId integer | Invoice ID |
| Request Schema | |
|---|---|
actionNote string | Action note |
Response Properties
success boolean | Indicates successful cancellation: true |
data string | Success message |
- JSON
- TypeScript
{
"actionNote": "Customer requested cancellation due to duplicate invoice"
}
```json title="Response 200"
{
"success": true,
"data": "Invoice with the provided ID rejected successfully"
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function CancelInvoice(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/invoice-cancel/{invoiceId}',
params: {
path: {
invoiceId: `number`,
}
},
requestBody: {
content: {
"application/json": {
actionNote: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Mark Invoice as Paid
POSTPay an invoice by invoice ID. API also accepts query parameters as multipart/form-data along with paymentProof file upload.
| Query Parameters | |
|---|---|
invoiceId integer required | Invoice ID |
owId integer required | Organization Workspace ID |
paymentAmount integer required | Payment amount |
paymentType integer required | Payment Type ID |
paymentDate integer | Payment date as Unix epoch timestamp, in milliseconds (default: current date/time) |
paymentMode integer | Payment Mode ID |
transactionId string | Transaction ID/reference number |
bankName string | Bank name |
isCustomerRequest boolean | Indicates whether this invoice download is made as a Customer request (default: true) or as the customer’s own (false) |
| Request Schema | |
|---|---|
paymentProof multipart/form-data optional | Payment proof file upload |
Response Properties
success boolean | Indicates successful invoice update: true |
data string | Success message |
curl -X POST "https://api.iqm.com/api/v3/fa/pay-invoice" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "invoiceId=12345" \
-F "owId=200001" \
-F "paymentAmount=1250.50" \
-F "paymentDate=2025-10-07T12:00:00Z" \
-F "paymentMode=2" \
-F "transactionId=TXN-987654321" \
-F "paymentType=1" \
-F "bankName=First National Bank" \
-F "isCustomerRequest=true" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
{
"success": true,
"data": "Payment added Successfully."
}
Email Invoice
POSTEmail an invoice to a specified email address.
| Path Parameter | |
|---|---|
owId integer | Organization Workspace ID |
invoiceId integer | Invoice ID |
| Request Schema | |
|---|---|
email string | Email to send invoice to |
Response Properties
success boolean | Indicates email successfully sent: true |
data string | Success message |
- JSON
- TypeScript
{
"email": "user@company.com"
}
{
"success": true,
"data": "Invoice e-mail sent successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function EmailInvoice(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/email-invoice/{owId}/{invoiceId}',
params: {
path: {
owId: `number`;
invoiceId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Download Invoice
GETDownload a PDF invoice.
| Path Parameter | |
|---|---|
owId integer | Organization Workspace ID |
invoiceId integer | Invoice ID |
| Query Parameters | |
|---|---|
isCustomerRequest boolean | Customer app request (default): true Organization app request: false |
- cURL
- TypeScript
curl -X GET "https://api.iqm.com/api/v3/fa/download-invoice/{owId}/{invoiceId}?isCustomerRequest=true" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001"
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
"Content-Disposition"?: {
"text/plain": string;
};
[name: string]: unknown;
};
};
}
function DownloadInvoice(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/download-invoice/{owId}/{invoiceId}',
params: {
query: {
isCustomerRequest: `boolean`,
},
path: {
owId: `number`,
invoiceId: `number`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Invoice Template Margin Pre-Requisite
GETGet pre-requisite details for invoice template margin settings, including whether a parent invoice template is set, and a list of Customers whose margins have not been configured.
Response Properties
isParentInvoiceTemplateSet boolean | Whether the parent invoice template is set | |||||
invoiceTemplateRequired boolean | Whether an invoice template is required | |||||
organizationAppAccessible boolean | Whether the Organization app is accessible | |||||
customerAppAccessible boolean | Whether the Customer app is accessible | |||||
customerMarginList array | List of Customers without margin settings configured | |||||
| ||||||
owId integer | Organization Workspace ID |
customerName string | Customer name |
- JSON
- TypeScript
{
"success": true,
"data": {
"isParentInvoiceTemplateSet": true,
"invoiceTemplateRequired": true,
"organizationAppAccessible": true,
"customerAppAccessible": true,
"customerMarginList": [
{
"owId": 100002,
"customerName": "Darshan Khatri"
},
{
"owId": 100001,
"customerName": "Bhaumik Shukla"
}
]
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
isParentInvoiceTemplateSet: boolean;
invoiceTemplateRequired: boolean;
organizationAppAccessible: boolean;
customerAppAccessible: boolean;
customerMarginList: {
owId: number;
customerName: string;
}[];
};
};
};
};
}
function GetInvoiceTemplateMarginPreRequisite(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/invoice-template-margin-details/pre-requisite',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Credit Management
Credit Summary
GETGet credit a summary by workspace ID.
| Path Parameter | |
|---|---|
owId integer | Organization Workspace ID |
| Query Parameters | |
|---|---|
isCustomerRequest boolean | Customer app request (default): true Organization app request: false |
Response Properties
usedCredit integer | Used credit amount |
totalCredit integer | Total credit amount |
- JSON
- TypeScript
{
"success": true,
"data": {
"usedCredit": 21875.37,
"totalCredit": 50000
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
usedCredit: number;
totalCredit: number;
};
};
};
};
}
function CreditSummary(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/credit-summary/{owId}',
params: {
path: {
owId: `string`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Offered Credits
GETGet a list of offered credits to Organization.
| Query Parameters | |
|---|---|
limit integer | Number of entries returned per page, default: 50 |
pageNo integer | Page number of retrieved data, default: 1 |
sortBy string | Sorts by ascending (+) or descending (-), default: -modifiedAt |
Response Properties
creditId integer | Credit ID |
creditAmount integer | Credit amount |
modifiedAt string | Last modified date |
status string | Status |
organizationName string | Organization name |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"creditId": 2,
"creditAmount": 1000,
"modifiedAt": "2021-09-08T10:24:32.000+00:00",
"status": "Unclaimed",
"organizationName": "JP test org"
},
{
"creditId": 1,
"creditAmount": 1500,
"modifiedAt": "2021-09-08T05:46:15.000+00:00",
"status": "Revoked",
"organizationName": "JP test org"
}
],
"totalRecords": 2,
"filteredRecords": 2
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
data: {
creditId: number;
creditAmount: number;
modifiedAt: string;
status: string;
organizationName: string;
}[];
totalRecords: number;
filteredRecords: number;
};
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function ListCreditsofferedtomyorganization(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/credits/list',
params: {
query: {
pageNo: `number`,
limit: `number`,
sortBy: `string`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Customer Credit List
GETGet a list of credits offered to a Customer.
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
Response Properties
creditId integer | Credit ID |
owId integer | Organization Workspace ID |
creditAmount integer | Credit amount |
modifiedAt string | Last modified date |
uowId integer | User Organization Workspace ID |
displayName string | Display name |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"creditId": 3,
"owId": 54,
"creditAmount": 1000,
"status": "Revoked",
"modifiedAt": "2021-09-03T04:23:41.000+00:00",
"uowId": 1,
"displayName": "IHP"
},
{
"creditId": 2,
"owId": 54,
"creditAmount": 2000,
"status": "Unclaimed",
"modifiedAt": "2021-08-31T12:43:38.000+00:00",
"uowId": 1,
"displayName": "IHP"
},
{
"creditId": 1,
"owId": 54,
"creditAmount": 6000,
"status": "Unclaimed",
"modifiedAt": "2021-08-31T12:12:43.000+00:00",
"uowId": 1,
"displayName": "IHP"
}
]
}
See TypeScript Prerequisites for usage.
Add Credit to Customer
POSTAdd credit to a Customer's account.
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
creditAmount integer | Credit amount to add |
Response Properties
success boolean | Indicates credit successfully added: true |
data string | Success message |
- JSON
- TypeScript
{
"owId": 23,
"creditAmount": 5000
}
{
"success": true,
"data": "Credits offered Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function AddCredittoCustomer(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/credit/add',
requestBody: {
content: {
"application/json": {
owId: `number`,
creditAmount: `number`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Credit Offered to Customer
PATCHUpdate the credit offered to a Customer's account.
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
creditAmount integer | Credit amount to add |
creditId integer | Credit ID |
Response Properties
success boolean | Indicates credit successfully offered: true |
data string | Success message |
- JSON
- TypeScript
{
"owId": 54,
"creditAmount": 4000,
"creditId": 3
}
{
"success": true,
"data": "Credits updated Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function EditofferedCredittoCustomer(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/credit/edit',
requestBody: {
content: {
"application/json": {
owId: `number`,
creditAmount: `number`,
creditId: `number`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Revoke Credit Offered to Customer
POSTRevoke the credit offered to a Customer's account.
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
creditId integer | Credit ID |
Response Properties
success boolean | Indicates credit successfully revoked: true |
data string | Success message |
- JSON
- TypeScript
{
"owId": 54,
"creditId": 2
}
{
"success": true,
"data": "Credits revoked Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function RevokeCreditofferedtoCustomer(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/credit/revoke',
requestBody: {
content: {
"application/json": {
owId: `number`,
creditId: `number`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Claim Offered Credits
POSTClaim the credits offered to a Customer's account.
| Request Schema | |
|---|---|
creditId integer | Credit ID |
customerName string | Customer Name |
businessName string | Business Name |
taxId string | Tax ID |
contactPersonName string | Contact person name |
contactPersonEmail string | Contact person email |
incorporationPlace string | Incorporation location |
address string | Address |
Response Properties
success boolean | Indicates credits successfully claimed: true |
data string | Success message |
- JSON
- TypeScript
{
"creditId": 4,
"customerName": "JP test ",
"businessName": "JP test org3",
"taxId": "123456",
"contactPersonName": "JP",
"contactPersonEmail": "jinesh.p+nonihpcust2@iqm.com",
"incorporationPlace": "Gujarat, India",
"address": "A-123, XYZ Complex, Ahmedabad, Gujarat, India - 380059"
}
{
"success": true,
"data": "Credits claimed."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function Claimofferedcredits(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/credit/claim',
requestBody: {
content: {
"application/json": {
creditId: `number`,
customerName: `string`,
businessName: `string`,
taxId: `string`,
contactPersonName: `string`,
contactPersonEmail: `string`,
incorporationPlace: `string`,
address: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Payment Management
Get List of Payment Transactions for Organization
GETGet a list of payment transactions for an Organization.
| Query Parameters | |
|---|---|
status string | Payment Status ID |
paymentType string | Payment Type ID |
searchField string | Filter results by search field |
limit integer | Number of entries returned per page, default: 10 |
pageNo integer | Page number of retrieved data, default: 1 |
Response Properties
isPaymentInitiatorOrg boolean | Indicates whether payment was created by logged-in Organization (true) or not (false) |
paymentId integer | Payment ID |
createdByUserEmail string | Email of user who created payment |
paymentDate integer | Unix epoch timestamp of payment date, in milliseconds |
paymentAmount integer | Payment amount |
paymentStatus string | Payment Status |
paymentMode string | Payment Mode |
paymentType string | Payment Type |
invoiceId integer | Invoice ID |
modifiedAt integer | Unix epoch timestamp of modification date, in milliseconds |
bankName string | Bank associated with payment, if applicable, otherwise: null |
refundReason string | Reason for refund, if applicable, otherwise: null |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"isPaymentInitiatorOrg": true,
"paymentId": 19,
"createdByUserEmail": "jinesh.p+nonihpcust2@iqm.com",
"paymentDate": 1632076200000,
"paymentAmount": 10000,
"paymentStatus": "Rejected",
"paymentMode": "PayPal",
"paymentType": "As Fund",
"invoiceId": 0,
"modifiedAt": 1637566978000,
"bankName": null,
"refundReason": null
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 886,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "Check",
"paymentType": "Refund",
"invoiceId": 0,
"modifiedAt": 1635831910000,
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 885,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"modifiedAt": 1635831695000,
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 884,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"modifiedAt": 1635831127000,
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 883,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"modifiedAt": 1635830983000,
"bankName": null,
"refundReason": "Testing"
}
],
"totalRecords": 68,
"filteredRecords": 68
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
data: {
isPaymentInitiatorOrg: boolean;
paymentId: number;
createdByUserEmail: string;
paymentDate: number;
paymentAmount: number;
paymentStatus: string;
paymentMode: string;
paymentType: string;
invoiceId: number;
modifiedAt: number;
bankName: string | null;
refundReason: string | null;
}[];
totalRecords: number;
filteredRecords: number;
};
};
};
};
}
function ListofPaymenttransactionformyOrganisation(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/payments/list',
params: {
query: {
status: `string`,
paymentType: `string`,
searchField: `string`,
pageNo: `number`,
limit: `number`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get List of Customer Payments
GETGet a list of payments by a Customer.
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
status string | Status type |
paymentType string | Payment Type |
searchField string | Filter results by search field |
limit integer | Number of entries returned per page, default: 10 |
pageNo integer | Page number of retrieved data, default: 1 |
sortBy string | Sorts by ascending (+) or descending (-), default: -modifiedAt Supported values: paymentId, paymentDate, paymentAmount, organizationName, paymentType, paymentMode, paymentStatus |
Response Properties
isPaymentInitiatorOrg boolean | Indicates whether payment was created by logged-in Organization (true) or not (false) |
paymentId integer | Payment ID |
createdAt integer | Unix epoch timestamp of invoice payment creation |
createdByUserEmail string | Created by user email |
createdByUserProfile string | Created by user profile |
paymentDate integer | Payment date |
paymentAmount integer | Payment amount |
paymentStatus string | Payment status |
paymentMode string | Payment mode |
paymentType string | Payment type |
invoiceId integer | Invoice ID |
transactionId integer | Transaction ID |
modifiedAt integer | Unix epoch timestamp of modification date, in milliseconds |
modifiedByUserEmail string | User email who last modified |
modifiedByUserProfile string | User profile of who last modified |
bankName string | Bank name |
refundReason string | Refund reason |
- JSON
- TypeScript
{
"success": true,
"data": {
"data": [
{
"isPaymentInitiatorOrg": false,
"paymentId": 19,
"createdAt": 1632295016000,
"createdByUserEmail": "jinesh.p+nonihpcust2@iqm.com",
"createdByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"paymentDate": 1632076200000,
"paymentAmount": 10000,
"paymentStatus": "Rejected",
"paymentMode": "PayPal",
"paymentType": "As Fund",
"invoiceId": 0,
"transactionId": "T-1234567",
"modifiedAt": 1637566978000,
"modifiedByUserEmail": "jinesh.p+ihpcust@iqm.com",
"modifiedByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"bankName": null,
"refundReason": null
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 886,
"createdAt": 1635831910000,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"createdByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "Check",
"paymentType": "Refund",
"invoiceId": 0,
"transactionId": "123456",
"modifiedAt": 1635831910000,
"modifiedByUserEmail": "jinesh.p+ihpcust@iqm.com",
"modifiedByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 885,
"createdAt": 1635831695000,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"createdByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"transactionId": "123456",
"modifiedAt": 1635831695000,
"modifiedByUserEmail": "jinesh.p+ihpcust@iqm.com",
"modifiedByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 884,
"createdAt": 1635831127000,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"createdByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"transactionId": "123456",
"modifiedAt": 1635831127000,
"modifiedByUserEmail": "jinesh.p+ihpcust@iqm.com",
"modifiedByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"bankName": null,
"refundReason": "Testing"
},
{
"isPaymentInitiatorOrg": false,
"paymentId": 883,
"createdAt": 1635830983000,
"createdByUserEmail": "jinesh.p+ihpcust@iqm.com",
"createdByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"paymentDate": 1635791400000,
"paymentAmount": 10,
"paymentStatus": "Processing",
"paymentMode": "To Funds",
"paymentType": "Refund",
"invoiceId": 0,
"transactionId": null,
"modifiedAt": 1635830983000,
"modifiedByUserEmail": "jinesh.p+ihpcust@iqm.com",
"modifiedByUserProfile": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/JO.svg",
"bankName": null,
"refundReason": "Testing"
}
],
"totalRecords": 68,
"filteredRecords": 68
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
data: {
isPaymentInitiatorOrg: boolean;
paymentId: number;
createdAt: number;
createdByUserEmail: string;
createdByUserProfile: string;
paymentDate: number;
paymentAmount: number;
paymentStatus: string;
paymentMode: string;
paymentType: string;
invoiceId: number;
transactionId: string | null;
modifiedAt: number;
modifiedByUserEmail: string;
modifiedByUserProfile: string;
bankName: string | null;
refundReason: string | null;
}[];
totalRecords: number;
filteredRecords: number;
};
};
};
};
}
function ListPaymentforCustomer(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/payments/list',
params: {
query: {
owId: `number`,
status: `number`,
paymentType: `string`,
searchField: `string`,
pageNo: `number`,
limit: `number`,
sortBy: `string`,
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Add Payment for Customer
POSTAdd a payment for a Customer. API also accepts query parameters as multipart/form-data along with image file upload for proof of payment.
| Query Parameters | |
|---|---|
owId integer required | Organization Workspace ID |
paymentAmount integer required | Payment amount |
paymentDate string required | Payment date in YYYY-MM-DD format |
paymentMode integer required | Payment Mode Type ID |
transactionId integer required | Transaction ID |
paymentType integer required | Payment Type ID |
invoiceId integer required | Invoice ID (provide only if paymentType is Against Invoice) |
| Request Schema | |
|---|---|
paymentProof multipart/form-data optional | Proof of payment image (jpeg/png) |
Response Properties
success boolean | Indicates payments successfully added: true |
data string | Success message |
- JSON
- TypeScript
curl -X POST "https://api.example.com/api/v3/fa/customer/payment/add" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "invoiceId=12345" \
-F "owId=200001" \
-F "paymentAmount=1250.50" \
-F "paymentDate=2025-10-07T12:00:00Z" \
-F "paymentMode=2" \
-F "transactionId=TXN-987654321" \
-F "paymentType=1" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
{
"success": true,
"data": "Payment added Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function AddPaymentforcustomer(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/add',
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
paymentAmount: `number`,
paymentDate: `string`,
paymentMode: `number`,
transactionId: `string`,
paymentProof: `string`,
paymentType: `number`,
invoiceId: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Edit Customer Payment
PUTUpdate a payment for a Customer. API also accepts query parameters as multipart/form-data along with image file upload for proof of payment.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Query Parameters | |
|---|---|
owId integer required | Organization Workspace ID |
paymentAmount integer required | Payment amount |
paymentDate string required | Payment date in YYYY-MM-DD format |
paymentMode integer required | Payment Mode Type ID |
transactionId integer required | Transaction ID |
paymentType integer required | Payment Type ID |
invoiceId integer | Invoice ID (provide only if paymentType is Against Invoice) |
refundReason string | Reason for refund (provide only if paymentType is Refund) |
| Request Schema | |
|---|---|
paymentProof multipart/form-data optional | Proof of payment image (jpeg/png) |
Response Properties
success boolean | Indicates payments successfully updated: true |
data string | Success message |
- JSON
- TypeScript
curl -X POST "https://api.example.com/api/v3/fa/customer/payment/{paymentId}" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "invoiceId=12345" \
-F "owId=200001" \
-F "paymentAmount=1250.50" \
-F "paymentDate=2025-10-07T12:00:00Z" \
-F "paymentMode=2" \
-F "transactionId=TXN-987654321" \
-F "paymentType=1" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
{
"success": true,
"data": "Payment updated Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function EditPaymentofcustomer(): Promise<Responses> {
const options = {
method: 'PUT',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/{paymentId}',
params: {
path: {
paymentId: `number`
}
},
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
paymentAmount: `number`,
paymentDate: `string`,
paymentMode: `number`,
transactionId: `string`,
paymentProof: `string`,
paymentType: `number`,
invoiceId: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Approve Payment
POSTApprove a payment for a customer.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
actionNote string | Description of payment status change |
Response Properties
success boolean | Indicates payments successfully approved: true |
data string | Success message |
- JSON
- TypeScript
{
"owId": 200485,
"actionNote": "Payment paid partially"
}
{
"success": true,
"data": "Payment approved Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function ApprovePayment(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/approve/{paymentId}',
params: {
path: {
paymentId: `number`
}
},
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
actionNote: `string`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Cancel Payment
POSTCancel a payment for a Customer.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
actionNote string | Action note |
Response Properties
success boolean | Indicates payments successfully cancelled: true |
data string | Success message |
- JSON
- TypeScript
{
"success": true,
"data": "Payment cancelled Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function CancelPayment(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/cancel/{paymentId}',
params: {
path: {
paymentId: `number`
}
},
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
actionNote: `string`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Reject Payment
POSTReject a payment for a Customer.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Request Schema | |
|---|---|
owId integer | Organization Workspace ID |
actionNote string | Action note |
Response Properties
success boolean | Indicates payments successfully rejected: true |
data string | Success message |
- JSON
- TypeScript
{
"success": true,
"data": "Payment rejected Successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
errorObjects: {
error: string;
}[];
};
};
};
}
function RejectPayment(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/reject/{paymentId}',
params: {
path: {
paymentId: `number`
}
},
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
actionNote: `string`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Add Payment from Organization App
POSTAdd a payment from logged-in organization. API also accepts query parameters as multipart/form-data along with image file upload for proof of payment.
| Query Parameters | |
|---|---|
paymentAmount integer required | Payment amount |
paymentDate string required | Payment date in YYYY-MM-DD format |
paymentMode integer required | Payment Mode Type ID |
bankName string | Required only if paymentMode is Check or Wire Transfer |
| Request Schema | |
|---|---|
paymentProof multipart/form-data optional | Proof of payment image (jpeg/png) |
Response Properties
success boolean | Indicates payments successful: true |
data string | Success message |
- JSON
- TypeScript
curl -X POST "https://api.example.com/api/v3/fa/payment/add-fund" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "paymentAmount=1250.50" \
-F "paymentDate=2025-10-07T12:00:00Z" \
-F "paymentMode=2" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
{
"success": true,
"data": "Payment Successful."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function AddPaymentfromOrganizationApp(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/payment/add-fund',
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
paymentAmount: `number`,
paymentDate: `string`,
paymentMode: `number`,
paymentProof: `string`,
bankName: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Payment with PayPal
POSTMake a payment using PayPal gateway.
| Request Schema | |
|---|---|
paymentAmount integer | Payment amount |
Response Properties
success boolean | Indicates payments successful: true |
data string | PayPal link |
- JSON
- TypeScript
{
"success": true,
"data": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-3YM2956846765604B"
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function PaymentwithPayPal(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/paypal/payment',
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
paymentAmount: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Initiate Refund
POSTAdd a payment for refund to a customer. API also accepts query parameters as multipart/form-data along with image file upload for proof of payment.
| Query Parameters | |
|---|---|
owId integer required | Organization Workspace ID |
paymentAmount integer required | Payment amount |
paymentDate string required | Payment date in YYYY-MM-DD format |
paymentMode integer required | Payment Mode Type ID |
transactionId integer | Transaction ID |
refundReason string required | Reason for refund |
| Request Schema | |
|---|---|
paymentProof multipart/form-data optional | Proof of payment image (jpeg/png) |
Response Properties
success boolean | Indicates refund successful: true |
data string | Success message |
- JSON
- TypeScript
curl -X POST "https://api.example.com/api/v3/fa/customer/payment/refund" \
-H "Authorization Bearer <token>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "owId=200001" \
-F "paymentAmount=1250.50" \
-F "paymentDate=2025-10-07T12:00:00Z" \
-F "paymentMode=2" \
-F "transactionId=TXN-987654321" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function InitiateRefund(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/refund',
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
paymentAmount: `number`,
paymentDate: `string`,
paymentMode: `number`,
transactionId: `string`,
paymentProof: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Approve Refund
POSTApprove a refund for a customer. API also accepts query parameters as multipart/form-data along with image file upload for proof of payment.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Query Parameters | |
|---|---|
owId integer | Organization Workspace ID |
actionNote string | Description of status change |
| Request Schema | |
|---|---|
paymentProof multipart/form-data | Proof of payment image (jpeg/png) |
Response Properties
success boolean | Indicates refund successfully approved: true |
data string | Success message |
- JSON
- TypeScript
curl -X POST "https://api.example.com/api/v3/fa/customer/payment/approve-refund/{paymentId}" \
-H "Authorization Bearer <token>" \
-H "X-IAA-OW-ID: 200001" \
-H "Content-Type: multipart/form-data" \
-F "owId=200001" \
-F "paymentProof=@/path/to/payment_receipt.pdf"
{
"success": true,
"data": "Refund successful."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function ApproveRefund(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/payment/approve-refund/{paymentId}',
params: {
path: {
paymentId: `number`
}
},
requestBody?: {
content: {
"application/x-www-form-urlencoded": {
owId: `number`,
paymentProof: `string`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Email Payment Receipt
POSTSend payment receipt to specified email address.
| Path Parameter | |
|---|---|
owId integer | Organization Workspace ID |
paymentId integer | Payment ID |
| Request Schema | |
|---|---|
email string | Email to send receipt to |
Response Properties
success boolean | Indicates email successfully sent: true |
data string | Success message |
- JSON
- TypeScript
{
"email": "example@business.com"
}
{
"success": true,
"data": "Payment receipt e-mail sent successfully."
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: string;
};
};
};
}
function EmailPaymentReceipt(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/payment/email-receipt/{owId}/{paymentId}',
params: {
path: {
owId: `number`,
paymendId: `number`,
}
},
requestBody: {
content: {
"application/json": {
email: `string`
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Download Payment Receipt
GETDownload a PDF of payment receipt.
| Path Parameter | |
|---|---|
paymentId integer | Payment ID |
| Query Parameter | |
|---|---|
owId integer | Organization Workspace ID |
isCustomerRequest boolean | Customer app request (default): true Organization app request: false |
- cURL
- TypeScript
curl -X GET "https://api.iqm.com/api/v3/fa/payment/download-receipt/{paymentId}?owId=200001&isCustomerRequest=true" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "X-IAA-OW-ID: 200001"
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
};
}
function DownloadPaymentReceiptpdf(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/payment/download-receipt/{paymentId}',
params: {
path: {
paymentId: `number`
},
query: {
owId: `number`,
isCustomerRequest: `boolean`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Static Details Lists
Payment Types
GETGet a list of payment type IDs.
| Payment Type IDs | |
|---|---|
1 As Fund | Payment added into Organization balance |
2 Against Invoice | Payment used to pay invoice |
3 Refund | Payment reversed from platform, deducted from Organization's balance and refunded to Customer Organization |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"name": "as_fund",
"id": 1,
"label": "As Fund",
"order": 1
},
{
"name": "against_invoice",
"id": 2,
"label": "Against Invoice",
"order": 2
},
{
"name": "refund",
"id": 3,
"label": "Refund",
"order": 3
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function PaymentTypes(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/payment-type',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Payment Status
GETGet a list of payment type IDs.
| Properties | |
|---|---|
1 Processing | Payment in process |
2 Paid | Payment paid |
3 Rejected | Payment rejected |
4 Cancelled | Payment cancelled |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"name": "processing",
"id": 1,
"label": "Processing",
"order": 1
},
{
"name": "paid",
"id": 2,
"label": "Paid",
"order": 2
},
{
"name": "rejected",
"id": 3,
"label": "Rejected",
"order": 3
},
{
"name": "cancelled",
"id": 4,
"label": "Cancelled",
"order": 4
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function PaymentStatus(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/payment-status',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Invoice Payment Mode Types
GETGet a list of payment mode type IDs.
| Payment Mode Type IDs | |
|---|---|
1 PayPal | Payment by PayPal |
2 Check | Payment by check |
3 Wire Transfer | Payment by wire transfer |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"name": "paypal",
"id": 1,
"label": "PayPal",
"order": 1
},
{
"name": "cheque",
"id": 2,
"label": "Cheque",
"order": 2
},
{
"name": "wire_transfer",
"id": 3,
"label": "Wire Transfer",
"order": 3
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function InvoicePaymentModes(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/invoice-payment-modes',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Invoice Status
GETGet a list of invoice status type IDs.
| Invoice Status IDs | |
|---|---|
1 Pending | Invoice pending |
2 Partially Paid | Invoice partially paid |
3 Unpaid | Invoice not paid |
4 Paid | Invoice paid |
5 Overdue | Invoice payment overdue |
7 Processing | Invoice payment processing |
8 Cancelled | Invoice payment cancelled |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"name": "pending",
"id": 1,
"label": "Pending",
"order": 1
},
{
"name": "partially_paid",
"id": 2,
"label": "Partially Paid",
"order": 2
},
{
"name": "unpaid",
"id": 3,
"label": "Unpaid",
"order": 3
},
{
"name": "paid",
"id": 4,
"label": "Paid",
"order": 4
},
{
"name": "overdue",
"id": 5,
"label": "Overdue",
"order": 5
},
{
"name": "processing",
"id": 7,
"label": "Processing",
"order": 7
},
{
"name": "cancelled",
"id": 8,
"label": "Cancelled",
"order": 8
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function InvoiceStatus(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/invoice-status',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Invoice Payment Term
GETGet a list of invoice payment term IDs.
| Payment Term IDs | |
|---|---|
1 Net 7 | Payment expected within 7 days of invoice date |
2 Net 15 | Payment expected within 15 days of invoice date |
3 Net 30 | Payment expected within 30 days of invoice date |
4 Net 45 | Payment expected within 45 days of invoice date |
5 Net 60 | Payment expected within 60 days of invoice date |
6 Net 90 | Payment expected within 90 days of invoice date |
7 Net 120 | Payment expected within 120 days of invoice date |
8 Custom | Payment expected within set days of invoice date |
- JSON
- TypeScript
{
"success": true,
"data": [
{
"name": "7",
"id": 1,
"label": "Net 7",
"order": 1
},
{
"name": "15",
"id": 2,
"label": "Net 15",
"order": 2
},
{
"name": "30",
"id": 3,
"label": "Net 30",
"order": 3
},
{
"name": "45",
"id": 4,
"label": "Net 45",
"order": 4
},
{
"name": "60",
"id": 5,
"label": "Net 60",
"order": 5
},
{
"name": "90",
"id": 6,
"label": "Net 90",
"order": 6
},
{
"name": "120",
"id": 7,
"label": "Net 120",
"order": 7
},
{
"name": "0",
"id": 8,
"label": "Custom",
"order": 8
}
]
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function InvoicePaymentTerm(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/invoice-payment-terms',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
PG Payment Type
GETGet a list of PG payment type IDs.
| PG Payment Type IDs | |
|---|---|
1 | Publisher payment |
2 | Platform payment |
- JSON
- TypeScript
{
"success": true,
"data": {
"totalRecords": 2,
"filteredRecords": 2,
"pgPaymentTypes": [
{
"id": 1,
"name": "publisher",
"label": "Publisher",
"order": 1
},
{
"id": 2,
"name": "platform",
"label": "Platform",
"order": 2
}
]
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
success: boolean;
data: {
name: string;
id: number;
label: string;
order: number;
}[];
};
};
};
}
function getPgPaymentTypes(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/static/pg/payment-type',
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}