I am late here, but coming with the second edition of my answer for the folks who were blocked due to Jenkins's latest updates.
Now, with the latest Jenkins latest changes the Bitbucket webhook url looks as below:
http://jenkins-username:token-generated-for-loggedin-user@url:port/job/job-name/build?crumb=Jenkins-Crumb:crumb_long_token
Crumb long token can be generated using the below command:
wget -q --auth-no-challenge --user jenkins-username
--password jenkins-password
--output-document - 'http://jenkins-url:8081/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'
The output will be: Jenkins-Crumb:6f2dcf2182efd19511b2ebf7b787e%
To fetch token-generated-for-loggedin-user
You must create it going to:
http://jenkins-url:8081/user/jenkins-username/configure
In API Token, Click Generate. Once the token is Generated, save it somewhere. The same should be passed to the URL that we form later.
You can verify coming back to this URL: http://jenkins-url:8081/user/jenkins-username/configure, you will notice how many times that token was used for correct configuration.
There are a few more changes that you should do along with this.
You must install: Bitbucket, bitbucket-pipeline, strict crumb issuer plugins from Manage Jenkins
Finally, GoTo:
http://jenkins-url:8081/configureSecurity/
And in CSRF Protection
Change Default Crumb Issuer
to Strict Crumb Issuer
Strict Crumb Issuer is what we installed above
A lot of effort in the investigation made this change work. Hope this helps and unblocks.