Payment Hub API (1.0.0)

Introduction

The Payment Hub API is designed based on the ISO 20022 messaging definitions to capture and process payments and perform related functions. It supports a host of functions where the client could be playing the role of a debtor agent or a creditor agent. The Payment Hub API supports the following payment rails.

Payment Rail Version
TCH-RTP 3.0
FedNow Release 1
Fedwire Funds Service 3.0.7
ACH & ACH Sameday N/A

Authentication

Overview

Requests are authenticated using the api_key which is shared with clients at the time of client on-boarding. Clients can only invoke those APIs based on the permissions assigned to the api_key

OPAY1-HMAC-SHA256

The HTTP Authorization request header is used to provide authentication information. This header looks like the following.

Authorization : OPAY1-HMAC-SHA256 Credential=...,Signature=...

The constituents of the authorization header are explained in the table below.

Item Description
OPAY1-HMAC-SHA256 The algorithm that is used to calculate the signature.
Credential The api key
Signature The Base 64 encoded value of the signature bytes. Calculating the signature bytes is explained below.

Signature Calculation

Signature is calculated as follows.

Base64(HMAC-SHA256(secret,input))

The calculation is explained in detail below.

Item Description
Base64() The encoding of the signature bytes.
HMAC-SHA256() The cryptographic function that computes the HMAC using the SHA256 algorithm with the client secret provided.
secret The secret key specific to the client that is shared with the client during onboarding.
input The string value of the canonicalized transform of request data that includes the HTTP method, URL, headers, query parameters and body. The details of computing the input is explained below.

The string input is computed as follows.

input = method():path():queryString():headers():payload()

Each of the substrings is explained below.

Item Description
method() The HTTP method for the given request and evaluates to one of GET, PUT, POST or DELETE.
path() The absolute path component of the URI—everything starting with the "/" that follows the domain name and up to the end of the string or to the question mark character ("?") if the given URL has query string parameters.
queryString() A string in the format param1=value1&param2=value2&…, where the query parameters are sorted in alphabetical order of the parameter names. In case multiple values are present for a parameter, the query parameters are sorted in alphabetical order of the parameter names and subsequently by the parameter values for each such parameter. Both the parameter names and their values should be trimmed for leading and trailing whitespaces, should be in their normal pre-encoded format. Only parameters with non-empty values, after trimming the leading and trailing whitespaces, should be included. If there are no query parameters at all, the queryString() should evaluate to an empty string (“”).
headers() A string in the format header1=value1&header2=value2&.......&headerN=valueN. Sort the headers alphabetically. Both the header names and their values must be trimmed for leading and trailing white-space, and in their normal pre-encoded format . Only the headers listed by the application and those that are non-empty, after trimming the leading and trailing whitespaces, are to be included.
payload() The raw HTTP body

Error Handling

HTTP Response Codes The Payment Hub API uses the standard HTTP response codes to return the status of an API call. An HTTP response code of 2xx indicates success. An HTTP response code of 4xx indicates a client error. An HTTP response code of 5xx indicates a processing error. In these cases, the API returns a list of errors wrapped in the admi.002.001.001 message.

Error Codes

Each error in the list has a code, message, and specifics on which field the error pertains to (if applicable). In addition to these details, it can also have a list of inner errors that caused this error, on the lines of an Exception Stack trace.

Below table specifies the Error category and Error code.

Error Category Code
Validation Error HUB-10-XXXXXX.
Business Error HUB-20-XXXXXX.
System Error HUB-50-XXXXXX.
          // format
          <Errors>
            <error>
                  <code>HUB-10-132544</code>
                  <message>Invalid Field<message>
            </error>
            <error>
                  <code>HUB-10-120824</code>
                  <message>Empty Field<message>
            </error>
          </Erros>

Duplicate Requests and Retries

The Payment Hub API supports idempotency for the HTTP methods POST, PUT, DELETE and PATCH using the header parameter, namely, idempotent_request_key. In other words, any POST, PUT, DELETE and PATCH request will be considered as a duplicate request or retry and not reprocessed by the API if all the request parameters, including the path and query parameters, the request headers and the request body, match with an earlier request. In case of duplicate requests or retries, the API response will be that of the original request. The idempotent_request_key is valid only for a duration of one hour from the time of the original request. Any duplicate request or retries after a gap of one hour from the original request will be considered as a fresh request.

Message Id

Point-to-point reference, as assigned by the instructing party, and sent to the next party in the chain to unambiguously identify the message. The instructing party must make sure that MessageIdentification is unique per instructed party for a pre-agreed period.

Below is the format used to generate the Message Id:

Format:

POS Length Description
1 1 C
2-11 10 ClientKey Ex: 5822512250
12-33 22 UUID
34-35 2 Julian Date

Below code snippet to generate UUID for 22 characters:

UUID uuid = UUID.randomUUID();
// Create byte[] for base64 from uuid
byte[] src = ByteBuffer.wrap(new byte[16])
        .putLong(uuid.getMostSignificantBits())
        .putLong(uuid.getLeastSignificantBits())
        .array();

String uuidInBase64UrlSafe = null;
uuidInBase64UrlSafe = Base64.getUrlEncoder().encodeToString(src);
if (uuidInBase64UrlSafe.length() < 22) {
    StringUtils.rightPad(uuidInBase64UrlSafe, 22, "=");
}
uuidInBase64UrlSafe = uuidInBase64UrlSafe.substring(0, 22);

Request Headers

Every API call should include the following request headers to define the context in which the API is invoked.

Request Header Parameters:
client_key
required
string <= 10 characters ^[a-zA-Z0-9]{1,10}$

The unique identifier assigned by the Payment Hub to the client.
Example:CLIAAADDD0910

product
required
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

The product identifier corresponding to the API.
Allowed values:A2A, payouts, retail_transfers, business_transfers, account_opening, collections, cosmos

payment_channel
required
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

The FI channel vide which the API is invoked.
Allowed values:retail_banking, commercial_banking, bank_bos, atm, kiosk, pos, mobile_banking, csm, online, hosted_portal

access_channel
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

This is the internal channel through which the API is invoked.
Example:web_portal, agent

requestor_type
required
string <= 50 characters ^[a-zA-Z0-9_ -]{1,50}$

Identifies the requestor type for the API request.
Possible values:party, client_agent, system, external_agent

client_requestor_reference
string <= 100 characters ^[a-zA-Z0-9_.@&+ -]{1,100}$

The identifier for the requestor of the API, in the client system. Either the client_requestor_reference or the requestor must be available in every API request for audit purposes.

requestor
string <= 100 characters ^[a-zA-Z0-9_.@& -]{1,100}$

The identifier for the requestor of the API, in the Payment Hub. Either the client_requestor_reference or the requestor must be available in every API request for audit purposes.

context_variant
string <= 50 characters ^[a-zA-Z0-9_= -]{1,50}$

To be used if there is a need to provide additional contextual information. For future use.

idempotent_request_key
required
string <= 50 characters ^[a-zA-Z0-9_=-]{1,50}$

The unique token that clients can generate and maintain in order to identify an API request. This is used to identify duplicate requests and retrials.
Example:6bc5f0f49ee2412a93b0596d6a3c4eca

trace_id
string <= 50 characters ^[a-zA-Z0-9_=-]{1,50}$

The unique reference that can be used for tracing and debugging an API call.
Example:trace49ee2412a93b0596d6a3c4eca

timestamp
required
string <ISO 8601 DateTime with offset YYYY-MM-DDThh:mm:ss.sss+/-hh:mm>

The UTC datetime when the API is invoked, in the ISO 8601 format
Example:2020-09-18T17:31:34.000-05:30

X-PAAS-Headers
string

For additional context information such as end user IP address, session information and so on. The content is a list of key-value pairs separated by semicolon (;) where key and value are separated by equals sign(=).
Example:session=SADKAS2131312;ip_address=10.112.25.45

Response Headers

HTTP header parameters are returned as part of every API response. Most of these parameters match those sent in the request. Every API call has the following response headers.

Response Header Parameters:
request_uuid
required
string <= 50 characters ^[a-zA-Z0-9_=-]{1,50}$

The unique ID for the request, generated by the API, that can be used for tracing and audit trail.

client_key
string <= 10 characters ^[a-zA-Z0-9]{1,10}$

The unique identifier assigned by the Payment Hub to the client.
Example:CLIAAADDD0910

product
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

The product identifier corresponding to the API.
Allowed values:A2A, payouts, retail_transfers, business_transfers, account_opening, collections, cosmos

payment_channel
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

The FI channel vide which the API is invoked.
Allowed values:retail_banking, commercial_banking, bank_bos, atm, kiosk, pos, mobile_banking, csm, online, hosted_portal

access_channel
string <= 100 characters ^[a-zA-Z0-9_.& -]{1,100}$

This is internal channel through which the API is invoked.
Example:web_portal, agent

requestor_type
string <= 50 characters ^[a-zA-Z0-9_ -]{1,50}$

Identifies the requestor type for the API request.
Possible values:party, client_agent, system, external_agent

client_requestor_reference
string <= 100 characters ^[a-zA-Z0-9_.@&+ -]{1,100}$

The identifier for the requestor for the API, in the client system. Either the client_requestor_reference or the requestor has to be available in every API request for audit purposes.

requestor
string <= 100 characters ^[a-zA-Z0-9_.@& -]{1,100}$

The identifier for the requestor of the API, in the Payment Hub. Either the client_requestor_reference or the requestor has to be available in every API request for audit purposes.

context_variant
string <= 50 characters ^[a-zA-Z0-9_= -]{1,50}$

To be used if there is a need to provide additional contextual information. For future use.

idempotent_request_key
string <= 50 characters ^[a-zA-Z0-9_=-]{1,50}$

The unique token that clients can generate and maintain in order to identify an API request. This is used to identify duplicate requests and retrials.
Example:6bc5f0f49ee2412a93b0596d6a3c4eca

X-PAAS-Headers
string

For additional context information such as end user IP address, session information and so on. The content is a list of key-value pairs separated by semicolon (;) where key and value are separated by equals sign(=).
Example:session=SADKAS2131312;ip_address=10.112.25.45

Service Level

The user service level offered by Payment Hub API includes payment options for instant, urgent, and regular response times. The fulfillment service level offered by Payment Hub API includes options for real-time payments, card payments with Visa, ACH, and ACH Sameday. These service levels are used to ensure seamless and efficient transaction handling. Payment Hub API accepts the service levels given below.

User service Level Fulfillment Service Level
COSMOS.RT.INST COSMOS.RT.TCH.RTP, COSMOS.RT.FEDNOW
COSMOS.RT.URGP COSMOS.RT.FEDWIRE, COSMOS.RT.ACH.SMDY
COSMOS.RT.RGLR COSMOS.RT.ACH

FI as Debtor Agent

Initiate Customer Credit Transfer

The Initiate Customer Credit Transfer API is used to request movement of funds from the debtor account to the creditor. The debtor or the Initiating Party initiates the payment request to their corresponding debtor agent. The debtor agent is the account servicer of the debtor. The request is sent using the CustomerCreditTransferInitiation The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as accepted and settlement completed(ACCC), accepted without posting(ACWP), rejected(RJCT) etc.,.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

Events

Following events are triggered in the context of this API
"initiate_customer_credit_transfer.account_debited""initiate_customer_credit_transfer.credit_settlement_completed""initiate_customer_credit_transfer.account_credited_posting_pending""initiate_customer_credit_transfer.payment_acknowledged""initiate_customer_credit_transfer.account_debit_reversed""receive_rfi.unable_to_apply_payment"
post/initiate_customer_credit_transfer
https://api.orbipay.com/cosmosapi/v1/initiate_customer_credit_transfer

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.001.001.09>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Prepare Initiate Customer Credit Transfer

The Prepare Initiate Customer Credit Transfer API is used to do the validation of the request to fulfill the payment. The request is sent using the CustomerCreditTransferInitiation The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as received(RCVD), rejected(RJCT) etc.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

post/initiate_customer_credit_transfer/prepare
https://api.orbipay.com/cosmosapi/v1/initiate_customer_credit_transfer/prepare

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.001.001.09>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Send Additional Payment Info

The AdditionalPaymentInformaion message is sent by an account servicing institution to an account owner. This message is used to provide additional or corrected information on a payment instruction or statement entry, in order to allow reconciliation. The request is processed and responds with the CaseResponse object. When the original payment information is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/respond_to_rfi/send_addl_payment_info
https://api.orbipay.com/cosmosapi/v1/respond_to_rfi/send_addl_payment_info

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.028.001.09>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Send Unable to Apply RFP

The Request for Information for the RFP or the UnableToApply message is sent by a case creator or a case assigner to a case assignee. This message is used to initiate an investigation of a payment instruction that cannot be executed or reconciled. The request is processed and responds with the CaseResponse object. When the original RFP instruction is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

Events

Following events are triggered in the context of this API.
"send_rfi.received_addl_rfp_info"
post/send_rfi/unable_to_apply_rfp
https://api.orbipay.com/cosmosapi/v1/send_rfi/unable_to_apply_rfp

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.026.001.07>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Send Request for Return of Funds

This message is used to request the cancellation of an original payment instruction. The CustomerPaymentCancellationRequest message is issued by the initiating party to request the cancellation of an initiation payment message previously sent. The request is processed and responds with the CaseResponse object. When the original payment information is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response. The final outcome, ResolutionOfInvestigation is sent as an event or Webhook to the case creator indicating the status of the RROF. Whether the payment can be cancelled or not.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

Events

Following events are triggered in the context of this API.
"send_rrof.accepted""send_rrof.rejected"
post/send_rrof
https://api.orbipay.com/cosmosapi/v1/send_rrof

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.055.001.08>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Accept Or Reject RFP

The CreditorPaymentActivationRequestStatusReport message is sent by the agent to inform the RFP requestor about the positive or negative status of a creditor payment activation request. The message returns a 200 success response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/respond_to_rfp
https://api.orbipay.com/cosmosapi/v1/respond_to_rfp

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.014.001.07>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:admi.002.001.01>
<Document>

Send Remittance Advice

The RemittanceAdvice message is initiated by the debtor agent to provide remittance details that are associated with a payment.

Request Body schema:
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/send_remittance_advice
https://api.orbipay.com/cosmosapi/v1/send_remittance_advice

Please click on a language icon above to try out the API

Request samples

Content type
Copy
Expand all Collapse all
{
}

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:admi.002.001.01>
<Document>

Initiate FI Credit Transfer

The FinancialInstitutionCreditTransfer message is sent by a debtor financial institution to a creditor financial institution, directly or through other agents and/or a payment clearing and settlement system. It is used to move funds from a debtor account to a creditor, where both debtor and creditor are financial institutions. The request is sent using the FinancialInstitutionCreditTransfer The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as accepted and settlement completed(ACCC), accepted without posting(ACWP), rejected(RJCT) etc.,.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

Events

Following events are triggered in the context of this API
"initiate_fi_to_fi_credit_transfer.credit_settlement_completed""initiate_fi_to_fi_credit_transfer.account_credited_posting_pending"
post/initiate_fi_to_fi_credit_transfer
https://api.orbipay.com/cosmosapi/v1/initiate_fi_to_fi_credit_transfer

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pacs.009.001.08>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pacs_002.001.10>
<Document>

Initiate Gateway Credit Transfer

The Initiate Gateway Credit Transfer API is used to move funds from the debtor account to the creditor. The FI or the debtor agent sends the message to Payment Hub for the clearing. Payment Hub acts as a clearing gateway in this context. API responds with PaymentStatusReport with the appropriate status.

Request Body schema:
Document
required
object

Responses

200

Success PaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

post/initiate_gateway_credit_transfer
https://api.orbipay.com/cosmosapi/v1/initiate_gateway_credit_transfer

Please click on a language icon above to try out the API

Request samples

Content type
Copy
Expand all Collapse all
{
}

Response samples

Content type
Copy
Expand all Collapse all
{
}

FI as Creditor Agent

Send Additional RFP Info

The AdditionalPaymentInformation message is sent by an account servicing institution to an account owner. This message is used to send additional payment RFP information to provide additional or corrected information on a payment instruction or statement entry, to allow reconciliation. The request is processed and responds with the CaseResponse object. When the original payment information is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/respond_to_rfi/send_addl_rfp_info
https://api.orbipay.com/cosmosapi/v1/respond_to_rfi/send_addl_rfp_info

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.028.001.09>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Send Request for Payment

The CreditorPaymentActivationRequest message is sent by the Creditor(sending party) to the Debtor (receiving party), directly or through agents, requesting for the payment RFP. It is used by a Creditor to request movement of funds from the debtor account to a creditor. The API sends the request to the desired debtor agent seeking approval for the RFP sent by the Creditor or the Creditor agent. The API responds with the appropriate status in the CreditorPaymentActivationRequestStatusReport. Once the debtor acts on the RFP request, an event is generated with accept or reject status and the event is published to the creditor agent.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

Events

The following events are triggered in the context of this API.
"send_rfp.accepted""send_rfp.rejected"
post/send_rfp
https://api.orbipay.com/cosmosapi/v1/send_rfp

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.013.001.07>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.014.001.07>
<Document>

Cancel Request for Payment

Creditor agent sends a cancel RFP CustomerPaymentCancellationRequest message to the debtor agent indicating that the RFP is no longer applicable. The Payment Hub API processes the request and responds with the CaseResponse. The response indicates whether the Cancel RFP has been resolved or rejected in the ResolutionOfInvestigation or RejectInvestigation respectively with the appropriate statuses.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/send_rfp/cancel_rfp
https://api.orbipay.com/cosmosapi/v1/send_rfp/cancel_rfp

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.055.001.08>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Send Unable to Apply Payment

The Request for Information or the UnableToApply message is sent by a case creator or a case assigner to a case assignee. This message is used to initiate an investigation of a payment instruction that cannot be executed or reconciled. The request is processed and responds with the CaseResponse object. When the original payment information is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

Events

Following events are triggered in the context of this API.
"send_rfi.received_additional_payment_info"
post/send_rfi/unable_to_apply_payment
https://api.orbipay.com/cosmosapi/v1/send_rfi/unable_to_apply_payment

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.026.001.07>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Respond to RROF

The creditor agent resolves the RROF request using the ResolutionOfInvestigation message with the appropriate status. The request is processed and responds with the CaseResponse object. When the original payment information is not located in the Payment Hub API, it returns a RejectInvestigation in the CaseResponse object. Otherwise, it returns the NoticeOfCaseAssignment in the CaseResponse object. Appropriate status codes are returned in the response.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

Events

Following events are triggered in the context of this API.
"receive_rrof.assigned_to_creditor"
post/respond_to_rrof/resolve
https://api.orbipay.com/cosmosapi/v1/respond_to_rrof/resolve

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:camt.029.001.09>
<Document>

Response samples

Content type
application/xml
Example
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?>

Send Payment Acknowledgement

The creditor acknowledges the payment using the CustomerPaymentStatusReport message.

Request Body schema: application/xml
Document
required
object

Responses

200

Success

400

Bad Request

500

System Error.

502

Server Error.

post/receive_payment/send_ack
https://api.orbipay.com/cosmosapi/v1/receive_payment/send_ack

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=https://api.orbipay.com/cosmosapi/v1/receive_payment/send_ack>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:admi.002.001.01>
<Document>

Initiate Customer Direct Debit

The Customer Direct Debit message is sent by the is sent by the initiating party or creditor agent to pull funds from debtor(s). The message may contain single or bulk debtor(s) for a creditor. The request is sent using the CustomerDirectDebitInitiation message. This API is generally usd for ACH or ACH Sameday use-cases

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

post/initiate_customer_direct_debit
https://api.orbipay.com/cosmosapi/v1/initiate_customer_direct_debit

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.008.001.10>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

XB Credit Transfers

Inquire Initiate Customer Cross Border Credit Transfer

The Inquire Initiate Customer Cross Border Credit Transfer API is used to get the quote for the credit transfer. The request is sent using the CustomerCreditTransferInitiation. The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as Accepted and Technical Validation complete(ACTC), Rejected(RJCT), etc.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

post/initiate_customer_xb_credit_transfer/inquire
https://api.orbipay.com/cosmosapi/v1/initiate_customer_xb_credit_transfer/inquire

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.001.001.09>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Confirm Initiate Customer Cross Border Credit Transfer

The Confirm Initiate Customer Cross Border Credit Transfer API is used to confirm the credit transfer with the earlier quote received. The request is sent using the CustomerPaymentStatusReport. The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as accepted and settlement completed(ACCC), accepted without posting(ACWP), rejected(RJCT), etc.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

Events

Following events are triggered in the context of this API
"initiate_customer_xb_credit_transfer.credit_settlement_completed""initiate_customer_xb_credit_transfer.account_credited_posting_pending""initiate_customer_xb_credit_transfer.payment_acknowledged"
post/initiate_customer_xb_credit_transfer/confirm
https://api.orbipay.com/cosmosapi/v1/initiate_customer_xb_credit_transfer/confirm

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Cancel Initiate Customer Cross Border Credit Transfer

The Cancel Initiate Customer Cross Border Credit Transfer API is used to cancel the earlier submitted credit transfer. The request is sent using the CustomerPaymentStatusReport. The API processes the request and responds with the CustomerPaymentStatusReport which provides the appropriate status of the payment initiation request such as Cancelled(ACWP), Rejected(RJCT), etc.

The cancellation for an outbound wire will be allowed when the txn is with status is ACTC/ACFC/ACPD.
Only RegE complaint (Consumer initiated) transfers are eligible for cancellation within 30 mins of confirming the transfer.

Request Body schema: application/xml
Document
required
object

Responses

200

Success CustomerPaymentStatusReport

400

Bad Request

500

System Error.

502

Server Error

post/initiate_customer_xb_credit_transfer/cancel
https://api.orbipay.com/cosmosapi/v1/initiate_customer_xb_credit_transfer/cancel

Please click on a language icon above to try out the API

Request samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>

Response samples

Content type
application/xml
Copy
Expand all Collapse all
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns=urn:iso:std:iso:20022:tech:xsd:pain.002.001.10>
<Document>