There is no need to stub the method. You would stub the request to the third party because that is not possible to recreate in your test and return the response you expect. You would usually stub at the lowest level possible
This could be managed via a tag in your cucumber feature.
so for example your feature would read:
Given I am on the contact page
When I submit the message
Then I should see message submitted
And the message should be created at ThirdParty
Then in your step definitions:
You could then change back your step to:
When(/^I submit a message$/) do
fill_in 'message', with: 'my message'
Using a tag has the advantage that it can be reused wherever you make your third party request.
Hope that makes sense.