openapi: 3.0.0
info:
title: Payout_APIs
version: 1.0.0
servers:
- url: https://api.portone.cloud
paths:
/api/merchant/{key}/payouts:
post:
tags:
- Payout APIs
summary: Fetch Payouts List
description: |-
Use this API for fetching the list of payouts for a merchant.
requestBody:
content:
application/json:
schema:
properties:
page:
description: The page number of the data to be fetched.
type: integer
minimum: 1
pagesize:
description: The page size of the data to be fetched.
type: integer
minimum: 1
to:
description: The to Date to fetch the sub-merchant.
type: string
from:
description: The from Date to fetch the sub-merchant.
type: string
filters:
description: The Payment Method Key listed in PortOne docs
type: object
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- page
- pagesize
- to
- from
- merchants_keys
- environment
example:
page: 1
pagesize: 10
from: '2006-01-02 15:04:05'
to: '2026-09-13 16:04:00'
filters: {}
environment: sandbox
parameters:
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: key
in: path
schema:
type: string
required: true
example: NPSkZZYefGyKvBxi
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
$ref: '#/components/schemas/PayoutDataContent'
total_elements:
description: The total number of elements in the response.
type: string
total_pages:
description: The total pages in the response.
type: string
size:
description: The size of the response
type: string
page:
description: the current page in the response.
type: string
number_of_elements:
description: The total number of elements in the response.
type: string
example: |-
{
"content": [
{
"vaaccount_no": "902000226796",
"txn_ref": "PARTNERTEST021652152239691425701",
"merchant_txn_ref": "txnref_8808CB99A0CF688",
"status": "Created",
"status_channel_reason": "",
"is_approved": false,
"approved_by": "",
"approved_time": "0001-01-01T00:00:00Z",
"is_verified": null,
"verified_by": "",
"verified_time": "0001-01-01T00:00:00Z",
"due_date": "2022-05-10T22:30:00Z",
"to_account_no": "1234432112344321",
"channel_ref": "",
"amount": 2000,
"currency": "VND",
"environment": "sandbox"
}
],
"total_elements": 6,
"total_pages": 1,
"size": 10,
"page": 1,
"number_of_elements": 6
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "",
"status_code": "",
"status_message": ""
}
/api/payout/va/{va_number}/balance:
get:
tags:
- Payout APIs
summary: Fetch Virtual Account Balance
parameters:
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: va_number
in: path
schema:
type: string
required: true
example: '902000226613'
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
Balance:
description: The virtual account balance.
type: number
format: double
example: |-
{
"Balance": 0
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "va_number is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "",
"status_code": "4042",
"status_message": "MERCHANT_ALREADY_EXISTS"
}
/api/payout/transaction:
post:
tags:
- Payout APIs
summary: Create Payout
requestBody:
content:
application/json:
schema:
type: object
required:
- key
- channel_key
- signature_hash
- environment
- txn_details
properties:
key:
type: string
description: The unique PortOne key for merchant
channel_key:
type: string
description: The Payment Channel Key listed in PortOne docs
signature_hash:
type: string
description: The SignatureHash generated for the specific payload data
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
split_payouts:
type: boolean
description: Indicates if split payouts are enabled
txn_details:
type: object
required:
- virtual_acc_no
- bank_details
- amount
- currency
- txn_ref
properties:
virtual_acc_no:
type: string
description: Virtual account number
amount:
type: number
format: float
description: Transaction amount
currency:
type: string
description: Currency of the transaction
txn_ref:
type: string
description: Merchant Reference for the transaction
remarks:
type: string
description: Remarks for the transaction
user_message:
type: string
description: Message to be sent to the user
send_email:
type: boolean
description: Whether to send email notifications
send_sms:
type: boolean
description: Whether to send SMS notifications
recipient_emails:
type: array
items:
type: string
format: email
description: List of recipient email addresses for notifications
bank_details:
type: object
required:
- account_no
- account_type
- account_name
properties:
account_no:
type: string
description: Account number
account_type:
type: string
description: The account type of the Benificiary
enum: [BANK, CARD]
account_name:
type: string
description: Account holder's name
bank_name:
type: string
description: Name of the bank
bank_no:
type: string
description: Bank number
email:
type: string
format: email
description: Account holder's email address
phone:
type: string
description: Account holder's phone number
address:
type: string
description: Account holder's address
country:
type: string
description: Country of the account holder
example:
key: "dzcylAVbbBkhkSeg"
channel_key: "GBPRIMEPAY_PAYOUT"
signature_hash: "abc@123"
environment: "sandbox"
split_payouts: false
txn_details:
virtual_acc_no: "dzcylAVbbBkhkSeg-12345678911_sandbox"
amount: 100
currency: "THB"
txn_ref: "txnref_78C57474A06E278"
remarks: "Test remarks"
user_message: "Test User Message"
send_email: false
send_sms: false
recipient_emails:
- "test@test.com"
- "johndoe@gmail.com"
bank_details:
account_no: "7771000241"
account_type: "BANK"
account_name: "John Doe"
bank_no: "025"
bank_name: "Bank of Ayudhya Public Company Limited"
email: "johndoe@gmail.com"
phone: "+919876543210"
address: "123 Example Street, City"
country: "TH"
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Cookie
in: header
schema:
type: string
example: >-
GSESSION=MTYyNzkwNTk2NXxOd3dBTkVSSVNFNVdXVmt6V2tjeVJqVlRUVk5ITWxwVFdFNWFWRkJVVjBGWlExQk9WRE5SVEVSTE1rODBUVmxFVlZRMk1rdENVVkU9fAVA6cptzjrk-73gfhqd_EUydVD2GIbXJ_FcORk2JARz;
Path=/; Expires=Mon, 09 Aug 2021 12:06:05 GMT; Max-Age=604800;
HttpOnly
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
is_success:
description: The boolean value indicating whether Payout transaction was created successfully.
type: boolean
example: |-
{
"is_success": "true"
"message": "Payout created successfully",
"status_code": "2000",
"status_reason": "SUCCESS"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "",
"status_code": "4042",
"status_message": "MERCHANT_ALREADY_EXISTS"
}
/api/merchant/{key}/payout/va:
get:
tags:
- Payout APIs
summary: Fetch Virtual Accounts List
parameters:
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: environment
in: query
schema:
type: string
enum: [live, sandbox]
example: sandbox
- name: key
in: path
schema:
type: string
required: true
example: NPSkZZYefGyKvBxi
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
type: array
items:
$ref: '#/components/schemas/VirtualAccountContent'
description: The array consisting the meta details of virtual accounts.
total_elements:
description: The total number of virtual accounts.
type: number
example: |-
{
"content": [
{
"account_no": "902000225146",
"account_name": "VAP001 KISHAN RAJ",
"bank_code": "WOORIBANK",
"bank_name": "WOORIBANK",
"start_date": "2022-05-10T17:00:00Z",
"channel_key": "EPAY_PAYOUT",
"end_date": "2023-05-10T17:00:00Z",
"balance": 0,
"currency": "VND",
"condition": "NO_CONDITION",
"conditional_amount": 100000
}
],
"total_elements": 10
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/payout/vendor/account/verification:
post:
tags:
- Payout APIs
summary: Verify Beneficiary Account
requestBody:
content:
application/json:
schema:
properties:
portone_key:
description: The unique PortOne key for merchant
type: string
channel_key:
description: The Payment Channel Key listed in PortOne docs
type: string
bank_name:
description: The bank name where the Beneficiary has their bank account
type: string
bank_number:
description: The bank number of the Beneficiary
type: string
account_number:
description: The account number of the Beneficiary
type: string
account_name:
description: The account name of the Beneficiary
type: string
request_id:
description: The request_id of verification request
type: string
type:
description: The account type of the Benificiary
type: string
enum: [BANK, CARD]
signature_hash:
description: The SignatureHash generated for the specific payload data
type: string
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- portone_key
- channel_key
- account_number
- account_name
- request_id
- type
- bank_number
- bank_name
- environment
example:
portone_key: SglffyyZgojEdXWL
channel_key: EPAY_PAYOUT
bank_number: '970423'
account_number: '13210013240000'
account_name: Nguyen Van A
request_id: '1234'
type: account
environment: sandbox
signature_hash: cyrcYRdrADrtdAdrsrdr/gyuGYUafdtuftftftft
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
is_verified:
description: The boolean flag indicating whether the beneficiary account is verified or not.
type: string
bank_number:
description: The bank number mapped with the beneficiary account.
type: string
account_number:
description: The account number of the beneficiary.
type: string
account_name:
description: The name of the beneficiary account.
type: string
request_id:
description: The request_id for verification generated by PSP.
type: string
example: |-
{
"is_verified": "true",
"bank_number": "970423",
"account_number": "13210013240000",
"account_name": "Nguyen Van AA",
"request_id": "1234"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Beneficiary with given account number not found",
"status_code": "4042",
"status_message": "DATA_NOT_FOUND"
}
/api/payout/va/{va_number}/statement:
post:
tags:
- Payout APIs
summary: Fetch Virtual Account Statement
requestBody:
content:
application/json:
schema:
properties:
page:
description: The page number of the data to be fetched.
type: integer
minimum: 1
pagesize:
description: The page size of the data to be fetched.
type: integer
minimum: 1
to:
description: The to Date to fetch the sub-merchant.
type: string
from:
description: The from Date to fetch the sub-merchant.
type: string
type: object
required:
- page
- pagesize
- to
- from
example:
from: '2021-07-01 15:04:05'
to: '2021-08-31 15:04:05'
page: 1
pagesize: 10
parameters:
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: va_number
in: path
schema:
type: integer
required: true
example: '902000229313'
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
$ref: '#/components/schemas/VirtualAccountStatementContent'
total_elements:
description: The total number of elements in the response.
type: string
total_pages:
description: The total pages in the response.
type: string
size:
description: The size of the response
type: string
page:
description: the current page in the response.
type: string
number_of_elements:
description: The total number of elements in the response.
type: string
example: |-
{
"content": [
{
"created_at": "2022-01-27T11:00:04.546847Z",
"vaaccount_no": "902000226503",
"txn_ref": "PARTNERTEST021643306136386459736",
"to_account_no": "288477738990000",
"channel_ref": "EP61F27B330084169688244752153",
"amount": 13500,
"txn_type": "Debit",
"balance": 218624,
"actual_txn_time": "2022-01-27 18:00:03",
"currency": "VND"
}
],
"total_elements": 3,
"total_pages": 1,
"size": 10,
"page": 1,
"number_of_elements": 3
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/payout/{portone_txn_reference}/status:
get:
tags:
- Payout APIs
summary: Fetch Payout Txn Status
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: portone_txn_reference
in: path
schema:
type: string
required: true
example: PARTNERTEST021627934064
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
Status:
description: The status of the payout transaction. Refer PortOne docs for additional details.
type: string
example: |-
{
"Status": "Created"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/payout/{portone_txn_reference}/status/Cancelled:
put:
tags:
- Payout APIs
summary: Cancel Payout Txn
requestBody:
content: {}
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: portone_txn_reference
in: path
schema:
type: string
required: true
example: PARTNERTEST021627934064
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"message": "The transaction status updated successfully to Cancelled state",
"status_code": "2000",
"status_reason": "SUCCESS"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/generateOTP/verify:
post:
tags:
- Payout APIs
summary: Generate OTP - Verify
requestBody:
content:
application/json:
schema:
properties:
email:
description: The email_address of the approver user
type: string
two_fa_type:
description: The type of 2FA setup. Accepted values are email, phone
type: string
enum: [email, phone]
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- email
- two_fa_type
- environment
example:
email: jatin+new@portone.io
two_fa_type: email
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
action:
description: The action type of OTP. Either verify or approve.
type: string
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
type:
description: The type of the 2fa setup. e.g. phone or email
type: string
example: |-
{
"action": "verify",
"message": "OTP sent successfully on +916376933785",
"status_code": "2000",
"status_reason": "SUCCESS",
"type": "phone"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/generateOTP/approve:
post:
tags:
- Payout APIs
summary: Generate OTP - Approve
requestBody:
content:
application/json:
schema:
properties:
email:
description: The email_address of the approver user
type: string
two_fa_type:
description: The type of 2FA setup. Accepted values are email, phone
type: string
enum: [email, phone]
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- email
- two_fa_type
- environment
example:
email: jatin+new@portone.io
two_fa_type: email
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
action:
description: The action type of OTP. Either verify or approve.
type: string
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
type:
description: The type of the 2fa setup. e.g. phone or email
type: string
example: |-
{
"action": "verify",
"message": "OTP sent successfully on +916376933785",
"status_code": "2000",
"status_reason": "SUCCESS",
"type": "phone"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/approve:
post:
tags:
- Payout APIs
summary: Approve Payout Txns
requestBody:
content:
application/json:
schema:
properties:
approver_email:
description: The email_address of the approver user
type: string
approver_name:
description: The name of the approver user
type: string
otp:
description: The One Time Password sent on the configured 2FA setup
type: string
txn_refs:
description: The array of payout transaction references
type: array
items:
type: string
signature_hash:
description: The SignatureHash generated for the specific payload data
type: string
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- approver_email
- otp
- approver_name
- txn_refs
- signature_hash
- environment
example:
approver_email: jatin+new@portone.io
otp: '054447'
approver_name: jatin
txn_refs:
- PARTNERTEST021631824785546830158
signature_hash: '{{signature_hash}}'
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
$ref: '#/components/schemas/VirtualAccountContent'
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"content": [
{
"email_address": "jatin+submerchant10@portone.io",
"status": "INVITED",
"created_at": "2022-02-24T06:29:38.013517Z"
}
],
"message": "Invited Merchants fetched successfully!",
"status_code": "2000",
"status_message": "Success"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchants/{key}/payout/createBeneficiary:
post:
tags:
- Payout APIs
summary: Create A Beneficiary
requestBody:
content:
application/json:
schema:
properties:
email:
description: The email of the Beneficiary
type: string
name:
description: The name of the Beneficiary
type: string
phone:
description: The phone number of the Beneficiary
type: string
address:
description: The address of the Beneficiary
type: string
bank_account_number:
description: The bank account number of the Beneficiary
type: string
bank_account_name:
description: The first name of the Beneficiary registered with the bank
type: string
bank_account_middle_name:
description: The middle name of the Beneficiary registered with the bank
type: string
bank_account_last_name:
description: The last name of the Beneficiary registered with the bank
type: string
bank_name:
description: The bank name where the Beneficiary has their bank account
type: string
bank_no:
description: The bank number of the bank
type: string
bank_account_type:
description: The bank account type of the approver Beneficiary
type: string
enum: [BANK]
country:
description: The country code of the account of the Beneficiary
type: string
payout_channel:
description: The payout channel via which you want to use this Benificiary account
type: string
enum: [GBPRIMEPAY_PAYOUT, PAYNAMICS_PAYOUT, APPOTAPAY_PAYOUT]
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
signature_hash:
description: The SignatureHash generated for the specific payload data
type: string
type: object
required:
- name
- bank_account_number
- bank_account_name
- bank_name
- bank_no
- bank_account_type
- payout_channel
- environment
- signature_hash
example:
name: Nguyen Van A
email: jatin@portone.io
phone: '+919876543210'
address: test
bank_account_number: '288477738990000'
bank_account_name: Nguyen Van A
bank_name: Bank of Ayudhya Public Company Limited
bank_no: '025'
bank_account_type: 'BANK'
payout_channel: GBPRIMEPAY_PAYOUT
environment: sandbox
signature_hash: '{{signature_hash}}'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: key
in: path
schema:
type: string
required: true
example: NPSkZZYefGyKvBxi
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
uuid:
description: The unique identifier for the beneficiary.
type: string
name:
description: The name of the beneficiary.
type: string
email:
description: The email of the beneficiary.
type: string
phone:
description: The phone of the beneficiary.
type: string
address:
description: The address of the beneficiary.
type: string
example: |-
{
"uuid": "37451142-0eb6-4ec4-a954-b27b2c91ea0d",
"name": "Beneficiary-1",
"email": "jatin+new11@portone.io",
"phone": "637693378565",
"address": "test"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
get:
tags:
- Payout APIs
summary: Fetch Beneficiaries List
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: environment
in: query
schema:
type: string
enum: [live, sandbox]
example: sandbox
- name: page
in: query
schema:
type: integer
example: '1'
- name: pageSize
in: query
schema:
type: integer
example: '10'
- name: key
in: path
schema:
type: string
required: true
example: NPSkZZYefGyKvBxi
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
$ref: '#/components/schemas/VirtualAccountContent'
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"content": [
{
"email_address": "jatin+submerchant10@portone.io",
"status": "INVITED",
"created_at": "2022-02-24T06:29:38.013517Z"
}
],
"message": "Invited Merchants fetched successfully!",
"status_code": "2000",
"status_message": "Success"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/verify:
post:
tags:
- Payout APIs
summary: Verify Payout Transactions
requestBody:
content:
application/json:
schema:
properties:
approver_email:
description: The email_address of the approver user
type: string
approver_name:
description: The name of the approver user
type: string
otp:
description: The One Time Password sent on the configured 2FA setup
type: string
txn_refs:
description: The array of payout transaction references
type: array
items:
type: string
signature_hash:
description: The SignatureHash generated for the specific payload data
type: string
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- approver_email
- otp
- approver_name
- txn_refs
- signature_hash
- environment
example:
email: sagar@portone.io
otp: '131371'
name: teststaging1
txn_refs:
- PARTNERTEST021631134187971232347
- PARTNERTEST021631134187965732348
signature_hash: emFLgXdZJQzpm1O8HcHWi16KJRxeg+wuTGzr1wv7Nng=
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"message": "Transactions verified successfully!",
"status_code": "2000",
"status_reason": "SUCCESS"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "verify step is disabled.",
"status_code": "4001",
"status_reason": "INVALID_PAYMENT_REQUEST"
}
/api/payout/va/{va_number}/download-statement:
get:
tags:
- Payout APIs
summary: Download Virtual Account Statement
parameters:
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: NPSkZZYefGyKvBxi
- name: from
in: query
schema:
type: string
example: '2021-08-20T13:00:00+05:30'
- name: to
in: query
schema:
type: string
example: '2021-08-20T14:00:00+05:30'
- name: va_number
in: path
schema:
type: string
required: true
example: '902000229313'
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
content:
$ref: '#/components/schemas/VirtualAccountContent'
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"content": [
{
"email_address": "jatin+submerchant10@portone.io",
"status": "INVITED",
"created_at": "2022-02-24T06:29:38.013517Z"
}
],
"message": "Invited Merchants fetched successfully!",
"status_code": "2000",
"status_message": "Success"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/resendOTP/verify:
post:
tags:
- Payout APIs
summary: Verify Resend OTP
requestBody:
content:
application/json:
schema:
properties:
email:
description: The email_address of the verfier user
type: string
two_fa_type:
description: The type of 2FA setup. Accepted values are email, phone
type: string
enum: [email, phone]
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- email
- two_fa_type
- environment
example:
email: test@portone.io
two_fa_type: email
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
action:
description: The action type of OTP. Either verify or approve.
type: string
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
type:
description: The type of the 2fa setup. e.g. phone or email
type: string
example: |-
{
"action": "verify",
"message": "OTP sent successfully on +916376933785",
"status_code": "2000",
"status_reason": "SUCCESS",
"type": "phone"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
/api/merchant/payout/resendOTP/approve:
post:
tags:
- Payout APIs
summary: Approve Resend OTP
requestBody:
content:
application/json:
schema:
properties:
email:
description: The email_address of the approver user
type: string
two_fa_type:
description: The type of 2FA setup. Accepted values are email, phone
type: string
enum: [email, phone]
environment:
description: The environment of the transaction is either live OR sandbox
type: string
enum: [live, sandbox]
type: object
required:
- email
- two_fa_type
- environment
example:
email: test@portone.io
two_fa_type: email
environment: sandbox
parameters:
- name: X-Portone-Client-Key
in: header
schema:
type: string
example: SglffyyZgojEdXWL
- name: Authorization
in: header
description: The `Authorization` header is used to include the JWT for authenticating API requests; learn how to generate the token <a href="/docs/jwt-authentication" target="_blank">in this guide</a>
schema:
type: string
example: >-
Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDSEFJUEFZIiwic3ViIjoiY2hhaXBheV9jbGllbnRfaWQiLCJpYXQiOjE1MTYyMzkwMjIsImV4cCI6MTgzMDQwMDMxNn0.CJHQTY-6v5ILILamo13BhVdgK68AIH1oPwXYH4Iyffs
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for API request execution result
type: string
status_reason:
description: The status_reason for API request execution result
type: string
example: |-
{
"message": "Transactions approved successfully!",
"status_code": "2000",
"status_message": "Success"
}
'401':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "key is a required field",
"status_code": "4010",
"status_reason": "INVALID_UNAUTHORISED_TRANSACTION_IAMPORTKEY_ERROR"
}
'400':
description: Failure response
content:
application/json:
schema:
properties:
message:
description: The description of the API request execution result
type: string
status_code:
description: The status_code for transaction of transaction creation
type: string
status_reason:
description: The status_reason for transaction of transaction creation
type: string
example: |-
{
"message": "Merchant with passed PortOne key not found",
"status_code": "4042",
"status_message": "MERCHANT_NOT_FOUND"
}
components:
schemas:
PayoutDataContent:
title: PayoutDataContent
type: array
description: The object containing the Payouts data of the sub-merchant.
properties:
vaaccount_no:
type: string
description: The virtual account of the customer.
txn_ref:
type: string
description: The unique transaction reference for the Payout.
merchant_txn_ref:
type: string
description: The unique transaction reference for merchant
status:
type: string
description: The status of the Payout.
status_channel_reason:
type: string
description: The PSP reason of the Payout.
is_approved:
type: string
description: The boolean flag indicating whether the payout transaction is approved or not.
approved_by:
type: string
description: The unique identifier of the user approving the payout transaction.
approved_time:
type: string
description: The timestamp of the approval time.
is_verified:
type: string
description: The boolean flag indicating whether the payout transaction is verified or not.
verified_by:
type: string
description: The unique identifier of the user verifying the payout transaction.
verified_time:
type: string
description: The timestamp of the verfification time.
due_date:
type: string
description: The timestamp of due date to complete the payout transaction.
to_account_no:
type: string
description: The account_number to which payout is to be done.
channel_ref:
type: string
description: The uniue order reference generated of the transaction by the PSP.
amount:
type: number
format: double
description: The amount of the payout transaction.
currency:
type: string
description: The currency of the payout transaction.
environment:
type: string
enum: [live, sandbox]
description: The environment of the transaction is either live OR sandbox.
VirtualAccountContent:
title: VirtualAccountContent
type: object
description: The object containing the virtual account details.
properties:
account_no:
type: string
description: The account_number to virtual account.
account_name:
type: string
description: The name of the virtual account.
bank_code:
type: string
description: The bank_code of the virtual account.
bank_name:
type: string
description: The bank name of the virtual account.
start_date:
type: string
description: The creation date of the virtual account.
channel_key:
type: string
description: The PSP Channel Key linked to the virtual account. Refer PortOne docs for additional details.
end_date:
type: string
description: The expiry_date of the virtual account.
balance:
type: number
format: double
description: The amount present in the virtual account.
currency:
type: string
description: The currency supported by the virtual account for the transaction.
condition:
type: string
description: Refer PortOne docs for additional details.
conditional_amount:
type: number
format: double
description: The amount limit conditional to the PSP
VirtualAccountStatementContent:
title: VirtualAccountStatementContent
type: object
description: The object containing the virtual account statement details.
properties:
created_at:
type: string
description: The created date of the virtual account.
vaaccount_no:
type: string
description: The virtual account number.
txn_ref:
type: string
description: The transaction reference
to_account_no:
type: string
description: The account_number to which the payment transaction is done.
channel_ref:
type: string
description: The unique reference of the virtual account generated by the PSP.
amount:
type: number
format: double
description: The amount of the transaction done on virtual account.
txn_type:
type: string
description: The type of the payout transaction.
balance:
type: number
format: double
description: The current balance of the virtual account.
actual_txn_time:
type: string
description: The actual_txn_time of the payout transaction.
currency:
type: string
description: The currency code of the transaction.