Php json post from sql database array

Does anyone know how to post the json from a sql select. It’s only posting my first record. I want to select addresses from a db and route them

Here is my code and print_r ($payload); Does show all records. but when I lookup my job_id I only get the first record back.

$tsql = "SELECT * , cs.callahead as callahead
             FROM invoice i
             INNER JOIN customer cs ON cs.cust_no = i.cust_no
             INNER JOIN service svid on svid.invoice_no = i.invoice_no
             INNER JOIN program p ON p.prog_id = svid.prog_id
             WHERE i.emp_id= '$username'
             and svid.servstatus  = '$'
             and p.status > '7'
             and p.season =  $dateyear";
                

$stmt = sqlsrv_query( $conn, $tsql);

/**
 * Requires libcurl
 */

$query = array(
  "key" => "xxx"
);

$curl = curl_init();

while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {

      $custno = $row['cust_no'];
      $latitude = $row['latitude'];
      $long= $row['longitude'];
      $lat = doubleval($latitude);
      $lon =  doubleval($long); 

 $payload =  array(
  "vehicles" => array(
    array(
      "vehicle_id" => "000",
      "start_address" => array(
        "location_id" => "Office",
        "lon" => $lon,
        "lat" =>  $lat
      ),
    ),
    
  ),
  "services" => array(
    array(
      "id" => "ss1",
      "name" => "visit-Joe",
      "address" => array(
        "location_id" => "$custno",
        "lon" =>  $lon,
        "lat" => $lat
      ),

      "time_windows" => array(
        array(
          "earliest" => 1554805329,
          "latest" => 1554806329
        )
      )
    ),
  ),
  
  
  "configuration" => array(
    "routing" => array(
      "calc_points" => true,
      "snap_preventions" => array(
        "motorway",
        "trunk",
        "tunnel",
        "bridge",
        "ferry"
      )
    )
  )
); 


 print_r ($payload);
 //echo $payload;
 
}

curl_setopt_array($curl, [
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode($payload),
  CURLOPT_URL => "https://graphhopper.com/api/1/vrp/optimize?" . http_build_query($query),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
]);

$response = curl_exec($curl);
$error = curl_error($curl);

$response_id = json_decode($response);

 if(!empty($response_id)) {
 //    echo $response_id ->job_id;
     $key = $response_id ->job_id;
    } else {
        echo "Data not fetched.";
    }

My payload output, you can see it’s pulling multiple addresses lat and longs from my db

Array
(
    [vehicles] => Array
        (
            [0] => Array
                (
                    [vehicle_id] => 000
                    [start_address] => Array
                        (
                            [location_id] => Office
                            [lon] => -76.43676
                            [lat] => 39.53483
                        )

                )

        )

    [services] => Array
        (
            [0] => Array
                (
                    [id] => ss1
                    [name] => visit-Joe
                    [address] => Array
                        (
                            [location_id] => 34705
                            [lon] => -76.43676
                            [lat] => 39.53483
                        )

                    [time_windows] => Array
                        (
                            [0] => Array
                                (
                                    [earliest] => 1554805329
                                    [latest] => 1554806329
                                )

                        )

                )

        )

    [configuration] => Array
        (
            [routing] => Array
                (
                    [calc_points] => 1
                    [snap_preventions] => Array
                        (
                            [0] => motorway
                            [1] => trunk
                            [2] => tunnel
                            [3] => bridge
                            [4] => ferry
                        )

                )

        )

)
Array
(
    [vehicles] => Array
        (
            [0] => Array
                (
                    [vehicle_id] => 000
                    [start_address] => Array
                        (
                            [location_id] => Office
                            [lon] => -76.34532
                            [lat] => 39.54322
                        )

                )

        )

    [services] => Array
        (
            [0] => Array
                (
                    [id] => ss1
                    [name] => visit-Joe
                    [address] => Array
                        (
                            [location_id] => 35501
                            [lon] => -76.34532
                            [lat] => 39.54322
                        )

                    [time_windows] => Array
                        (
                            [0] => Array
                                (
                                    [earliest] => 1554805329
                                    [latest] => 1554806329
                                )

                        )

                )

        )

    [configuration] => Array
        (
            [routing] => Array
                (
                    [calc_points] => 1
                    [snap_preventions] => Array
                        (
                            [0] => motorway
                            [1] => trunk
                            [2] => tunnel
                            [3] => bridge
                            [4] => ferry
                        )

                )

        )

)
Array
(
    [vehicles] => Array
        (
            [0] => Array
                (
                    [vehicle_id] => 000
                    [start_address] => Array
                        (
                            [location_id] => Office
                            [lon] => -76.35312
                            [lat] => 39.55275
                        )

                )

        )

    [services] => Array
        (
            [0] => Array
                (
                    [id] => ss1
                    [name] => visit-Joe
                    [address] => Array
                        (
                            [location_id] => 45278
                            [lon] => -76.35312
                            [lat] => 39.55275
                        )

                    [time_windows] => Array
                        (
                            [0] => Array
                                (
                                    [earliest] => 1554805329
                                    [latest] => 1554806329
                                )

                        )

                )

        )

    [configuration] => Array
        (
            [routing] => Array
                (
                    [calc_points] => 1
                    [snap_preventions] => Array
                        (
                            [0] => motorway
                            [1] => trunk
                            [2] => tunnel
                            [3] => bridge
                            [4] => ferry
                        )

                )

        )

)
Array
(
    [vehicles] => Array
        (
            [0] => Array
                (
                    [vehicle_id] => 000
                    [start_address] => Array
                        (
                            [location_id] => Office
                            [lon] => -76.33338
                            [lat] => 39.55671
                        )

                )

        )

    [services] => Array
        (
            [0] => Array
                (
                    [id] => ss1
                    [name] => visit-Joe
                    [address] => Array
                        (
                            [location_id] => 45081
                            [lon] => -76.33338
                            [lat] => 39.55671
                        )

                    [time_windows] => Array
                        (
                            [0] => Array
                                (
                                    [earliest] => 1554805329
                                    [latest] => 1554806329
                                )

                        )

                )

        )

    [configuration] => Array
        (
            [routing] => Array
                (
                    [calc_points] => 1
                    [snap_preventions] => Array
                        (
                            [0] => motorway
                            [1] => trunk
                            [2] => tunnel
                            [3] => bridge
                            [4] => ferry
                        )

                )

        )

)
Array
(
    [vehicles] => Array
        (
            [0] => Array
                (
                    [vehicle_id] => 000
                    [start_address] => Array
                        (
                            [location_id] => Office
                            [lon] => -76.36727
                            [lat] => 39.53962
                        )

                )

        )

    [services] => Array
        (
            [0] => Array
                (
                    [id] => ss1
                    [name] => visit-Joe
                    [address] => Array
                        (
                            [location_id] => 37765
                            [lon] => -76.36727
                            [lat] => 39.53962
                        )

                    [time_windows] => Array
                        (
                            [0] => Array
                                (
                                    [earliest] => 1554805329
                                    [latest] => 1554806329
                                )

                        )

                )

        )

    [configuration] => Array
        (
            [routing] => Array
                (
                    [calc_points] => 1
                    [snap_preventions] => Array
                        (
                            [0] => motorway
                            [1] => trunk
                            [2] => tunnel
                            [3] => bridge
                            [4] => ferry
                        )

                )

        )