O caminho feliz sempre passa. O problema é o outro.

Sua integração com o gateway funciona. Você testou. O teste tá verde. Deploy feito, tá em produção há meses.

Aí, numa terça qualquer, o gateway devolve um erro 500. Instabilidade do lado deles.

E o seu app? Cospe uma tela branca com Undefined array key "transaction_id" na cara do cliente. Porque seu código pegou a resposta de erro e tentou ler o transaction_id que não existe ali.

Você testou a API funcionando. Nunca testou ela falhando. E é exatamente aí que mora o bug.