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.
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 |
- 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);
}
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 VLD Finance Details
GETGet finance details for a Customer's Voter Level Data (VLD).
Read more about VLD in our Insights API or our Help Center articles: Voter Level Data (VLD) Insights Reports.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
id integer | Customer ID |
owId integer | Organization Workspace ID |
vldRate integer | VLD rate for workspace Customer |
vldEnabled boolean | Boolean flag to enable and disable VLD feature for Advertiser Customer |
vldMarkupTypeId integer | VLD markup type ID: "Absolute" or "Percentage" |
vldMarkupType integer | VLD markup type: "Absolute" or "Percentage" |
vldMarkupValue integer | VLD markup value for Advertiser Customer |
- JSON
- TypeScript
{
"success": true,
"data": {
"id": 1,
"vldRate": 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;
vldRate: number;
}
}
};
};
}
function getVLDFees(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/{customerOwId}/vld-fees',
params: {
path: {
customerowId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer VLD Details
PATCHUpdate a Customer's VLD details.
| Request Schema | |
|---|---|
idinteger | ID |
owId integer required | OW ID of the Customer to update details |
vldRate integer | VLD rate for workspace Customer |
vldEnabled boolean | Boolean flag to enable and disable VLD feature for Advertiser Customer |
vldMarkupTypeId integer | VLD markup type: "Absolute" or "Percentage" |
vldMarkupType string | VLD markup type: "Absolute" or "Percentage" |
vldMarkupValue integer | VLD markup value for Advertiser Customer |
Response Properties
id integer | ID |
message string | Success message |
- JSON
- TypeScript
{
"id": 0,
"owId": 0,
"vldRate": 0,
"vldEnabled": true,
"vldMarkupType": "string",
"vldMarkupTypeId": 0,
"vldMarkupValue": 9999
}
{
"success": true,
"data": {
"id": 1,
"message": "VLD Rate updated successfully. The new rate applies only to newly created VLDs"
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
id: number;
owId: number;
vldRate: number;
vldEnabled: boolean;
vldMarkupType: string;
vldMarkupTypeId: number;
vldMarkupValue: number;
}
};
};
}
function editVLDFees(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/vld-fees',
requestBody: {
content: {
"application/json": {
id?: `number`,
owId: `number`,
vldRate?: `number`,
vldEnabled?: `boolean`,
vldMarkupType?: `string`,
vldMarkupTypeId?: `number`,
vldMarkupValue?: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Customer PLD Finance Details
GETGet finance details for a Customer's Provider Level Data (PLD).
Read more about PLD in our Insights API or our Help Center articles: Provider Level Data (PLD) Insights Reports.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
id integer | Customer ID |
owId integer | Organization Workspace ID |
pldRate integer | PLD rate for workspace Customer |
pldEnabled boolean | Boolean flag to enable and disable PLD feature for Advertiser Customer |
pldMarkupType string | PLD markup type: "Absolute" or "Percentage" |
pldMarkupTypeId integer | PLD markup type ID: "Absolute" or "Percentage" |
pldMarkupValue integer | PLD markup value for Advertiser Customer |
- JSON
- TypeScript
{
"success": true,
"data": {
"id": 1,
"pldRate": 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;
vldRate: number;
}
}
};
};
}
function getPLDFees(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/{customerOwId}/pld-fees',
params: {
path: {
customerowId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer PLD Details
PATCHUpdate a Customer's PLD details.
| Request Schema | |
|---|---|
idinteger | ID |
owId integer required | OW ID of the Customer to update details |
pldRate integer | PLD rate for workspace Customer |
pldEnabled boolean | Boolean flag to enable and disable PLD feature for Advertiser Customer |
pldMarkupTypeId integer | PLD markup type ID to represent markup types: Absolute or Percentage |
pldMarkupValue integer | PLD markup value for Advertiser Customer: "Absolute" or "Percentage" |
Response Properties
id integer | ID |
message string | Success message |
- JSON
- TypeScript
{
"id": 0,
"owId": 0,
"pldRate": 0,
"pldEnabled": true,
"pldMarkupType": "string",
"pldMarkupTypeId": 0,
"pldMarkupValue": 9999
}
{
"success": true,
"data": {
"id": 1,
"message": "PLD Rate updated successfully. The new rate applies only to newly created VLDs"
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
id: number;
owId: number;
pldRate: number;
pldEnabled: boolean;
pldMarkupType: string;
pldMarkupTypeId: number;
pldMarkupValue: number;
}
};
};
}
function editPLDFees(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/pld-fees',
requestBody: {
content: {
"application/json": {
id?: `number`,
owId: `number`,
pldRate?: `number`,
pldEnabled?: `boolean`,
pldMarkupType?: `string`,
pldMarkupTypeId?: `number`,
pldMarkupValue?: `number`,
}
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Get Customer SLS Finance Details
GETGet finance details for a Customer's Script Lift Study (SLS).
Read more about SLS in our Insights API or our Help Center articles: Script Lift Study (SLS) Insights Reports.
| Path Parameters | |
|---|---|
customerOwId integer | Customer Organization Workspace ID |
Response Properties
id integer | Customer ID |
owId integer | Organization Workspace ID |
slsRate integer | SLS rate for workspace Customer |
slsEnabled boolean | Boolean flag to enable and disable SLS feature for Advertiser Customer |
slsMarkupTypeId integer | SLS markup type ID: "Absolute" or "Percentage" |
slsMarkupType string | SLS markup type: "Absolute" or "Percentage" |
slsMarkupValue integer | SLS markup value for Advertiser Customer |
- JSON
- TypeScript
{
"success": true,
"data": {
"id": 1,
"slsRate": 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;
slsRate: number;
}
}
};
};
}
function getSLSFees(): Promise<Responses> {
const options = {
method: 'GET',
url: 'https://api.iqm.com/api/v3/fa/customer/{customerOwId}/sls-fees',
params: {
path: {
customerowId: `number`
}
}
};
return axios.request(options).then(({ data }: { data: Responses }) => data);
}
Update Customer SLS Details
PATCHUpdate a Customer's SLS details.
| Request Schema | |
|---|---|
idinteger | ID |
owId integer required | OW ID of the Customer to update details |
slsRate integer | SLS rate for workspace Customer |
slsEnabled boolean | Boolean flag to enable and disable SLS feature for Advertiser Customer |
slsMarkupType string | SLS markup type: "Absolute" or "Percentage" |
slsMarkupTypeId integer | SLS markup type ID: Absolute or Percentage |
slsMarkupValue integer | SLS markup value for Advertiser Customer |
Response Properties
id integer | ID |
message string | Success message |
- JSON
- TypeScript
{
"id": 0,
"owId": 0,
"slsRate": 0,
"slsEnabled": true,
"slsMarkupType": "string",
"slsMarkupTypeId": 0,
"slsMarkupValue": 9999
}
{
"success": true,
"data": {
"id": 1,
"message": "SLS Rate updated successfully. The new rate applies only to newly created VLDs"
}
}
See TypeScript Prerequisites for usage.
import {
getInstance
} from "prerequisites"
const axios = getInstance();
interface Responses {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
id: number;
owId: number;
slsRate: number;
slsEnabled: boolean;
slsMarkupType: string;
slsMarkupTypeId: number;
slsMarkupValue: number;
}
};
};
}
function editSLSFees(): Promise<Responses> {
const options = {
method: 'PATCH',
url: 'https://api.iqm.com/api/v3/fa/customer/sls-fees',
requestBody: {
content: {
"application/json": {
id?: `number`,
owId: `number`,
slsRate?: `number`,
slsEnabled?: `boolean`,
slsMarkupType?: `string`,
slsMarkupTypeId?: `number`,
slsMarkupValue?: `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);
}
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 |
paypalAcountId 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);
}
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 |
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 |
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 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 AddPaymentfromOrganizationApp(): Promise<Responses> {
const options = {
method: 'POST',
url: 'https://api.iqm.com/api/v3/fa/customer/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);
}