Create an investigation

This endpoint allows you to create new investigations (linked to an ongoing payment using fxId or enquiries with our client support team.

By providing the original fxId of the payment in the API request, you can start an investigation against an existing payment.

If you have a general enquiry, you can call the same endpoint without the fxId to create a general enquiry.

The API request needs to contain a valid Topic and Reason code. Please see below list of allowed Topic and Reason codes & where fxId is mandatory.

fxid Required?Topic CodeTopic DescriptionReason CodeReason Description
YTOPIC00029CancelREASON00077Hold payment
YREASON00075Incorrect amount
YREASON00070Incorrect value date
YREASON00069Incorrect account details
YREASON00074Recall request
YREASON00122Transaction duplicated
YREASON00072Transaction made by mistake
YTOPIC00030Invoice/Foreign Exchange ConfirmationREASON00076Billing not received
YREASON00123Foreign Exchange Confirmations not received
YREASON00081Incorrect billing
YREASON00078Incorrect Foreign Exchange Confirmations
YTOPIC00028ModifyREASON00075Incorrect amount
YREASON00070Incorrect value date
YREASON00069Incorrect account details
YTOPIC00026Payment StatusREASON00065On hold with beneficiary bank
YREASON00121Payment not debited
YREASON00071Payment not received
YREASON00068Payment pending approval
YREASON00120Payment pending execution
YREASON00066Pending limit review
YREASON00064Proof of payment
NTOPIC00023Batch UploadREASON00114Beneficiary template
NREASON00061Technical Issues
NREASON00057Transaction
NTOPIC00019Beneficiary TemplateREASON00110Access archived data
NREASON00046Access all beneficiary
NREASON00054Beneficiary to Payment
NREASON00045Create Beneficiary
NREASON00128Modify a beneficiary
NREASON00032Technical Support
NTOPIC00025ComplaintsREASON00062Complaints
NTOPIC00043REASON00317Currency requirement
NREASON00131New flow enquiry
NTOPIC00027FeedbackREASON00067Feedback
NTOPIC00002OtherREASON00001Other
NTOPIC00046Pay to StoneXREASON00136Direct Debit Setup
NREASON00137Invoice request
NREASON00140My account details
NREASON00138Pay first issues
NREASON00139Reimbursement updates
NREASON00141StoneX Account details
NTOPIC00018Payment SupportREASON00110Access archived data
NREASON00038Amount/rate discrepancy
NREASON00043Audit request
NREASON00088Beneficiary to Payment
NREASON00035Cancel payment
NREASON00109Intermediary Bank request
NREASON00036Make a payment
NREASON00107Missing/Pending MT103
NREASON00042PayFirst support
NREASON00108Rate/value dates
NREASON00032Technical Support
NREASON00041Temporary limit increase
NTOPIC00040Technical SetUpREASON00117File upload
NREASON00144Other
NREASON00143SFTP
NREASON00118Technical issue
NREASON00119XMH
NREASON00116XML
NTOPIC00021Training requiredREASON00049Functionality
NREASON00113Role
NTOPIC00024User setupREASON00063Technical issues
NREASON00058Training required
NREASON00059User setup required

Request

The following fields are available in the API request structure:

FieldData TypeRequired?Description
fxIdStringNProvide the unique fxId of the transaction against which you're raising the investigation. If your query is not related to an ongoing payment, you can leave this blank.
reasonCodeStringYProvide a valid reason code. See list above.
topicCodeStringYProvide a valid topic code. See list above.
descriptionStringYPlease add details of the issue in this field.
additionalDetailsObjectNOptional object to provide additional information with the investigation
> orderingInstitutionObjectNUse this object to add details about ordering institution. Ordering Institution refers to the entity initiating the investigation on behalf of the sender of the payment.
> > nameStringNName of the ordering institution
> > contactInfoArray of objectsNUse this to add contact information about ordering institution
> > > firstNameStringNFirst Name
> > > lastNameStringNLast Name
> > > emailStringNEmail
> instructingInstitutionObjectNUse this object to send the details of the instructing institution. Instructing institution refers to the entity managing liaison with StoneX.
> > nameStringNName of the instructing institution
> userInfoObjectNUse this object to send user details
> > createdByObjectNObject to add details of the person who created the investigation
> > > contactInfoObjectNObject to add contact details of the person raising the investigation
> > > > firstNameStringNFirst Name
> > > > lastNameStringNLast Name
> > > > emailStringNEmail

Example request

Please see below a sample request code for creating a new investigation:

{
    "fxid": 1234567,
    "reasonCode": "REASON00077",
    "topicCode": "TOPIC00029",
    "description": "Please change the buy amount to 300",
    "additionalDetails": {
        "orderingInstitution": {
            "name": "First Bank",
            "contactInfo": [
                {
                    "firstName": "Adam",
                    "lastName": "Bird",
                    "email": "[email protected]"
                }
            ]
        },
        "instructingInstitution": {
            "name": "Aspire Bank Ltd"
        },
        "userInfo": {
            "createdBy": {
                "contactInfo": {
                    "firstName": "John",
                    "lastName": "Scott",
                    "email": "[email protected]"
                }
            }
        }
    }
}

Response

The response contains the details of the support ticket created along with supportTicketId. You can use this to track about the investigation going forward by calling the View Investigation endpoint.

Example response

If the investigation is created successfully, the response will contain a unique supportTicketId along with the status of the investigation.

You can use this supportTicketId to query about this investigation further.

{
    "supportTicketId": "CS5100280091",
    "createdBy": "John Scott",
    "createdDate": "2025-05-19T10:37:37.455Z",
    "fxId": "1234567",
    "topic": "Cancel",
    "reason": "Hold Payment",
    "status": "OPEN",
    "orderingInstitutionName": "FNBB Bank",
    "instructingInstitution": "Chase Bank Ltd",
    "messages": [
        {
            "createdBy": "John Scott",
            "createdDate": "2025-05-19T10:37:37.455Z",
            "comment": "Please change the buy amount to 300",
            "attachments": [],
            "orderingInstitutionName": "FNBB Bank",
            "instructingInstitution": "Chase Bank Ltd"
        }
    ]
}

Error Scenarios

  • If you provide an invalid reasonCode and topicCode combination that is not supported, the API will return an error as below:
{
    "title": "Bad Input",
    "status": 400,
    "detail": "Invalid Topic/reason/Description entered. Please refer to documentation for valid topic or reason or description.",
    "traceId": "00-8d3af76c927da98223de15ab9d37259c-092240d735f1922f-00",
    "errorCode": "INV00003"
}
  • Similarly, if you created an investigation with an invalid fxId, then you will receive the below error
{
    "title": "Bad Input",
    "status": 400,
    "detail": "Trade could not be found",
    "traceId": "00-2c8954514e40f8591987944c6b196ce5-7c96de0797b89fbb-00",
    "errorCode": "INS00001"
}
  • If you create an investigation but do not provide a description in the request, you will get the below error
{
    "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "errors": {
        "Description": [
            "The Description field is required."
        ]
    },
    "traceId": "00-8959e49171803cce8dbd797610dec17a-b4ba3157ae3f3f3c-00"
}
  • If you create an investigation with a fxId which already has an ongoing investigation, you will get the below error
{
    "title": "Bad Input",
    "status": 400,
    "detail": "Investigation is already under progress for this FXID",
    "traceId": "00-935b6cc68d2aabf962846dbe8d34e780-fffe8827935918d3-00",
    "errorCode": "INV00007"
}
  • If you create an investigation with a fxId which is not yet in a 'executed' status, you will get the below error
{
    "title": "Bad Input",
    "status": 400,
    "detail": "Incorrect status of FXID. Please provide \"Executed\" FXID to create an investigation",
    "traceId": "00-6dd9f984ca604dfc5233ffe0203a3a22-b6535f14f7895cf1-00",
    "errorCode": "INV00008"
}
Language
Credentials
Bearer
JWT
URL
Click Try It! to start a request and see the response here!