Both! In the shader controls, below your Normal Maps input you'll notice a slider labelled "Invert ON/OFF". This is a toggle to switch between OpenGL and DirectX tangent space. If your surface seems to have parts going in that should be out, or out that should be in, try changing this slider from 0 to 1, or vice versa.
That said, OpenGL is recommended. It is subjectively easier to read by eye, and I believe OpenGL is Blender's native normal map format.
Check to make sure that the texture you've input has been set to 'non-colour data' mode. All your texture inputs, besides Base Colour, and Emission, should be set to 'non-colour data'.
The reason is a little bit technical, but it has something to do with the way Blender interprets colour. Just keep this in mind if you want to know if your texture is colour data, or non-colour data: "Does my texture directly 'colour' the surface? (e.g. base colour)". If it does change the colour of the surface, it's colour data. If it doesn't, it's non-colour data that simply affects surface properties.
If the texturing suite you plan to use outputs the 3 basic industry standard Metal/Roughness maps (Base Colour, Metalness, Roughness), then it should work absolutely fine. All the major texture suites should work as intended: Substance, Quixel, and 3D Coat.