Foreword
Confidentiality and Disclaimer
Paysack Glossary
Wallets
Food
This wallet allows credit to be loaded upto INR 10,000/- (INR 1,00,000/- if full KYC) and can be debited only at specific MCCs namely, 5311 - Department Stores 5411 - Grocery Stores, Supermarkets 5441 - Candy, Nut, and Confectionery Stores 5451 - Dairy Products Stores 5462 - Bakeries 5499 - Miscellaneous Food Stores 5811 - Caterers 5812 - Eating Places, Restaurants (Swiggy, FoodPanda, Zomato also here) 5814 - Fast Food Restaurants.
Fuel
This wallet allows credit to be loaded upto INR 10,000/- (INR 1,00,000/- if full KYC) and can be debited only at specific MCCs namely, 5541 - Service Stations; 5542 - Automated Fuel Dispensers.
Expense
This wallet allows credit to be loaded upto INR 10,000/- (INR 1,00,000/- if full KYC) and can be debited without restriction at any POS.
Actors
Super Admin
The user account having role as "admin" is able to control the overall operations of Paysack (stage/prod) environment.
Employee
The user account having role as "employee" receives funds from company. User cannot self-sign up. User account created by Company admin. User verifies email and mobile. User can self-register kit with basic ID (PAN/AADHAR). User gets access to all enabled wallet (food, fuel, expense etc) subjected to be enabled for the company. User is able to initiate reimburse request (including cash claim) subjected to reimbursement feature enabled for the company. User can do purchase with the help of card kit at POS/Online. User can reset password thru email. User can reset PIN through portal. User can lock/unlock card. User can replace kit if kit replacement is availed subjected to cost paid. User can browse through his transaction history (credit/debit).
Company Admin
The user account having role as "company" deposits funds to PAYSACK. User can self-sign up by registering company. Employee accounts are created by this user. User verifies email to activate company account subjected to approval from Admin user. User cannot register kit for its employees. User gets access to all enabled wallet (food, fuel, expense etc) subjected to be enabled for the company. User is able to review and decide reimburse request (including cash claim) subjected to reimbursement feature enabled for the company. User can disburse credits to enabled wallets of employee. User can reset password thru email. User can block card. User can browse through company transaction history (credit/debit).
Company Employee Account Reviewer
The user account having role as "account_reviewer". User cannot self-sign up. Employee accounts (including KYC verification requests) are reviewed by this user. User cannot register kit for the employees. User can reset password thru email. User can block card.
Company Employee Claim Reviewer
The user account having role as "claim_reviewer". User cannot self-sign up. User cannot register kit for employees. User is able to review and decide but cannot settle reimburse request (including cash claim) subjected to reimbursement feature enabled for the company. User can reset password thru email.
Company Employee Claim Settler
The user account having role as "claim_settler". User cannot self-sign up. User cannot register kit for employees. User is able to settle reimburse request (including cash claim) decided by the claim reviewer subjected to reimbursement feature enabled for the company. User can reset password thru email.
demo_company
The user account having role as "demo_company". This is an unverified account for company admin.
demo_employee
The user account having role as "demo_employee". This is an unverified account for employee.
Debit Transaction Statuses
PAYMENT_SUCCESS
The transaction status of merchant transaction record is PAYMENT_SUCCESS when it is received from the Bank (via M2P). This denotes that the debit was successful and wallet is calculated for employee. Employee is notified through Email.
PAYMENT_FAILURE
The transaction status of merchant transaction record is PAYMENT_FAILURE when it is received from the Bank (via M2P). This denotes that the debit was not successful and wallet is not calculated for employee.
PAYMENT_DELETED
The transaction status of a transaction (credit/debit) record is PAYMENT_DELETED. This denotes that the transaction is marked as deleted but not removed from Database and wallet is calculated for employee.
REVERSED
The transaction status of merchant transaction record is REVERSED when it is received from the Bank (via M2P). This denotes that the original debit record was successful but later is reversed (credit) by the Bank (via M2P) and wallet is calculated as credit to employee.
OFFLINE_PAYMENT_SUCCESS
The transaction status of a transaction record is OFFLINE_PAYMENT_SUCCESS. This denotes that the transaction is a cash claim required to initiate the reimbursement and wallet is not calculated for employee.
Credit Transaction Statuses
company_reviewed
The transaction status of company to employee record is company_reviewed when it is accepted as claim to be reimbursed. Notification is not included here.
company_approved
The transaction status of company to employee record is company_approved when it is approved as claim but no settlement is done. This is a final state. Notification is not included here.
company_disapproved
The transaction status of company to employee record is company_disapproved when it is rejected as claim and comments are recorded by the competent authority. This is not final state. The employee can reclaim from user portal and reinitiate the reimbursement request. Notification is not included here.
internally_approved
The transaction status of company to employee record is internally_approved for amount settlement or funds disbursement. This initiates a communication between PAYSACK and M2P for transfer of funds to employee's expense wallet. Notification is not included here.
disapproved
The transaction status of company to employee record is disapproved when the claim is disapproved and comments are recorded by the competent authority. This is a final state. The employee cannot reclaim from user portal. Notification is not included here.
pending_submission
The transaction status of company to employee record is pending_submission when the employee had initiated the reimburse request and later deleted (or undo) the same request. The employee can reclaim from user portal and reinitiate the reimbursement request. The Notification is not included here.
pending_approval
The transaction status of company to employee record is pending_approval when a reimburse request is submitted. Notification is not included here.
pending_kit_sync
The transaction status of company to employee record is pending_kit_sync when the communication between PAYSACK and M2P for transfer of funds returns successful. Notification is not included here. Fund is credited to Employee here but the system waits to confirm whether it is recorded in bank db.
failed_kit_sync
The transaction status of company to employee record is failed_kit_sync when the communication between PAYSACK and M2P for transfer of funds returns unsuccessful. Notification is not included here. The system waits to confirm whether it is recorded in bank db. If not recorded, it will wait an interval before re-initiating the transfer of fund comms again. This goes on till 5 attempts and on failure after 5th attempt, it is marked as externally_disapproved and super admin is notified.
approved
The transaction status of company to employee record is approved when the communication between PAYSACK and M2P for transfer of funds returns successful. Pending_kit_sync cycle is completed. The record is available in the bank DB. Employee is notified through email.
externally_disapproved
The transaction status of company to employee record is externally_disapproved when the communication between PAYSACK and M2P for transfer of funds returns error after 5th attempt. Super Admin is notified
internally_approved_no_kit_attached
The transaction status of company to employee record is internally_approved_no_kit_attached for funds disbursement if no kit is found attached to the user account. This does not initiate a communication between PAYSACK and M2P for transfer of funds. Notification is not included here. When a kit is registered, all credit transactions marked as internally_approved_no_kit_attached are sent as batch to M2P for processing.
pending_wallet_limit
This is a special status flag for credit transaction records to indicate that the employee wallet balance has reached maximum wallet balance limit (i.e. INR 10000 for limited KYC and INR 1,00,000 for full KYC). Whenever the employee makes a debit transaction, the system will check the wallet limit and initiate transfer fund of pending amount in total to M2P.
Reimbursement Actions
Approve
The approve button on click, calls the reimbursement api to mark the transaction as "company_approved" and no further action to settle the claim amount is done.
Accept
The accept button on click, calls the reimbursement api to mark the transaction as "company_reviewed" which leads to settlement of claim amount but not settled at this state. Here before click, the competent authority can edit the claim amount after reviewing the claim bill and add comment as to why the claim amount was edited.
Settle
The settle button on click, calls the reimbursement api to mark the transaction as "internally_approved" which settles the claim amount from company pool to employee wallet. Here before click, the competent authority can edit the claim amount after reviewing the claim bill and add comment as to why the claim amount was edited.
Reject
The reject button on click, calls the reimbursement api to mark the transaction as "company_disapproved" and no further action to settle the claim amount is done. The employee can reclaim even after the claim is rejected.
Disapprove
The disapprove button on click, calls the reimbursement api to mark the transaction as "disapproved" and no further action to settle the claim amount is done. The employee cannot reclaim henceforth.
For Enterprises
signup
This api is for signup.
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/signup | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M |
Request
{
"name":"Aml98765",
"first_name":"amalrag125474",
"last_name":"c",
"mobile":"+919754333775",
"landline":"+918914623795",
"password":"amalRag1@12",
"email":"amalragweb85248@gmail.com",
}
Success
{
"kyc": [],
"_id": "601bc5776c2e8a454b8073a5",
"first_name": "amalrag125474",
"last_name": "c",
"mobile": "+919754333775",
"email": "amalragweb85248@gmail.com",
"company": "601bc5776c2e8a95b18073a3",
"user": "601bc5776c2e8a761b8073a4",
"entityId": "601bc5776c2e8a454b8073a5",
"__v": 0
}
Error
{
"error": "123456789 is not a valid phone number!"
}
Fetch Company Wallet Balance
this api Fetch balance of a Company Wallet
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/companies/<company_id>/wallet | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | company admin token |
Request
N/a
Success
{
"_id": "5cb59c503283cf58e011a700",
"value": 443243
}
Error
{
"error": ""
}
Approve/Reject Admin assigned to User
This api approve/reject admin assigned to User
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/pending_users/<user_id> | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Approve
{
"approval_status":"approved"
}
disapprove
{
"approval_status":"disapproved"
}
Response
{
"n": 1,
"nModified": 1,
"opTime": {
"ts": "6928287237817761793",
"t": 6
},
"electionId": "7fffffff0000000000000006",
"ok": 1,
"operationTime": "6928287237817761793",
"$clusterTime": {
"clusterTime": "6928287237817761793",
"signature": {
"hash": "ZfgXPCU5RpuKWrIa0AwN+EhmN70=",
"keyId": "6894751050838835201"
}
}
}
Error
{
"error": 'The user has not verified his/her email'
}
Verify admin email
This api Verify admin email
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/authenticate/verify_email | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | user token on login | M |
Request
{}
Success
{
"success": true
}
Error
{
"error": ""
}
Verify user email mobile
This api is for otp verification
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/<emp_id>/resend_otp_email | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
Error
Verify user email only
This api verify user email only
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/<emp_id>/resend_verification | M | emp_id = _id of v1/employees record | |
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | company token |
Request
{}
Success
{
"success": true
}
Error
{
"error": ""
}
Update user/admin email if card kit not activated
This api Update user/admin email if card kit not activated.
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/authenticate/update/email | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
{
"email":"newEmail@xyz.com"
}
Error
The above request will send a verification link to the new email address to verify the ownership of the email.
Fetch user details
This api Fetch user details
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/auth_user | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
{
"_id": "5936b287ef91xxxxxxxxxxxx",
"username": "employee@test.com",
"email_verification": "approved",
"roles": [
"company",
"employee"
]
}
Error
Add role to user
This api Add role to user
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/users/roles/add | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"role": "company/employee/account_reviewer",
"user": "\<user_id\>"
}
Success
Error
Remove role from user
This api is for Removing role from user
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/users/roles/remove | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"role": "company/employee/account_reviewer",
"user": "\<user_id\>"
}
Success
Error
User login with OTP
This api is for User login with OTP
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/otp/login | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"mobile": "919891055605",
"otp": "xxxx"
}
Success
{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiNTk3MDVkNmUzZDUzMmFjMDEs"
}
Error
{
"error": "message"
}
Above api will return a valid token only if the user has already attached his mobile number to his paysack account by clicking the link in the Welcome email.
Change password if logged in
This api Change password if logged in
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/authenticate/changePassword | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"oldpassword":"xxxxx",
"password":"yyyyy",
"repassword":"yyyyy"
}
Success
Error
Forgot password if unable to log in
This api is for Forgot password if unable to log in
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/authenticate/forgotPassword | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"email":"abc@xyz.com"
}
Success
{"success": true}
Error
{"error":"Error message"}
Fetch logged in user details
This api Fetch logged in user details
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/me | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
{
"_id": "54da47cfefa0c9420757e0e4",
"__v": 0,
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "+919891055604",
"employee_id":"843778",
"company":"12da47cfe33442420757e0e4"
}
Error
Fetch user profile with kit details
This api Fetch user profile with kit details
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/profiles?param1=value1 | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
[
{
"_id": "59b5174628d8fc0001d803be",
"email": "rajat@delvelogic.com",
"mobile": "+919891055604",
"first_name": "Rajat",
"last_name": "Talwar",
"company": "59b5174628d8fc0001d803bb",
"user": {
"_id": "59b5174628d8fc0001d803bd",
"email_verification": "approved",
"phone_verification": "approved"
},
"entityId": "rajat-talwar",
"kyc": [],
"roles": [],
"__v": 0,
"kyc_details": {
"_id": "5a965c354342690001b8f3e4",
"approval_status": "approved",
"countryofIssue": "IND",
"idNumber": "908385555040",
"idType": "AADHAR",
"verifiedByUser": true
},
"kit": {
"_id": "59b631b055e4d1ee3820a6f4",
"entityId": "rajat-talwar",
"dependent": false,
"emailAddress": "rajat@delvelogic.com",
"contactNo": "+919891055604",
"lastName": "Talwar",
"firstName": "Rajat",
"entityType": "CUSTOMER",
"businessType": "PAYSACK",
"businessId": "+919891055604",
"employee": "59b5174628d8fc0001d803be",
"pincode": "110027",
"state": "Delhi",
"city": "Delhi",
"country": "India",
"gender": "M",
"address": "b-4/8 rajouri garden",
"specialDate": "1987-07-26",
"kitNo": "000000288581",
"__v": 0,
"verifiedByUser": true,
"expense_synced": true,
"created_ts": 1527059407143,
"isPinSet": false
}
}
]
Error
Fetch single user with kit
This api Fetch single user with kit
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/profiles/<emp_id> | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
Error
Admin to Create bulk users for an organisation
This api is for Admin to Create bulk users for an organisation
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/bulk | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"emails":["abc@xyz.com","def@xzy.com"]
}
Success
[{
"email":"abc@xyz.com",
"success":true
},
{
"email":"def@xyz.com",
"success":false,
"error":"email already registered"
}]
Error
Admin to create single user for an organisation
This api is for Admin to create single user for an organisation
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"first_name":"amal",
"last_name":"rag",
"gender": "male",
"email": "amalrag@test.com",
"mobile": "+919747342495",
"employee_id":"843778",
}
Success
{
"kyc": [],
"_id": "6010fc661616b7418ea5f99a",
"first_name": "amal",
"last_name": "rag",
"gender": "male",
"email": "amalrag@test.com",
"mobile": "+919747342495",
"employee_id": "843778",
"company": "5fbcb4821ffc64855233b1b1",
"entityId": "6010fc661616b7418ea5f99a",
"user": "6010fc661616b7267da5f999",
"__v": 0
}
Error
{
"error": "message"
}
"mobile" - it is the responsibility of the client to always send country code with the mobile number, server will not perform any checks "company" : id of the company to be associated with this employee
Admin add external id to user profile
This api is for Admin add external id to user profile
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/<employee_id>/external_id | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"external_id":"abcxyz-12334"
}
Body can contain one or many from these fields
['external_id']
Success
[{
"_id": "54da47cfefa0c9420757e0e4",
"__v": 0,
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "+919891055604",
"employee_id":"843778",
"company":"12da47cfe33442420757e0e4"
}]
Error
Admin to update Employee's KYC status
This api is for Admin to update the KYC status of an employee with attached card kit
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/<employee_id>/kycStatus | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"kycStatus": "FULL_KYC or MIN_KYC or NO_KYC"
}
Response
On Success
{
"success": true
}
On Error
{
"error": "Unable to update kycStatus to Employee kyc field",
"success": false
}
Admin filter user profiles
This api if for Admin filter user profiles
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees?=&= | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | company token |
PARAMS
they can be anything from these values
first_name:string
last_name:string
gender?: string
user: string
email: string
mobile: string
roles?: [string]
employee_id:string
company: string
Success
[{
"_id": "54da47cfefa0c9420757e0e4",
"__v": 0,
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "+919891055604",
"employee_id":"843778",
"company":"12da47cfe33442420757e0e4"
}]
Error
Admin to Delete user from an organisation
This api is for Admin to Delete user from an organisation
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/employees/<employee_id> | M | ||
METHOD | string | DELETE | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
Error
Initiate a Reimbursement request
This api Initiate a Reimbursement request
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/company_reimbursement | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
In this request , you need to pass
_id
of a merchant transaction fetched from the above api.
Request
{
"reimbursement_txn_id": "<merchant_txn_id>",
"amount" : <claim_amount>
}
amount field is optional
Success
Error
Delete a reimbursement request
This api Undo a Reimbursement request
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/company_reimbursement/<merchant_txn_id> | M | ||
METHOD | string | DELETE | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
This will move corresponding comp_emp_txn into pending_submission Also note, any txn in pending_submission or company_disapproved state can be resubmitted and its status will change to pending_approval
Request
Success
Error
Upload supporting merchant bill image/pdf for reimbursement request
This api Upload supporting merchant bill image/pdf for reimbursement request
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/files | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
Error
Attach the uploaded image/pdf to reimbursement request id
This api Attach the uploaded image/pdf to reimbursement request id
REST
In this request , you need to pass
_id
of a merchant transaction in the url. the file url you will get fromUpload Bill Image
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/merchant_transactions/<txid>/files | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"files": ["http://xx.com/fileurl1.jpg","http://xx.com/fileurl2.jpg"]
}
Success
Error
Add more information to a reimbursement request id
This api Add more information to a reimbursement request id
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/merchant_transactions/<txid> | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"description": "test description",
"tags": ["office", "delhi"],
"isCompany":true
}
Success
Error
In this request , you need to pass
_id
of a merchant transaction in the url. isCompany field is of boolean type
Admin review of a reimbursement request
This api is for Admin review of a reimbursement request
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/claimReview/<txn_id> | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Body Stage For Review
{
"approval_status": "company_reviewed",
"amount": <amount_set_by_reviewer>,
"comment":"reviewer comments"
}
Success
Error
this can be done by company admin ,super admin , claim_reviewr
Admin add comment on a transaction
This api is for Admin to add comment on a transaction
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/<txn_id>/comments/ | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"comment":"reviewer comments"
}
Success
Error
Admin approve reimbursement but no settle amount
This api is for Admin approve reimbursement but no settle amount
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/claimReview/<txn_id> | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Body For Company Approval/Internal settlement
{
"approval_status": "company_approved",
"amount": <amount_set_by_reviewer>,
"comment":"reviewer comments"
}
Body For Company_Disapproved - this is not final Disapproval
{
"approval_status": "company_disapproved",
"comment":"disapprove comments"
}
Success
Error
this only marks the txn as company_reivewed and does not participates in wallet calculation .This can be done by company admin ,super admin , claim_reviewer
Admin actions on a reimbursement request
This api is for Approve/Settle/Disapprove
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/<txn_id> | M | ||
METHOD | string | PUT | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Body For Approval/Settlement
{
"approval_status": "internally_approved",
"amount":<amount_set_by_settler>,
"comment":"settler comments"
}
Body Disapprove
{
"approval_status": "disapproved"
}
Success
Error
this can be done by company admin ,super admin only
Resize an image file
This api Resize an image file
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/files/<file_id>?size=200x200 | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
Image will be of size 200 x 200
Error
Activate Bank Card Kit to User
This api activate Bank Card Kit to User
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"kitNo": "000000222222",
"employee_id": "598024db0532e4xxxxxxxxxx",
"last_digits": "0456",
"specialDate": "1987-07-26",
"address": "b-4/8 rajouri garden",
"address2": "2nd floor",
"gender": "M",
"isKitRegistered": false,
"country": "India",
"city": "New Delhi",
"state": "New Delhi",
"pincode": "110027",
"idType": "it should be one of: AADHAAR,PAN,PASSPORT,PASSBOOK,DL,VOTERID,RATIONCARD,AADHAARREF",
"idNumber": "xxxxxxx",
"countryofIssue": "IND",
"title":"Mr/Ms",,
"kycStatus": "MIN_KYC"
}
Success
Error
{
"error": "Kit no 880000001 and last four digits undefined dont match"
}
Adding `updateOnly:true' field to kit registration payload will update the kit on paysack servers only without hitting the actual m2p servers with registration payload.
MISC
{
"entityId": "550000119",
"entityType": "CUSTOMER",
"businessType": "EQPAYSACK",
"businessId": "550000119",
"countryofIssue": "IND",
"cardType": "P",
"kitNo": "880000001",
"title": "Mr",
"firstName": "TEST",
"lastName": "CUSTOMER",
"gender": "M",
"specialDate": "1999-09-29",
"contactNo": "+919000000000",
"emailAddress": "email@m2p.in",
"address": "my address, my street",
"address2": "my locality",
"city": "mycity",
"state": "mystate",
"country": "India",
"pincode": "600000",
"idType": "PAN",
"idNumber": "1234500001",
"idExpiry": "2020-12-12",
"kycStatus": "MIN_KYC/FULL_KYC",
"countryCode": "+91",
"programType": "EQPAYSACK",
"documents": [
{
" docType ": "PAN",
" docNo ": "ADOPA89013",
"docExpDate": null
},
{
" docType ": "PASSPORT",
" docNo ": "ADOPA89013",
" docExpDate ": "2025-12-12"
}
],
"addressDto": {
"contactNo1": "+919677109523",
"contactNo2": "+919236634491",
"emailAddress1": "test@m2p.in",
"emailAddress2": "test@gmail.com",
"notification": "1010",
"address": [
{
"title": "PERMANENT,",
"address1": "Plot 23&23, AG1, Vidhya Apts,",
"address2": "Vidhya nagar 2nd St",
"address3": "Ullagaram",
"city": "Chennai",
"state": "TamilNadu",
"country": "India",
"pinCode": "600091"
}
]
}
}
Resend OTP Request
This api requests OTP from the Bank
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/otp?employee=:empID | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
{
result: true
}
Error
Employee out of company scope
Reset Card PIN
This api Reset Card PIN
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/setPin | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"pin": "1234",
"kitNo": "000000220003",
"expiryDate": "1021",
"dob": "27071983",
"otp": "000000"
}
Success
Error
Lock Card
This api Lock Card
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/lock | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"kitNo": "000000220003",
"flag": "L",
"reason": "card lost"
}
Success
Error
Lock=”L”, Unlock=”UL”, only lock and unlock supported in the api.
Unlock Card
This api Unlock Card
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/lock | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"kitNo": "000000220003",
"flag": "UL",
"reason": "card lost"
}
Success
Error
Lock=”L”, Unlock=”UL”, only lock and unlock supported in the api.
Block Card
This api Block Card
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/block | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"kitNo": "000000220003",
"flag": "BL",
"reason": "card lost"
"otp": "000000"
}
Success
Error
Block=”BL”
Replace Card
This api Replace Card.
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/replaceCard | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"oldKitNo": "000000220003",
"newKitNo": "000000220015",
"last_digits":"1234"
}
Success
Error
Add Funds to Company Wallet
this api makes a request to deposit funds into the company pool balance.
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/company_transactions | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | company admin token |
Request
{
"company": "5cb46b73340695fef4200011",
"amount": "1",
"details": {
"transaction_id": "60ffb8be0b99792d5ab30c32",
"type": "OTHERS"
}
}
Success
{
"_id": "60ffb8c1930fd198e7fe5f56",
"company": "5cb46b73340695fef4200011",
"amount": 1,
"details": {
"transaction_id": "60ffb8be0b99792d5ab30c32",
"type": "OTHERS"
},
"paysack": "default",
"approval_status": "pending_approval",
"initiated_ts": 1627371713,
"__v": 0
}
Error
{
"error": ""
}
Load Funds to Card assigned to User
This api Load Funds to Card assigned to User
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/ | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"amount": 45,
"amount_type": "expense",
"employee": "5936b287ef91b201008c559f"
}
Success
{
"tags": [],
"_id": "5ff834fb1f9ffe8f107fecfe",
"company": "5cb59c503283cf58e011a700",
"amount": 10,
"amount_type": "expense",
"employee": "5cb59c503283cf5b8911a704",
"txn_type": "topup",
"approval_status": "internally_approved",
"initiated_ts": 1610102011,
"comments": [],
"__v": 0
}
Error
{
"error": "Not enough funds"
}
amount_type can be 'expense','food','fuel'
Pullback Funds from Card assigned to User
This api Pullback Funds from Card assigned to User
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/refund | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"employee":"591aa77660fac001004d4ae7",
"amount_type" : "fuel/expense/food",
"description":"Testing INR 2 refund",
"amount": 2.00
}
Success
Error
Bulk Load Funds to Card assigned to many users
This api Bulk Load Funds to Card assigned to many users
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/comp_emp_txns/bulk | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"company": "5932da2ba145ed01004e748d",
"deposit":[
{"email":"emp1@xyz.com","amount":45,"amount_type":"food"},
{"email":"emp2@xyz.com","amount":150,"amount_type":"fuel"}
]
}
Success
Error
Update Card Kit Preferences
This api Update Card Kit Preferences
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base-url}/v1/card-kit/updatePreferences | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | employee token |
Request
{
"type":"POS/ECOM",
"status":"ALLOWED/NOTALLOWED"
}
Success
{
"result": true,
"exception": null,
"pagination": null
}
Error
{
"error": "Invalid `status`. It should be one of: ALLOWED/NOTALLOWED"
}
Employee can update the card preferences by selecting a field and updating a status (ALLOWED/NOTALLOWED).
Fetch Card Kit Preferences
Company Admin/Employee can fetch the card preferences that have been set by the bank.
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base-url}/v1/card-kit/preferences?entityId=${entityId} | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | company/employee token |
Request
Success
{
cardPreferences: {
address: null,
contactNo1: null,
contactNo2: null,
emailAddress1: null,
emailAddress2: null,
notification: null,
atm: null,
pos: 'ALLOWED',
ecom: 'ALLOWED',
international: null,
dcc: null,
contactless: null,
limit: null,
cashLimit: null,
country: null,
secKitNo: null
}
}
Error
{
"cardPreferences": null
}
Send PIN over SMS
This api Send PIN over SMS
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/assignNewPin | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
{
"entityId": "PaysackCust011",
"kitNo": "000000220003",
"expiryDate": "1021",
"dob": "27071983"
}
Success
Error
Fetch Bank Card Status
This api Fetch Bank Card Status
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit/list?employee=:empID | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
{
"cardStatusList": [
"ALLOCATED"
]
}
Error
Employee out of company scope
Get Activated Card Kit Details
This api Get Activated Card Kit Details
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/card-kit?key1=value1&key2=value2 | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M |
Request
Success
[
{
"_id": "598024db0532e4xxxxxxxxxx",
"entityId": "598022801c2dxxxxxxxxxxxx",
"dependent": 0,
"emailAddress": "vigneshs_id@yahoo.com",
"contactNo": "+918848009191",
"lastName": "Prasad",
"firstName": "Vignesh",
"entityType": "CUSTOMER",
"businessType": "PAYSACK",
"businessId": "+918848009191",
"specialDate": "1994-04-24",
"address": "Kailash, Valiyavalappu Kavu Road, Civil Station PO, Kannur",
"pincode": "670002",
"city": "Kannur",
"country": "India",
"gender": "M",
"kitNo": "000000222222"
}
]
Error
Fetch Merchant Transactions
this api Fetch Merchant Transactions
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | v1/merchant_transactions?pagination.field=txnDate&pagination.after=20220201000000&pagination.before=20220228000000 | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
[
{
"_id": "6218d3c5576590189abd17e9",
"files": [],
"tags": [],
"import_type": "card_swipe",
"employee": "5af6896bd8582e202630fac4",
"txnRefNo": "205618677890",
"amount": 5,
"mcc": "8220",
"merchantName": "OneMobiKwikSystemPLtd Haryana hrIN",
"amount_type": "expense",
"merchantId": "MBIZAAK8220CYBS",
"txnStatus": "PAYMENT_SUCCESS",
"txnDate": "20220225183405",
"retrievalRefNo": "205618763900",
"extTxnId": "020076390002251304040000030005100000000000",
"modified_ts": 1645794245,
"balance": 103,
"__v": 0
}
]
Error
{
"error": "Failed to authenticate token."
}
For Institutions
Create Members
This api creates members.
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-members-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
mutation {
create_member(
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "9891055604",
"external_id":"843778",
"password":"password"
){
_id
success
}
}
}
Success
{
"_id": "54da47cfefa0c9420757e0e4",
"success": true
}
Error
{
}
Initiate Payment to Merchant
this api initiate payment to Merchant
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
mutation {
receive_payment(
member_id: "ABCD1234",
payer_pin: "0000",
amount: 100.00,
amount_type: "expense",
refNo: "TXN01"
){
_id
approval_status
debit_account
credit_account
amount
amount_type
refNo
success
}
}
}
Success
{
"_id": "8",
"approval_status": "approved",
"debit_account": "ABCD1234",
"credit_account": "MER01",
"amount": 100.00,
"amount_type": "expense",
"refNo": "TXN01",
"success": true
}
Error
{
}
Initiate Payment to Merchant
this api Fetch Member Using External ID
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-members-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
query: {
fetch_member(
external_id: "21"
){
_id
first_name
last_name
gender
email
mobile
external_id
}
}
}
Success
{
"_id": "54da47cfefa0c9420757e0e4",
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "+919891055604",
"external_id":"21"
}
Error
{
}
Fetch Members Based On Role
this api Get user details for a specific role.
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/ms/graphql/org-admin-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
query{
get_members(company: "5e69deba5cef29842defb0ee", role: "merchant") {
members {
company
_id
user {
name,
username,
roles
}
}
}
}
Success
"members": [
{
"company": "5e69deba5cef29842defb0ee",
"_id": "5ecc8f9d8bb4b311eb86be7d",
"user": {
"name": "M002 Sports",
"username": "uiazaoxol@pk-loop.loop",
"roles": [
"employee",
"merchant"
]
}
},
{
"company": "5e69deba5cef29842defb0ee",
"_id": "5e85a1b45cef2944aaefb3c5",
"user": {
"name": "merchant6 .",
"username": "collegemerchant86@paysack.com",
"roles": [
"employee",
"merchant"
]
}
}
]
Error
{
}
Initiate Payment to Merchant
this api Create Merchant Transactions
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/v1/merchant_transactions | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
Error
{
}
Fetch Merchant Transactions
this api Fetch Merchant Transactions
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | v1/merchant_transactions?pagination.field=txnDate&pagination.after=20220201000000&pagination.before=20220228000000 | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
[
{
"_id": "6218d3c5576590189abd17e9",
"files": [],
"tags": [],
"import_type": "card_swipe",
"employee": "5af6896bd8582e202630fac4",
"txnRefNo": "205618677890",
"amount": 5,
"mcc": "8220",
"merchantName": "OneMobiKwikSystemPLtd Haryana hrIN",
"amount_type": "expense",
"merchantId": "MBIZAAK8220CYBS",
"txnStatus": "PAYMENT_SUCCESS",
"txnDate": "20220225183405",
"retrievalRefNo": "205618763900",
"extTxnId": "020076390002251304040000030005100000000000",
"modified_ts": 1645794245,
"balance": 103,
"__v": 0
}
]
Error
{
"error": "Failed to authenticate token."
}
Initiate Student to Student Transactions
this api Initiate Student to Student Transactions
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
mutation {
receive_payment(
member_id: "ABCD1234",
payer_pin: "0000",
amount: 100.00,
amount_type: "expense",
refNo: "TXN01"
){
_id
approval_status
debit_account
credit_account
amount
amount_type
refNo
success
}
}
}
Success
{
"_id": "8",
"approval_status": "approved",
"debit_account": "ABCD1234",
"credit_account": "MER01",
"amount": 100.00,
"amount_type": "expense",
"refNo": "TXN01",
"success": true
}
Error
{
}
Initiate Student to Merchant Transactions
this api Initiate Student to Merchant Transactions
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
mutation {
receive_payment(
member_id: "ABCD1234",
payer_pin: "0000",
amount: 100.00,
amount_type: "expense",
refNo: "TXN01"
){
_id
approval_status
debit_account
credit_account
amount
amount_type
refNo
success
}
}
}
Success
{
"_id": "8",
"approval_status": "approved",
"debit_account": "ABCD1234",
"credit_account": "MER01",
"amount": 100.00,
"amount_type": "expense",
"refNo": "TXN01",
"success": true
}
Error
{
}
Fetch Student Wallet Balance
this api Fetch Student Wallet Balance
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
query: {
member_wallet(
member_id: "ABCD1234"
){
expense
}
}
}
Success
{
"expense": 100
}
Error
{
}
Fetch Members Using Mobile Number
this api Fetch Members Using Mobile Number
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-members-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
query: {
fetch_member(
mobile: "+919891055604"
){
_id
first_name
last_name
gender
email
mobile
external_id
}
}
}
Success
{
"_id": "54da47cfefa0c9420757e0e4",
"first_name":"abc",
"last_name":"xyz",
"gender": "male",
"email": "employee@test.com",
"mobile": "+919891055604",
"external_id":"21"
}
Error
{
}
Fetch Student Wallet
this api Fetch Student Wallet
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/members/<member_id>/wallet | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
{
"expense":400
}
Error
Fetch list of transactions for a given date
this api Fetch list of transactions for a given date
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
query {
get_transaction_by_date(date: "04-06-2020") {
transactions {
_id
approval_status
debit_account
credit_account
amount
amount_type
refNo
initiated_ts
details {
student_id
student_name
}
}
}
}
}
Success
"transactions": [
{
"_id": "5ed8b9990c0f1fc2769301a4",
"approval_status": "internally_approved",
"debit_account": "5e69deba5cef29842defb0ee",
"credit_account": "5ebe33d8d717d70ca1a6d312",
"amount": 30,
"amount_type": "expense",
"refNo": "5e69deba5cef29842defb0ee-1591261585095",
"initiated_ts": 1591261593181,
"details": {
"student_id": "1004",
"student_name": "Abhishek Dixit"
}
},
{
"_id": "5ed8b9a10c0f1f59899301a5",
"approval_status": "internally_approved",
"debit_account": "5e69deba5cef29842defb0ee",
"credit_account": "5ebe33d8d717d70ca1a6d312",
"amount": 20,
"amount_type": "expense",
"refNo": "5e69deba5cef29842defb0ee-1591261592982",
"initiated_ts": 1591261601149,
"details": {
"student_id": "1004",
"student_name": "Abhishek Dixit"
}
}
]
Error
Organization wallet
api for Organization Pool Balance
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
query: {
org_wallet(){
expense
}
}
}
Success
{
"expense": 50000
}
Error
Assign Card Kit to Student
this api Registers student's card kit with the bank
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/loop/card-kit | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token of admin |
Request
{
"kitNo": "000000222222",
"member_id": "598024db0532e4xxxxxxxxxx",
"last_digits": "0456",
"specialDate": "1987-07-26",
"address": "b-4/8 rajouri garden",
"address1": "2nd floor",
"gender": "M",
"country": "India",
"city": "New Delhi",
"state": "New Delhi",
"pincode": "110027",
“idType”:”PAN”,
“idNumber”:”4212”
“countryofIssue”:”IND”
}
Success
{
"_id":"598024db05",
"kitNo": "000000222222",
"employee": "598024db0532e4xxxxxxxxxx",
"member_id": "598024db0532e4xxxxxxxxxx",
"specialDate": "1987-07-26",
"address": "b-4/8 rajouri garden",
"address1": "2nd floor",
"gender": "M",
"country": "India",
"city": "New Delhi",
"state": "New Delhi",
"pincode": "110027",
“idType”:”PAN”,
“idNumber”:”4212”
“countryofIssue”:”IND”
}
Error
Initiate Top up to Student Wallet
this api Initiate Top up to Student Wallet
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Company admin token |
Request
{
mutation {
topup_member_wallet(
member_id: "ABCD1234",
amount: 100.00,
amount_type: "expense",
refNo: "CREDIT01"
){
_id
approval_status
debit_account
credit_account
amount
amount_type
refNo
success
}
}
}
Success
{"data":{
"topup_member_wallet":{
"_id": "5",
"approval_status": "approved",
"debit_account": "COLLEGE01",
"credit_account": "ABCD1234",
"amount": 100.00,
"amount_type": "expense",
"refNo": "CREDIT01",
"success": true
}}}
Error
Fetch Transactions Details
this api Fetch transaction by id
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /v1/college_member_txns/txnid | M | ||
METHOD | string | GET | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
{
"_id_": "55323xxxxxxx",
"amount": 45,
"amount_type": "expense"
}
Error
Assign merchant role to member
this api assign merchant role to member
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
mutation {
assign_merchant_role(
member_id: "ABCD1234"
){
success
}
}
}
Success
{
"success": true
}
Error
Remove merchant role to member
this api Remove merchant role from member
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | MUTATION | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | admin token |
Request
{
mutation {
remove_merchant_role(
member_id: "ABCD1234"
){
success
}
}
}
Success
{
"success": true
}
Error
Fetch merchant wallet balance
this api fetch merchant wallet balance
GRAPHQL
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | {base_url}/graphql/loop-merchant-payments-service | M | ||
GRAPHQL | string | QUERY | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | Merchant's token |
Request
{
query: {
merchant_wallet(){
expense
}
}
}
Success
{
"expense": 400
}
Error
Notifications webhook
this api fetch Notifications webhook
REST
Headers
Fields | Type | Description | Example | O/M | Data Management |
---|---|---|---|---|---|
URL | string | /webhook_url | M | ||
METHOD | string | POST | M | ||
content-type | string | JSON | application/json | M | |
x-access-token | string | Session token with validity | token | M | access_token |
Request
Success
Error