Scheduling an event inside plugin class is not working

I assumed that the post function is simply not found so when the time
comes for that function to run, nothing happens

The second parameter for wp_schedule_single_event() is actually an event name, which is really a hook. So the event/hook could be named my_event, my_plugin_retry_post, etc., and if you want the post() method to be called via that hook or when that event runs, then you need to attach the method to that event.

Something like so, assuming that your class is instantiated on page load:

<?php
/*
Plugin Name: My Plugin
Version: 1.0
*/

class MyPlugin {
    public function __construct() {
        // Calls the post() method when the my_event hook runs.
        add_action( 'my_event', array( $this, 'post' ), 10, 2 );
    }

    public function post( $fields, $type ) {
        // your API call logic

        if ( the API succeeded ) {
            // your code here
        } elseif ( ! wp_next_scheduled( 'my_event', array( $fields, $type ) ) ) {
            // The last 2 parameters are the same as the 1st & 2nd for wp_next_scheduled().
            wp_schedule_single_event( time() + 5, 'my_event', array( $fields, $type ) );
        }
    }
}

// Instantiate MyPlugin on page load.
// Or immediately when WordPress loads this plugin.
global $myplugin;
$myplugin = new MyPlugin;

/* Then later on, e.g. in a function, you could do:
global $myplugin;
$myplugin->post( [ 'foo', 'bar' ], 'baz' );
*/

Or if you want, you could instead create a callback which calls the post() method and attach the callback to your event.