Creating issue relationships through JIRA SOAP API

I’m building a C# application that needs to connect with JIRA using their SOAP API. I’ve been going through the official docs but I’m having trouble finding the right method.

Basically I want to create a relationship between two existing issues. Is there a way to do this programmatically through the SOAP interface?

What I’m really trying to accomplish is converting a regular issue into a subtask and then linking it to a parent issue. Has anyone done something similar before?

I’ve tried looking at the RemoteIssue object and various service methods but nothing seems to handle issue linking directly. Any guidance would be really helpful.

had this same headache a while back. jira’s soap api is pretty clunky for this stuff tbh. you might want to check the moveIssue method instead - it can handle issue type changes including regular to subtask conversion. just pass the new issue type id and parent key in the same call. worked better than updateIssue for me.

I’ve worked with JIRA SOAP API extensively and encountered this exact scenario. The issue is that JIRA’s SOAP API doesn’t have a direct method for creating issue relationships or converting issues to subtasks in one call. You’ll need to approach this differently than you might expect. For converting an issue to a subtask, you cannot simply update the issue type through the standard updateIssue method. JIRA treats this as a special operation that requires using the convertToSubTask method if available in your JIRA version, or alternatively, you might need to create a new subtask and copy the relevant data from the original issue. Regarding issue linking, the SOAP API typically handles this through the addLink method or similar linking operations, but these create different types of relationships than parent-child subtask relationships. The parent-child relationship is established during subtask creation rather than through separate linking operations. I’d recommend checking if your JIRA instance supports the convertToSubTask operation first, as this would be the cleanest approach for your use case.

Converting regular issues to subtasks through SOAP API is definitely doable but requires a couple of steps. You’ll need to use the updateIssue method to change the issue type first, then establish the parent-child relationship. The tricky part is that you have to modify the issue’s type field to a subtask type, and simultaneously set the parent field in the same update call. I ran into similar challenges when migrating our legacy tracking system. The key thing to remember is that JIRA validates the parent relationship during the update, so make sure your parent issue exists and is accessible. Also worth noting that some custom fields might get cleared during the type conversion, so you may need to preserve and restore those values separately. The SOAP API documentation isn’t great on this specific workflow, but the updateIssue method with proper RemoteFieldValue objects should get you there.