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
YTOPIC00030FECREASON00078Foreign Exchange Confirmations not received
YREASON00123Incorrect Foreign Exchange Confirmations
YTOPIC00028ModifyREASON00075Incorrect amount
YREASON00070Incorrect value date
YREASON00069Incorrect account details
YTOPIC00026Payment StatusREASON00065On hold with beneficiary bank
YREASON00121Payment not debited
YREASON00071Payment not received
YREASON00064Proof of payment
YTOPIC00047Payment PendingREASON00066Pending limit review
YREASON00068Payment pending approval
YREASON00120Payment pending execution
YTOPIC00014OtherREASON00027Other
NTOPIC00048Payment SupportREASON00144Create a Payment
NREASON00145Create a Beneficiary
NREASON00146Linking Beneficiary to Payment
NREASON00147Explanation about Rates/ Value dates
NREASON00148Intermediary bank request
NREASON00149Amount/rate discrepancy
NREASON00150Access Archived Data
NREASON00151Temporary Limit Increase
NREASON00152Audit request
NREASON00153Technical Support
NTOPIC00049Training RequiredREASON00154Role (Drop down list)
NREASON00155Functionality (Drop down list)
NTOPIC00023Batch UploadREASON00114Beneficiary template
NREASON00157Upload issues
NREASON00158Unable to review Payments
NTOPIC00019Beneficiary TemplateREASON00110Access archived data
NREASON00046Access all beneficiary
NREASON00054Linking Beneficiary to Payment
NREASON00045Create Beneficiary
NREASON00128Modify a beneficiary
NREASON00032Technical Support
NTOPIC00025ComplaintsREASON00062Complaints
NTOPIC00043Currency RequirementREASON00317Currency requirement
NREASON00131New flow enquiry
NTOPIC00027FeedbackREASON00067Feedback
NTOPIC00014OtherREASON00027Other
NTOPIC00046Reimburse StoneXREASON00136Direct Debit Set up
NREASON00137Invoice request
NREASON00138Pay first issues
NREASON00139Reimbursement updates
NREASON00141StoneX Account details
NREASON00156Incorrect Billing
NTOPIC00040Technical Set-upREASON00117File upload
NREASON00143SFTP
NREASON00118Technical issue
NREASON00119API
NREASON00116XML
NTOPIC00024User setupREASON00063Technical issues
NREASON00058Training required
NREASON00059User setup support

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!